xref: /aosp_15_r20/external/bazelbuild-remote-apis/build/bazel/remote/execution/v2/remote_execution.pb.go (revision ae21b2b400d1606a797985382019aea74177085c)
1// Copyright 2018 The Bazel Authors.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// Code generated by protoc-gen-go. DO NOT EDIT.
16// versions:
17// 	protoc-gen-go v1.31.0
18// 	protoc        v3.15.0
19// source: build/bazel/remote/execution/v2/remote_execution.proto
20
21package remoteexecution
22
23import (
24	context "context"
25	semver "github.com/bazelbuild/remote-apis/build/bazel/semver"
26	_ "google.golang.org/genproto/googleapis/api/annotations"
27	longrunning "google.golang.org/genproto/googleapis/longrunning"
28	status "google.golang.org/genproto/googleapis/rpc/status"
29	grpc "google.golang.org/grpc"
30	codes "google.golang.org/grpc/codes"
31	status1 "google.golang.org/grpc/status"
32	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
33	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
34	anypb "google.golang.org/protobuf/types/known/anypb"
35	durationpb "google.golang.org/protobuf/types/known/durationpb"
36	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
37	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
38	reflect "reflect"
39	sync "sync"
40)
41
42const (
43	// Verify that this generated code is sufficiently up-to-date.
44	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
45	// Verify that runtime/protoimpl is sufficiently up-to-date.
46	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
47)
48
49type Command_OutputDirectoryFormat int32
50
51const (
52	// The client is only interested in receiving output directories in
53	// the form of a single Tree object, using the `tree_digest` field.
54	Command_TREE_ONLY Command_OutputDirectoryFormat = 0
55	// The client is only interested in receiving output directories in
56	// the form of a hierarchy of separately stored Directory objects,
57	// using the `root_directory_digest` field.
58	Command_DIRECTORY_ONLY Command_OutputDirectoryFormat = 1
59	// The client is interested in receiving output directories both in
60	// the form of a single Tree object and a hierarchy of separately
61	// stored Directory objects, using both the `tree_digest` and
62	// `root_directory_digest` fields.
63	Command_TREE_AND_DIRECTORY Command_OutputDirectoryFormat = 2
64)
65
66// Enum value maps for Command_OutputDirectoryFormat.
67var (
68	Command_OutputDirectoryFormat_name = map[int32]string{
69		0: "TREE_ONLY",
70		1: "DIRECTORY_ONLY",
71		2: "TREE_AND_DIRECTORY",
72	}
73	Command_OutputDirectoryFormat_value = map[string]int32{
74		"TREE_ONLY":          0,
75		"DIRECTORY_ONLY":     1,
76		"TREE_AND_DIRECTORY": 2,
77	}
78)
79
80func (x Command_OutputDirectoryFormat) Enum() *Command_OutputDirectoryFormat {
81	p := new(Command_OutputDirectoryFormat)
82	*p = x
83	return p
84}
85
86func (x Command_OutputDirectoryFormat) String() string {
87	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
88}
89
90func (Command_OutputDirectoryFormat) Descriptor() protoreflect.EnumDescriptor {
91	return file_build_bazel_remote_execution_v2_remote_execution_proto_enumTypes[0].Descriptor()
92}
93
94func (Command_OutputDirectoryFormat) Type() protoreflect.EnumType {
95	return &file_build_bazel_remote_execution_v2_remote_execution_proto_enumTypes[0]
96}
97
98func (x Command_OutputDirectoryFormat) Number() protoreflect.EnumNumber {
99	return protoreflect.EnumNumber(x)
100}
101
102// Deprecated: Use Command_OutputDirectoryFormat.Descriptor instead.
103func (Command_OutputDirectoryFormat) EnumDescriptor() ([]byte, []int) {
104	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{1, 0}
105}
106
107type ExecutionStage_Value int32
108
109const (
110	// Invalid value.
111	ExecutionStage_UNKNOWN ExecutionStage_Value = 0
112	// Checking the result against the cache.
113	ExecutionStage_CACHE_CHECK ExecutionStage_Value = 1
114	// Currently idle, awaiting a free machine to execute.
115	ExecutionStage_QUEUED ExecutionStage_Value = 2
116	// Currently being executed by a worker.
117	ExecutionStage_EXECUTING ExecutionStage_Value = 3
118	// Finished execution.
119	ExecutionStage_COMPLETED ExecutionStage_Value = 4
120)
121
122// Enum value maps for ExecutionStage_Value.
123var (
124	ExecutionStage_Value_name = map[int32]string{
125		0: "UNKNOWN",
126		1: "CACHE_CHECK",
127		2: "QUEUED",
128		3: "EXECUTING",
129		4: "COMPLETED",
130	}
131	ExecutionStage_Value_value = map[string]int32{
132		"UNKNOWN":     0,
133		"CACHE_CHECK": 1,
134		"QUEUED":      2,
135		"EXECUTING":   3,
136		"COMPLETED":   4,
137	}
138)
139
140func (x ExecutionStage_Value) Enum() *ExecutionStage_Value {
141	p := new(ExecutionStage_Value)
142	*p = x
143	return p
144}
145
146func (x ExecutionStage_Value) String() string {
147	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
148}
149
150func (ExecutionStage_Value) Descriptor() protoreflect.EnumDescriptor {
151	return file_build_bazel_remote_execution_v2_remote_execution_proto_enumTypes[1].Descriptor()
152}
153
154func (ExecutionStage_Value) Type() protoreflect.EnumType {
155	return &file_build_bazel_remote_execution_v2_remote_execution_proto_enumTypes[1]
156}
157
158func (x ExecutionStage_Value) Number() protoreflect.EnumNumber {
159	return protoreflect.EnumNumber(x)
160}
161
162// Deprecated: Use ExecutionStage_Value.Descriptor instead.
163func (ExecutionStage_Value) EnumDescriptor() ([]byte, []int) {
164	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{21, 0}
165}
166
167type DigestFunction_Value int32
168
169const (
170	// It is an error for the server to return this value.
171	DigestFunction_UNKNOWN DigestFunction_Value = 0
172	// The SHA-256 digest function.
173	DigestFunction_SHA256 DigestFunction_Value = 1
174	// The SHA-1 digest function.
175	DigestFunction_SHA1 DigestFunction_Value = 2
176	// The MD5 digest function.
177	DigestFunction_MD5 DigestFunction_Value = 3
178	// The Microsoft "VSO-Hash" paged SHA256 digest function.
179	// See https://github.com/microsoft/BuildXL/blob/master/Documentation/Specs/PagedHash.md .
180	DigestFunction_VSO DigestFunction_Value = 4
181	// The SHA-384 digest function.
182	DigestFunction_SHA384 DigestFunction_Value = 5
183	// The SHA-512 digest function.
184	DigestFunction_SHA512 DigestFunction_Value = 6
185	// Murmur3 128-bit digest function, x64 variant. Note that this is not a
186	// cryptographic hash function and its collision properties are not strongly guaranteed.
187	// See https://github.com/aappleby/smhasher/wiki/MurmurHash3 .
188	DigestFunction_MURMUR3 DigestFunction_Value = 7
189	// The SHA-256 digest function, modified to use a Merkle tree for
190	// large objects. This permits implementations to store large blobs
191	// as a decomposed sequence of 2^j sized chunks, where j >= 10,
192	// while being able to validate integrity at the chunk level.
193	//
194	// Furthermore, on systems that do not offer dedicated instructions
195	// for computing SHA-256 hashes (e.g., the Intel SHA and ARMv8
196	// cryptographic extensions), SHA256TREE hashes can be computed more
197	// efficiently than plain SHA-256 hashes by using generic SIMD
198	// extensions, such as Intel AVX2 or ARM NEON.
199	//
200	// SHA256TREE hashes are computed as follows:
201	//
202	//   - For blobs that are 1024 bytes or smaller, the hash is computed
203	//     using the regular SHA-256 digest function.
204	//
205	//   - For blobs that are more than 1024 bytes in size, the hash is
206	//     computed as follows:
207	//
208	//     1. The blob is partitioned into a left (leading) and right
209	//     (trailing) blob. These blobs have lengths m and n
210	//     respectively, where m = 2^k and 0 < n <= m.
211	//
212	//     2. Hashes of the left and right blob, Hash(left) and
213	//     Hash(right) respectively, are computed by recursively
214	//     applying the SHA256TREE algorithm.
215	//
216	//     3. A single invocation is made to the SHA-256 block cipher with
217	//     the following parameters:
218	//
219	//     M = Hash(left) || Hash(right)
220	//     H = {
221	//     0xcbbb9d5d, 0x629a292a, 0x9159015a, 0x152fecd8,
222	//     0x67332667, 0x8eb44a87, 0xdb0c2e0d, 0x47b5481d,
223	//     }
224	//
225	//     The values of H are the leading fractional parts of the
226	//     square roots of the 9th to the 16th prime number (23 to 53).
227	//     This differs from plain SHA-256, where the first eight prime
228	//     numbers (2 to 19) are used, thereby preventing trivial hash
229	//     collisions between small and large objects.
230	//
231	//     4. The hash of the full blob can then be obtained by
232	//     concatenating the outputs of the block cipher:
233	//
234	//     Hash(blob) = a || b || c || d || e || f || g || h
235	//
236	//     Addition of the original values of H, as normally done
237	//     through the use of the Davies-Meyer structure, is not
238	//     performed. This isn't necessary, as the block cipher is only
239	//     invoked once.
240	//
241	// Test vectors of this digest function can be found in the
242	// accompanying sha256tree_test_vectors.txt file.
243	DigestFunction_SHA256TREE DigestFunction_Value = 8
244	// The BLAKE3 hash function.
245	// See https://github.com/BLAKE3-team/BLAKE3.
246	DigestFunction_BLAKE3 DigestFunction_Value = 9
247)
248
249// Enum value maps for DigestFunction_Value.
250var (
251	DigestFunction_Value_name = map[int32]string{
252		0: "UNKNOWN",
253		1: "SHA256",
254		2: "SHA1",
255		3: "MD5",
256		4: "VSO",
257		5: "SHA384",
258		6: "SHA512",
259		7: "MURMUR3",
260		8: "SHA256TREE",
261		9: "BLAKE3",
262	}
263	DigestFunction_Value_value = map[string]int32{
264		"UNKNOWN":    0,
265		"SHA256":     1,
266		"SHA1":       2,
267		"MD5":        3,
268		"VSO":        4,
269		"SHA384":     5,
270		"SHA512":     6,
271		"MURMUR3":    7,
272		"SHA256TREE": 8,
273		"BLAKE3":     9,
274	}
275)
276
277func (x DigestFunction_Value) Enum() *DigestFunction_Value {
278	p := new(DigestFunction_Value)
279	*p = x
280	return p
281}
282
283func (x DigestFunction_Value) String() string {
284	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
285}
286
287func (DigestFunction_Value) Descriptor() protoreflect.EnumDescriptor {
288	return file_build_bazel_remote_execution_v2_remote_execution_proto_enumTypes[2].Descriptor()
289}
290
291func (DigestFunction_Value) Type() protoreflect.EnumType {
292	return &file_build_bazel_remote_execution_v2_remote_execution_proto_enumTypes[2]
293}
294
295func (x DigestFunction_Value) Number() protoreflect.EnumNumber {
296	return protoreflect.EnumNumber(x)
297}
298
299// Deprecated: Use DigestFunction_Value.Descriptor instead.
300func (DigestFunction_Value) EnumDescriptor() ([]byte, []int) {
301	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{36, 0}
302}
303
304type SymlinkAbsolutePathStrategy_Value int32
305
306const (
307	// Invalid value.
308	SymlinkAbsolutePathStrategy_UNKNOWN SymlinkAbsolutePathStrategy_Value = 0
309	// Server will return an `INVALID_ARGUMENT` on input symlinks with absolute
310	// targets.
311	// If an action tries to create an output symlink with an absolute target, a
312	// `FAILED_PRECONDITION` will be returned.
313	SymlinkAbsolutePathStrategy_DISALLOWED SymlinkAbsolutePathStrategy_Value = 1
314	// Server will allow symlink targets to escape the input root tree, possibly
315	// resulting in non-hermetic builds.
316	SymlinkAbsolutePathStrategy_ALLOWED SymlinkAbsolutePathStrategy_Value = 2
317)
318
319// Enum value maps for SymlinkAbsolutePathStrategy_Value.
320var (
321	SymlinkAbsolutePathStrategy_Value_name = map[int32]string{
322		0: "UNKNOWN",
323		1: "DISALLOWED",
324		2: "ALLOWED",
325	}
326	SymlinkAbsolutePathStrategy_Value_value = map[string]int32{
327		"UNKNOWN":    0,
328		"DISALLOWED": 1,
329		"ALLOWED":    2,
330	}
331)
332
333func (x SymlinkAbsolutePathStrategy_Value) Enum() *SymlinkAbsolutePathStrategy_Value {
334	p := new(SymlinkAbsolutePathStrategy_Value)
335	*p = x
336	return p
337}
338
339func (x SymlinkAbsolutePathStrategy_Value) String() string {
340	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
341}
342
343func (SymlinkAbsolutePathStrategy_Value) Descriptor() protoreflect.EnumDescriptor {
344	return file_build_bazel_remote_execution_v2_remote_execution_proto_enumTypes[3].Descriptor()
345}
346
347func (SymlinkAbsolutePathStrategy_Value) Type() protoreflect.EnumType {
348	return &file_build_bazel_remote_execution_v2_remote_execution_proto_enumTypes[3]
349}
350
351func (x SymlinkAbsolutePathStrategy_Value) Number() protoreflect.EnumNumber {
352	return protoreflect.EnumNumber(x)
353}
354
355// Deprecated: Use SymlinkAbsolutePathStrategy_Value.Descriptor instead.
356func (SymlinkAbsolutePathStrategy_Value) EnumDescriptor() ([]byte, []int) {
357	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{39, 0}
358}
359
360type Compressor_Value int32
361
362const (
363	// No compression. Servers and clients MUST always support this, and do
364	// not need to advertise it.
365	Compressor_IDENTITY Compressor_Value = 0
366	// Zstandard compression.
367	Compressor_ZSTD Compressor_Value = 1
368	// RFC 1951 Deflate. This format is identical to what is used by ZIP
369	// files. Headers such as the one generated by gzip are not
370	// included.
371	//
372	// It is advised to use algorithms such as Zstandard instead, as
373	// those are faster and/or provide a better compression ratio.
374	Compressor_DEFLATE Compressor_Value = 2
375	// Brotli compression.
376	Compressor_BROTLI Compressor_Value = 3
377)
378
379// Enum value maps for Compressor_Value.
380var (
381	Compressor_Value_name = map[int32]string{
382		0: "IDENTITY",
383		1: "ZSTD",
384		2: "DEFLATE",
385		3: "BROTLI",
386	}
387	Compressor_Value_value = map[string]int32{
388		"IDENTITY": 0,
389		"ZSTD":     1,
390		"DEFLATE":  2,
391		"BROTLI":   3,
392	}
393)
394
395func (x Compressor_Value) Enum() *Compressor_Value {
396	p := new(Compressor_Value)
397	*p = x
398	return p
399}
400
401func (x Compressor_Value) String() string {
402	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
403}
404
405func (Compressor_Value) Descriptor() protoreflect.EnumDescriptor {
406	return file_build_bazel_remote_execution_v2_remote_execution_proto_enumTypes[4].Descriptor()
407}
408
409func (Compressor_Value) Type() protoreflect.EnumType {
410	return &file_build_bazel_remote_execution_v2_remote_execution_proto_enumTypes[4]
411}
412
413func (x Compressor_Value) Number() protoreflect.EnumNumber {
414	return protoreflect.EnumNumber(x)
415}
416
417// Deprecated: Use Compressor_Value.Descriptor instead.
418func (Compressor_Value) EnumDescriptor() ([]byte, []int) {
419	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{40, 0}
420}
421
422// An `Action` captures all the information about an execution which is required
423// to reproduce it.
424//
425// `Action`s are the core component of the [Execution] service. A single
426// `Action` represents a repeatable action that can be performed by the
427// execution service. `Action`s can be succinctly identified by the digest of
428// their wire format encoding and, once an `Action` has been executed, will be
429// cached in the action cache. Future requests can then use the cached result
430// rather than needing to run afresh.
431//
432// When a server completes execution of an
433// [Action][build.bazel.remote.execution.v2.Action], it MAY choose to
434// cache the [result][build.bazel.remote.execution.v2.ActionResult] in
435// the [ActionCache][build.bazel.remote.execution.v2.ActionCache] unless
436// `do_not_cache` is `true`. Clients SHOULD expect the server to do so. By
437// default, future calls to
438// [Execute][build.bazel.remote.execution.v2.Execution.Execute] the same
439// `Action` will also serve their results from the cache. Clients must take care
440// to understand the caching behaviour. Ideally, all `Action`s will be
441// reproducible so that serving a result from cache is always desirable and
442// correct.
443type Action struct {
444	state         protoimpl.MessageState
445	sizeCache     protoimpl.SizeCache
446	unknownFields protoimpl.UnknownFields
447
448	// The digest of the [Command][build.bazel.remote.execution.v2.Command]
449	// to run, which MUST be present in the
450	// [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage].
451	CommandDigest *Digest `protobuf:"bytes,1,opt,name=command_digest,json=commandDigest,proto3" json:"command_digest,omitempty"`
452	// The digest of the root
453	// [Directory][build.bazel.remote.execution.v2.Directory] for the input
454	// files. The files in the directory tree are available in the correct
455	// location on the build machine before the command is executed. The root
456	// directory, as well as every subdirectory and content blob referred to, MUST
457	// be in the
458	// [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage].
459	InputRootDigest *Digest `protobuf:"bytes,2,opt,name=input_root_digest,json=inputRootDigest,proto3" json:"input_root_digest,omitempty"`
460	// A timeout after which the execution should be killed. If the timeout is
461	// absent, then the client is specifying that the execution should continue
462	// as long as the server will let it. The server SHOULD impose a timeout if
463	// the client does not specify one, however, if the client does specify a
464	// timeout that is longer than the server's maximum timeout, the server MUST
465	// reject the request.
466	//
467	// The timeout is only intended to cover the "execution" of the specified
468	// action and not time in queue nor any overheads before or after execution
469	// such as marshalling inputs/outputs. The server SHOULD avoid including time
470	// spent the client doesn't have control over, and MAY extend or reduce the
471	// timeout to account for delays or speedups that occur during execution
472	// itself (e.g., lazily loading data from the Content Addressable Storage,
473	// live migration of virtual machines, emulation overhead).
474	//
475	// The timeout is a part of the
476	// [Action][build.bazel.remote.execution.v2.Action] message, and
477	// therefore two `Actions` with different timeouts are different, even if they
478	// are otherwise identical. This is because, if they were not, running an
479	// `Action` with a lower timeout than is required might result in a cache hit
480	// from an execution run with a longer timeout, hiding the fact that the
481	// timeout is too short. By encoding it directly in the `Action`, a lower
482	// timeout will result in a cache miss and the execution timeout will fail
483	// immediately, rather than whenever the cache entry gets evicted.
484	Timeout *durationpb.Duration `protobuf:"bytes,6,opt,name=timeout,proto3" json:"timeout,omitempty"`
485	// If true, then the `Action`'s result cannot be cached, and in-flight
486	// requests for the same `Action` may not be merged.
487	DoNotCache bool `protobuf:"varint,7,opt,name=do_not_cache,json=doNotCache,proto3" json:"do_not_cache,omitempty"`
488	// An optional additional salt value used to place this `Action` into a
489	// separate cache namespace from other instances having the same field
490	// contents. This salt typically comes from operational configuration
491	// specific to sources such as repo and service configuration,
492	// and allows disowning an entire set of ActionResults that might have been
493	// poisoned by buggy software or tool failures.
494	Salt []byte `protobuf:"bytes,9,opt,name=salt,proto3" json:"salt,omitempty"`
495	// The optional platform requirements for the execution environment. The
496	// server MAY choose to execute the action on any worker satisfying the
497	// requirements, so the client SHOULD ensure that running the action on any
498	// such worker will have the same result.  A detailed lexicon for this can be
499	// found in the accompanying platform.md.
500	// New in version 2.2: clients SHOULD set these platform properties as well
501	// as those in the [Command][build.bazel.remote.execution.v2.Command]. Servers
502	// SHOULD prefer those set here.
503	Platform *Platform `protobuf:"bytes,10,opt,name=platform,proto3" json:"platform,omitempty"`
504}
505
506func (x *Action) Reset() {
507	*x = Action{}
508	if protoimpl.UnsafeEnabled {
509		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[0]
510		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
511		ms.StoreMessageInfo(mi)
512	}
513}
514
515func (x *Action) String() string {
516	return protoimpl.X.MessageStringOf(x)
517}
518
519func (*Action) ProtoMessage() {}
520
521func (x *Action) ProtoReflect() protoreflect.Message {
522	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[0]
523	if protoimpl.UnsafeEnabled && x != nil {
524		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
525		if ms.LoadMessageInfo() == nil {
526			ms.StoreMessageInfo(mi)
527		}
528		return ms
529	}
530	return mi.MessageOf(x)
531}
532
533// Deprecated: Use Action.ProtoReflect.Descriptor instead.
534func (*Action) Descriptor() ([]byte, []int) {
535	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{0}
536}
537
538func (x *Action) GetCommandDigest() *Digest {
539	if x != nil {
540		return x.CommandDigest
541	}
542	return nil
543}
544
545func (x *Action) GetInputRootDigest() *Digest {
546	if x != nil {
547		return x.InputRootDigest
548	}
549	return nil
550}
551
552func (x *Action) GetTimeout() *durationpb.Duration {
553	if x != nil {
554		return x.Timeout
555	}
556	return nil
557}
558
559func (x *Action) GetDoNotCache() bool {
560	if x != nil {
561		return x.DoNotCache
562	}
563	return false
564}
565
566func (x *Action) GetSalt() []byte {
567	if x != nil {
568		return x.Salt
569	}
570	return nil
571}
572
573func (x *Action) GetPlatform() *Platform {
574	if x != nil {
575		return x.Platform
576	}
577	return nil
578}
579
580// A `Command` is the actual command executed by a worker running an
581// [Action][build.bazel.remote.execution.v2.Action] and specifications of its
582// environment.
583//
584// Except as otherwise required, the environment (such as which system
585// libraries or binaries are available, and what filesystems are mounted where)
586// is defined by and specific to the implementation of the remote execution API.
587type Command struct {
588	state         protoimpl.MessageState
589	sizeCache     protoimpl.SizeCache
590	unknownFields protoimpl.UnknownFields
591
592	// The arguments to the command.
593	//
594	// The first argument specifies the command to run, which may be either an
595	// absolute path, a path relative to the working directory, or an unqualified
596	// path (without path separators) which will be resolved using the operating
597	// system's equivalent of the PATH environment variable. Path separators
598	// native to the operating system running on the worker SHOULD be used. If the
599	// `environment_variables` list contains an entry for the PATH environment
600	// variable, it SHOULD be respected. If not, the resolution process is
601	// implementation-defined.
602	//
603	// Changed in v2.3. v2.2 and older require that no PATH lookups are performed,
604	// and that relative paths are resolved relative to the input root. This
605	// behavior can, however, not be relied upon, as most implementations already
606	// followed the rules described above.
607	Arguments []string `protobuf:"bytes,1,rep,name=arguments,proto3" json:"arguments,omitempty"`
608	// The environment variables to set when running the program. The worker may
609	// provide its own default environment variables; these defaults can be
610	// overridden using this field. Additional variables can also be specified.
611	//
612	// In order to ensure that equivalent
613	// [Command][build.bazel.remote.execution.v2.Command]s always hash to the same
614	// value, the environment variables MUST be lexicographically sorted by name.
615	// Sorting of strings is done by code point, equivalently, by the UTF-8 bytes.
616	EnvironmentVariables []*Command_EnvironmentVariable `protobuf:"bytes,2,rep,name=environment_variables,json=environmentVariables,proto3" json:"environment_variables,omitempty"`
617	// A list of the output files that the client expects to retrieve from the
618	// action. Only the listed files, as well as directories listed in
619	// `output_directories`, will be returned to the client as output.
620	// Other files or directories that may be created during command execution
621	// are discarded.
622	//
623	// The paths are relative to the working directory of the action execution.
624	// The paths are specified using a single forward slash (`/`) as a path
625	// separator, even if the execution platform natively uses a different
626	// separator. The path MUST NOT include a trailing slash, nor a leading slash,
627	// being a relative path.
628	//
629	// In order to ensure consistent hashing of the same Action, the output paths
630	// MUST be sorted lexicographically by code point (or, equivalently, by UTF-8
631	// bytes).
632	//
633	// An output file cannot be duplicated, be a parent of another output file, or
634	// have the same path as any of the listed output directories.
635	//
636	// Directories leading up to the output files are created by the worker prior
637	// to execution, even if they are not explicitly part of the input root.
638	//
639	// DEPRECATED since v2.1: Use `output_paths` instead.
640	//
641	// Deprecated: Marked as deprecated in build/bazel/remote/execution/v2/remote_execution.proto.
642	OutputFiles []string `protobuf:"bytes,3,rep,name=output_files,json=outputFiles,proto3" json:"output_files,omitempty"`
643	// A list of the output directories that the client expects to retrieve from
644	// the action. Only the listed directories will be returned (an entire
645	// directory structure will be returned as a
646	// [Tree][build.bazel.remote.execution.v2.Tree] message digest, see
647	// [OutputDirectory][build.bazel.remote.execution.v2.OutputDirectory]), as
648	// well as files listed in `output_files`. Other files or directories that
649	// may be created during command execution are discarded.
650	//
651	// The paths are relative to the working directory of the action execution.
652	// The paths are specified using a single forward slash (`/`) as a path
653	// separator, even if the execution platform natively uses a different
654	// separator. The path MUST NOT include a trailing slash, nor a leading slash,
655	// being a relative path. The special value of empty string is allowed,
656	// although not recommended, and can be used to capture the entire working
657	// directory tree, including inputs.
658	//
659	// In order to ensure consistent hashing of the same Action, the output paths
660	// MUST be sorted lexicographically by code point (or, equivalently, by UTF-8
661	// bytes).
662	//
663	// An output directory cannot be duplicated or have the same path as any of
664	// the listed output files. An output directory is allowed to be a parent of
665	// another output directory.
666	//
667	// Directories leading up to the output directories (but not the output
668	// directories themselves) are created by the worker prior to execution, even
669	// if they are not explicitly part of the input root.
670	//
671	// DEPRECATED since 2.1: Use `output_paths` instead.
672	//
673	// Deprecated: Marked as deprecated in build/bazel/remote/execution/v2/remote_execution.proto.
674	OutputDirectories []string `protobuf:"bytes,4,rep,name=output_directories,json=outputDirectories,proto3" json:"output_directories,omitempty"`
675	// A list of the output paths that the client expects to retrieve from the
676	// action. Only the listed paths will be returned to the client as output.
677	// The type of the output (file or directory) is not specified, and will be
678	// determined by the server after action execution. If the resulting path is
679	// a file, it will be returned in an
680	// [OutputFile][build.bazel.remote.execution.v2.OutputFile] typed field.
681	// If the path is a directory, the entire directory structure will be returned
682	// as a [Tree][build.bazel.remote.execution.v2.Tree] message digest, see
683	// [OutputDirectory][build.bazel.remote.execution.v2.OutputDirectory]
684	// Other files or directories that may be created during command execution
685	// are discarded.
686	//
687	// The paths are relative to the working directory of the action execution.
688	// The paths are specified using a single forward slash (`/`) as a path
689	// separator, even if the execution platform natively uses a different
690	// separator. The path MUST NOT include a trailing slash, nor a leading slash,
691	// being a relative path.
692	//
693	// In order to ensure consistent hashing of the same Action, the output paths
694	// MUST be deduplicated and sorted lexicographically by code point (or,
695	// equivalently, by UTF-8 bytes).
696	//
697	// Directories leading up to the output paths are created by the worker prior
698	// to execution, even if they are not explicitly part of the input root.
699	//
700	// New in v2.1: this field supersedes the DEPRECATED `output_files` and
701	// `output_directories` fields. If `output_paths` is used, `output_files` and
702	// `output_directories` will be ignored!
703	OutputPaths []string `protobuf:"bytes,7,rep,name=output_paths,json=outputPaths,proto3" json:"output_paths,omitempty"`
704	// The platform requirements for the execution environment. The server MAY
705	// choose to execute the action on any worker satisfying the requirements, so
706	// the client SHOULD ensure that running the action on any such worker will
707	// have the same result.  A detailed lexicon for this can be found in the
708	// accompanying platform.md.
709	// DEPRECATED as of v2.2: platform properties are now specified directly in
710	// the action. See documentation note in the
711	// [Action][build.bazel.remote.execution.v2.Action] for migration.
712	//
713	// Deprecated: Marked as deprecated in build/bazel/remote/execution/v2/remote_execution.proto.
714	Platform *Platform `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform,omitempty"`
715	// The working directory, relative to the input root, for the command to run
716	// in. It must be a directory which exists in the input tree. If it is left
717	// empty, then the action is run in the input root.
718	WorkingDirectory string `protobuf:"bytes,6,opt,name=working_directory,json=workingDirectory,proto3" json:"working_directory,omitempty"`
719	// A list of keys for node properties the client expects to retrieve for
720	// output files and directories. Keys are either names of string-based
721	// [NodeProperty][build.bazel.remote.execution.v2.NodeProperty] or
722	// names of fields in [NodeProperties][build.bazel.remote.execution.v2.NodeProperties].
723	// In order to ensure that equivalent `Action`s always hash to the same
724	// value, the node properties MUST be lexicographically sorted by name.
725	// Sorting of strings is done by code point, equivalently, by the UTF-8 bytes.
726	//
727	// The interpretation of string-based properties is server-dependent. If a
728	// property is not recognized by the server, the server will return an
729	// `INVALID_ARGUMENT`.
730	OutputNodeProperties []string `protobuf:"bytes,8,rep,name=output_node_properties,json=outputNodeProperties,proto3" json:"output_node_properties,omitempty"`
731	// The format that the worker should use to store the contents of
732	// output directories.
733	//
734	// In case this field is set to a value that is not supported by the
735	// worker, the worker SHOULD interpret this field as TREE_ONLY. The
736	// worker MAY store output directories in formats that are a superset
737	// of what was requested (e.g., interpreting DIRECTORY_ONLY as
738	// TREE_AND_DIRECTORY).
739	OutputDirectoryFormat Command_OutputDirectoryFormat `protobuf:"varint,9,opt,name=output_directory_format,json=outputDirectoryFormat,proto3,enum=build.bazel.remote.execution.v2.Command_OutputDirectoryFormat" json:"output_directory_format,omitempty"`
740}
741
742func (x *Command) Reset() {
743	*x = Command{}
744	if protoimpl.UnsafeEnabled {
745		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[1]
746		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
747		ms.StoreMessageInfo(mi)
748	}
749}
750
751func (x *Command) String() string {
752	return protoimpl.X.MessageStringOf(x)
753}
754
755func (*Command) ProtoMessage() {}
756
757func (x *Command) ProtoReflect() protoreflect.Message {
758	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[1]
759	if protoimpl.UnsafeEnabled && x != nil {
760		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
761		if ms.LoadMessageInfo() == nil {
762			ms.StoreMessageInfo(mi)
763		}
764		return ms
765	}
766	return mi.MessageOf(x)
767}
768
769// Deprecated: Use Command.ProtoReflect.Descriptor instead.
770func (*Command) Descriptor() ([]byte, []int) {
771	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{1}
772}
773
774func (x *Command) GetArguments() []string {
775	if x != nil {
776		return x.Arguments
777	}
778	return nil
779}
780
781func (x *Command) GetEnvironmentVariables() []*Command_EnvironmentVariable {
782	if x != nil {
783		return x.EnvironmentVariables
784	}
785	return nil
786}
787
788// Deprecated: Marked as deprecated in build/bazel/remote/execution/v2/remote_execution.proto.
789func (x *Command) GetOutputFiles() []string {
790	if x != nil {
791		return x.OutputFiles
792	}
793	return nil
794}
795
796// Deprecated: Marked as deprecated in build/bazel/remote/execution/v2/remote_execution.proto.
797func (x *Command) GetOutputDirectories() []string {
798	if x != nil {
799		return x.OutputDirectories
800	}
801	return nil
802}
803
804func (x *Command) GetOutputPaths() []string {
805	if x != nil {
806		return x.OutputPaths
807	}
808	return nil
809}
810
811// Deprecated: Marked as deprecated in build/bazel/remote/execution/v2/remote_execution.proto.
812func (x *Command) GetPlatform() *Platform {
813	if x != nil {
814		return x.Platform
815	}
816	return nil
817}
818
819func (x *Command) GetWorkingDirectory() string {
820	if x != nil {
821		return x.WorkingDirectory
822	}
823	return ""
824}
825
826func (x *Command) GetOutputNodeProperties() []string {
827	if x != nil {
828		return x.OutputNodeProperties
829	}
830	return nil
831}
832
833func (x *Command) GetOutputDirectoryFormat() Command_OutputDirectoryFormat {
834	if x != nil {
835		return x.OutputDirectoryFormat
836	}
837	return Command_TREE_ONLY
838}
839
840// A `Platform` is a set of requirements, such as hardware, operating system, or
841// compiler toolchain, for an
842// [Action][build.bazel.remote.execution.v2.Action]'s execution
843// environment. A `Platform` is represented as a series of key-value pairs
844// representing the properties that are required of the platform.
845type Platform struct {
846	state         protoimpl.MessageState
847	sizeCache     protoimpl.SizeCache
848	unknownFields protoimpl.UnknownFields
849
850	// The properties that make up this platform. In order to ensure that
851	// equivalent `Platform`s always hash to the same value, the properties MUST
852	// be lexicographically sorted by name, and then by value. Sorting of strings
853	// is done by code point, equivalently, by the UTF-8 bytes.
854	Properties []*Platform_Property `protobuf:"bytes,1,rep,name=properties,proto3" json:"properties,omitempty"`
855}
856
857func (x *Platform) Reset() {
858	*x = Platform{}
859	if protoimpl.UnsafeEnabled {
860		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[2]
861		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
862		ms.StoreMessageInfo(mi)
863	}
864}
865
866func (x *Platform) String() string {
867	return protoimpl.X.MessageStringOf(x)
868}
869
870func (*Platform) ProtoMessage() {}
871
872func (x *Platform) ProtoReflect() protoreflect.Message {
873	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[2]
874	if protoimpl.UnsafeEnabled && x != nil {
875		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
876		if ms.LoadMessageInfo() == nil {
877			ms.StoreMessageInfo(mi)
878		}
879		return ms
880	}
881	return mi.MessageOf(x)
882}
883
884// Deprecated: Use Platform.ProtoReflect.Descriptor instead.
885func (*Platform) Descriptor() ([]byte, []int) {
886	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{2}
887}
888
889func (x *Platform) GetProperties() []*Platform_Property {
890	if x != nil {
891		return x.Properties
892	}
893	return nil
894}
895
896// A `Directory` represents a directory node in a file tree, containing zero or
897// more children [FileNodes][build.bazel.remote.execution.v2.FileNode],
898// [DirectoryNodes][build.bazel.remote.execution.v2.DirectoryNode] and
899// [SymlinkNodes][build.bazel.remote.execution.v2.SymlinkNode].
900// Each `Node` contains its name in the directory, either the digest of its
901// content (either a file blob or a `Directory` proto) or a symlink target, as
902// well as possibly some metadata about the file or directory.
903//
904// In order to ensure that two equivalent directory trees hash to the same
905// value, the following restrictions MUST be obeyed when constructing a
906// a `Directory`:
907//
908//   - Every child in the directory must have a path of exactly one segment.
909//     Multiple levels of directory hierarchy may not be collapsed.
910//   - Each child in the directory must have a unique path segment (file name).
911//     Note that while the API itself is case-sensitive, the environment where
912//     the Action is executed may or may not be case-sensitive. That is, it is
913//     legal to call the API with a Directory that has both "Foo" and "foo" as
914//     children, but the Action may be rejected by the remote system upon
915//     execution.
916//   - The files, directories and symlinks in the directory must each be sorted
917//     in lexicographical order by path. The path strings must be sorted by code
918//     point, equivalently, by UTF-8 bytes.
919//   - The [NodeProperties][build.bazel.remote.execution.v2.NodeProperty] of files,
920//     directories, and symlinks must be sorted in lexicographical order by
921//     property name.
922//
923// A `Directory` that obeys the restrictions is said to be in canonical form.
924//
925// As an example, the following could be used for a file named `bar` and a
926// directory named `foo` with an executable file named `baz` (hashes shortened
927// for readability):
928//
929// ```json
930// // (Directory proto)
931//
932//	{
933//	  files: [
934//	    {
935//	      name: "bar",
936//	      digest: {
937//	        hash: "4a73bc9d03...",
938//	        size: 65534
939//	      },
940//	      node_properties: [
941//	        {
942//	          "name": "MTime",
943//	          "value": "2017-01-15T01:30:15.01Z"
944//	        }
945//	      ]
946//	    }
947//	  ],
948//	  directories: [
949//	    {
950//	      name: "foo",
951//	      digest: {
952//	        hash: "4cf2eda940...",
953//	        size: 43
954//	      }
955//	    }
956//	  ]
957//	}
958//
959// // (Directory proto with hash "4cf2eda940..." and size 43)
960//
961//	{
962//	  files: [
963//	    {
964//	      name: "baz",
965//	      digest: {
966//	        hash: "b2c941073e...",
967//	        size: 1294,
968//	      },
969//	      is_executable: true
970//	    }
971//	  ]
972//	}
973//
974// ```
975type Directory struct {
976	state         protoimpl.MessageState
977	sizeCache     protoimpl.SizeCache
978	unknownFields protoimpl.UnknownFields
979
980	// The files in the directory.
981	Files []*FileNode `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"`
982	// The subdirectories in the directory.
983	Directories []*DirectoryNode `protobuf:"bytes,2,rep,name=directories,proto3" json:"directories,omitempty"`
984	// The symlinks in the directory.
985	Symlinks       []*SymlinkNode  `protobuf:"bytes,3,rep,name=symlinks,proto3" json:"symlinks,omitempty"`
986	NodeProperties *NodeProperties `protobuf:"bytes,5,opt,name=node_properties,json=nodeProperties,proto3" json:"node_properties,omitempty"`
987}
988
989func (x *Directory) Reset() {
990	*x = Directory{}
991	if protoimpl.UnsafeEnabled {
992		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[3]
993		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
994		ms.StoreMessageInfo(mi)
995	}
996}
997
998func (x *Directory) String() string {
999	return protoimpl.X.MessageStringOf(x)
1000}
1001
1002func (*Directory) ProtoMessage() {}
1003
1004func (x *Directory) ProtoReflect() protoreflect.Message {
1005	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[3]
1006	if protoimpl.UnsafeEnabled && x != nil {
1007		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1008		if ms.LoadMessageInfo() == nil {
1009			ms.StoreMessageInfo(mi)
1010		}
1011		return ms
1012	}
1013	return mi.MessageOf(x)
1014}
1015
1016// Deprecated: Use Directory.ProtoReflect.Descriptor instead.
1017func (*Directory) Descriptor() ([]byte, []int) {
1018	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{3}
1019}
1020
1021func (x *Directory) GetFiles() []*FileNode {
1022	if x != nil {
1023		return x.Files
1024	}
1025	return nil
1026}
1027
1028func (x *Directory) GetDirectories() []*DirectoryNode {
1029	if x != nil {
1030		return x.Directories
1031	}
1032	return nil
1033}
1034
1035func (x *Directory) GetSymlinks() []*SymlinkNode {
1036	if x != nil {
1037		return x.Symlinks
1038	}
1039	return nil
1040}
1041
1042func (x *Directory) GetNodeProperties() *NodeProperties {
1043	if x != nil {
1044		return x.NodeProperties
1045	}
1046	return nil
1047}
1048
1049// A single property for [FileNodes][build.bazel.remote.execution.v2.FileNode],
1050// [DirectoryNodes][build.bazel.remote.execution.v2.DirectoryNode], and
1051// [SymlinkNodes][build.bazel.remote.execution.v2.SymlinkNode]. The server is
1052// responsible for specifying the property `name`s that it accepts. If
1053// permitted by the server, the same `name` may occur multiple times.
1054type NodeProperty struct {
1055	state         protoimpl.MessageState
1056	sizeCache     protoimpl.SizeCache
1057	unknownFields protoimpl.UnknownFields
1058
1059	// The property name.
1060	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1061	// The property value.
1062	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
1063}
1064
1065func (x *NodeProperty) Reset() {
1066	*x = NodeProperty{}
1067	if protoimpl.UnsafeEnabled {
1068		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[4]
1069		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1070		ms.StoreMessageInfo(mi)
1071	}
1072}
1073
1074func (x *NodeProperty) String() string {
1075	return protoimpl.X.MessageStringOf(x)
1076}
1077
1078func (*NodeProperty) ProtoMessage() {}
1079
1080func (x *NodeProperty) ProtoReflect() protoreflect.Message {
1081	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[4]
1082	if protoimpl.UnsafeEnabled && x != nil {
1083		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1084		if ms.LoadMessageInfo() == nil {
1085			ms.StoreMessageInfo(mi)
1086		}
1087		return ms
1088	}
1089	return mi.MessageOf(x)
1090}
1091
1092// Deprecated: Use NodeProperty.ProtoReflect.Descriptor instead.
1093func (*NodeProperty) Descriptor() ([]byte, []int) {
1094	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{4}
1095}
1096
1097func (x *NodeProperty) GetName() string {
1098	if x != nil {
1099		return x.Name
1100	}
1101	return ""
1102}
1103
1104func (x *NodeProperty) GetValue() string {
1105	if x != nil {
1106		return x.Value
1107	}
1108	return ""
1109}
1110
1111// Node properties for [FileNodes][build.bazel.remote.execution.v2.FileNode],
1112// [DirectoryNodes][build.bazel.remote.execution.v2.DirectoryNode], and
1113// [SymlinkNodes][build.bazel.remote.execution.v2.SymlinkNode]. The server is
1114// responsible for specifying the properties that it accepts.
1115type NodeProperties struct {
1116	state         protoimpl.MessageState
1117	sizeCache     protoimpl.SizeCache
1118	unknownFields protoimpl.UnknownFields
1119
1120	// A list of string-based
1121	// [NodeProperties][build.bazel.remote.execution.v2.NodeProperty].
1122	Properties []*NodeProperty `protobuf:"bytes,1,rep,name=properties,proto3" json:"properties,omitempty"`
1123	// The file's last modification timestamp.
1124	Mtime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=mtime,proto3" json:"mtime,omitempty"`
1125	// The UNIX file mode, e.g., 0755.
1126	UnixMode *wrapperspb.UInt32Value `protobuf:"bytes,3,opt,name=unix_mode,json=unixMode,proto3" json:"unix_mode,omitempty"`
1127}
1128
1129func (x *NodeProperties) Reset() {
1130	*x = NodeProperties{}
1131	if protoimpl.UnsafeEnabled {
1132		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[5]
1133		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1134		ms.StoreMessageInfo(mi)
1135	}
1136}
1137
1138func (x *NodeProperties) String() string {
1139	return protoimpl.X.MessageStringOf(x)
1140}
1141
1142func (*NodeProperties) ProtoMessage() {}
1143
1144func (x *NodeProperties) ProtoReflect() protoreflect.Message {
1145	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[5]
1146	if protoimpl.UnsafeEnabled && x != nil {
1147		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1148		if ms.LoadMessageInfo() == nil {
1149			ms.StoreMessageInfo(mi)
1150		}
1151		return ms
1152	}
1153	return mi.MessageOf(x)
1154}
1155
1156// Deprecated: Use NodeProperties.ProtoReflect.Descriptor instead.
1157func (*NodeProperties) Descriptor() ([]byte, []int) {
1158	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{5}
1159}
1160
1161func (x *NodeProperties) GetProperties() []*NodeProperty {
1162	if x != nil {
1163		return x.Properties
1164	}
1165	return nil
1166}
1167
1168func (x *NodeProperties) GetMtime() *timestamppb.Timestamp {
1169	if x != nil {
1170		return x.Mtime
1171	}
1172	return nil
1173}
1174
1175func (x *NodeProperties) GetUnixMode() *wrapperspb.UInt32Value {
1176	if x != nil {
1177		return x.UnixMode
1178	}
1179	return nil
1180}
1181
1182// A `FileNode` represents a single file and associated metadata.
1183type FileNode struct {
1184	state         protoimpl.MessageState
1185	sizeCache     protoimpl.SizeCache
1186	unknownFields protoimpl.UnknownFields
1187
1188	// The name of the file.
1189	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1190	// The digest of the file's content.
1191	Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
1192	// True if file is executable, false otherwise.
1193	IsExecutable   bool            `protobuf:"varint,4,opt,name=is_executable,json=isExecutable,proto3" json:"is_executable,omitempty"`
1194	NodeProperties *NodeProperties `protobuf:"bytes,6,opt,name=node_properties,json=nodeProperties,proto3" json:"node_properties,omitempty"`
1195}
1196
1197func (x *FileNode) Reset() {
1198	*x = FileNode{}
1199	if protoimpl.UnsafeEnabled {
1200		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[6]
1201		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1202		ms.StoreMessageInfo(mi)
1203	}
1204}
1205
1206func (x *FileNode) String() string {
1207	return protoimpl.X.MessageStringOf(x)
1208}
1209
1210func (*FileNode) ProtoMessage() {}
1211
1212func (x *FileNode) ProtoReflect() protoreflect.Message {
1213	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[6]
1214	if protoimpl.UnsafeEnabled && x != nil {
1215		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1216		if ms.LoadMessageInfo() == nil {
1217			ms.StoreMessageInfo(mi)
1218		}
1219		return ms
1220	}
1221	return mi.MessageOf(x)
1222}
1223
1224// Deprecated: Use FileNode.ProtoReflect.Descriptor instead.
1225func (*FileNode) Descriptor() ([]byte, []int) {
1226	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{6}
1227}
1228
1229func (x *FileNode) GetName() string {
1230	if x != nil {
1231		return x.Name
1232	}
1233	return ""
1234}
1235
1236func (x *FileNode) GetDigest() *Digest {
1237	if x != nil {
1238		return x.Digest
1239	}
1240	return nil
1241}
1242
1243func (x *FileNode) GetIsExecutable() bool {
1244	if x != nil {
1245		return x.IsExecutable
1246	}
1247	return false
1248}
1249
1250func (x *FileNode) GetNodeProperties() *NodeProperties {
1251	if x != nil {
1252		return x.NodeProperties
1253	}
1254	return nil
1255}
1256
1257// A `DirectoryNode` represents a child of a
1258// [Directory][build.bazel.remote.execution.v2.Directory] which is itself
1259// a `Directory` and its associated metadata.
1260type DirectoryNode struct {
1261	state         protoimpl.MessageState
1262	sizeCache     protoimpl.SizeCache
1263	unknownFields protoimpl.UnknownFields
1264
1265	// The name of the directory.
1266	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1267	// The digest of the
1268	// [Directory][build.bazel.remote.execution.v2.Directory] object
1269	// represented. See [Digest][build.bazel.remote.execution.v2.Digest]
1270	// for information about how to take the digest of a proto message.
1271	Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
1272}
1273
1274func (x *DirectoryNode) Reset() {
1275	*x = DirectoryNode{}
1276	if protoimpl.UnsafeEnabled {
1277		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[7]
1278		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1279		ms.StoreMessageInfo(mi)
1280	}
1281}
1282
1283func (x *DirectoryNode) String() string {
1284	return protoimpl.X.MessageStringOf(x)
1285}
1286
1287func (*DirectoryNode) ProtoMessage() {}
1288
1289func (x *DirectoryNode) ProtoReflect() protoreflect.Message {
1290	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[7]
1291	if protoimpl.UnsafeEnabled && x != nil {
1292		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1293		if ms.LoadMessageInfo() == nil {
1294			ms.StoreMessageInfo(mi)
1295		}
1296		return ms
1297	}
1298	return mi.MessageOf(x)
1299}
1300
1301// Deprecated: Use DirectoryNode.ProtoReflect.Descriptor instead.
1302func (*DirectoryNode) Descriptor() ([]byte, []int) {
1303	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{7}
1304}
1305
1306func (x *DirectoryNode) GetName() string {
1307	if x != nil {
1308		return x.Name
1309	}
1310	return ""
1311}
1312
1313func (x *DirectoryNode) GetDigest() *Digest {
1314	if x != nil {
1315		return x.Digest
1316	}
1317	return nil
1318}
1319
1320// A `SymlinkNode` represents a symbolic link.
1321type SymlinkNode struct {
1322	state         protoimpl.MessageState
1323	sizeCache     protoimpl.SizeCache
1324	unknownFields protoimpl.UnknownFields
1325
1326	// The name of the symlink.
1327	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1328	// The target path of the symlink. The path separator is a forward slash `/`.
1329	// The target path can be relative to the parent directory of the symlink or
1330	// it can be an absolute path starting with `/`. Support for absolute paths
1331	// can be checked using the [Capabilities][build.bazel.remote.execution.v2.Capabilities]
1332	// API. `..` components are allowed anywhere in the target path as logical
1333	// canonicalization may lead to different behavior in the presence of
1334	// directory symlinks (e.g. `foo/../bar` may not be the same as `bar`).
1335	// To reduce potential cache misses, canonicalization is still recommended
1336	// where this is possible without impacting correctness.
1337	Target         string          `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"`
1338	NodeProperties *NodeProperties `protobuf:"bytes,4,opt,name=node_properties,json=nodeProperties,proto3" json:"node_properties,omitempty"`
1339}
1340
1341func (x *SymlinkNode) Reset() {
1342	*x = SymlinkNode{}
1343	if protoimpl.UnsafeEnabled {
1344		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[8]
1345		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1346		ms.StoreMessageInfo(mi)
1347	}
1348}
1349
1350func (x *SymlinkNode) String() string {
1351	return protoimpl.X.MessageStringOf(x)
1352}
1353
1354func (*SymlinkNode) ProtoMessage() {}
1355
1356func (x *SymlinkNode) ProtoReflect() protoreflect.Message {
1357	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[8]
1358	if protoimpl.UnsafeEnabled && x != nil {
1359		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1360		if ms.LoadMessageInfo() == nil {
1361			ms.StoreMessageInfo(mi)
1362		}
1363		return ms
1364	}
1365	return mi.MessageOf(x)
1366}
1367
1368// Deprecated: Use SymlinkNode.ProtoReflect.Descriptor instead.
1369func (*SymlinkNode) Descriptor() ([]byte, []int) {
1370	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{8}
1371}
1372
1373func (x *SymlinkNode) GetName() string {
1374	if x != nil {
1375		return x.Name
1376	}
1377	return ""
1378}
1379
1380func (x *SymlinkNode) GetTarget() string {
1381	if x != nil {
1382		return x.Target
1383	}
1384	return ""
1385}
1386
1387func (x *SymlinkNode) GetNodeProperties() *NodeProperties {
1388	if x != nil {
1389		return x.NodeProperties
1390	}
1391	return nil
1392}
1393
1394// A content digest. A digest for a given blob consists of the size of the blob
1395// and its hash. The hash algorithm to use is defined by the server.
1396//
1397// The size is considered to be an integral part of the digest and cannot be
1398// separated. That is, even if the `hash` field is correctly specified but
1399// `size_bytes` is not, the server MUST reject the request.
1400//
1401// The reason for including the size in the digest is as follows: in a great
1402// many cases, the server needs to know the size of the blob it is about to work
1403// with prior to starting an operation with it, such as flattening Merkle tree
1404// structures or streaming it to a worker. Technically, the server could
1405// implement a separate metadata store, but this results in a significantly more
1406// complicated implementation as opposed to having the client specify the size
1407// up-front (or storing the size along with the digest in every message where
1408// digests are embedded). This does mean that the API leaks some implementation
1409// details of (what we consider to be) a reasonable server implementation, but
1410// we consider this to be a worthwhile tradeoff.
1411//
1412// When a `Digest` is used to refer to a proto message, it always refers to the
1413// message in binary encoded form. To ensure consistent hashing, clients and
1414// servers MUST ensure that they serialize messages according to the following
1415// rules, even if there are alternate valid encodings for the same message:
1416//
1417// * Fields are serialized in tag order.
1418// * There are no unknown fields.
1419// * There are no duplicate fields.
1420// * Fields are serialized according to the default semantics for their type.
1421//
1422// Most protocol buffer implementations will always follow these rules when
1423// serializing, but care should be taken to avoid shortcuts. For instance,
1424// concatenating two messages to merge them may produce duplicate fields.
1425type Digest struct {
1426	state         protoimpl.MessageState
1427	sizeCache     protoimpl.SizeCache
1428	unknownFields protoimpl.UnknownFields
1429
1430	// The hash. In the case of SHA-256, it will always be a lowercase hex string
1431	// exactly 64 characters long.
1432	Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
1433	// The size of the blob, in bytes.
1434	SizeBytes int64 `protobuf:"varint,2,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"`
1435}
1436
1437func (x *Digest) Reset() {
1438	*x = Digest{}
1439	if protoimpl.UnsafeEnabled {
1440		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[9]
1441		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1442		ms.StoreMessageInfo(mi)
1443	}
1444}
1445
1446func (x *Digest) String() string {
1447	return protoimpl.X.MessageStringOf(x)
1448}
1449
1450func (*Digest) ProtoMessage() {}
1451
1452func (x *Digest) ProtoReflect() protoreflect.Message {
1453	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[9]
1454	if protoimpl.UnsafeEnabled && x != nil {
1455		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1456		if ms.LoadMessageInfo() == nil {
1457			ms.StoreMessageInfo(mi)
1458		}
1459		return ms
1460	}
1461	return mi.MessageOf(x)
1462}
1463
1464// Deprecated: Use Digest.ProtoReflect.Descriptor instead.
1465func (*Digest) Descriptor() ([]byte, []int) {
1466	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{9}
1467}
1468
1469func (x *Digest) GetHash() string {
1470	if x != nil {
1471		return x.Hash
1472	}
1473	return ""
1474}
1475
1476func (x *Digest) GetSizeBytes() int64 {
1477	if x != nil {
1478		return x.SizeBytes
1479	}
1480	return 0
1481}
1482
1483// ExecutedActionMetadata contains details about a completed execution.
1484type ExecutedActionMetadata struct {
1485	state         protoimpl.MessageState
1486	sizeCache     protoimpl.SizeCache
1487	unknownFields protoimpl.UnknownFields
1488
1489	// The name of the worker which ran the execution.
1490	Worker string `protobuf:"bytes,1,opt,name=worker,proto3" json:"worker,omitempty"`
1491	// When was the action added to the queue.
1492	QueuedTimestamp *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=queued_timestamp,json=queuedTimestamp,proto3" json:"queued_timestamp,omitempty"`
1493	// When the worker received the action.
1494	WorkerStartTimestamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=worker_start_timestamp,json=workerStartTimestamp,proto3" json:"worker_start_timestamp,omitempty"`
1495	// When the worker completed the action, including all stages.
1496	WorkerCompletedTimestamp *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=worker_completed_timestamp,json=workerCompletedTimestamp,proto3" json:"worker_completed_timestamp,omitempty"`
1497	// When the worker started fetching action inputs.
1498	InputFetchStartTimestamp *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=input_fetch_start_timestamp,json=inputFetchStartTimestamp,proto3" json:"input_fetch_start_timestamp,omitempty"`
1499	// When the worker finished fetching action inputs.
1500	InputFetchCompletedTimestamp *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=input_fetch_completed_timestamp,json=inputFetchCompletedTimestamp,proto3" json:"input_fetch_completed_timestamp,omitempty"`
1501	// When the worker started executing the action command.
1502	ExecutionStartTimestamp *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=execution_start_timestamp,json=executionStartTimestamp,proto3" json:"execution_start_timestamp,omitempty"`
1503	// When the worker completed executing the action command.
1504	ExecutionCompletedTimestamp *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=execution_completed_timestamp,json=executionCompletedTimestamp,proto3" json:"execution_completed_timestamp,omitempty"`
1505	// New in v2.3: the amount of time the worker spent executing the action
1506	// command, potentially computed using a worker-specific virtual clock.
1507	//
1508	// The virtual execution duration is only intended to cover the "execution" of
1509	// the specified action and not time in queue nor any overheads before or
1510	// after execution such as marshalling inputs/outputs. The server SHOULD avoid
1511	// including time spent the client doesn't have control over, and MAY extend
1512	// or reduce the execution duration to account for delays or speedups that
1513	// occur during execution itself (e.g., lazily loading data from the Content
1514	// Addressable Storage, live migration of virtual machines, emulation
1515	// overhead).
1516	//
1517	// The method of timekeeping used to compute the virtual execution duration
1518	// MUST be consistent with what is used to enforce the
1519	// [Action][[build.bazel.remote.execution.v2.Action]'s `timeout`. There is no
1520	// relationship between the virtual execution duration and the values of
1521	// `execution_start_timestamp` and `execution_completed_timestamp`.
1522	VirtualExecutionDuration *durationpb.Duration `protobuf:"bytes,12,opt,name=virtual_execution_duration,json=virtualExecutionDuration,proto3" json:"virtual_execution_duration,omitempty"`
1523	// When the worker started uploading action outputs.
1524	OutputUploadStartTimestamp *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=output_upload_start_timestamp,json=outputUploadStartTimestamp,proto3" json:"output_upload_start_timestamp,omitempty"`
1525	// When the worker finished uploading action outputs.
1526	OutputUploadCompletedTimestamp *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=output_upload_completed_timestamp,json=outputUploadCompletedTimestamp,proto3" json:"output_upload_completed_timestamp,omitempty"`
1527	// Details that are specific to the kind of worker used. For example,
1528	// on POSIX-like systems this could contain a message with
1529	// getrusage(2) statistics.
1530	AuxiliaryMetadata []*anypb.Any `protobuf:"bytes,11,rep,name=auxiliary_metadata,json=auxiliaryMetadata,proto3" json:"auxiliary_metadata,omitempty"`
1531}
1532
1533func (x *ExecutedActionMetadata) Reset() {
1534	*x = ExecutedActionMetadata{}
1535	if protoimpl.UnsafeEnabled {
1536		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[10]
1537		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1538		ms.StoreMessageInfo(mi)
1539	}
1540}
1541
1542func (x *ExecutedActionMetadata) String() string {
1543	return protoimpl.X.MessageStringOf(x)
1544}
1545
1546func (*ExecutedActionMetadata) ProtoMessage() {}
1547
1548func (x *ExecutedActionMetadata) ProtoReflect() protoreflect.Message {
1549	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[10]
1550	if protoimpl.UnsafeEnabled && x != nil {
1551		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1552		if ms.LoadMessageInfo() == nil {
1553			ms.StoreMessageInfo(mi)
1554		}
1555		return ms
1556	}
1557	return mi.MessageOf(x)
1558}
1559
1560// Deprecated: Use ExecutedActionMetadata.ProtoReflect.Descriptor instead.
1561func (*ExecutedActionMetadata) Descriptor() ([]byte, []int) {
1562	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{10}
1563}
1564
1565func (x *ExecutedActionMetadata) GetWorker() string {
1566	if x != nil {
1567		return x.Worker
1568	}
1569	return ""
1570}
1571
1572func (x *ExecutedActionMetadata) GetQueuedTimestamp() *timestamppb.Timestamp {
1573	if x != nil {
1574		return x.QueuedTimestamp
1575	}
1576	return nil
1577}
1578
1579func (x *ExecutedActionMetadata) GetWorkerStartTimestamp() *timestamppb.Timestamp {
1580	if x != nil {
1581		return x.WorkerStartTimestamp
1582	}
1583	return nil
1584}
1585
1586func (x *ExecutedActionMetadata) GetWorkerCompletedTimestamp() *timestamppb.Timestamp {
1587	if x != nil {
1588		return x.WorkerCompletedTimestamp
1589	}
1590	return nil
1591}
1592
1593func (x *ExecutedActionMetadata) GetInputFetchStartTimestamp() *timestamppb.Timestamp {
1594	if x != nil {
1595		return x.InputFetchStartTimestamp
1596	}
1597	return nil
1598}
1599
1600func (x *ExecutedActionMetadata) GetInputFetchCompletedTimestamp() *timestamppb.Timestamp {
1601	if x != nil {
1602		return x.InputFetchCompletedTimestamp
1603	}
1604	return nil
1605}
1606
1607func (x *ExecutedActionMetadata) GetExecutionStartTimestamp() *timestamppb.Timestamp {
1608	if x != nil {
1609		return x.ExecutionStartTimestamp
1610	}
1611	return nil
1612}
1613
1614func (x *ExecutedActionMetadata) GetExecutionCompletedTimestamp() *timestamppb.Timestamp {
1615	if x != nil {
1616		return x.ExecutionCompletedTimestamp
1617	}
1618	return nil
1619}
1620
1621func (x *ExecutedActionMetadata) GetVirtualExecutionDuration() *durationpb.Duration {
1622	if x != nil {
1623		return x.VirtualExecutionDuration
1624	}
1625	return nil
1626}
1627
1628func (x *ExecutedActionMetadata) GetOutputUploadStartTimestamp() *timestamppb.Timestamp {
1629	if x != nil {
1630		return x.OutputUploadStartTimestamp
1631	}
1632	return nil
1633}
1634
1635func (x *ExecutedActionMetadata) GetOutputUploadCompletedTimestamp() *timestamppb.Timestamp {
1636	if x != nil {
1637		return x.OutputUploadCompletedTimestamp
1638	}
1639	return nil
1640}
1641
1642func (x *ExecutedActionMetadata) GetAuxiliaryMetadata() []*anypb.Any {
1643	if x != nil {
1644		return x.AuxiliaryMetadata
1645	}
1646	return nil
1647}
1648
1649// An ActionResult represents the result of an
1650// [Action][build.bazel.remote.execution.v2.Action] being run.
1651//
1652// It is advised that at least one field (for example
1653// `ActionResult.execution_metadata.Worker`) have a non-default value, to
1654// ensure that the serialized value is non-empty, which can then be used
1655// as a basic data sanity check.
1656type ActionResult struct {
1657	state         protoimpl.MessageState
1658	sizeCache     protoimpl.SizeCache
1659	unknownFields protoimpl.UnknownFields
1660
1661	// The output files of the action. For each output file requested in the
1662	// `output_files` or `output_paths` field of the Action, if the corresponding
1663	// file existed after the action completed, a single entry will be present
1664	// either in this field, or the `output_file_symlinks` field if the file was
1665	// a symbolic link to another file (`output_symlinks` field after v2.1).
1666	//
1667	// If an output listed in `output_files` was found, but was a directory rather
1668	// than a regular file, the server will return a FAILED_PRECONDITION.
1669	// If the action does not produce the requested output, then that output
1670	// will be omitted from the list. The server is free to arrange the output
1671	// list as desired; clients MUST NOT assume that the output list is sorted.
1672	OutputFiles []*OutputFile `protobuf:"bytes,2,rep,name=output_files,json=outputFiles,proto3" json:"output_files,omitempty"`
1673	// The output files of the action that are symbolic links to other files. Those
1674	// may be links to other output files, or input files, or even absolute paths
1675	// outside of the working directory, if the server supports
1676	// [SymlinkAbsolutePathStrategy.ALLOWED][build.bazel.remote.execution.v2.CacheCapabilities.SymlinkAbsolutePathStrategy].
1677	// For each output file requested in the `output_files` or `output_paths`
1678	// field of the Action, if the corresponding file existed after
1679	// the action completed, a single entry will be present either in this field,
1680	// or in the `output_files` field, if the file was not a symbolic link.
1681	//
1682	// If an output symbolic link of the same name as listed in `output_files` of
1683	// the Command was found, but its target type was not a regular file, the
1684	// server will return a FAILED_PRECONDITION.
1685	// If the action does not produce the requested output, then that output
1686	// will be omitted from the list. The server is free to arrange the output
1687	// list as desired; clients MUST NOT assume that the output list is sorted.
1688	//
1689	// DEPRECATED as of v2.1. Servers that wish to be compatible with v2.0 API
1690	// should still populate this field in addition to `output_symlinks`.
1691	//
1692	// Deprecated: Marked as deprecated in build/bazel/remote/execution/v2/remote_execution.proto.
1693	OutputFileSymlinks []*OutputSymlink `protobuf:"bytes,10,rep,name=output_file_symlinks,json=outputFileSymlinks,proto3" json:"output_file_symlinks,omitempty"`
1694	// New in v2.1: this field will only be populated if the command
1695	// `output_paths` field was used, and not the pre v2.1 `output_files` or
1696	// `output_directories` fields.
1697	// The output paths of the action that are symbolic links to other paths. Those
1698	// may be links to other outputs, or inputs, or even absolute paths
1699	// outside of the working directory, if the server supports
1700	// [SymlinkAbsolutePathStrategy.ALLOWED][build.bazel.remote.execution.v2.CacheCapabilities.SymlinkAbsolutePathStrategy].
1701	// A single entry for each output requested in `output_paths`
1702	// field of the Action, if the corresponding path existed after
1703	// the action completed and was a symbolic link.
1704	//
1705	// If the action does not produce a requested output, then that output
1706	// will be omitted from the list. The server is free to arrange the output
1707	// list as desired; clients MUST NOT assume that the output list is sorted.
1708	OutputSymlinks []*OutputSymlink `protobuf:"bytes,12,rep,name=output_symlinks,json=outputSymlinks,proto3" json:"output_symlinks,omitempty"`
1709	// The output directories of the action. For each output directory requested
1710	// in the `output_directories` or `output_paths` field of the Action, if the
1711	// corresponding directory existed after the action completed, a single entry
1712	// will be present in the output list, which will contain the digest of a
1713	// [Tree][build.bazel.remote.execution.v2.Tree] message containing the
1714	// directory tree, and the path equal exactly to the corresponding Action
1715	// output_directories member.
1716	//
1717	// As an example, suppose the Action had an output directory `a/b/dir` and the
1718	// execution produced the following contents in `a/b/dir`: a file named `bar`
1719	// and a directory named `foo` with an executable file named `baz`. Then,
1720	// output_directory will contain (hashes shortened for readability):
1721	//
1722	// ```json
1723	// // OutputDirectory proto:
1724	//
1725	//	{
1726	//	  path: "a/b/dir"
1727	//	  tree_digest: {
1728	//	    hash: "4a73bc9d03...",
1729	//	    size: 55
1730	//	  }
1731	//	}
1732	//
1733	// // Tree proto with hash "4a73bc9d03..." and size 55:
1734	//
1735	//	{
1736	//	  root: {
1737	//	    files: [
1738	//	      {
1739	//	        name: "bar",
1740	//	        digest: {
1741	//	          hash: "4a73bc9d03...",
1742	//	          size: 65534
1743	//	        }
1744	//	      }
1745	//	    ],
1746	//	    directories: [
1747	//	      {
1748	//	        name: "foo",
1749	//	        digest: {
1750	//	          hash: "4cf2eda940...",
1751	//	          size: 43
1752	//	        }
1753	//	      }
1754	//	    ]
1755	//	  }
1756	//	  children : {
1757	//	    // (Directory proto with hash "4cf2eda940..." and size 43)
1758	//	    files: [
1759	//	      {
1760	//	        name: "baz",
1761	//	        digest: {
1762	//	          hash: "b2c941073e...",
1763	//	          size: 1294,
1764	//	        },
1765	//	        is_executable: true
1766	//	      }
1767	//	    ]
1768	//	  }
1769	//	}
1770	//
1771	// ```
1772	// If an output of the same name as listed in `output_files` of
1773	// the Command was found in `output_directories`, but was not a directory, the
1774	// server will return a FAILED_PRECONDITION.
1775	OutputDirectories []*OutputDirectory `protobuf:"bytes,3,rep,name=output_directories,json=outputDirectories,proto3" json:"output_directories,omitempty"`
1776	// The output directories of the action that are symbolic links to other
1777	// directories. Those may be links to other output directories, or input
1778	// directories, or even absolute paths outside of the working directory,
1779	// if the server supports
1780	// [SymlinkAbsolutePathStrategy.ALLOWED][build.bazel.remote.execution.v2.CacheCapabilities.SymlinkAbsolutePathStrategy].
1781	// For each output directory requested in the `output_directories` field of
1782	// the Action, if the directory existed after the action completed, a
1783	// single entry will be present either in this field, or in the
1784	// `output_directories` field, if the directory was not a symbolic link.
1785	//
1786	// If an output of the same name was found, but was a symbolic link to a file
1787	// instead of a directory, the server will return a FAILED_PRECONDITION.
1788	// If the action does not produce the requested output, then that output
1789	// will be omitted from the list. The server is free to arrange the output
1790	// list as desired; clients MUST NOT assume that the output list is sorted.
1791	//
1792	// DEPRECATED as of v2.1. Servers that wish to be compatible with v2.0 API
1793	// should still populate this field in addition to `output_symlinks`.
1794	//
1795	// Deprecated: Marked as deprecated in build/bazel/remote/execution/v2/remote_execution.proto.
1796	OutputDirectorySymlinks []*OutputSymlink `protobuf:"bytes,11,rep,name=output_directory_symlinks,json=outputDirectorySymlinks,proto3" json:"output_directory_symlinks,omitempty"`
1797	// The exit code of the command.
1798	ExitCode int32 `protobuf:"varint,4,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
1799	// The standard output buffer of the action. The server SHOULD NOT inline
1800	// stdout unless requested by the client in the
1801	// [GetActionResultRequest][build.bazel.remote.execution.v2.GetActionResultRequest]
1802	// message. The server MAY omit inlining, even if requested, and MUST do so if inlining
1803	// would cause the response to exceed message size limits.
1804	// Clients SHOULD NOT populate this field when uploading to the cache.
1805	StdoutRaw []byte `protobuf:"bytes,5,opt,name=stdout_raw,json=stdoutRaw,proto3" json:"stdout_raw,omitempty"`
1806	// The digest for a blob containing the standard output of the action, which
1807	// can be retrieved from the
1808	// [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage].
1809	StdoutDigest *Digest `protobuf:"bytes,6,opt,name=stdout_digest,json=stdoutDigest,proto3" json:"stdout_digest,omitempty"`
1810	// The standard error buffer of the action. The server SHOULD NOT inline
1811	// stderr unless requested by the client in the
1812	// [GetActionResultRequest][build.bazel.remote.execution.v2.GetActionResultRequest]
1813	// message. The server MAY omit inlining, even if requested, and MUST do so if inlining
1814	// would cause the response to exceed message size limits.
1815	// Clients SHOULD NOT populate this field when uploading to the cache.
1816	StderrRaw []byte `protobuf:"bytes,7,opt,name=stderr_raw,json=stderrRaw,proto3" json:"stderr_raw,omitempty"`
1817	// The digest for a blob containing the standard error of the action, which
1818	// can be retrieved from the
1819	// [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage].
1820	StderrDigest *Digest `protobuf:"bytes,8,opt,name=stderr_digest,json=stderrDigest,proto3" json:"stderr_digest,omitempty"`
1821	// The details of the execution that originally produced this result.
1822	ExecutionMetadata *ExecutedActionMetadata `protobuf:"bytes,9,opt,name=execution_metadata,json=executionMetadata,proto3" json:"execution_metadata,omitempty"`
1823}
1824
1825func (x *ActionResult) Reset() {
1826	*x = ActionResult{}
1827	if protoimpl.UnsafeEnabled {
1828		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[11]
1829		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1830		ms.StoreMessageInfo(mi)
1831	}
1832}
1833
1834func (x *ActionResult) String() string {
1835	return protoimpl.X.MessageStringOf(x)
1836}
1837
1838func (*ActionResult) ProtoMessage() {}
1839
1840func (x *ActionResult) ProtoReflect() protoreflect.Message {
1841	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[11]
1842	if protoimpl.UnsafeEnabled && x != nil {
1843		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1844		if ms.LoadMessageInfo() == nil {
1845			ms.StoreMessageInfo(mi)
1846		}
1847		return ms
1848	}
1849	return mi.MessageOf(x)
1850}
1851
1852// Deprecated: Use ActionResult.ProtoReflect.Descriptor instead.
1853func (*ActionResult) Descriptor() ([]byte, []int) {
1854	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{11}
1855}
1856
1857func (x *ActionResult) GetOutputFiles() []*OutputFile {
1858	if x != nil {
1859		return x.OutputFiles
1860	}
1861	return nil
1862}
1863
1864// Deprecated: Marked as deprecated in build/bazel/remote/execution/v2/remote_execution.proto.
1865func (x *ActionResult) GetOutputFileSymlinks() []*OutputSymlink {
1866	if x != nil {
1867		return x.OutputFileSymlinks
1868	}
1869	return nil
1870}
1871
1872func (x *ActionResult) GetOutputSymlinks() []*OutputSymlink {
1873	if x != nil {
1874		return x.OutputSymlinks
1875	}
1876	return nil
1877}
1878
1879func (x *ActionResult) GetOutputDirectories() []*OutputDirectory {
1880	if x != nil {
1881		return x.OutputDirectories
1882	}
1883	return nil
1884}
1885
1886// Deprecated: Marked as deprecated in build/bazel/remote/execution/v2/remote_execution.proto.
1887func (x *ActionResult) GetOutputDirectorySymlinks() []*OutputSymlink {
1888	if x != nil {
1889		return x.OutputDirectorySymlinks
1890	}
1891	return nil
1892}
1893
1894func (x *ActionResult) GetExitCode() int32 {
1895	if x != nil {
1896		return x.ExitCode
1897	}
1898	return 0
1899}
1900
1901func (x *ActionResult) GetStdoutRaw() []byte {
1902	if x != nil {
1903		return x.StdoutRaw
1904	}
1905	return nil
1906}
1907
1908func (x *ActionResult) GetStdoutDigest() *Digest {
1909	if x != nil {
1910		return x.StdoutDigest
1911	}
1912	return nil
1913}
1914
1915func (x *ActionResult) GetStderrRaw() []byte {
1916	if x != nil {
1917		return x.StderrRaw
1918	}
1919	return nil
1920}
1921
1922func (x *ActionResult) GetStderrDigest() *Digest {
1923	if x != nil {
1924		return x.StderrDigest
1925	}
1926	return nil
1927}
1928
1929func (x *ActionResult) GetExecutionMetadata() *ExecutedActionMetadata {
1930	if x != nil {
1931		return x.ExecutionMetadata
1932	}
1933	return nil
1934}
1935
1936// An `OutputFile` is similar to a
1937// [FileNode][build.bazel.remote.execution.v2.FileNode], but it is used as an
1938// output in an `ActionResult`. It allows a full file path rather than
1939// only a name.
1940type OutputFile struct {
1941	state         protoimpl.MessageState
1942	sizeCache     protoimpl.SizeCache
1943	unknownFields protoimpl.UnknownFields
1944
1945	// The full path of the file relative to the working directory, including the
1946	// filename. The path separator is a forward slash `/`. Since this is a
1947	// relative path, it MUST NOT begin with a leading forward slash.
1948	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
1949	// The digest of the file's content.
1950	Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
1951	// True if file is executable, false otherwise.
1952	IsExecutable bool `protobuf:"varint,4,opt,name=is_executable,json=isExecutable,proto3" json:"is_executable,omitempty"`
1953	// The contents of the file if inlining was requested. The server SHOULD NOT inline
1954	// file contents unless requested by the client in the
1955	// [GetActionResultRequest][build.bazel.remote.execution.v2.GetActionResultRequest]
1956	// message. The server MAY omit inlining, even if requested, and MUST do so if inlining
1957	// would cause the response to exceed message size limits.
1958	// Clients SHOULD NOT populate this field when uploading to the cache.
1959	Contents       []byte          `protobuf:"bytes,5,opt,name=contents,proto3" json:"contents,omitempty"`
1960	NodeProperties *NodeProperties `protobuf:"bytes,7,opt,name=node_properties,json=nodeProperties,proto3" json:"node_properties,omitempty"`
1961}
1962
1963func (x *OutputFile) Reset() {
1964	*x = OutputFile{}
1965	if protoimpl.UnsafeEnabled {
1966		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[12]
1967		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1968		ms.StoreMessageInfo(mi)
1969	}
1970}
1971
1972func (x *OutputFile) String() string {
1973	return protoimpl.X.MessageStringOf(x)
1974}
1975
1976func (*OutputFile) ProtoMessage() {}
1977
1978func (x *OutputFile) ProtoReflect() protoreflect.Message {
1979	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[12]
1980	if protoimpl.UnsafeEnabled && x != nil {
1981		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1982		if ms.LoadMessageInfo() == nil {
1983			ms.StoreMessageInfo(mi)
1984		}
1985		return ms
1986	}
1987	return mi.MessageOf(x)
1988}
1989
1990// Deprecated: Use OutputFile.ProtoReflect.Descriptor instead.
1991func (*OutputFile) Descriptor() ([]byte, []int) {
1992	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{12}
1993}
1994
1995func (x *OutputFile) GetPath() string {
1996	if x != nil {
1997		return x.Path
1998	}
1999	return ""
2000}
2001
2002func (x *OutputFile) GetDigest() *Digest {
2003	if x != nil {
2004		return x.Digest
2005	}
2006	return nil
2007}
2008
2009func (x *OutputFile) GetIsExecutable() bool {
2010	if x != nil {
2011		return x.IsExecutable
2012	}
2013	return false
2014}
2015
2016func (x *OutputFile) GetContents() []byte {
2017	if x != nil {
2018		return x.Contents
2019	}
2020	return nil
2021}
2022
2023func (x *OutputFile) GetNodeProperties() *NodeProperties {
2024	if x != nil {
2025		return x.NodeProperties
2026	}
2027	return nil
2028}
2029
2030// A `Tree` contains all the
2031// [Directory][build.bazel.remote.execution.v2.Directory] protos in a
2032// single directory Merkle tree, compressed into one message.
2033type Tree struct {
2034	state         protoimpl.MessageState
2035	sizeCache     protoimpl.SizeCache
2036	unknownFields protoimpl.UnknownFields
2037
2038	// The root directory in the tree.
2039	Root *Directory `protobuf:"bytes,1,opt,name=root,proto3" json:"root,omitempty"`
2040	// All the child directories: the directories referred to by the root and,
2041	// recursively, all its children. In order to reconstruct the directory tree,
2042	// the client must take the digests of each of the child directories and then
2043	// build up a tree starting from the `root`.
2044	// Servers SHOULD ensure that these are ordered consistently such that two
2045	// actions producing equivalent output directories on the same server
2046	// implementation also produce Tree messages with matching digests.
2047	Children []*Directory `protobuf:"bytes,2,rep,name=children,proto3" json:"children,omitempty"`
2048}
2049
2050func (x *Tree) Reset() {
2051	*x = Tree{}
2052	if protoimpl.UnsafeEnabled {
2053		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[13]
2054		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2055		ms.StoreMessageInfo(mi)
2056	}
2057}
2058
2059func (x *Tree) String() string {
2060	return protoimpl.X.MessageStringOf(x)
2061}
2062
2063func (*Tree) ProtoMessage() {}
2064
2065func (x *Tree) ProtoReflect() protoreflect.Message {
2066	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[13]
2067	if protoimpl.UnsafeEnabled && x != nil {
2068		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2069		if ms.LoadMessageInfo() == nil {
2070			ms.StoreMessageInfo(mi)
2071		}
2072		return ms
2073	}
2074	return mi.MessageOf(x)
2075}
2076
2077// Deprecated: Use Tree.ProtoReflect.Descriptor instead.
2078func (*Tree) Descriptor() ([]byte, []int) {
2079	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{13}
2080}
2081
2082func (x *Tree) GetRoot() *Directory {
2083	if x != nil {
2084		return x.Root
2085	}
2086	return nil
2087}
2088
2089func (x *Tree) GetChildren() []*Directory {
2090	if x != nil {
2091		return x.Children
2092	}
2093	return nil
2094}
2095
2096// An `OutputDirectory` is the output in an `ActionResult` corresponding to a
2097// directory's full contents rather than a single file.
2098type OutputDirectory struct {
2099	state         protoimpl.MessageState
2100	sizeCache     protoimpl.SizeCache
2101	unknownFields protoimpl.UnknownFields
2102
2103	// The full path of the directory relative to the working directory. The path
2104	// separator is a forward slash `/`. Since this is a relative path, it MUST
2105	// NOT begin with a leading forward slash. The empty string value is allowed,
2106	// and it denotes the entire working directory.
2107	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
2108	// The digest of the encoded
2109	// [Tree][build.bazel.remote.execution.v2.Tree] proto containing the
2110	// directory's contents.
2111	TreeDigest *Digest `protobuf:"bytes,3,opt,name=tree_digest,json=treeDigest,proto3" json:"tree_digest,omitempty"`
2112	// If set, consumers MAY make the following assumptions about the
2113	// directories contained in the the Tree, so that it may be
2114	// instantiated on a local file system by scanning through it
2115	// sequentially:
2116	//
2117	//   - All directories with the same binary representation are stored
2118	//     exactly once.
2119	//   - All directories, apart from the root directory, are referenced by
2120	//     at least one parent directory.
2121	//   - Directories are stored in topological order, with parents being
2122	//     stored before the child. The root directory is thus the first to
2123	//     be stored.
2124	//
2125	// Additionally, the Tree MUST be encoded as a stream of records,
2126	// where each record has the following format:
2127	//
2128	// - A tag byte, having one of the following two values:
2129	//   - (1 << 3) | 2 == 0x0a: First record (the root directory).
2130	//   - (2 << 3) | 2 == 0x12: Any subsequent records (child directories).
2131	//   - The size of the directory, encoded as a base 128 varint.
2132	//   - The contents of the directory, encoded as a binary serialized
2133	//     Protobuf message.
2134	//
2135	// This encoding is a subset of the Protobuf wire format of the Tree
2136	// message. As it is only permitted to store data associated with
2137	// field numbers 1 and 2, the tag MUST be encoded as a single byte.
2138	// More details on the Protobuf wire format can be found here:
2139	// https://developers.google.com/protocol-buffers/docs/encoding
2140	//
2141	// It is recommended that implementations using this feature construct
2142	// Tree objects manually using the specification given above, as
2143	// opposed to using a Protobuf library to marshal a full Tree message.
2144	// As individual Directory messages already need to be marshaled to
2145	// compute their digests, constructing the Tree object manually avoids
2146	// redundant marshaling.
2147	IsTopologicallySorted bool `protobuf:"varint,4,opt,name=is_topologically_sorted,json=isTopologicallySorted,proto3" json:"is_topologically_sorted,omitempty"`
2148	// The digest of the encoded
2149	// [Directory][build.bazel.remote.execution.v2.Directory] proto
2150	// containing the contents the directory's root.
2151	//
2152	// If both `tree_digest` and `root_directory_digest` are set, this
2153	// field MUST match the digest of the root directory contained in the
2154	// Tree message.
2155	RootDirectoryDigest *Digest `protobuf:"bytes,5,opt,name=root_directory_digest,json=rootDirectoryDigest,proto3" json:"root_directory_digest,omitempty"`
2156}
2157
2158func (x *OutputDirectory) Reset() {
2159	*x = OutputDirectory{}
2160	if protoimpl.UnsafeEnabled {
2161		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[14]
2162		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2163		ms.StoreMessageInfo(mi)
2164	}
2165}
2166
2167func (x *OutputDirectory) String() string {
2168	return protoimpl.X.MessageStringOf(x)
2169}
2170
2171func (*OutputDirectory) ProtoMessage() {}
2172
2173func (x *OutputDirectory) ProtoReflect() protoreflect.Message {
2174	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[14]
2175	if protoimpl.UnsafeEnabled && x != nil {
2176		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2177		if ms.LoadMessageInfo() == nil {
2178			ms.StoreMessageInfo(mi)
2179		}
2180		return ms
2181	}
2182	return mi.MessageOf(x)
2183}
2184
2185// Deprecated: Use OutputDirectory.ProtoReflect.Descriptor instead.
2186func (*OutputDirectory) Descriptor() ([]byte, []int) {
2187	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{14}
2188}
2189
2190func (x *OutputDirectory) GetPath() string {
2191	if x != nil {
2192		return x.Path
2193	}
2194	return ""
2195}
2196
2197func (x *OutputDirectory) GetTreeDigest() *Digest {
2198	if x != nil {
2199		return x.TreeDigest
2200	}
2201	return nil
2202}
2203
2204func (x *OutputDirectory) GetIsTopologicallySorted() bool {
2205	if x != nil {
2206		return x.IsTopologicallySorted
2207	}
2208	return false
2209}
2210
2211func (x *OutputDirectory) GetRootDirectoryDigest() *Digest {
2212	if x != nil {
2213		return x.RootDirectoryDigest
2214	}
2215	return nil
2216}
2217
2218// An `OutputSymlink` is similar to a
2219// [Symlink][build.bazel.remote.execution.v2.SymlinkNode], but it is used as an
2220// output in an `ActionResult`.
2221//
2222// `OutputSymlink` is binary-compatible with `SymlinkNode`.
2223type OutputSymlink struct {
2224	state         protoimpl.MessageState
2225	sizeCache     protoimpl.SizeCache
2226	unknownFields protoimpl.UnknownFields
2227
2228	// The full path of the symlink relative to the working directory, including the
2229	// filename. The path separator is a forward slash `/`. Since this is a
2230	// relative path, it MUST NOT begin with a leading forward slash.
2231	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
2232	// The target path of the symlink. The path separator is a forward slash `/`.
2233	// The target path can be relative to the parent directory of the symlink or
2234	// it can be an absolute path starting with `/`. Support for absolute paths
2235	// can be checked using the [Capabilities][build.bazel.remote.execution.v2.Capabilities]
2236	// API. `..` components are allowed anywhere in the target path.
2237	Target         string          `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"`
2238	NodeProperties *NodeProperties `protobuf:"bytes,4,opt,name=node_properties,json=nodeProperties,proto3" json:"node_properties,omitempty"`
2239}
2240
2241func (x *OutputSymlink) Reset() {
2242	*x = OutputSymlink{}
2243	if protoimpl.UnsafeEnabled {
2244		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[15]
2245		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2246		ms.StoreMessageInfo(mi)
2247	}
2248}
2249
2250func (x *OutputSymlink) String() string {
2251	return protoimpl.X.MessageStringOf(x)
2252}
2253
2254func (*OutputSymlink) ProtoMessage() {}
2255
2256func (x *OutputSymlink) ProtoReflect() protoreflect.Message {
2257	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[15]
2258	if protoimpl.UnsafeEnabled && x != nil {
2259		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2260		if ms.LoadMessageInfo() == nil {
2261			ms.StoreMessageInfo(mi)
2262		}
2263		return ms
2264	}
2265	return mi.MessageOf(x)
2266}
2267
2268// Deprecated: Use OutputSymlink.ProtoReflect.Descriptor instead.
2269func (*OutputSymlink) Descriptor() ([]byte, []int) {
2270	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{15}
2271}
2272
2273func (x *OutputSymlink) GetPath() string {
2274	if x != nil {
2275		return x.Path
2276	}
2277	return ""
2278}
2279
2280func (x *OutputSymlink) GetTarget() string {
2281	if x != nil {
2282		return x.Target
2283	}
2284	return ""
2285}
2286
2287func (x *OutputSymlink) GetNodeProperties() *NodeProperties {
2288	if x != nil {
2289		return x.NodeProperties
2290	}
2291	return nil
2292}
2293
2294// An `ExecutionPolicy` can be used to control the scheduling of the action.
2295type ExecutionPolicy struct {
2296	state         protoimpl.MessageState
2297	sizeCache     protoimpl.SizeCache
2298	unknownFields protoimpl.UnknownFields
2299
2300	// The priority (relative importance) of this action. Generally, a lower value
2301	// means that the action should be run sooner than actions having a greater
2302	// priority value, but the interpretation of a given value is server-
2303	// dependent. A priority of 0 means the *default* priority. Priorities may be
2304	// positive or negative, and such actions should run later or sooner than
2305	// actions having the default priority, respectively. The particular semantics
2306	// of this field is up to the server. In particular, every server will have
2307	// their own supported range of priorities, and will decide how these map into
2308	// scheduling policy.
2309	Priority int32 `protobuf:"varint,1,opt,name=priority,proto3" json:"priority,omitempty"`
2310}
2311
2312func (x *ExecutionPolicy) Reset() {
2313	*x = ExecutionPolicy{}
2314	if protoimpl.UnsafeEnabled {
2315		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[16]
2316		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2317		ms.StoreMessageInfo(mi)
2318	}
2319}
2320
2321func (x *ExecutionPolicy) String() string {
2322	return protoimpl.X.MessageStringOf(x)
2323}
2324
2325func (*ExecutionPolicy) ProtoMessage() {}
2326
2327func (x *ExecutionPolicy) ProtoReflect() protoreflect.Message {
2328	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[16]
2329	if protoimpl.UnsafeEnabled && x != nil {
2330		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2331		if ms.LoadMessageInfo() == nil {
2332			ms.StoreMessageInfo(mi)
2333		}
2334		return ms
2335	}
2336	return mi.MessageOf(x)
2337}
2338
2339// Deprecated: Use ExecutionPolicy.ProtoReflect.Descriptor instead.
2340func (*ExecutionPolicy) Descriptor() ([]byte, []int) {
2341	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{16}
2342}
2343
2344func (x *ExecutionPolicy) GetPriority() int32 {
2345	if x != nil {
2346		return x.Priority
2347	}
2348	return 0
2349}
2350
2351// A `ResultsCachePolicy` is used for fine-grained control over how action
2352// outputs are stored in the CAS and Action Cache.
2353type ResultsCachePolicy struct {
2354	state         protoimpl.MessageState
2355	sizeCache     protoimpl.SizeCache
2356	unknownFields protoimpl.UnknownFields
2357
2358	// The priority (relative importance) of this content in the overall cache.
2359	// Generally, a lower value means a longer retention time or other advantage,
2360	// but the interpretation of a given value is server-dependent. A priority of
2361	// 0 means a *default* value, decided by the server.
2362	//
2363	// The particular semantics of this field is up to the server. In particular,
2364	// every server will have their own supported range of priorities, and will
2365	// decide how these map into retention/eviction policy.
2366	Priority int32 `protobuf:"varint,1,opt,name=priority,proto3" json:"priority,omitempty"`
2367}
2368
2369func (x *ResultsCachePolicy) Reset() {
2370	*x = ResultsCachePolicy{}
2371	if protoimpl.UnsafeEnabled {
2372		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[17]
2373		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2374		ms.StoreMessageInfo(mi)
2375	}
2376}
2377
2378func (x *ResultsCachePolicy) String() string {
2379	return protoimpl.X.MessageStringOf(x)
2380}
2381
2382func (*ResultsCachePolicy) ProtoMessage() {}
2383
2384func (x *ResultsCachePolicy) ProtoReflect() protoreflect.Message {
2385	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[17]
2386	if protoimpl.UnsafeEnabled && x != nil {
2387		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2388		if ms.LoadMessageInfo() == nil {
2389			ms.StoreMessageInfo(mi)
2390		}
2391		return ms
2392	}
2393	return mi.MessageOf(x)
2394}
2395
2396// Deprecated: Use ResultsCachePolicy.ProtoReflect.Descriptor instead.
2397func (*ResultsCachePolicy) Descriptor() ([]byte, []int) {
2398	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{17}
2399}
2400
2401func (x *ResultsCachePolicy) GetPriority() int32 {
2402	if x != nil {
2403		return x.Priority
2404	}
2405	return 0
2406}
2407
2408// A request message for
2409// [Execution.Execute][build.bazel.remote.execution.v2.Execution.Execute].
2410type ExecuteRequest struct {
2411	state         protoimpl.MessageState
2412	sizeCache     protoimpl.SizeCache
2413	unknownFields protoimpl.UnknownFields
2414
2415	// The instance of the execution system to operate against. A server may
2416	// support multiple instances of the execution system (with their own workers,
2417	// storage, caches, etc.). The server MAY require use of this field to select
2418	// between them in an implementation-defined fashion, otherwise it can be
2419	// omitted.
2420	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
2421	// If true, the action will be executed even if its result is already
2422	// present in the [ActionCache][build.bazel.remote.execution.v2.ActionCache].
2423	// The execution is still allowed to be merged with other in-flight executions
2424	// of the same action, however - semantically, the service MUST only guarantee
2425	// that the results of an execution with this field set were not visible
2426	// before the corresponding execution request was sent.
2427	// Note that actions from execution requests setting this field set are still
2428	// eligible to be entered into the action cache upon completion, and services
2429	// SHOULD overwrite any existing entries that may exist. This allows
2430	// skip_cache_lookup requests to be used as a mechanism for replacing action
2431	// cache entries that reference outputs no longer available or that are
2432	// poisoned in any way.
2433	// If false, the result may be served from the action cache.
2434	SkipCacheLookup bool `protobuf:"varint,3,opt,name=skip_cache_lookup,json=skipCacheLookup,proto3" json:"skip_cache_lookup,omitempty"`
2435	// The digest of the [Action][build.bazel.remote.execution.v2.Action] to
2436	// execute.
2437	ActionDigest *Digest `protobuf:"bytes,6,opt,name=action_digest,json=actionDigest,proto3" json:"action_digest,omitempty"`
2438	// An optional policy for execution of the action.
2439	// The server will have a default policy if this is not provided.
2440	ExecutionPolicy *ExecutionPolicy `protobuf:"bytes,7,opt,name=execution_policy,json=executionPolicy,proto3" json:"execution_policy,omitempty"`
2441	// An optional policy for the results of this execution in the remote cache.
2442	// The server will have a default policy if this is not provided.
2443	// This may be applied to both the ActionResult and the associated blobs.
2444	ResultsCachePolicy *ResultsCachePolicy `protobuf:"bytes,8,opt,name=results_cache_policy,json=resultsCachePolicy,proto3" json:"results_cache_policy,omitempty"`
2445	// The digest function that was used to compute the action digest.
2446	//
2447	// If the digest function used is one of MD5, MURMUR3, SHA1, SHA256,
2448	// SHA384, SHA512, or VSO, the client MAY leave this field unset. In
2449	// that case the server SHOULD infer the digest function using the
2450	// length of the action digest hash and the digest functions announced
2451	// in the server's capabilities.
2452	DigestFunction DigestFunction_Value `protobuf:"varint,9,opt,name=digest_function,json=digestFunction,proto3,enum=build.bazel.remote.execution.v2.DigestFunction_Value" json:"digest_function,omitempty"`
2453}
2454
2455func (x *ExecuteRequest) Reset() {
2456	*x = ExecuteRequest{}
2457	if protoimpl.UnsafeEnabled {
2458		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[18]
2459		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2460		ms.StoreMessageInfo(mi)
2461	}
2462}
2463
2464func (x *ExecuteRequest) String() string {
2465	return protoimpl.X.MessageStringOf(x)
2466}
2467
2468func (*ExecuteRequest) ProtoMessage() {}
2469
2470func (x *ExecuteRequest) ProtoReflect() protoreflect.Message {
2471	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[18]
2472	if protoimpl.UnsafeEnabled && x != nil {
2473		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2474		if ms.LoadMessageInfo() == nil {
2475			ms.StoreMessageInfo(mi)
2476		}
2477		return ms
2478	}
2479	return mi.MessageOf(x)
2480}
2481
2482// Deprecated: Use ExecuteRequest.ProtoReflect.Descriptor instead.
2483func (*ExecuteRequest) Descriptor() ([]byte, []int) {
2484	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{18}
2485}
2486
2487func (x *ExecuteRequest) GetInstanceName() string {
2488	if x != nil {
2489		return x.InstanceName
2490	}
2491	return ""
2492}
2493
2494func (x *ExecuteRequest) GetSkipCacheLookup() bool {
2495	if x != nil {
2496		return x.SkipCacheLookup
2497	}
2498	return false
2499}
2500
2501func (x *ExecuteRequest) GetActionDigest() *Digest {
2502	if x != nil {
2503		return x.ActionDigest
2504	}
2505	return nil
2506}
2507
2508func (x *ExecuteRequest) GetExecutionPolicy() *ExecutionPolicy {
2509	if x != nil {
2510		return x.ExecutionPolicy
2511	}
2512	return nil
2513}
2514
2515func (x *ExecuteRequest) GetResultsCachePolicy() *ResultsCachePolicy {
2516	if x != nil {
2517		return x.ResultsCachePolicy
2518	}
2519	return nil
2520}
2521
2522func (x *ExecuteRequest) GetDigestFunction() DigestFunction_Value {
2523	if x != nil {
2524		return x.DigestFunction
2525	}
2526	return DigestFunction_UNKNOWN
2527}
2528
2529// A `LogFile` is a log stored in the CAS.
2530type LogFile struct {
2531	state         protoimpl.MessageState
2532	sizeCache     protoimpl.SizeCache
2533	unknownFields protoimpl.UnknownFields
2534
2535	// The digest of the log contents.
2536	Digest *Digest `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"`
2537	// This is a hint as to the purpose of the log, and is set to true if the log
2538	// is human-readable text that can be usefully displayed to a user, and false
2539	// otherwise. For instance, if a command-line client wishes to print the
2540	// server logs to the terminal for a failed action, this allows it to avoid
2541	// displaying a binary file.
2542	HumanReadable bool `protobuf:"varint,2,opt,name=human_readable,json=humanReadable,proto3" json:"human_readable,omitempty"`
2543}
2544
2545func (x *LogFile) Reset() {
2546	*x = LogFile{}
2547	if protoimpl.UnsafeEnabled {
2548		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[19]
2549		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2550		ms.StoreMessageInfo(mi)
2551	}
2552}
2553
2554func (x *LogFile) String() string {
2555	return protoimpl.X.MessageStringOf(x)
2556}
2557
2558func (*LogFile) ProtoMessage() {}
2559
2560func (x *LogFile) ProtoReflect() protoreflect.Message {
2561	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[19]
2562	if protoimpl.UnsafeEnabled && x != nil {
2563		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2564		if ms.LoadMessageInfo() == nil {
2565			ms.StoreMessageInfo(mi)
2566		}
2567		return ms
2568	}
2569	return mi.MessageOf(x)
2570}
2571
2572// Deprecated: Use LogFile.ProtoReflect.Descriptor instead.
2573func (*LogFile) Descriptor() ([]byte, []int) {
2574	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{19}
2575}
2576
2577func (x *LogFile) GetDigest() *Digest {
2578	if x != nil {
2579		return x.Digest
2580	}
2581	return nil
2582}
2583
2584func (x *LogFile) GetHumanReadable() bool {
2585	if x != nil {
2586		return x.HumanReadable
2587	}
2588	return false
2589}
2590
2591// The response message for
2592// [Execution.Execute][build.bazel.remote.execution.v2.Execution.Execute],
2593// which will be contained in the [response
2594// field][google.longrunning.Operation.response] of the
2595// [Operation][google.longrunning.Operation].
2596type ExecuteResponse struct {
2597	state         protoimpl.MessageState
2598	sizeCache     protoimpl.SizeCache
2599	unknownFields protoimpl.UnknownFields
2600
2601	// The result of the action.
2602	Result *ActionResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
2603	// True if the result was served from cache, false if it was executed.
2604	CachedResult bool `protobuf:"varint,2,opt,name=cached_result,json=cachedResult,proto3" json:"cached_result,omitempty"`
2605	// If the status has a code other than `OK`, it indicates that the action did
2606	// not finish execution. For example, if the operation times out during
2607	// execution, the status will have a `DEADLINE_EXCEEDED` code. Servers MUST
2608	// use this field for errors in execution, rather than the error field on the
2609	// `Operation` object.
2610	//
2611	// If the status code is other than `OK`, then the result MUST NOT be cached.
2612	// For an error status, the `result` field is optional; the server may
2613	// populate the output-, stdout-, and stderr-related fields if it has any
2614	// information available, such as the stdout and stderr of a timed-out action.
2615	Status *status.Status `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
2616	// An optional list of additional log outputs the server wishes to provide. A
2617	// server can use this to return execution-specific logs however it wishes.
2618	// This is intended primarily to make it easier for users to debug issues that
2619	// may be outside of the actual job execution, such as by identifying the
2620	// worker executing the action or by providing logs from the worker's setup
2621	// phase. The keys SHOULD be human readable so that a client can display them
2622	// to a user.
2623	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"`
2624	// Freeform informational message with details on the execution of the action
2625	// that may be displayed to the user upon failure or when requested explicitly.
2626	Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
2627}
2628
2629func (x *ExecuteResponse) Reset() {
2630	*x = ExecuteResponse{}
2631	if protoimpl.UnsafeEnabled {
2632		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[20]
2633		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2634		ms.StoreMessageInfo(mi)
2635	}
2636}
2637
2638func (x *ExecuteResponse) String() string {
2639	return protoimpl.X.MessageStringOf(x)
2640}
2641
2642func (*ExecuteResponse) ProtoMessage() {}
2643
2644func (x *ExecuteResponse) ProtoReflect() protoreflect.Message {
2645	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[20]
2646	if protoimpl.UnsafeEnabled && x != nil {
2647		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2648		if ms.LoadMessageInfo() == nil {
2649			ms.StoreMessageInfo(mi)
2650		}
2651		return ms
2652	}
2653	return mi.MessageOf(x)
2654}
2655
2656// Deprecated: Use ExecuteResponse.ProtoReflect.Descriptor instead.
2657func (*ExecuteResponse) Descriptor() ([]byte, []int) {
2658	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{20}
2659}
2660
2661func (x *ExecuteResponse) GetResult() *ActionResult {
2662	if x != nil {
2663		return x.Result
2664	}
2665	return nil
2666}
2667
2668func (x *ExecuteResponse) GetCachedResult() bool {
2669	if x != nil {
2670		return x.CachedResult
2671	}
2672	return false
2673}
2674
2675func (x *ExecuteResponse) GetStatus() *status.Status {
2676	if x != nil {
2677		return x.Status
2678	}
2679	return nil
2680}
2681
2682func (x *ExecuteResponse) GetServerLogs() map[string]*LogFile {
2683	if x != nil {
2684		return x.ServerLogs
2685	}
2686	return nil
2687}
2688
2689func (x *ExecuteResponse) GetMessage() string {
2690	if x != nil {
2691		return x.Message
2692	}
2693	return ""
2694}
2695
2696// The current stage of action execution.
2697//
2698// Even though these stages are numbered according to the order in which
2699// they generally occur, there is no requirement that the remote
2700// execution system reports events along this order. For example, an
2701// operation MAY transition from the EXECUTING stage back to QUEUED
2702// in case the hardware on which the operation executes fails.
2703//
2704// If and only if the remote execution system reports that an operation
2705// has reached the COMPLETED stage, it MUST set the [done
2706// field][google.longrunning.Operation.done] of the
2707// [Operation][google.longrunning.Operation] and terminate the stream.
2708type ExecutionStage struct {
2709	state         protoimpl.MessageState
2710	sizeCache     protoimpl.SizeCache
2711	unknownFields protoimpl.UnknownFields
2712}
2713
2714func (x *ExecutionStage) Reset() {
2715	*x = ExecutionStage{}
2716	if protoimpl.UnsafeEnabled {
2717		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[21]
2718		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2719		ms.StoreMessageInfo(mi)
2720	}
2721}
2722
2723func (x *ExecutionStage) String() string {
2724	return protoimpl.X.MessageStringOf(x)
2725}
2726
2727func (*ExecutionStage) ProtoMessage() {}
2728
2729func (x *ExecutionStage) ProtoReflect() protoreflect.Message {
2730	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[21]
2731	if protoimpl.UnsafeEnabled && x != nil {
2732		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2733		if ms.LoadMessageInfo() == nil {
2734			ms.StoreMessageInfo(mi)
2735		}
2736		return ms
2737	}
2738	return mi.MessageOf(x)
2739}
2740
2741// Deprecated: Use ExecutionStage.ProtoReflect.Descriptor instead.
2742func (*ExecutionStage) Descriptor() ([]byte, []int) {
2743	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{21}
2744}
2745
2746// Metadata about an ongoing
2747// [execution][build.bazel.remote.execution.v2.Execution.Execute], which
2748// will be contained in the [metadata
2749// field][google.longrunning.Operation.response] of the
2750// [Operation][google.longrunning.Operation].
2751type ExecuteOperationMetadata struct {
2752	state         protoimpl.MessageState
2753	sizeCache     protoimpl.SizeCache
2754	unknownFields protoimpl.UnknownFields
2755
2756	// The current stage of execution.
2757	Stage ExecutionStage_Value `protobuf:"varint,1,opt,name=stage,proto3,enum=build.bazel.remote.execution.v2.ExecutionStage_Value" json:"stage,omitempty"`
2758	// The digest of the [Action][build.bazel.remote.execution.v2.Action]
2759	// being executed.
2760	ActionDigest *Digest `protobuf:"bytes,2,opt,name=action_digest,json=actionDigest,proto3" json:"action_digest,omitempty"`
2761	// If set, the client can use this resource name with
2762	// [ByteStream.Read][google.bytestream.ByteStream.Read] to stream the
2763	// standard output from the endpoint hosting streamed responses.
2764	StdoutStreamName string `protobuf:"bytes,3,opt,name=stdout_stream_name,json=stdoutStreamName,proto3" json:"stdout_stream_name,omitempty"`
2765	// If set, the client can use this resource name with
2766	// [ByteStream.Read][google.bytestream.ByteStream.Read] to stream the
2767	// standard error from the endpoint hosting streamed responses.
2768	StderrStreamName string `protobuf:"bytes,4,opt,name=stderr_stream_name,json=stderrStreamName,proto3" json:"stderr_stream_name,omitempty"`
2769	// The client can read this field to view details about the ongoing
2770	// execution.
2771	PartialExecutionMetadata *ExecutedActionMetadata `protobuf:"bytes,5,opt,name=partial_execution_metadata,json=partialExecutionMetadata,proto3" json:"partial_execution_metadata,omitempty"`
2772}
2773
2774func (x *ExecuteOperationMetadata) Reset() {
2775	*x = ExecuteOperationMetadata{}
2776	if protoimpl.UnsafeEnabled {
2777		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[22]
2778		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2779		ms.StoreMessageInfo(mi)
2780	}
2781}
2782
2783func (x *ExecuteOperationMetadata) String() string {
2784	return protoimpl.X.MessageStringOf(x)
2785}
2786
2787func (*ExecuteOperationMetadata) ProtoMessage() {}
2788
2789func (x *ExecuteOperationMetadata) ProtoReflect() protoreflect.Message {
2790	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[22]
2791	if protoimpl.UnsafeEnabled && x != nil {
2792		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2793		if ms.LoadMessageInfo() == nil {
2794			ms.StoreMessageInfo(mi)
2795		}
2796		return ms
2797	}
2798	return mi.MessageOf(x)
2799}
2800
2801// Deprecated: Use ExecuteOperationMetadata.ProtoReflect.Descriptor instead.
2802func (*ExecuteOperationMetadata) Descriptor() ([]byte, []int) {
2803	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{22}
2804}
2805
2806func (x *ExecuteOperationMetadata) GetStage() ExecutionStage_Value {
2807	if x != nil {
2808		return x.Stage
2809	}
2810	return ExecutionStage_UNKNOWN
2811}
2812
2813func (x *ExecuteOperationMetadata) GetActionDigest() *Digest {
2814	if x != nil {
2815		return x.ActionDigest
2816	}
2817	return nil
2818}
2819
2820func (x *ExecuteOperationMetadata) GetStdoutStreamName() string {
2821	if x != nil {
2822		return x.StdoutStreamName
2823	}
2824	return ""
2825}
2826
2827func (x *ExecuteOperationMetadata) GetStderrStreamName() string {
2828	if x != nil {
2829		return x.StderrStreamName
2830	}
2831	return ""
2832}
2833
2834func (x *ExecuteOperationMetadata) GetPartialExecutionMetadata() *ExecutedActionMetadata {
2835	if x != nil {
2836		return x.PartialExecutionMetadata
2837	}
2838	return nil
2839}
2840
2841// A request message for
2842// [WaitExecution][build.bazel.remote.execution.v2.Execution.WaitExecution].
2843type WaitExecutionRequest struct {
2844	state         protoimpl.MessageState
2845	sizeCache     protoimpl.SizeCache
2846	unknownFields protoimpl.UnknownFields
2847
2848	// The name of the [Operation][google.longrunning.Operation]
2849	// returned by [Execute][build.bazel.remote.execution.v2.Execution.Execute].
2850	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
2851}
2852
2853func (x *WaitExecutionRequest) Reset() {
2854	*x = WaitExecutionRequest{}
2855	if protoimpl.UnsafeEnabled {
2856		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[23]
2857		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2858		ms.StoreMessageInfo(mi)
2859	}
2860}
2861
2862func (x *WaitExecutionRequest) String() string {
2863	return protoimpl.X.MessageStringOf(x)
2864}
2865
2866func (*WaitExecutionRequest) ProtoMessage() {}
2867
2868func (x *WaitExecutionRequest) ProtoReflect() protoreflect.Message {
2869	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[23]
2870	if protoimpl.UnsafeEnabled && x != nil {
2871		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2872		if ms.LoadMessageInfo() == nil {
2873			ms.StoreMessageInfo(mi)
2874		}
2875		return ms
2876	}
2877	return mi.MessageOf(x)
2878}
2879
2880// Deprecated: Use WaitExecutionRequest.ProtoReflect.Descriptor instead.
2881func (*WaitExecutionRequest) Descriptor() ([]byte, []int) {
2882	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{23}
2883}
2884
2885func (x *WaitExecutionRequest) GetName() string {
2886	if x != nil {
2887		return x.Name
2888	}
2889	return ""
2890}
2891
2892// A request message for
2893// [ActionCache.GetActionResult][build.bazel.remote.execution.v2.ActionCache.GetActionResult].
2894type GetActionResultRequest struct {
2895	state         protoimpl.MessageState
2896	sizeCache     protoimpl.SizeCache
2897	unknownFields protoimpl.UnknownFields
2898
2899	// The instance of the execution system to operate against. A server may
2900	// support multiple instances of the execution system (with their own workers,
2901	// storage, caches, etc.). The server MAY require use of this field to select
2902	// between them in an implementation-defined fashion, otherwise it can be
2903	// omitted.
2904	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
2905	// The digest of the [Action][build.bazel.remote.execution.v2.Action]
2906	// whose result is requested.
2907	ActionDigest *Digest `protobuf:"bytes,2,opt,name=action_digest,json=actionDigest,proto3" json:"action_digest,omitempty"`
2908	// A hint to the server to request inlining stdout in the
2909	// [ActionResult][build.bazel.remote.execution.v2.ActionResult] message.
2910	InlineStdout bool `protobuf:"varint,3,opt,name=inline_stdout,json=inlineStdout,proto3" json:"inline_stdout,omitempty"`
2911	// A hint to the server to request inlining stderr in the
2912	// [ActionResult][build.bazel.remote.execution.v2.ActionResult] message.
2913	InlineStderr bool `protobuf:"varint,4,opt,name=inline_stderr,json=inlineStderr,proto3" json:"inline_stderr,omitempty"`
2914	// A hint to the server to inline the contents of the listed output files.
2915	// Each path needs to exactly match one file path in either `output_paths` or
2916	// `output_files` (DEPRECATED since v2.1) in the
2917	// [Command][build.bazel.remote.execution.v2.Command] message.
2918	InlineOutputFiles []string `protobuf:"bytes,5,rep,name=inline_output_files,json=inlineOutputFiles,proto3" json:"inline_output_files,omitempty"`
2919	// The digest function that was used to compute the action digest.
2920	//
2921	// If the digest function used is one of MD5, MURMUR3, SHA1, SHA256,
2922	// SHA384, SHA512, or VSO, the client MAY leave this field unset. In
2923	// that case the server SHOULD infer the digest function using the
2924	// length of the action digest hash and the digest functions announced
2925	// in the server's capabilities.
2926	DigestFunction DigestFunction_Value `protobuf:"varint,6,opt,name=digest_function,json=digestFunction,proto3,enum=build.bazel.remote.execution.v2.DigestFunction_Value" json:"digest_function,omitempty"`
2927}
2928
2929func (x *GetActionResultRequest) Reset() {
2930	*x = GetActionResultRequest{}
2931	if protoimpl.UnsafeEnabled {
2932		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[24]
2933		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2934		ms.StoreMessageInfo(mi)
2935	}
2936}
2937
2938func (x *GetActionResultRequest) String() string {
2939	return protoimpl.X.MessageStringOf(x)
2940}
2941
2942func (*GetActionResultRequest) ProtoMessage() {}
2943
2944func (x *GetActionResultRequest) ProtoReflect() protoreflect.Message {
2945	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[24]
2946	if protoimpl.UnsafeEnabled && x != nil {
2947		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2948		if ms.LoadMessageInfo() == nil {
2949			ms.StoreMessageInfo(mi)
2950		}
2951		return ms
2952	}
2953	return mi.MessageOf(x)
2954}
2955
2956// Deprecated: Use GetActionResultRequest.ProtoReflect.Descriptor instead.
2957func (*GetActionResultRequest) Descriptor() ([]byte, []int) {
2958	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{24}
2959}
2960
2961func (x *GetActionResultRequest) GetInstanceName() string {
2962	if x != nil {
2963		return x.InstanceName
2964	}
2965	return ""
2966}
2967
2968func (x *GetActionResultRequest) GetActionDigest() *Digest {
2969	if x != nil {
2970		return x.ActionDigest
2971	}
2972	return nil
2973}
2974
2975func (x *GetActionResultRequest) GetInlineStdout() bool {
2976	if x != nil {
2977		return x.InlineStdout
2978	}
2979	return false
2980}
2981
2982func (x *GetActionResultRequest) GetInlineStderr() bool {
2983	if x != nil {
2984		return x.InlineStderr
2985	}
2986	return false
2987}
2988
2989func (x *GetActionResultRequest) GetInlineOutputFiles() []string {
2990	if x != nil {
2991		return x.InlineOutputFiles
2992	}
2993	return nil
2994}
2995
2996func (x *GetActionResultRequest) GetDigestFunction() DigestFunction_Value {
2997	if x != nil {
2998		return x.DigestFunction
2999	}
3000	return DigestFunction_UNKNOWN
3001}
3002
3003// A request message for
3004// [ActionCache.UpdateActionResult][build.bazel.remote.execution.v2.ActionCache.UpdateActionResult].
3005type UpdateActionResultRequest struct {
3006	state         protoimpl.MessageState
3007	sizeCache     protoimpl.SizeCache
3008	unknownFields protoimpl.UnknownFields
3009
3010	// The instance of the execution system to operate against. A server may
3011	// support multiple instances of the execution system (with their own workers,
3012	// storage, caches, etc.). The server MAY require use of this field to select
3013	// between them in an implementation-defined fashion, otherwise it can be
3014	// omitted.
3015	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
3016	// The digest of the [Action][build.bazel.remote.execution.v2.Action]
3017	// whose result is being uploaded.
3018	ActionDigest *Digest `protobuf:"bytes,2,opt,name=action_digest,json=actionDigest,proto3" json:"action_digest,omitempty"`
3019	// The [ActionResult][build.bazel.remote.execution.v2.ActionResult]
3020	// to store in the cache.
3021	ActionResult *ActionResult `protobuf:"bytes,3,opt,name=action_result,json=actionResult,proto3" json:"action_result,omitempty"`
3022	// An optional policy for the results of this execution in the remote cache.
3023	// The server will have a default policy if this is not provided.
3024	// This may be applied to both the ActionResult and the associated blobs.
3025	ResultsCachePolicy *ResultsCachePolicy `protobuf:"bytes,4,opt,name=results_cache_policy,json=resultsCachePolicy,proto3" json:"results_cache_policy,omitempty"`
3026	// The digest function that was used to compute the action digest.
3027	//
3028	// If the digest function used is one of MD5, MURMUR3, SHA1, SHA256,
3029	// SHA384, SHA512, or VSO, the client MAY leave this field unset. In
3030	// that case the server SHOULD infer the digest function using the
3031	// length of the action digest hash and the digest functions announced
3032	// in the server's capabilities.
3033	DigestFunction DigestFunction_Value `protobuf:"varint,5,opt,name=digest_function,json=digestFunction,proto3,enum=build.bazel.remote.execution.v2.DigestFunction_Value" json:"digest_function,omitempty"`
3034}
3035
3036func (x *UpdateActionResultRequest) Reset() {
3037	*x = UpdateActionResultRequest{}
3038	if protoimpl.UnsafeEnabled {
3039		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[25]
3040		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3041		ms.StoreMessageInfo(mi)
3042	}
3043}
3044
3045func (x *UpdateActionResultRequest) String() string {
3046	return protoimpl.X.MessageStringOf(x)
3047}
3048
3049func (*UpdateActionResultRequest) ProtoMessage() {}
3050
3051func (x *UpdateActionResultRequest) ProtoReflect() protoreflect.Message {
3052	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[25]
3053	if protoimpl.UnsafeEnabled && x != nil {
3054		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3055		if ms.LoadMessageInfo() == nil {
3056			ms.StoreMessageInfo(mi)
3057		}
3058		return ms
3059	}
3060	return mi.MessageOf(x)
3061}
3062
3063// Deprecated: Use UpdateActionResultRequest.ProtoReflect.Descriptor instead.
3064func (*UpdateActionResultRequest) Descriptor() ([]byte, []int) {
3065	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{25}
3066}
3067
3068func (x *UpdateActionResultRequest) GetInstanceName() string {
3069	if x != nil {
3070		return x.InstanceName
3071	}
3072	return ""
3073}
3074
3075func (x *UpdateActionResultRequest) GetActionDigest() *Digest {
3076	if x != nil {
3077		return x.ActionDigest
3078	}
3079	return nil
3080}
3081
3082func (x *UpdateActionResultRequest) GetActionResult() *ActionResult {
3083	if x != nil {
3084		return x.ActionResult
3085	}
3086	return nil
3087}
3088
3089func (x *UpdateActionResultRequest) GetResultsCachePolicy() *ResultsCachePolicy {
3090	if x != nil {
3091		return x.ResultsCachePolicy
3092	}
3093	return nil
3094}
3095
3096func (x *UpdateActionResultRequest) GetDigestFunction() DigestFunction_Value {
3097	if x != nil {
3098		return x.DigestFunction
3099	}
3100	return DigestFunction_UNKNOWN
3101}
3102
3103// A request message for
3104// [ContentAddressableStorage.FindMissingBlobs][build.bazel.remote.execution.v2.ContentAddressableStorage.FindMissingBlobs].
3105type FindMissingBlobsRequest struct {
3106	state         protoimpl.MessageState
3107	sizeCache     protoimpl.SizeCache
3108	unknownFields protoimpl.UnknownFields
3109
3110	// The instance of the execution system to operate against. A server may
3111	// support multiple instances of the execution system (with their own workers,
3112	// storage, caches, etc.). The server MAY require use of this field to select
3113	// between them in an implementation-defined fashion, otherwise it can be
3114	// omitted.
3115	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
3116	// A list of the blobs to check. All digests MUST use the same digest
3117	// function.
3118	BlobDigests []*Digest `protobuf:"bytes,2,rep,name=blob_digests,json=blobDigests,proto3" json:"blob_digests,omitempty"`
3119	// The digest function of the blobs whose existence is checked.
3120	//
3121	// If the digest function used is one of MD5, MURMUR3, SHA1, SHA256,
3122	// SHA384, SHA512, or VSO, the client MAY leave this field unset. In
3123	// that case the server SHOULD infer the digest function using the
3124	// length of the blob digest hashes and the digest functions announced
3125	// in the server's capabilities.
3126	DigestFunction DigestFunction_Value `protobuf:"varint,3,opt,name=digest_function,json=digestFunction,proto3,enum=build.bazel.remote.execution.v2.DigestFunction_Value" json:"digest_function,omitempty"`
3127}
3128
3129func (x *FindMissingBlobsRequest) Reset() {
3130	*x = FindMissingBlobsRequest{}
3131	if protoimpl.UnsafeEnabled {
3132		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[26]
3133		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3134		ms.StoreMessageInfo(mi)
3135	}
3136}
3137
3138func (x *FindMissingBlobsRequest) String() string {
3139	return protoimpl.X.MessageStringOf(x)
3140}
3141
3142func (*FindMissingBlobsRequest) ProtoMessage() {}
3143
3144func (x *FindMissingBlobsRequest) ProtoReflect() protoreflect.Message {
3145	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[26]
3146	if protoimpl.UnsafeEnabled && x != nil {
3147		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3148		if ms.LoadMessageInfo() == nil {
3149			ms.StoreMessageInfo(mi)
3150		}
3151		return ms
3152	}
3153	return mi.MessageOf(x)
3154}
3155
3156// Deprecated: Use FindMissingBlobsRequest.ProtoReflect.Descriptor instead.
3157func (*FindMissingBlobsRequest) Descriptor() ([]byte, []int) {
3158	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{26}
3159}
3160
3161func (x *FindMissingBlobsRequest) GetInstanceName() string {
3162	if x != nil {
3163		return x.InstanceName
3164	}
3165	return ""
3166}
3167
3168func (x *FindMissingBlobsRequest) GetBlobDigests() []*Digest {
3169	if x != nil {
3170		return x.BlobDigests
3171	}
3172	return nil
3173}
3174
3175func (x *FindMissingBlobsRequest) GetDigestFunction() DigestFunction_Value {
3176	if x != nil {
3177		return x.DigestFunction
3178	}
3179	return DigestFunction_UNKNOWN
3180}
3181
3182// A response message for
3183// [ContentAddressableStorage.FindMissingBlobs][build.bazel.remote.execution.v2.ContentAddressableStorage.FindMissingBlobs].
3184type FindMissingBlobsResponse struct {
3185	state         protoimpl.MessageState
3186	sizeCache     protoimpl.SizeCache
3187	unknownFields protoimpl.UnknownFields
3188
3189	// A list of the blobs requested *not* present in the storage.
3190	MissingBlobDigests []*Digest `protobuf:"bytes,2,rep,name=missing_blob_digests,json=missingBlobDigests,proto3" json:"missing_blob_digests,omitempty"`
3191}
3192
3193func (x *FindMissingBlobsResponse) Reset() {
3194	*x = FindMissingBlobsResponse{}
3195	if protoimpl.UnsafeEnabled {
3196		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[27]
3197		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3198		ms.StoreMessageInfo(mi)
3199	}
3200}
3201
3202func (x *FindMissingBlobsResponse) String() string {
3203	return protoimpl.X.MessageStringOf(x)
3204}
3205
3206func (*FindMissingBlobsResponse) ProtoMessage() {}
3207
3208func (x *FindMissingBlobsResponse) ProtoReflect() protoreflect.Message {
3209	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[27]
3210	if protoimpl.UnsafeEnabled && x != nil {
3211		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3212		if ms.LoadMessageInfo() == nil {
3213			ms.StoreMessageInfo(mi)
3214		}
3215		return ms
3216	}
3217	return mi.MessageOf(x)
3218}
3219
3220// Deprecated: Use FindMissingBlobsResponse.ProtoReflect.Descriptor instead.
3221func (*FindMissingBlobsResponse) Descriptor() ([]byte, []int) {
3222	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{27}
3223}
3224
3225func (x *FindMissingBlobsResponse) GetMissingBlobDigests() []*Digest {
3226	if x != nil {
3227		return x.MissingBlobDigests
3228	}
3229	return nil
3230}
3231
3232// A request message for
3233// [ContentAddressableStorage.BatchUpdateBlobs][build.bazel.remote.execution.v2.ContentAddressableStorage.BatchUpdateBlobs].
3234type BatchUpdateBlobsRequest struct {
3235	state         protoimpl.MessageState
3236	sizeCache     protoimpl.SizeCache
3237	unknownFields protoimpl.UnknownFields
3238
3239	// The instance of the execution system to operate against. A server may
3240	// support multiple instances of the execution system (with their own workers,
3241	// storage, caches, etc.). The server MAY require use of this field to select
3242	// between them in an implementation-defined fashion, otherwise it can be
3243	// omitted.
3244	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
3245	// The individual upload requests.
3246	Requests []*BatchUpdateBlobsRequest_Request `protobuf:"bytes,2,rep,name=requests,proto3" json:"requests,omitempty"`
3247	// The digest function that was used to compute the digests of the
3248	// blobs being uploaded.
3249	//
3250	// If the digest function used is one of MD5, MURMUR3, SHA1, SHA256,
3251	// SHA384, SHA512, or VSO, the client MAY leave this field unset. In
3252	// that case the server SHOULD infer the digest function using the
3253	// length of the blob digest hashes and the digest functions announced
3254	// in the server's capabilities.
3255	DigestFunction DigestFunction_Value `protobuf:"varint,5,opt,name=digest_function,json=digestFunction,proto3,enum=build.bazel.remote.execution.v2.DigestFunction_Value" json:"digest_function,omitempty"`
3256}
3257
3258func (x *BatchUpdateBlobsRequest) Reset() {
3259	*x = BatchUpdateBlobsRequest{}
3260	if protoimpl.UnsafeEnabled {
3261		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[28]
3262		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3263		ms.StoreMessageInfo(mi)
3264	}
3265}
3266
3267func (x *BatchUpdateBlobsRequest) String() string {
3268	return protoimpl.X.MessageStringOf(x)
3269}
3270
3271func (*BatchUpdateBlobsRequest) ProtoMessage() {}
3272
3273func (x *BatchUpdateBlobsRequest) ProtoReflect() protoreflect.Message {
3274	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[28]
3275	if protoimpl.UnsafeEnabled && x != nil {
3276		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3277		if ms.LoadMessageInfo() == nil {
3278			ms.StoreMessageInfo(mi)
3279		}
3280		return ms
3281	}
3282	return mi.MessageOf(x)
3283}
3284
3285// Deprecated: Use BatchUpdateBlobsRequest.ProtoReflect.Descriptor instead.
3286func (*BatchUpdateBlobsRequest) Descriptor() ([]byte, []int) {
3287	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{28}
3288}
3289
3290func (x *BatchUpdateBlobsRequest) GetInstanceName() string {
3291	if x != nil {
3292		return x.InstanceName
3293	}
3294	return ""
3295}
3296
3297func (x *BatchUpdateBlobsRequest) GetRequests() []*BatchUpdateBlobsRequest_Request {
3298	if x != nil {
3299		return x.Requests
3300	}
3301	return nil
3302}
3303
3304func (x *BatchUpdateBlobsRequest) GetDigestFunction() DigestFunction_Value {
3305	if x != nil {
3306		return x.DigestFunction
3307	}
3308	return DigestFunction_UNKNOWN
3309}
3310
3311// A response message for
3312// [ContentAddressableStorage.BatchUpdateBlobs][build.bazel.remote.execution.v2.ContentAddressableStorage.BatchUpdateBlobs].
3313type BatchUpdateBlobsResponse struct {
3314	state         protoimpl.MessageState
3315	sizeCache     protoimpl.SizeCache
3316	unknownFields protoimpl.UnknownFields
3317
3318	// The responses to the requests.
3319	Responses []*BatchUpdateBlobsResponse_Response `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
3320}
3321
3322func (x *BatchUpdateBlobsResponse) Reset() {
3323	*x = BatchUpdateBlobsResponse{}
3324	if protoimpl.UnsafeEnabled {
3325		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[29]
3326		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3327		ms.StoreMessageInfo(mi)
3328	}
3329}
3330
3331func (x *BatchUpdateBlobsResponse) String() string {
3332	return protoimpl.X.MessageStringOf(x)
3333}
3334
3335func (*BatchUpdateBlobsResponse) ProtoMessage() {}
3336
3337func (x *BatchUpdateBlobsResponse) ProtoReflect() protoreflect.Message {
3338	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[29]
3339	if protoimpl.UnsafeEnabled && x != nil {
3340		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3341		if ms.LoadMessageInfo() == nil {
3342			ms.StoreMessageInfo(mi)
3343		}
3344		return ms
3345	}
3346	return mi.MessageOf(x)
3347}
3348
3349// Deprecated: Use BatchUpdateBlobsResponse.ProtoReflect.Descriptor instead.
3350func (*BatchUpdateBlobsResponse) Descriptor() ([]byte, []int) {
3351	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{29}
3352}
3353
3354func (x *BatchUpdateBlobsResponse) GetResponses() []*BatchUpdateBlobsResponse_Response {
3355	if x != nil {
3356		return x.Responses
3357	}
3358	return nil
3359}
3360
3361// A request message for
3362// [ContentAddressableStorage.BatchReadBlobs][build.bazel.remote.execution.v2.ContentAddressableStorage.BatchReadBlobs].
3363type BatchReadBlobsRequest struct {
3364	state         protoimpl.MessageState
3365	sizeCache     protoimpl.SizeCache
3366	unknownFields protoimpl.UnknownFields
3367
3368	// The instance of the execution system to operate against. A server may
3369	// support multiple instances of the execution system (with their own workers,
3370	// storage, caches, etc.). The server MAY require use of this field to select
3371	// between them in an implementation-defined fashion, otherwise it can be
3372	// omitted.
3373	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
3374	// The individual blob digests. All digests MUST use the same digest
3375	// function.
3376	Digests []*Digest `protobuf:"bytes,2,rep,name=digests,proto3" json:"digests,omitempty"`
3377	// A list of acceptable encodings for the returned inlined data, in no
3378	// particular order. `IDENTITY` is always allowed even if not specified here.
3379	AcceptableCompressors []Compressor_Value `protobuf:"varint,3,rep,packed,name=acceptable_compressors,json=acceptableCompressors,proto3,enum=build.bazel.remote.execution.v2.Compressor_Value" json:"acceptable_compressors,omitempty"`
3380	// The digest function of the blobs being requested.
3381	//
3382	// If the digest function used is one of MD5, MURMUR3, SHA1, SHA256,
3383	// SHA384, SHA512, or VSO, the client MAY leave this field unset. In
3384	// that case the server SHOULD infer the digest function using the
3385	// length of the blob digest hashes and the digest functions announced
3386	// in the server's capabilities.
3387	DigestFunction DigestFunction_Value `protobuf:"varint,4,opt,name=digest_function,json=digestFunction,proto3,enum=build.bazel.remote.execution.v2.DigestFunction_Value" json:"digest_function,omitempty"`
3388}
3389
3390func (x *BatchReadBlobsRequest) Reset() {
3391	*x = BatchReadBlobsRequest{}
3392	if protoimpl.UnsafeEnabled {
3393		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[30]
3394		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3395		ms.StoreMessageInfo(mi)
3396	}
3397}
3398
3399func (x *BatchReadBlobsRequest) String() string {
3400	return protoimpl.X.MessageStringOf(x)
3401}
3402
3403func (*BatchReadBlobsRequest) ProtoMessage() {}
3404
3405func (x *BatchReadBlobsRequest) ProtoReflect() protoreflect.Message {
3406	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[30]
3407	if protoimpl.UnsafeEnabled && x != nil {
3408		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3409		if ms.LoadMessageInfo() == nil {
3410			ms.StoreMessageInfo(mi)
3411		}
3412		return ms
3413	}
3414	return mi.MessageOf(x)
3415}
3416
3417// Deprecated: Use BatchReadBlobsRequest.ProtoReflect.Descriptor instead.
3418func (*BatchReadBlobsRequest) Descriptor() ([]byte, []int) {
3419	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{30}
3420}
3421
3422func (x *BatchReadBlobsRequest) GetInstanceName() string {
3423	if x != nil {
3424		return x.InstanceName
3425	}
3426	return ""
3427}
3428
3429func (x *BatchReadBlobsRequest) GetDigests() []*Digest {
3430	if x != nil {
3431		return x.Digests
3432	}
3433	return nil
3434}
3435
3436func (x *BatchReadBlobsRequest) GetAcceptableCompressors() []Compressor_Value {
3437	if x != nil {
3438		return x.AcceptableCompressors
3439	}
3440	return nil
3441}
3442
3443func (x *BatchReadBlobsRequest) GetDigestFunction() DigestFunction_Value {
3444	if x != nil {
3445		return x.DigestFunction
3446	}
3447	return DigestFunction_UNKNOWN
3448}
3449
3450// A response message for
3451// [ContentAddressableStorage.BatchReadBlobs][build.bazel.remote.execution.v2.ContentAddressableStorage.BatchReadBlobs].
3452type BatchReadBlobsResponse struct {
3453	state         protoimpl.MessageState
3454	sizeCache     protoimpl.SizeCache
3455	unknownFields protoimpl.UnknownFields
3456
3457	// The responses to the requests.
3458	Responses []*BatchReadBlobsResponse_Response `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
3459}
3460
3461func (x *BatchReadBlobsResponse) Reset() {
3462	*x = BatchReadBlobsResponse{}
3463	if protoimpl.UnsafeEnabled {
3464		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[31]
3465		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3466		ms.StoreMessageInfo(mi)
3467	}
3468}
3469
3470func (x *BatchReadBlobsResponse) String() string {
3471	return protoimpl.X.MessageStringOf(x)
3472}
3473
3474func (*BatchReadBlobsResponse) ProtoMessage() {}
3475
3476func (x *BatchReadBlobsResponse) ProtoReflect() protoreflect.Message {
3477	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[31]
3478	if protoimpl.UnsafeEnabled && x != nil {
3479		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3480		if ms.LoadMessageInfo() == nil {
3481			ms.StoreMessageInfo(mi)
3482		}
3483		return ms
3484	}
3485	return mi.MessageOf(x)
3486}
3487
3488// Deprecated: Use BatchReadBlobsResponse.ProtoReflect.Descriptor instead.
3489func (*BatchReadBlobsResponse) Descriptor() ([]byte, []int) {
3490	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{31}
3491}
3492
3493func (x *BatchReadBlobsResponse) GetResponses() []*BatchReadBlobsResponse_Response {
3494	if x != nil {
3495		return x.Responses
3496	}
3497	return nil
3498}
3499
3500// A request message for
3501// [ContentAddressableStorage.GetTree][build.bazel.remote.execution.v2.ContentAddressableStorage.GetTree].
3502type GetTreeRequest struct {
3503	state         protoimpl.MessageState
3504	sizeCache     protoimpl.SizeCache
3505	unknownFields protoimpl.UnknownFields
3506
3507	// The instance of the execution system to operate against. A server may
3508	// support multiple instances of the execution system (with their own workers,
3509	// storage, caches, etc.). The server MAY require use of this field to select
3510	// between them in an implementation-defined fashion, otherwise it can be
3511	// omitted.
3512	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
3513	// The digest of the root, which must be an encoded
3514	// [Directory][build.bazel.remote.execution.v2.Directory] message
3515	// stored in the
3516	// [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage].
3517	RootDigest *Digest `protobuf:"bytes,2,opt,name=root_digest,json=rootDigest,proto3" json:"root_digest,omitempty"`
3518	// A maximum page size to request. If present, the server will request no more
3519	// than this many items. Regardless of whether a page size is specified, the
3520	// server may place its own limit on the number of items to be returned and
3521	// require the client to retrieve more items using a subsequent request.
3522	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
3523	// A page token, which must be a value received in a previous
3524	// [GetTreeResponse][build.bazel.remote.execution.v2.GetTreeResponse].
3525	// If present, the server will use that token as an offset, returning only
3526	// that page and the ones that succeed it.
3527	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
3528	// The digest function that was used to compute the digest of the root
3529	// directory.
3530	//
3531	// If the digest function used is one of MD5, MURMUR3, SHA1, SHA256,
3532	// SHA384, SHA512, or VSO, the client MAY leave this field unset. In
3533	// that case the server SHOULD infer the digest function using the
3534	// length of the root digest hash and the digest functions announced
3535	// in the server's capabilities.
3536	DigestFunction DigestFunction_Value `protobuf:"varint,5,opt,name=digest_function,json=digestFunction,proto3,enum=build.bazel.remote.execution.v2.DigestFunction_Value" json:"digest_function,omitempty"`
3537}
3538
3539func (x *GetTreeRequest) Reset() {
3540	*x = GetTreeRequest{}
3541	if protoimpl.UnsafeEnabled {
3542		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[32]
3543		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3544		ms.StoreMessageInfo(mi)
3545	}
3546}
3547
3548func (x *GetTreeRequest) String() string {
3549	return protoimpl.X.MessageStringOf(x)
3550}
3551
3552func (*GetTreeRequest) ProtoMessage() {}
3553
3554func (x *GetTreeRequest) ProtoReflect() protoreflect.Message {
3555	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[32]
3556	if protoimpl.UnsafeEnabled && x != nil {
3557		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3558		if ms.LoadMessageInfo() == nil {
3559			ms.StoreMessageInfo(mi)
3560		}
3561		return ms
3562	}
3563	return mi.MessageOf(x)
3564}
3565
3566// Deprecated: Use GetTreeRequest.ProtoReflect.Descriptor instead.
3567func (*GetTreeRequest) Descriptor() ([]byte, []int) {
3568	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{32}
3569}
3570
3571func (x *GetTreeRequest) GetInstanceName() string {
3572	if x != nil {
3573		return x.InstanceName
3574	}
3575	return ""
3576}
3577
3578func (x *GetTreeRequest) GetRootDigest() *Digest {
3579	if x != nil {
3580		return x.RootDigest
3581	}
3582	return nil
3583}
3584
3585func (x *GetTreeRequest) GetPageSize() int32 {
3586	if x != nil {
3587		return x.PageSize
3588	}
3589	return 0
3590}
3591
3592func (x *GetTreeRequest) GetPageToken() string {
3593	if x != nil {
3594		return x.PageToken
3595	}
3596	return ""
3597}
3598
3599func (x *GetTreeRequest) GetDigestFunction() DigestFunction_Value {
3600	if x != nil {
3601		return x.DigestFunction
3602	}
3603	return DigestFunction_UNKNOWN
3604}
3605
3606// A response message for
3607// [ContentAddressableStorage.GetTree][build.bazel.remote.execution.v2.ContentAddressableStorage.GetTree].
3608type GetTreeResponse struct {
3609	state         protoimpl.MessageState
3610	sizeCache     protoimpl.SizeCache
3611	unknownFields protoimpl.UnknownFields
3612
3613	// The directories descended from the requested root.
3614	Directories []*Directory `protobuf:"bytes,1,rep,name=directories,proto3" json:"directories,omitempty"`
3615	// If present, signifies that there are more results which the client can
3616	// retrieve by passing this as the page_token in a subsequent
3617	// [request][build.bazel.remote.execution.v2.GetTreeRequest].
3618	// If empty, signifies that this is the last page of results.
3619	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
3620}
3621
3622func (x *GetTreeResponse) Reset() {
3623	*x = GetTreeResponse{}
3624	if protoimpl.UnsafeEnabled {
3625		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[33]
3626		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3627		ms.StoreMessageInfo(mi)
3628	}
3629}
3630
3631func (x *GetTreeResponse) String() string {
3632	return protoimpl.X.MessageStringOf(x)
3633}
3634
3635func (*GetTreeResponse) ProtoMessage() {}
3636
3637func (x *GetTreeResponse) ProtoReflect() protoreflect.Message {
3638	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[33]
3639	if protoimpl.UnsafeEnabled && x != nil {
3640		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3641		if ms.LoadMessageInfo() == nil {
3642			ms.StoreMessageInfo(mi)
3643		}
3644		return ms
3645	}
3646	return mi.MessageOf(x)
3647}
3648
3649// Deprecated: Use GetTreeResponse.ProtoReflect.Descriptor instead.
3650func (*GetTreeResponse) Descriptor() ([]byte, []int) {
3651	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{33}
3652}
3653
3654func (x *GetTreeResponse) GetDirectories() []*Directory {
3655	if x != nil {
3656		return x.Directories
3657	}
3658	return nil
3659}
3660
3661func (x *GetTreeResponse) GetNextPageToken() string {
3662	if x != nil {
3663		return x.NextPageToken
3664	}
3665	return ""
3666}
3667
3668// A request message for
3669// [Capabilities.GetCapabilities][build.bazel.remote.execution.v2.Capabilities.GetCapabilities].
3670type GetCapabilitiesRequest struct {
3671	state         protoimpl.MessageState
3672	sizeCache     protoimpl.SizeCache
3673	unknownFields protoimpl.UnknownFields
3674
3675	// The instance of the execution system to operate against. A server may
3676	// support multiple instances of the execution system (with their own workers,
3677	// storage, caches, etc.). The server MAY require use of this field to select
3678	// between them in an implementation-defined fashion, otherwise it can be
3679	// omitted.
3680	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
3681}
3682
3683func (x *GetCapabilitiesRequest) Reset() {
3684	*x = GetCapabilitiesRequest{}
3685	if protoimpl.UnsafeEnabled {
3686		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[34]
3687		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3688		ms.StoreMessageInfo(mi)
3689	}
3690}
3691
3692func (x *GetCapabilitiesRequest) String() string {
3693	return protoimpl.X.MessageStringOf(x)
3694}
3695
3696func (*GetCapabilitiesRequest) ProtoMessage() {}
3697
3698func (x *GetCapabilitiesRequest) ProtoReflect() protoreflect.Message {
3699	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[34]
3700	if protoimpl.UnsafeEnabled && x != nil {
3701		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3702		if ms.LoadMessageInfo() == nil {
3703			ms.StoreMessageInfo(mi)
3704		}
3705		return ms
3706	}
3707	return mi.MessageOf(x)
3708}
3709
3710// Deprecated: Use GetCapabilitiesRequest.ProtoReflect.Descriptor instead.
3711func (*GetCapabilitiesRequest) Descriptor() ([]byte, []int) {
3712	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{34}
3713}
3714
3715func (x *GetCapabilitiesRequest) GetInstanceName() string {
3716	if x != nil {
3717		return x.InstanceName
3718	}
3719	return ""
3720}
3721
3722// A response message for
3723// [Capabilities.GetCapabilities][build.bazel.remote.execution.v2.Capabilities.GetCapabilities].
3724type ServerCapabilities struct {
3725	state         protoimpl.MessageState
3726	sizeCache     protoimpl.SizeCache
3727	unknownFields protoimpl.UnknownFields
3728
3729	// Capabilities of the remote cache system.
3730	CacheCapabilities *CacheCapabilities `protobuf:"bytes,1,opt,name=cache_capabilities,json=cacheCapabilities,proto3" json:"cache_capabilities,omitempty"`
3731	// Capabilities of the remote execution system.
3732	ExecutionCapabilities *ExecutionCapabilities `protobuf:"bytes,2,opt,name=execution_capabilities,json=executionCapabilities,proto3" json:"execution_capabilities,omitempty"`
3733	// Earliest RE API version supported, including deprecated versions.
3734	DeprecatedApiVersion *semver.SemVer `protobuf:"bytes,3,opt,name=deprecated_api_version,json=deprecatedApiVersion,proto3" json:"deprecated_api_version,omitempty"`
3735	// Earliest non-deprecated RE API version supported.
3736	LowApiVersion *semver.SemVer `protobuf:"bytes,4,opt,name=low_api_version,json=lowApiVersion,proto3" json:"low_api_version,omitempty"`
3737	// Latest RE API version supported.
3738	HighApiVersion *semver.SemVer `protobuf:"bytes,5,opt,name=high_api_version,json=highApiVersion,proto3" json:"high_api_version,omitempty"`
3739}
3740
3741func (x *ServerCapabilities) Reset() {
3742	*x = ServerCapabilities{}
3743	if protoimpl.UnsafeEnabled {
3744		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[35]
3745		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3746		ms.StoreMessageInfo(mi)
3747	}
3748}
3749
3750func (x *ServerCapabilities) String() string {
3751	return protoimpl.X.MessageStringOf(x)
3752}
3753
3754func (*ServerCapabilities) ProtoMessage() {}
3755
3756func (x *ServerCapabilities) ProtoReflect() protoreflect.Message {
3757	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[35]
3758	if protoimpl.UnsafeEnabled && x != nil {
3759		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3760		if ms.LoadMessageInfo() == nil {
3761			ms.StoreMessageInfo(mi)
3762		}
3763		return ms
3764	}
3765	return mi.MessageOf(x)
3766}
3767
3768// Deprecated: Use ServerCapabilities.ProtoReflect.Descriptor instead.
3769func (*ServerCapabilities) Descriptor() ([]byte, []int) {
3770	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{35}
3771}
3772
3773func (x *ServerCapabilities) GetCacheCapabilities() *CacheCapabilities {
3774	if x != nil {
3775		return x.CacheCapabilities
3776	}
3777	return nil
3778}
3779
3780func (x *ServerCapabilities) GetExecutionCapabilities() *ExecutionCapabilities {
3781	if x != nil {
3782		return x.ExecutionCapabilities
3783	}
3784	return nil
3785}
3786
3787func (x *ServerCapabilities) GetDeprecatedApiVersion() *semver.SemVer {
3788	if x != nil {
3789		return x.DeprecatedApiVersion
3790	}
3791	return nil
3792}
3793
3794func (x *ServerCapabilities) GetLowApiVersion() *semver.SemVer {
3795	if x != nil {
3796		return x.LowApiVersion
3797	}
3798	return nil
3799}
3800
3801func (x *ServerCapabilities) GetHighApiVersion() *semver.SemVer {
3802	if x != nil {
3803		return x.HighApiVersion
3804	}
3805	return nil
3806}
3807
3808// The digest function used for converting values into keys for CAS and Action
3809// Cache.
3810type DigestFunction struct {
3811	state         protoimpl.MessageState
3812	sizeCache     protoimpl.SizeCache
3813	unknownFields protoimpl.UnknownFields
3814}
3815
3816func (x *DigestFunction) Reset() {
3817	*x = DigestFunction{}
3818	if protoimpl.UnsafeEnabled {
3819		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[36]
3820		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3821		ms.StoreMessageInfo(mi)
3822	}
3823}
3824
3825func (x *DigestFunction) String() string {
3826	return protoimpl.X.MessageStringOf(x)
3827}
3828
3829func (*DigestFunction) ProtoMessage() {}
3830
3831func (x *DigestFunction) ProtoReflect() protoreflect.Message {
3832	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[36]
3833	if protoimpl.UnsafeEnabled && x != nil {
3834		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3835		if ms.LoadMessageInfo() == nil {
3836			ms.StoreMessageInfo(mi)
3837		}
3838		return ms
3839	}
3840	return mi.MessageOf(x)
3841}
3842
3843// Deprecated: Use DigestFunction.ProtoReflect.Descriptor instead.
3844func (*DigestFunction) Descriptor() ([]byte, []int) {
3845	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{36}
3846}
3847
3848// Describes the server/instance capabilities for updating the action cache.
3849type ActionCacheUpdateCapabilities struct {
3850	state         protoimpl.MessageState
3851	sizeCache     protoimpl.SizeCache
3852	unknownFields protoimpl.UnknownFields
3853
3854	UpdateEnabled bool `protobuf:"varint,1,opt,name=update_enabled,json=updateEnabled,proto3" json:"update_enabled,omitempty"`
3855}
3856
3857func (x *ActionCacheUpdateCapabilities) Reset() {
3858	*x = ActionCacheUpdateCapabilities{}
3859	if protoimpl.UnsafeEnabled {
3860		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[37]
3861		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3862		ms.StoreMessageInfo(mi)
3863	}
3864}
3865
3866func (x *ActionCacheUpdateCapabilities) String() string {
3867	return protoimpl.X.MessageStringOf(x)
3868}
3869
3870func (*ActionCacheUpdateCapabilities) ProtoMessage() {}
3871
3872func (x *ActionCacheUpdateCapabilities) ProtoReflect() protoreflect.Message {
3873	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[37]
3874	if protoimpl.UnsafeEnabled && x != nil {
3875		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3876		if ms.LoadMessageInfo() == nil {
3877			ms.StoreMessageInfo(mi)
3878		}
3879		return ms
3880	}
3881	return mi.MessageOf(x)
3882}
3883
3884// Deprecated: Use ActionCacheUpdateCapabilities.ProtoReflect.Descriptor instead.
3885func (*ActionCacheUpdateCapabilities) Descriptor() ([]byte, []int) {
3886	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{37}
3887}
3888
3889func (x *ActionCacheUpdateCapabilities) GetUpdateEnabled() bool {
3890	if x != nil {
3891		return x.UpdateEnabled
3892	}
3893	return false
3894}
3895
3896// Allowed values for priority in
3897// [ResultsCachePolicy][build.bazel.remoteexecution.v2.ResultsCachePolicy] and
3898// [ExecutionPolicy][build.bazel.remoteexecution.v2.ResultsCachePolicy]
3899// Used for querying both cache and execution valid priority ranges.
3900type PriorityCapabilities struct {
3901	state         protoimpl.MessageState
3902	sizeCache     protoimpl.SizeCache
3903	unknownFields protoimpl.UnknownFields
3904
3905	Priorities []*PriorityCapabilities_PriorityRange `protobuf:"bytes,1,rep,name=priorities,proto3" json:"priorities,omitempty"`
3906}
3907
3908func (x *PriorityCapabilities) Reset() {
3909	*x = PriorityCapabilities{}
3910	if protoimpl.UnsafeEnabled {
3911		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[38]
3912		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3913		ms.StoreMessageInfo(mi)
3914	}
3915}
3916
3917func (x *PriorityCapabilities) String() string {
3918	return protoimpl.X.MessageStringOf(x)
3919}
3920
3921func (*PriorityCapabilities) ProtoMessage() {}
3922
3923func (x *PriorityCapabilities) ProtoReflect() protoreflect.Message {
3924	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[38]
3925	if protoimpl.UnsafeEnabled && x != nil {
3926		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3927		if ms.LoadMessageInfo() == nil {
3928			ms.StoreMessageInfo(mi)
3929		}
3930		return ms
3931	}
3932	return mi.MessageOf(x)
3933}
3934
3935// Deprecated: Use PriorityCapabilities.ProtoReflect.Descriptor instead.
3936func (*PriorityCapabilities) Descriptor() ([]byte, []int) {
3937	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{38}
3938}
3939
3940func (x *PriorityCapabilities) GetPriorities() []*PriorityCapabilities_PriorityRange {
3941	if x != nil {
3942		return x.Priorities
3943	}
3944	return nil
3945}
3946
3947// Describes how the server treats absolute symlink targets.
3948type SymlinkAbsolutePathStrategy struct {
3949	state         protoimpl.MessageState
3950	sizeCache     protoimpl.SizeCache
3951	unknownFields protoimpl.UnknownFields
3952}
3953
3954func (x *SymlinkAbsolutePathStrategy) Reset() {
3955	*x = SymlinkAbsolutePathStrategy{}
3956	if protoimpl.UnsafeEnabled {
3957		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[39]
3958		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3959		ms.StoreMessageInfo(mi)
3960	}
3961}
3962
3963func (x *SymlinkAbsolutePathStrategy) String() string {
3964	return protoimpl.X.MessageStringOf(x)
3965}
3966
3967func (*SymlinkAbsolutePathStrategy) ProtoMessage() {}
3968
3969func (x *SymlinkAbsolutePathStrategy) ProtoReflect() protoreflect.Message {
3970	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[39]
3971	if protoimpl.UnsafeEnabled && x != nil {
3972		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3973		if ms.LoadMessageInfo() == nil {
3974			ms.StoreMessageInfo(mi)
3975		}
3976		return ms
3977	}
3978	return mi.MessageOf(x)
3979}
3980
3981// Deprecated: Use SymlinkAbsolutePathStrategy.ProtoReflect.Descriptor instead.
3982func (*SymlinkAbsolutePathStrategy) Descriptor() ([]byte, []int) {
3983	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{39}
3984}
3985
3986// Compression formats which may be supported.
3987type Compressor struct {
3988	state         protoimpl.MessageState
3989	sizeCache     protoimpl.SizeCache
3990	unknownFields protoimpl.UnknownFields
3991}
3992
3993func (x *Compressor) Reset() {
3994	*x = Compressor{}
3995	if protoimpl.UnsafeEnabled {
3996		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[40]
3997		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3998		ms.StoreMessageInfo(mi)
3999	}
4000}
4001
4002func (x *Compressor) String() string {
4003	return protoimpl.X.MessageStringOf(x)
4004}
4005
4006func (*Compressor) ProtoMessage() {}
4007
4008func (x *Compressor) ProtoReflect() protoreflect.Message {
4009	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[40]
4010	if protoimpl.UnsafeEnabled && x != nil {
4011		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4012		if ms.LoadMessageInfo() == nil {
4013			ms.StoreMessageInfo(mi)
4014		}
4015		return ms
4016	}
4017	return mi.MessageOf(x)
4018}
4019
4020// Deprecated: Use Compressor.ProtoReflect.Descriptor instead.
4021func (*Compressor) Descriptor() ([]byte, []int) {
4022	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{40}
4023}
4024
4025// Capabilities of the remote cache system.
4026type CacheCapabilities struct {
4027	state         protoimpl.MessageState
4028	sizeCache     protoimpl.SizeCache
4029	unknownFields protoimpl.UnknownFields
4030
4031	// All the digest functions supported by the remote cache.
4032	// Remote cache may support multiple digest functions simultaneously.
4033	DigestFunctions []DigestFunction_Value `protobuf:"varint,1,rep,packed,name=digest_functions,json=digestFunctions,proto3,enum=build.bazel.remote.execution.v2.DigestFunction_Value" json:"digest_functions,omitempty"`
4034	// Capabilities for updating the action cache.
4035	ActionCacheUpdateCapabilities *ActionCacheUpdateCapabilities `protobuf:"bytes,2,opt,name=action_cache_update_capabilities,json=actionCacheUpdateCapabilities,proto3" json:"action_cache_update_capabilities,omitempty"`
4036	// Supported cache priority range for both CAS and ActionCache.
4037	CachePriorityCapabilities *PriorityCapabilities `protobuf:"bytes,3,opt,name=cache_priority_capabilities,json=cachePriorityCapabilities,proto3" json:"cache_priority_capabilities,omitempty"`
4038	// Maximum total size of blobs to be uploaded/downloaded using
4039	// batch methods. A value of 0 means no limit is set, although
4040	// in practice there will always be a message size limitation
4041	// of the protocol in use, e.g. GRPC.
4042	MaxBatchTotalSizeBytes int64 `protobuf:"varint,4,opt,name=max_batch_total_size_bytes,json=maxBatchTotalSizeBytes,proto3" json:"max_batch_total_size_bytes,omitempty"`
4043	// Whether absolute symlink targets are supported.
4044	SymlinkAbsolutePathStrategy SymlinkAbsolutePathStrategy_Value `protobuf:"varint,5,opt,name=symlink_absolute_path_strategy,json=symlinkAbsolutePathStrategy,proto3,enum=build.bazel.remote.execution.v2.SymlinkAbsolutePathStrategy_Value" json:"symlink_absolute_path_strategy,omitempty"`
4045	// Compressors supported by the "compressed-blobs" bytestream resources.
4046	// Servers MUST support identity/no-compression, even if it is not listed
4047	// here.
4048	//
4049	// Note that this does not imply which if any compressors are supported by
4050	// the server at the gRPC level.
4051	SupportedCompressors []Compressor_Value `protobuf:"varint,6,rep,packed,name=supported_compressors,json=supportedCompressors,proto3,enum=build.bazel.remote.execution.v2.Compressor_Value" json:"supported_compressors,omitempty"`
4052	// Compressors supported for inlined data in
4053	// [BatchUpdateBlobs][build.bazel.remote.execution.v2.ContentAddressableStorage.BatchUpdateBlobs]
4054	// requests.
4055	SupportedBatchUpdateCompressors []Compressor_Value `protobuf:"varint,7,rep,packed,name=supported_batch_update_compressors,json=supportedBatchUpdateCompressors,proto3,enum=build.bazel.remote.execution.v2.Compressor_Value" json:"supported_batch_update_compressors,omitempty"`
4056}
4057
4058func (x *CacheCapabilities) Reset() {
4059	*x = CacheCapabilities{}
4060	if protoimpl.UnsafeEnabled {
4061		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[41]
4062		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4063		ms.StoreMessageInfo(mi)
4064	}
4065}
4066
4067func (x *CacheCapabilities) String() string {
4068	return protoimpl.X.MessageStringOf(x)
4069}
4070
4071func (*CacheCapabilities) ProtoMessage() {}
4072
4073func (x *CacheCapabilities) ProtoReflect() protoreflect.Message {
4074	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[41]
4075	if protoimpl.UnsafeEnabled && x != nil {
4076		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4077		if ms.LoadMessageInfo() == nil {
4078			ms.StoreMessageInfo(mi)
4079		}
4080		return ms
4081	}
4082	return mi.MessageOf(x)
4083}
4084
4085// Deprecated: Use CacheCapabilities.ProtoReflect.Descriptor instead.
4086func (*CacheCapabilities) Descriptor() ([]byte, []int) {
4087	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{41}
4088}
4089
4090func (x *CacheCapabilities) GetDigestFunctions() []DigestFunction_Value {
4091	if x != nil {
4092		return x.DigestFunctions
4093	}
4094	return nil
4095}
4096
4097func (x *CacheCapabilities) GetActionCacheUpdateCapabilities() *ActionCacheUpdateCapabilities {
4098	if x != nil {
4099		return x.ActionCacheUpdateCapabilities
4100	}
4101	return nil
4102}
4103
4104func (x *CacheCapabilities) GetCachePriorityCapabilities() *PriorityCapabilities {
4105	if x != nil {
4106		return x.CachePriorityCapabilities
4107	}
4108	return nil
4109}
4110
4111func (x *CacheCapabilities) GetMaxBatchTotalSizeBytes() int64 {
4112	if x != nil {
4113		return x.MaxBatchTotalSizeBytes
4114	}
4115	return 0
4116}
4117
4118func (x *CacheCapabilities) GetSymlinkAbsolutePathStrategy() SymlinkAbsolutePathStrategy_Value {
4119	if x != nil {
4120		return x.SymlinkAbsolutePathStrategy
4121	}
4122	return SymlinkAbsolutePathStrategy_UNKNOWN
4123}
4124
4125func (x *CacheCapabilities) GetSupportedCompressors() []Compressor_Value {
4126	if x != nil {
4127		return x.SupportedCompressors
4128	}
4129	return nil
4130}
4131
4132func (x *CacheCapabilities) GetSupportedBatchUpdateCompressors() []Compressor_Value {
4133	if x != nil {
4134		return x.SupportedBatchUpdateCompressors
4135	}
4136	return nil
4137}
4138
4139// Capabilities of the remote execution system.
4140type ExecutionCapabilities struct {
4141	state         protoimpl.MessageState
4142	sizeCache     protoimpl.SizeCache
4143	unknownFields protoimpl.UnknownFields
4144
4145	// Legacy field for indicating which digest function is supported by the
4146	// remote execution system. It MUST be set to a value other than UNKNOWN.
4147	// Implementations should consider the repeated digest_functions field
4148	// first, falling back to this singular field if digest_functions is unset.
4149	DigestFunction DigestFunction_Value `protobuf:"varint,1,opt,name=digest_function,json=digestFunction,proto3,enum=build.bazel.remote.execution.v2.DigestFunction_Value" json:"digest_function,omitempty"`
4150	// Whether remote execution is enabled for the particular server/instance.
4151	ExecEnabled bool `protobuf:"varint,2,opt,name=exec_enabled,json=execEnabled,proto3" json:"exec_enabled,omitempty"`
4152	// Supported execution priority range.
4153	ExecutionPriorityCapabilities *PriorityCapabilities `protobuf:"bytes,3,opt,name=execution_priority_capabilities,json=executionPriorityCapabilities,proto3" json:"execution_priority_capabilities,omitempty"`
4154	// Supported node properties.
4155	SupportedNodeProperties []string `protobuf:"bytes,4,rep,name=supported_node_properties,json=supportedNodeProperties,proto3" json:"supported_node_properties,omitempty"`
4156	// All the digest functions supported by the remote execution system.
4157	// If this field is set, it MUST also contain digest_function.
4158	//
4159	// Even if the remote execution system announces support for multiple
4160	// digest functions, individual execution requests may only reference
4161	// CAS objects using a single digest function. For example, it is not
4162	// permitted to execute actions having both MD5 and SHA-256 hashed
4163	// files in their input root.
4164	//
4165	// The CAS objects referenced by action results generated by the
4166	// remote execution system MUST use the same digest function as the
4167	// one used to construct the action.
4168	DigestFunctions []DigestFunction_Value `protobuf:"varint,5,rep,packed,name=digest_functions,json=digestFunctions,proto3,enum=build.bazel.remote.execution.v2.DigestFunction_Value" json:"digest_functions,omitempty"`
4169}
4170
4171func (x *ExecutionCapabilities) Reset() {
4172	*x = ExecutionCapabilities{}
4173	if protoimpl.UnsafeEnabled {
4174		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[42]
4175		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4176		ms.StoreMessageInfo(mi)
4177	}
4178}
4179
4180func (x *ExecutionCapabilities) String() string {
4181	return protoimpl.X.MessageStringOf(x)
4182}
4183
4184func (*ExecutionCapabilities) ProtoMessage() {}
4185
4186func (x *ExecutionCapabilities) ProtoReflect() protoreflect.Message {
4187	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[42]
4188	if protoimpl.UnsafeEnabled && x != nil {
4189		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4190		if ms.LoadMessageInfo() == nil {
4191			ms.StoreMessageInfo(mi)
4192		}
4193		return ms
4194	}
4195	return mi.MessageOf(x)
4196}
4197
4198// Deprecated: Use ExecutionCapabilities.ProtoReflect.Descriptor instead.
4199func (*ExecutionCapabilities) Descriptor() ([]byte, []int) {
4200	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{42}
4201}
4202
4203func (x *ExecutionCapabilities) GetDigestFunction() DigestFunction_Value {
4204	if x != nil {
4205		return x.DigestFunction
4206	}
4207	return DigestFunction_UNKNOWN
4208}
4209
4210func (x *ExecutionCapabilities) GetExecEnabled() bool {
4211	if x != nil {
4212		return x.ExecEnabled
4213	}
4214	return false
4215}
4216
4217func (x *ExecutionCapabilities) GetExecutionPriorityCapabilities() *PriorityCapabilities {
4218	if x != nil {
4219		return x.ExecutionPriorityCapabilities
4220	}
4221	return nil
4222}
4223
4224func (x *ExecutionCapabilities) GetSupportedNodeProperties() []string {
4225	if x != nil {
4226		return x.SupportedNodeProperties
4227	}
4228	return nil
4229}
4230
4231func (x *ExecutionCapabilities) GetDigestFunctions() []DigestFunction_Value {
4232	if x != nil {
4233		return x.DigestFunctions
4234	}
4235	return nil
4236}
4237
4238// Details for the tool used to call the API.
4239type ToolDetails struct {
4240	state         protoimpl.MessageState
4241	sizeCache     protoimpl.SizeCache
4242	unknownFields protoimpl.UnknownFields
4243
4244	// Name of the tool, e.g. bazel.
4245	ToolName string `protobuf:"bytes,1,opt,name=tool_name,json=toolName,proto3" json:"tool_name,omitempty"`
4246	// Version of the tool used for the request, e.g. 5.0.3.
4247	ToolVersion string `protobuf:"bytes,2,opt,name=tool_version,json=toolVersion,proto3" json:"tool_version,omitempty"`
4248}
4249
4250func (x *ToolDetails) Reset() {
4251	*x = ToolDetails{}
4252	if protoimpl.UnsafeEnabled {
4253		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[43]
4254		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4255		ms.StoreMessageInfo(mi)
4256	}
4257}
4258
4259func (x *ToolDetails) String() string {
4260	return protoimpl.X.MessageStringOf(x)
4261}
4262
4263func (*ToolDetails) ProtoMessage() {}
4264
4265func (x *ToolDetails) ProtoReflect() protoreflect.Message {
4266	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[43]
4267	if protoimpl.UnsafeEnabled && x != nil {
4268		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4269		if ms.LoadMessageInfo() == nil {
4270			ms.StoreMessageInfo(mi)
4271		}
4272		return ms
4273	}
4274	return mi.MessageOf(x)
4275}
4276
4277// Deprecated: Use ToolDetails.ProtoReflect.Descriptor instead.
4278func (*ToolDetails) Descriptor() ([]byte, []int) {
4279	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{43}
4280}
4281
4282func (x *ToolDetails) GetToolName() string {
4283	if x != nil {
4284		return x.ToolName
4285	}
4286	return ""
4287}
4288
4289func (x *ToolDetails) GetToolVersion() string {
4290	if x != nil {
4291		return x.ToolVersion
4292	}
4293	return ""
4294}
4295
4296// An optional Metadata to attach to any RPC request to tell the server about an
4297// external context of the request. The server may use this for logging or other
4298// purposes. To use it, the client attaches the header to the call using the
4299// canonical proto serialization:
4300//
4301// * name: `build.bazel.remote.execution.v2.requestmetadata-bin`
4302// * contents: the base64 encoded binary `RequestMetadata` message.
4303// Note: the gRPC library serializes binary headers encoded in base64 by
4304// default (https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests).
4305// Therefore, if the gRPC library is used to pass/retrieve this
4306// metadata, the user may ignore the base64 encoding and assume it is simply
4307// serialized as a binary message.
4308type RequestMetadata struct {
4309	state         protoimpl.MessageState
4310	sizeCache     protoimpl.SizeCache
4311	unknownFields protoimpl.UnknownFields
4312
4313	// The details for the tool invoking the requests.
4314	ToolDetails *ToolDetails `protobuf:"bytes,1,opt,name=tool_details,json=toolDetails,proto3" json:"tool_details,omitempty"`
4315	// An identifier that ties multiple requests to the same action.
4316	// For example, multiple requests to the CAS, Action Cache, and Execution
4317	// API are used in order to compile foo.cc.
4318	ActionId string `protobuf:"bytes,2,opt,name=action_id,json=actionId,proto3" json:"action_id,omitempty"`
4319	// An identifier that ties multiple actions together to a final result.
4320	// For example, multiple actions are required to build and run foo_test.
4321	ToolInvocationId string `protobuf:"bytes,3,opt,name=tool_invocation_id,json=toolInvocationId,proto3" json:"tool_invocation_id,omitempty"`
4322	// An identifier to tie multiple tool invocations together. For example,
4323	// runs of foo_test, bar_test and baz_test on a post-submit of a given patch.
4324	CorrelatedInvocationsId string `protobuf:"bytes,4,opt,name=correlated_invocations_id,json=correlatedInvocationsId,proto3" json:"correlated_invocations_id,omitempty"`
4325	// A brief description of the kind of action, for example, CppCompile or GoLink.
4326	// There is no standard agreed set of values for this, and they are expected to vary between different client tools.
4327	ActionMnemonic string `protobuf:"bytes,5,opt,name=action_mnemonic,json=actionMnemonic,proto3" json:"action_mnemonic,omitempty"`
4328	// An identifier for the target which produced this action.
4329	// No guarantees are made around how many actions may relate to a single target.
4330	TargetId string `protobuf:"bytes,6,opt,name=target_id,json=targetId,proto3" json:"target_id,omitempty"`
4331	// An identifier for the configuration in which the target was built,
4332	// e.g. for differentiating building host tools or different target platforms.
4333	// There is no expectation that this value will have any particular structure,
4334	// or equality across invocations, though some client tools may offer these guarantees.
4335	ConfigurationId string `protobuf:"bytes,7,opt,name=configuration_id,json=configurationId,proto3" json:"configuration_id,omitempty"`
4336}
4337
4338func (x *RequestMetadata) Reset() {
4339	*x = RequestMetadata{}
4340	if protoimpl.UnsafeEnabled {
4341		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[44]
4342		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4343		ms.StoreMessageInfo(mi)
4344	}
4345}
4346
4347func (x *RequestMetadata) String() string {
4348	return protoimpl.X.MessageStringOf(x)
4349}
4350
4351func (*RequestMetadata) ProtoMessage() {}
4352
4353func (x *RequestMetadata) ProtoReflect() protoreflect.Message {
4354	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[44]
4355	if protoimpl.UnsafeEnabled && x != nil {
4356		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4357		if ms.LoadMessageInfo() == nil {
4358			ms.StoreMessageInfo(mi)
4359		}
4360		return ms
4361	}
4362	return mi.MessageOf(x)
4363}
4364
4365// Deprecated: Use RequestMetadata.ProtoReflect.Descriptor instead.
4366func (*RequestMetadata) Descriptor() ([]byte, []int) {
4367	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{44}
4368}
4369
4370func (x *RequestMetadata) GetToolDetails() *ToolDetails {
4371	if x != nil {
4372		return x.ToolDetails
4373	}
4374	return nil
4375}
4376
4377func (x *RequestMetadata) GetActionId() string {
4378	if x != nil {
4379		return x.ActionId
4380	}
4381	return ""
4382}
4383
4384func (x *RequestMetadata) GetToolInvocationId() string {
4385	if x != nil {
4386		return x.ToolInvocationId
4387	}
4388	return ""
4389}
4390
4391func (x *RequestMetadata) GetCorrelatedInvocationsId() string {
4392	if x != nil {
4393		return x.CorrelatedInvocationsId
4394	}
4395	return ""
4396}
4397
4398func (x *RequestMetadata) GetActionMnemonic() string {
4399	if x != nil {
4400		return x.ActionMnemonic
4401	}
4402	return ""
4403}
4404
4405func (x *RequestMetadata) GetTargetId() string {
4406	if x != nil {
4407		return x.TargetId
4408	}
4409	return ""
4410}
4411
4412func (x *RequestMetadata) GetConfigurationId() string {
4413	if x != nil {
4414		return x.ConfigurationId
4415	}
4416	return ""
4417}
4418
4419// An `EnvironmentVariable` is one variable to set in the running program's
4420// environment.
4421type Command_EnvironmentVariable struct {
4422	state         protoimpl.MessageState
4423	sizeCache     protoimpl.SizeCache
4424	unknownFields protoimpl.UnknownFields
4425
4426	// The variable name.
4427	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
4428	// The variable value.
4429	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
4430}
4431
4432func (x *Command_EnvironmentVariable) Reset() {
4433	*x = Command_EnvironmentVariable{}
4434	if protoimpl.UnsafeEnabled {
4435		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[45]
4436		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4437		ms.StoreMessageInfo(mi)
4438	}
4439}
4440
4441func (x *Command_EnvironmentVariable) String() string {
4442	return protoimpl.X.MessageStringOf(x)
4443}
4444
4445func (*Command_EnvironmentVariable) ProtoMessage() {}
4446
4447func (x *Command_EnvironmentVariable) ProtoReflect() protoreflect.Message {
4448	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[45]
4449	if protoimpl.UnsafeEnabled && x != nil {
4450		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4451		if ms.LoadMessageInfo() == nil {
4452			ms.StoreMessageInfo(mi)
4453		}
4454		return ms
4455	}
4456	return mi.MessageOf(x)
4457}
4458
4459// Deprecated: Use Command_EnvironmentVariable.ProtoReflect.Descriptor instead.
4460func (*Command_EnvironmentVariable) Descriptor() ([]byte, []int) {
4461	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{1, 0}
4462}
4463
4464func (x *Command_EnvironmentVariable) GetName() string {
4465	if x != nil {
4466		return x.Name
4467	}
4468	return ""
4469}
4470
4471func (x *Command_EnvironmentVariable) GetValue() string {
4472	if x != nil {
4473		return x.Value
4474	}
4475	return ""
4476}
4477
4478// A single property for the environment. The server is responsible for
4479// specifying the property `name`s that it accepts. If an unknown `name` is
4480// provided in the requirements for an
4481// [Action][build.bazel.remote.execution.v2.Action], the server SHOULD
4482// reject the execution request. If permitted by the server, the same `name`
4483// may occur multiple times.
4484//
4485// The server is also responsible for specifying the interpretation of
4486// property `value`s. For instance, a property describing how much RAM must be
4487// available may be interpreted as allowing a worker with 16GB to fulfill a
4488// request for 8GB, while a property describing the OS environment on which
4489// the action must be performed may require an exact match with the worker's
4490// OS.
4491//
4492// The server MAY use the `value` of one or more properties to determine how
4493// it sets up the execution environment, such as by making specific system
4494// files available to the worker.
4495//
4496// Both names and values are typically case-sensitive. Note that the platform
4497// is implicitly part of the action digest, so even tiny changes in the names
4498// or values (like changing case) may result in different action cache
4499// entries.
4500type Platform_Property struct {
4501	state         protoimpl.MessageState
4502	sizeCache     protoimpl.SizeCache
4503	unknownFields protoimpl.UnknownFields
4504
4505	// The property name.
4506	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
4507	// The property value.
4508	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
4509}
4510
4511func (x *Platform_Property) Reset() {
4512	*x = Platform_Property{}
4513	if protoimpl.UnsafeEnabled {
4514		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[46]
4515		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4516		ms.StoreMessageInfo(mi)
4517	}
4518}
4519
4520func (x *Platform_Property) String() string {
4521	return protoimpl.X.MessageStringOf(x)
4522}
4523
4524func (*Platform_Property) ProtoMessage() {}
4525
4526func (x *Platform_Property) ProtoReflect() protoreflect.Message {
4527	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[46]
4528	if protoimpl.UnsafeEnabled && x != nil {
4529		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4530		if ms.LoadMessageInfo() == nil {
4531			ms.StoreMessageInfo(mi)
4532		}
4533		return ms
4534	}
4535	return mi.MessageOf(x)
4536}
4537
4538// Deprecated: Use Platform_Property.ProtoReflect.Descriptor instead.
4539func (*Platform_Property) Descriptor() ([]byte, []int) {
4540	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{2, 0}
4541}
4542
4543func (x *Platform_Property) GetName() string {
4544	if x != nil {
4545		return x.Name
4546	}
4547	return ""
4548}
4549
4550func (x *Platform_Property) GetValue() string {
4551	if x != nil {
4552		return x.Value
4553	}
4554	return ""
4555}
4556
4557// A request corresponding to a single blob that the client wants to upload.
4558type BatchUpdateBlobsRequest_Request struct {
4559	state         protoimpl.MessageState
4560	sizeCache     protoimpl.SizeCache
4561	unknownFields protoimpl.UnknownFields
4562
4563	// The digest of the blob. This MUST be the digest of `data`. All
4564	// digests MUST use the same digest function.
4565	Digest *Digest `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"`
4566	// The raw binary data.
4567	Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
4568	// The format of `data`. Must be `IDENTITY`/unspecified, or one of the
4569	// compressors advertised by the
4570	// [CacheCapabilities.supported_batch_compressors][build.bazel.remote.execution.v2.CacheCapabilities.supported_batch_compressors]
4571	// field.
4572	Compressor Compressor_Value `protobuf:"varint,3,opt,name=compressor,proto3,enum=build.bazel.remote.execution.v2.Compressor_Value" json:"compressor,omitempty"`
4573}
4574
4575func (x *BatchUpdateBlobsRequest_Request) Reset() {
4576	*x = BatchUpdateBlobsRequest_Request{}
4577	if protoimpl.UnsafeEnabled {
4578		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[48]
4579		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4580		ms.StoreMessageInfo(mi)
4581	}
4582}
4583
4584func (x *BatchUpdateBlobsRequest_Request) String() string {
4585	return protoimpl.X.MessageStringOf(x)
4586}
4587
4588func (*BatchUpdateBlobsRequest_Request) ProtoMessage() {}
4589
4590func (x *BatchUpdateBlobsRequest_Request) ProtoReflect() protoreflect.Message {
4591	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[48]
4592	if protoimpl.UnsafeEnabled && x != nil {
4593		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4594		if ms.LoadMessageInfo() == nil {
4595			ms.StoreMessageInfo(mi)
4596		}
4597		return ms
4598	}
4599	return mi.MessageOf(x)
4600}
4601
4602// Deprecated: Use BatchUpdateBlobsRequest_Request.ProtoReflect.Descriptor instead.
4603func (*BatchUpdateBlobsRequest_Request) Descriptor() ([]byte, []int) {
4604	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{28, 0}
4605}
4606
4607func (x *BatchUpdateBlobsRequest_Request) GetDigest() *Digest {
4608	if x != nil {
4609		return x.Digest
4610	}
4611	return nil
4612}
4613
4614func (x *BatchUpdateBlobsRequest_Request) GetData() []byte {
4615	if x != nil {
4616		return x.Data
4617	}
4618	return nil
4619}
4620
4621func (x *BatchUpdateBlobsRequest_Request) GetCompressor() Compressor_Value {
4622	if x != nil {
4623		return x.Compressor
4624	}
4625	return Compressor_IDENTITY
4626}
4627
4628// A response corresponding to a single blob that the client tried to upload.
4629type BatchUpdateBlobsResponse_Response struct {
4630	state         protoimpl.MessageState
4631	sizeCache     protoimpl.SizeCache
4632	unknownFields protoimpl.UnknownFields
4633
4634	// The blob digest to which this response corresponds.
4635	Digest *Digest `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"`
4636	// The result of attempting to upload that blob.
4637	Status *status.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
4638}
4639
4640func (x *BatchUpdateBlobsResponse_Response) Reset() {
4641	*x = BatchUpdateBlobsResponse_Response{}
4642	if protoimpl.UnsafeEnabled {
4643		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[49]
4644		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4645		ms.StoreMessageInfo(mi)
4646	}
4647}
4648
4649func (x *BatchUpdateBlobsResponse_Response) String() string {
4650	return protoimpl.X.MessageStringOf(x)
4651}
4652
4653func (*BatchUpdateBlobsResponse_Response) ProtoMessage() {}
4654
4655func (x *BatchUpdateBlobsResponse_Response) ProtoReflect() protoreflect.Message {
4656	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[49]
4657	if protoimpl.UnsafeEnabled && x != nil {
4658		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4659		if ms.LoadMessageInfo() == nil {
4660			ms.StoreMessageInfo(mi)
4661		}
4662		return ms
4663	}
4664	return mi.MessageOf(x)
4665}
4666
4667// Deprecated: Use BatchUpdateBlobsResponse_Response.ProtoReflect.Descriptor instead.
4668func (*BatchUpdateBlobsResponse_Response) Descriptor() ([]byte, []int) {
4669	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{29, 0}
4670}
4671
4672func (x *BatchUpdateBlobsResponse_Response) GetDigest() *Digest {
4673	if x != nil {
4674		return x.Digest
4675	}
4676	return nil
4677}
4678
4679func (x *BatchUpdateBlobsResponse_Response) GetStatus() *status.Status {
4680	if x != nil {
4681		return x.Status
4682	}
4683	return nil
4684}
4685
4686// A response corresponding to a single blob that the client tried to download.
4687type BatchReadBlobsResponse_Response struct {
4688	state         protoimpl.MessageState
4689	sizeCache     protoimpl.SizeCache
4690	unknownFields protoimpl.UnknownFields
4691
4692	// The digest to which this response corresponds.
4693	Digest *Digest `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"`
4694	// The raw binary data.
4695	Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
4696	// The format the data is encoded in. MUST be `IDENTITY`/unspecified,
4697	// or one of the acceptable compressors specified in the `BatchReadBlobsRequest`.
4698	Compressor Compressor_Value `protobuf:"varint,4,opt,name=compressor,proto3,enum=build.bazel.remote.execution.v2.Compressor_Value" json:"compressor,omitempty"`
4699	// The result of attempting to download that blob.
4700	Status *status.Status `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
4701}
4702
4703func (x *BatchReadBlobsResponse_Response) Reset() {
4704	*x = BatchReadBlobsResponse_Response{}
4705	if protoimpl.UnsafeEnabled {
4706		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[50]
4707		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4708		ms.StoreMessageInfo(mi)
4709	}
4710}
4711
4712func (x *BatchReadBlobsResponse_Response) String() string {
4713	return protoimpl.X.MessageStringOf(x)
4714}
4715
4716func (*BatchReadBlobsResponse_Response) ProtoMessage() {}
4717
4718func (x *BatchReadBlobsResponse_Response) ProtoReflect() protoreflect.Message {
4719	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[50]
4720	if protoimpl.UnsafeEnabled && x != nil {
4721		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4722		if ms.LoadMessageInfo() == nil {
4723			ms.StoreMessageInfo(mi)
4724		}
4725		return ms
4726	}
4727	return mi.MessageOf(x)
4728}
4729
4730// Deprecated: Use BatchReadBlobsResponse_Response.ProtoReflect.Descriptor instead.
4731func (*BatchReadBlobsResponse_Response) Descriptor() ([]byte, []int) {
4732	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{31, 0}
4733}
4734
4735func (x *BatchReadBlobsResponse_Response) GetDigest() *Digest {
4736	if x != nil {
4737		return x.Digest
4738	}
4739	return nil
4740}
4741
4742func (x *BatchReadBlobsResponse_Response) GetData() []byte {
4743	if x != nil {
4744		return x.Data
4745	}
4746	return nil
4747}
4748
4749func (x *BatchReadBlobsResponse_Response) GetCompressor() Compressor_Value {
4750	if x != nil {
4751		return x.Compressor
4752	}
4753	return Compressor_IDENTITY
4754}
4755
4756func (x *BatchReadBlobsResponse_Response) GetStatus() *status.Status {
4757	if x != nil {
4758		return x.Status
4759	}
4760	return nil
4761}
4762
4763// Supported range of priorities, including boundaries.
4764type PriorityCapabilities_PriorityRange struct {
4765	state         protoimpl.MessageState
4766	sizeCache     protoimpl.SizeCache
4767	unknownFields protoimpl.UnknownFields
4768
4769	// The minimum numeric value for this priority range, which represents the
4770	// most urgent task or longest retained item.
4771	MinPriority int32 `protobuf:"varint,1,opt,name=min_priority,json=minPriority,proto3" json:"min_priority,omitempty"`
4772	// The maximum numeric value for this priority range, which represents the
4773	// least urgent task or shortest retained item.
4774	MaxPriority int32 `protobuf:"varint,2,opt,name=max_priority,json=maxPriority,proto3" json:"max_priority,omitempty"`
4775}
4776
4777func (x *PriorityCapabilities_PriorityRange) Reset() {
4778	*x = PriorityCapabilities_PriorityRange{}
4779	if protoimpl.UnsafeEnabled {
4780		mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[51]
4781		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4782		ms.StoreMessageInfo(mi)
4783	}
4784}
4785
4786func (x *PriorityCapabilities_PriorityRange) String() string {
4787	return protoimpl.X.MessageStringOf(x)
4788}
4789
4790func (*PriorityCapabilities_PriorityRange) ProtoMessage() {}
4791
4792func (x *PriorityCapabilities_PriorityRange) ProtoReflect() protoreflect.Message {
4793	mi := &file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[51]
4794	if protoimpl.UnsafeEnabled && x != nil {
4795		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4796		if ms.LoadMessageInfo() == nil {
4797			ms.StoreMessageInfo(mi)
4798		}
4799		return ms
4800	}
4801	return mi.MessageOf(x)
4802}
4803
4804// Deprecated: Use PriorityCapabilities_PriorityRange.ProtoReflect.Descriptor instead.
4805func (*PriorityCapabilities_PriorityRange) Descriptor() ([]byte, []int) {
4806	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP(), []int{38, 0}
4807}
4808
4809func (x *PriorityCapabilities_PriorityRange) GetMinPriority() int32 {
4810	if x != nil {
4811		return x.MinPriority
4812	}
4813	return 0
4814}
4815
4816func (x *PriorityCapabilities_PriorityRange) GetMaxPriority() int32 {
4817	if x != nil {
4818		return x.MaxPriority
4819	}
4820	return 0
4821}
4822
4823var File_build_bazel_remote_execution_v2_remote_execution_proto protoreflect.FileDescriptor
4824
4825var file_build_bazel_remote_execution_v2_remote_execution_proto_rawDesc = []byte{
4826	0x0a, 0x36, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2f, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2f, 0x72, 0x65,
4827	0x6d, 0x6f, 0x74, 0x65, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
4828	0x32, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
4829	0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e,
4830	0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65,
4831	0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x1a, 0x1f, 0x62, 0x75, 0x69, 0x6c, 0x64,
4832	0x2f, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2f, 0x73, 0x65, 0x6d, 0x76, 0x65, 0x72, 0x2f, 0x73, 0x65,
4833	0x6d, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67,
4834	0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
4835	0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
4836	0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65,
4837	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67,
4838	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61,
4839	0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
4840	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69,
4841	0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
4842	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
4843	0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
4844	0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70,
4845	0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
4846	0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
4847	0x74, 0x6f, 0x22, 0xeb, 0x02, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a,
4848	0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18,
4849	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61,
4850	0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75,
4851	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x0d,
4852	0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x53, 0x0a,
4853	0x11, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x67, 0x65,
4854	0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64,
4855	0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78,
4856	0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73,
4857	0x74, 0x52, 0x0f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x67, 0x65,
4858	0x73, 0x74, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20,
4859	0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
4860	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07,
4861	0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x64, 0x6f, 0x5f, 0x6e, 0x6f,
4862	0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64,
4863	0x6f, 0x4e, 0x6f, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x61, 0x6c,
4864	0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x12, 0x45, 0x0a,
4865	0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32,
4866	0x29, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65,
4867	0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
4868	0x32, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74,
4869	0x66, 0x6f, 0x72, 0x6d, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09,
4870	0x22, 0xd2, 0x05, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09,
4871	0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52,
4872	0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x71, 0x0a, 0x15, 0x65, 0x6e,
4873	0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62,
4874	0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x62, 0x75, 0x69, 0x6c,
4875	0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65,
4876	0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
4877	0x61, 0x6e, 0x64, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56,
4878	0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x14, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e,
4879	0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x0a,
4880	0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20,
4881	0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46,
4882	0x69, 0x6c, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64,
4883	0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09,
4884	0x42, 0x02, 0x18, 0x01, 0x52, 0x11, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x69, 0x72, 0x65,
4885	0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75,
4886	0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x6f,
4887	0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x49, 0x0a, 0x08, 0x70, 0x6c,
4888	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x62,
4889	0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74,
4890	0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50,
4891	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x70, 0x6c, 0x61,
4892	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67,
4893	0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
4894	0x52, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f,
4895	0x72, 0x79, 0x12, 0x34, 0x0a, 0x16, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x6e, 0x6f, 0x64,
4896	0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03,
4897	0x28, 0x09, 0x52, 0x14, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72,
4898	0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x76, 0x0a, 0x17, 0x6f, 0x75, 0x74, 0x70,
4899	0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x66, 0x6f, 0x72,
4900	0x6d, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x62, 0x75, 0x69, 0x6c,
4901	0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65,
4902	0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
4903	0x61, 0x6e, 0x64, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74,
4904	0x6f, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x15, 0x6f, 0x75, 0x74, 0x70, 0x75,
4905	0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74,
4906	0x1a, 0x3f, 0x0a, 0x13, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56,
4907	0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
4908	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76,
4909	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
4910	0x65, 0x22, 0x52, 0x0a, 0x15, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63,
4911	0x74, 0x6f, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x52,
4912	0x45, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x49, 0x52,
4913	0x45, 0x43, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x16, 0x0a,
4914	0x12, 0x54, 0x52, 0x45, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54,
4915	0x4f, 0x52, 0x59, 0x10, 0x02, 0x22, 0x94, 0x01, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f,
4916	0x72, 0x6d, 0x12, 0x52, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73,
4917	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62,
4918	0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63,
4919	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
4920	0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70,
4921	0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x34, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
4922	0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
4923	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
4924	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc8, 0x02, 0x0a,
4925	0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x3f, 0x0a, 0x05, 0x66, 0x69,
4926	0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x62, 0x75, 0x69, 0x6c,
4927	0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65,
4928	0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6c, 0x65,
4929	0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0b, 0x64,
4930	0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
4931	0x32, 0x2e, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72,
4932	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
4933	0x76, 0x32, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65,
4934	0x52, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x48, 0x0a,
4935	0x08, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
4936	0x2c, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65,
4937	0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
4938	0x32, 0x2e, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x08, 0x73,
4939	0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x58, 0x0a, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x5f,
4940	0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
4941	0x32, 0x2f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72,
4942	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
4943	0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
4944	0x73, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
4945	0x73, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0x38, 0x0a, 0x0c, 0x4e, 0x6f, 0x64, 0x65, 0x50,
4946	0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
4947	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76,
4948	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
4949	0x65, 0x22, 0xcc, 0x01, 0x0a, 0x0e, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
4950	0x74, 0x69, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69,
4951	0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64,
4952	0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78,
4953	0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x50,
4954	0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
4955	0x69, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
4956	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
4957	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05,
4958	0x6d, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6d, 0x6f,
4959	0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
4960	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33,
4961	0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x78, 0x4d, 0x6f, 0x64, 0x65,
4962	0x22, 0xea, 0x01, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a,
4963	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
4964	0x65, 0x12, 0x3f, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
4965	0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e,
4966	0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
4967	0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65,
4968	0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61,
4969	0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x45, 0x78, 0x65,
4970	0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x5f,
4971	0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
4972	0x32, 0x2f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72,
4973	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
4974	0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
4975	0x73, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
4976	0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0x64, 0x0a,
4977	0x0d, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x12,
4978	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
4979	0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01,
4980	0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c,
4981	0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
4982	0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x06, 0x64, 0x69, 0x67,
4983	0x65, 0x73, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x0b, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x4e,
4984	0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
4985	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65,
4986	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12,
4987	0x58, 0x0a, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69,
4988	0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64,
4989	0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78,
4990	0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x50,
4991	0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x50,
4992	0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22,
4993	0x3b, 0x0a, 0x06, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73,
4994	0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1d, 0x0a,
4995	0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
4996	0x03, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0xfd, 0x07, 0x0a,
4997	0x16, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d,
4998	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x65,
4999	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x12,
5000	0x45, 0x0a, 0x10, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
5001	0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
5002	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
5003	0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x54, 0x69, 0x6d,
5004	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x50, 0x0a, 0x16, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72,
5005	0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
5006	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
5007	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
5008	0x6d, 0x70, 0x52, 0x14, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54,
5009	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x58, 0x0a, 0x1a, 0x77, 0x6f, 0x72, 0x6b,
5010	0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d,
5011	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
5012	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
5013	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x18, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72,
5014	0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
5015	0x6d, 0x70, 0x12, 0x59, 0x0a, 0x1b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x65, 0x74, 0x63,
5016	0x68, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
5017	0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
5018	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
5019	0x61, 0x6d, 0x70, 0x52, 0x18, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x65, 0x74, 0x63, 0x68, 0x53,
5020	0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x61, 0x0a,
5021	0x1f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6d,
5022	0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
5023	0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
5024	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
5025	0x6d, 0x70, 0x52, 0x1c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x65, 0x74, 0x63, 0x68, 0x43, 0x6f,
5026	0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
5027	0x12, 0x56, 0x0a, 0x19, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74,
5028	0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20,
5029	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
5030	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
5031	0x17, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54,
5032	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x5e, 0x0a, 0x1d, 0x65, 0x78, 0x65, 0x63,
5033	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f,
5034	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
5035	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
5036	0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x1b, 0x65, 0x78, 0x65,
5037	0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54,
5038	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x57, 0x0a, 0x1a, 0x76, 0x69, 0x72, 0x74,
5039	0x75, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x75,
5040	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
5041	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
5042	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x18, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c,
5043	0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
5044	0x6e, 0x12, 0x5d, 0x0a, 0x1d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x75, 0x70, 0x6c, 0x6f,
5045	0x61, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
5046	0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
5047	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
5048	0x74, 0x61, 0x6d, 0x70, 0x52, 0x1a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x55, 0x70, 0x6c, 0x6f,
5049	0x61, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
5050	0x12, 0x65, 0x0a, 0x21, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61,
5051	0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65,
5052	0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
5053	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
5054	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x1e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x55,
5055	0x70, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x69,
5056	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x43, 0x0a, 0x12, 0x61, 0x75, 0x78, 0x69, 0x6c,
5057	0x69, 0x61, 0x72, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20,
5058	0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
5059	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x11, 0x61, 0x75, 0x78, 0x69, 0x6c,
5060	0x69, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xd3, 0x06, 0x0a,
5061	0x0c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4e, 0x0a,
5062	0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20,
5063	0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65,
5064	0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
5065	0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65,
5066	0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x64, 0x0a,
5067	0x14, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x79, 0x6d,
5068	0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x75,
5069	0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
5070	0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x75,
5071	0x74, 0x70, 0x75, 0x74, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x02, 0x18, 0x01, 0x52,
5072	0x12, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x79, 0x6d, 0x6c, 0x69,
5073	0x6e, 0x6b, 0x73, 0x12, 0x57, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x73, 0x79,
5074	0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62,
5075	0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74,
5076	0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f,
5077	0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x0e, 0x6f, 0x75,
5078	0x74, 0x70, 0x75, 0x74, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x5f, 0x0a, 0x12,
5079	0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69,
5080	0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64,
5081	0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78,
5082	0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75,
5083	0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x11, 0x6f, 0x75, 0x74, 0x70,
5084	0x75, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x6e, 0x0a,
5085	0x19, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72,
5086	0x79, 0x5f, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b,
5087	0x32, 0x2e, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72,
5088	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
5089	0x76, 0x32, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b,
5090	0x42, 0x02, 0x18, 0x01, 0x52, 0x17, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x69, 0x72, 0x65,
5091	0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x1b, 0x0a,
5092	0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
5093	0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74,
5094	0x64, 0x6f, 0x75, 0x74, 0x5f, 0x72, 0x61, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09,
5095	0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x52, 0x61, 0x77, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x74, 0x64,
5096	0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
5097	0x32, 0x27, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72,
5098	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
5099	0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x73, 0x74, 0x64, 0x6f, 0x75,
5100	0x74, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x64, 0x65, 0x72,
5101	0x72, 0x5f, 0x72, 0x61, 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x74, 0x64,
5102	0x65, 0x72, 0x72, 0x52, 0x61, 0x77, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72,
5103	0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e,
5104	0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f,
5105	0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e,
5106	0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x44, 0x69,
5107	0x67, 0x65, 0x73, 0x74, 0x12, 0x66, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
5108	0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
5109	0x32, 0x37, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72,
5110	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
5111	0x76, 0x32, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f,
5112	0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75,
5113	0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x04, 0x08, 0x01,
5114	0x10, 0x02, 0x22, 0x88, 0x02, 0x0a, 0x0a, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c,
5115	0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
5116	0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x3f, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18,
5117	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61,
5118	0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75,
5119	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x06,
5120	0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x65,
5121	0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69,
5122	0x73, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63,
5123	0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63,
5124	0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x5f,
5125	0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
5126	0x32, 0x2f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72,
5127	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
5128	0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
5129	0x73, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
5130	0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0x8e, 0x01,
5131	0x0a, 0x04, 0x54, 0x72, 0x65, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01,
5132	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a,
5133	0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
5134	0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79,
5135	0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72,
5136	0x65, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64,
5137	0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78,
5138	0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63,
5139	0x74, 0x6f, 0x72, 0x79, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x22, 0x8a,
5140	0x02, 0x0a, 0x0f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f,
5141	0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
5142	0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x48, 0x0a, 0x0b, 0x74, 0x72, 0x65, 0x65, 0x5f, 0x64,
5143	0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75,
5144	0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
5145	0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69,
5146	0x67, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x74, 0x72, 0x65, 0x65, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74,
5147	0x12, 0x36, 0x0a, 0x17, 0x69, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x63,
5148	0x61, 0x6c, 0x6c, 0x79, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
5149	0x08, 0x52, 0x15, 0x69, 0x73, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c,
5150	0x6c, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x5b, 0x0a, 0x15, 0x72, 0x6f, 0x6f, 0x74,
5151	0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73,
5152	0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e,
5153	0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65,
5154	0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74,
5155	0x52, 0x13, 0x72, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x44,
5156	0x69, 0x67, 0x65, 0x73, 0x74, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x9b, 0x01, 0x0a, 0x0d,
5157	0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a,
5158	0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74,
5159	0x68, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
5160	0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x58, 0x0a, 0x0f, 0x6e, 0x6f, 0x64,
5161	0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01,
5162	0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c,
5163	0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
5164	0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
5165	0x69, 0x65, 0x73, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
5166	0x69, 0x65, 0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x2d, 0x0a, 0x0f, 0x45, 0x78, 0x65,
5167	0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1a, 0x0a, 0x08,
5168	0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
5169	0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x30, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x75,
5170	0x6c, 0x74, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1a,
5171	0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
5172	0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xe5, 0x03, 0x0a, 0x0e, 0x45,
5173	0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a,
5174	0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
5175	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61,
5176	0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65,
5177	0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x73,
5178	0x6b, 0x69, 0x70, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x12, 0x4c,
5179	0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18,
5180	0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61,
5181	0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75,
5182	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x0c,
5183	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x5b, 0x0a, 0x10,
5184	0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79,
5185	0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62,
5186	0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63,
5187	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
5188	0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
5189	0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x65, 0x0a, 0x14, 0x72, 0x65, 0x73,
5190	0x75, 0x6c, 0x74, 0x73, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63,
5191	0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e,
5192	0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65,
5193	0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
5194	0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x12, 0x72, 0x65,
5195	0x73, 0x75, 0x6c, 0x74, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
5196	0x12, 0x5e, 0x0a, 0x0f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74,
5197	0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x62, 0x75, 0x69, 0x6c,
5198	0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65,
5199	0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65,
5200	0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65,
5201	0x52, 0x0e, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
5202	0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05,
5203	0x10, 0x06, 0x22, 0x71, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x3f, 0x0a,
5204	0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e,
5205	0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f,
5206	0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e,
5207	0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x25,
5208	0x0a, 0x0e, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65,
5209	0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x52, 0x65, 0x61,
5210	0x64, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x8f, 0x03, 0x0a, 0x0f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
5211	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x72, 0x65, 0x73,
5212	0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x62, 0x75, 0x69, 0x6c,
5213	0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65,
5214	0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69,
5215	0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
5216	0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c,
5217	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x52,
5218	0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
5219	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72,
5220	0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
5221	0x73, 0x12, 0x61, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x73,
5222	0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62,
5223	0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63,
5224	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65,
5225	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4c,
5226	0x6f, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
5227	0x4c, 0x6f, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
5228	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x67,
5229	0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72,
5230	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
5231	0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
5232	0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c,
5233	0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
5234	0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61,
5235	0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x61, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75,
5236	0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x22, 0x4f, 0x0a, 0x05, 0x56, 0x61, 0x6c,
5237	0x75, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12,
5238	0x0f, 0x0a, 0x0b, 0x43, 0x41, 0x43, 0x48, 0x45, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x10, 0x01,
5239	0x12, 0x0a, 0x0a, 0x06, 0x51, 0x55, 0x45, 0x55, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09,
5240	0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x43,
5241	0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x04, 0x22, 0x88, 0x03, 0x0a, 0x18, 0x45,
5242	0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d,
5243	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65,
5244	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62,
5245	0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63,
5246	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
5247	0x6f, 0x6e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x73,
5248	0x74, 0x61, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64,
5249	0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75,
5250	0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
5251	0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69,
5252	0x67, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x67, 0x65,
5253	0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x74, 0x72,
5254	0x65, 0x61, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10,
5255	0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65,
5256	0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61,
5257	0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74,
5258	0x64, 0x65, 0x72, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x75,
5259	0x0a, 0x1a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
5260	0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01,
5261	0x28, 0x0b, 0x32, 0x37, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c,
5262	0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
5263	0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x63, 0x74,
5264	0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x18, 0x70, 0x61, 0x72,
5265	0x74, 0x69, 0x61, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74,
5266	0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2a, 0x0a, 0x14, 0x57, 0x61, 0x69, 0x74, 0x45, 0x78, 0x65,
5267	0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a,
5268	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
5269	0x65, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52,
5270	0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d,
5271	0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
5272	0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d,
5273	0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x67, 0x65,
5274	0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64,
5275	0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78,
5276	0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73,
5277	0x74, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12,
5278	0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74,
5279	0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74,
5280	0x64, 0x6f, 0x75, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73,
5281	0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x6e, 0x6c,
5282	0x69, 0x6e, 0x65, 0x53, 0x74, 0x64, 0x65, 0x72, 0x72, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x6e, 0x6c,
5283	0x69, 0x6e, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73,
5284	0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4f, 0x75,
5285	0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x5e, 0x0a, 0x0f, 0x64, 0x69, 0x67,
5286	0x65, 0x73, 0x74, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01,
5287	0x28, 0x0e, 0x32, 0x35, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c,
5288	0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
5289	0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74,
5290	0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x64, 0x69, 0x67, 0x65, 0x73,
5291	0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa9, 0x03, 0x0a, 0x19, 0x55, 0x70,
5292	0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
5293	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61,
5294	0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
5295	0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x0d,
5296	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20,
5297	0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65,
5298	0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
5299	0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x61, 0x63,
5300	0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x52, 0x0a, 0x0d, 0x61, 0x63,
5301	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
5302	0x0b, 0x32, 0x2d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e,
5303	0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
5304	0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
5305	0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x65,
5306	0x0a, 0x14, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f,
5307	0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x62,
5308	0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74,
5309	0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x52,
5310	0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63,
5311	0x79, 0x52, 0x12, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50,
5312	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x5e, 0x0a, 0x0f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x5f,
5313	0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35,
5314	0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d,
5315	0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32,
5316	0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
5317	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6e,
5318	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xea, 0x01, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x69,
5319	0x73, 0x73, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
5320	0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61,
5321	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e,
5322	0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x64,
5323	0x69, 0x67, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62,
5324	0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74,
5325	0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44,
5326	0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x62, 0x44, 0x69, 0x67, 0x65, 0x73,
5327	0x74, 0x73, 0x12, 0x5e, 0x0a, 0x0f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x75, 0x6e,
5328	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x62, 0x75,
5329	0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
5330	0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69,
5331	0x67, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c,
5332	0x75, 0x65, 0x52, 0x0e, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69,
5333	0x6f, 0x6e, 0x22, 0x75, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e,
5334	0x67, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59,
5335	0x0a, 0x14, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x64,
5336	0x69, 0x67, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62,
5337	0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74,
5338	0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44,
5339	0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x12, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x42, 0x6c,
5340	0x6f, 0x62, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x73, 0x22, 0xb0, 0x03, 0x0a, 0x17, 0x42, 0x61,
5341	0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x52, 0x65,
5342	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
5343	0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e,
5344	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x5c, 0x0a, 0x08, 0x72, 0x65,
5345	0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x62,
5346	0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74,
5347	0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x42,
5348	0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x52,
5349	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08,
5350	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x5e, 0x0a, 0x0f, 0x64, 0x69, 0x67, 0x65,
5351	0x73, 0x74, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28,
5352	0x0e, 0x32, 0x35, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e,
5353	0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
5354	0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69,
5355	0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74,
5356	0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xb1, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x71,
5357	0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x01,
5358	0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a,
5359	0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
5360	0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x06, 0x64,
5361	0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20,
5362	0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x51, 0x0a, 0x0a, 0x63, 0x6f, 0x6d,
5363	0x70, 0x72, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e,
5364	0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f,
5365	0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e,
5366	0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65,
5367	0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x22, 0xf5, 0x01, 0x0a,
5368	0x18, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x62,
5369	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x09, 0x72, 0x65, 0x73,
5370	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x62,
5371	0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74,
5372	0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x42,
5373	0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x52,
5374	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
5375	0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x1a, 0x77, 0x0a, 0x08, 0x52,
5376	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73,
5377	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e,
5378	0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65,
5379	0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74,
5380	0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
5381	0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
5382	0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74,
5383	0x61, 0x74, 0x75, 0x73, 0x22, 0xc9, 0x02, 0x0a, 0x15, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65,
5384	0x61, 0x64, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23,
5385	0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
5386	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e,
5387	0x61, 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x07, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02,
5388	0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a,
5389	0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
5390	0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x07, 0x64,
5391	0x69, 0x67, 0x65, 0x73, 0x74, 0x73, 0x12, 0x68, 0x0a, 0x16, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74,
5392	0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73,
5393	0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62,
5394	0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63,
5395	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73,
5396	0x73, 0x6f, 0x72, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x61, 0x63, 0x63, 0x65, 0x70,
5397	0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73,
5398	0x12, 0x5e, 0x0a, 0x0f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74,
5399	0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x62, 0x75, 0x69, 0x6c,
5400	0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65,
5401	0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65,
5402	0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65,
5403	0x52, 0x0e, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
5404	0x22, 0xd9, 0x02, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 0x64, 0x42, 0x6c,
5405	0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x09, 0x72,
5406	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40,
5407	0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d,
5408	0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32,
5409	0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x52,
5410	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
5411	0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x1a, 0xde, 0x01, 0x0a, 0x08,
5412	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65,
5413	0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64,
5414	0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78,
5415	0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73,
5416	0x74, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74,
5417	0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x51, 0x0a,
5418	0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28,
5419	0x0e, 0x32, 0x31, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e,
5420	0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
5421	0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x2e, 0x56,
5422	0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x6f, 0x72,
5423	0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
5424	0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74,
5425	0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x9b, 0x02, 0x0a,
5426	0x0e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
5427	0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
5428	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
5429	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x67,
5430	0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x69, 0x6c,
5431	0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65,
5432	0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65,
5433	0x73, 0x74, 0x52, 0x0a, 0x72, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x1b,
5434	0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
5435	0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70,
5436	0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
5437	0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x5e, 0x0a, 0x0f, 0x64, 0x69,
5438	0x67, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20,
5439	0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65,
5440	0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
5441	0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x63,
5442	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x64, 0x69, 0x67, 0x65,
5443	0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x87, 0x01, 0x0a, 0x0f, 0x47,
5444	0x65, 0x74, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c,
5445	0x0a, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20,
5446	0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65,
5447	0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
5448	0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52,
5449	0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f,
5450	0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18,
5451	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54,
5452	0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x3d, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62,
5453	0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23,
5454	0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
5455	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e,
5456	0x61, 0x6d, 0x65, 0x22, 0xc2, 0x03, 0x0a, 0x12, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61,
5457	0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x61, 0x0a, 0x12, 0x63, 0x61,
5458	0x63, 0x68, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73,
5459	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62,
5460	0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63,
5461	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x43, 0x61,
5462	0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x11, 0x63, 0x61, 0x63, 0x68,
5463	0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x6d, 0x0a,
5464	0x16, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62,
5465	0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e,
5466	0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f,
5467	0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e,
5468	0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c,
5469	0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x15, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
5470	0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x16,
5471	0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x76,
5472	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62,
5473	0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x73, 0x65, 0x6d, 0x76, 0x65,
5474	0x72, 0x2e, 0x53, 0x65, 0x6d, 0x56, 0x65, 0x72, 0x52, 0x14, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63,
5475	0x61, 0x74, 0x65, 0x64, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x42,
5476	0x0a, 0x0f, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
5477	0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e,
5478	0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x73, 0x65, 0x6d, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x6d,
5479	0x56, 0x65, 0x72, 0x52, 0x0d, 0x6c, 0x6f, 0x77, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69,
5480	0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x10, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x76,
5481	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62,
5482	0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x73, 0x65, 0x6d, 0x76, 0x65,
5483	0x72, 0x2e, 0x53, 0x65, 0x6d, 0x56, 0x65, 0x72, 0x52, 0x0e, 0x68, 0x69, 0x67, 0x68, 0x41, 0x70,
5484	0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8f, 0x01, 0x0a, 0x0e, 0x44, 0x69, 0x67,
5485	0x65, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7d, 0x0a, 0x05, 0x56,
5486	0x61, 0x6c, 0x75, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
5487	0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x01, 0x12, 0x08, 0x0a,
5488	0x04, 0x53, 0x48, 0x41, 0x31, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x44, 0x35, 0x10, 0x03,
5489	0x12, 0x07, 0x0a, 0x03, 0x56, 0x53, 0x4f, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x48, 0x41,
5490	0x33, 0x38, 0x34, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10,
5491	0x06, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x55, 0x52, 0x4d, 0x55, 0x52, 0x33, 0x10, 0x07, 0x12, 0x0e,
5492	0x0a, 0x0a, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x54, 0x52, 0x45, 0x45, 0x10, 0x08, 0x12, 0x0a,
5493	0x0a, 0x06, 0x42, 0x4c, 0x41, 0x4b, 0x45, 0x33, 0x10, 0x09, 0x22, 0x46, 0x0a, 0x1d, 0x41, 0x63,
5494	0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43,
5495	0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x75,
5496	0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20,
5497	0x01, 0x28, 0x08, 0x52, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c,
5498	0x65, 0x64, 0x22, 0xd2, 0x01, 0x0a, 0x14, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43,
5499	0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x63, 0x0a, 0x0a, 0x70,
5500	0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
5501	0x43, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65,
5502	0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
5503	0x32, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69,
5504	0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52,
5505	0x61, 0x6e, 0x67, 0x65, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73,
5506	0x1a, 0x55, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x6e, 0x67,
5507	0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74,
5508	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x6f,
5509	0x72, 0x69, 0x74, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x69, 0x6f,
5510	0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x50,
5511	0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x50, 0x0a, 0x1b, 0x53, 0x79, 0x6d, 0x6c, 0x69,
5512	0x6e, 0x6b, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x53, 0x74,
5513	0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x22, 0x31, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12,
5514	0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a,
5515	0x44, 0x49, 0x53, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07,
5516	0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x45, 0x44, 0x10, 0x02, 0x22, 0x46, 0x0a, 0x0a, 0x43, 0x6f, 0x6d,
5517	0x70, 0x72, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x22, 0x38, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65,
5518	0x12, 0x0c, 0x0a, 0x08, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x10, 0x00, 0x12, 0x08,
5519	0x0a, 0x04, 0x5a, 0x53, 0x54, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x4c,
5520	0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x52, 0x4f, 0x54, 0x4c, 0x49, 0x10,
5521	0x03, 0x22, 0xa4, 0x06, 0x0a, 0x11, 0x43, 0x61, 0x63, 0x68, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62,
5522	0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x60, 0x0a, 0x10, 0x64, 0x69, 0x67, 0x65, 0x73,
5523	0x74, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
5524	0x0e, 0x32, 0x35, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e,
5525	0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
5526	0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69,
5527	0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74,
5528	0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x87, 0x01, 0x0a, 0x20, 0x61, 0x63,
5529	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74,
5530	0x65, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02,
5531	0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a,
5532	0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
5533	0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63,
5534	0x68, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69,
5535	0x74, 0x69, 0x65, 0x73, 0x52, 0x1d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68,
5536	0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
5537	0x69, 0x65, 0x73, 0x12, 0x75, 0x0a, 0x1b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x70, 0x72, 0x69,
5538	0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69,
5539	0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64,
5540	0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78,
5541	0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72,
5542	0x69, 0x74, 0x79, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52,
5543	0x19, 0x63, 0x61, 0x63, 0x68, 0x65, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x61,
5544	0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x1a, 0x6d, 0x61,
5545	0x78, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x69,
5546	0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16,
5547	0x6d, 0x61, 0x78, 0x42, 0x61, 0x74, 0x63, 0x68, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x7a,
5548	0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x87, 0x01, 0x0a, 0x1e, 0x73, 0x79, 0x6d, 0x6c, 0x69,
5549	0x6e, 0x6b, 0x5f, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68,
5550	0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32,
5551	0x42, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65,
5552	0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
5553	0x32, 0x2e, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74,
5554	0x65, 0x50, 0x61, 0x74, 0x68, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x2e, 0x56, 0x61,
5555	0x6c, 0x75, 0x65, 0x52, 0x1b, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x41, 0x62, 0x73, 0x6f,
5556	0x6c, 0x75, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79,
5557	0x12, 0x66, 0x0a, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f,
5558	0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0e, 0x32,
5559	0x31, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65,
5560	0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
5561	0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x2e, 0x56, 0x61, 0x6c,
5562	0x75, 0x65, 0x52, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6d,
5563	0x70, 0x72, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x7e, 0x0a, 0x22, 0x73, 0x75, 0x70, 0x70,
5564	0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x70, 0x64, 0x61,
5565	0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x18, 0x07,
5566	0x20, 0x03, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a,
5567	0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
5568	0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x6f,
5569	0x72, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74,
5570	0x65, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d,
5571	0x70, 0x72, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x22, 0xb7, 0x03, 0x0a, 0x15, 0x45, 0x78, 0x65,
5572	0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69,
5573	0x65, 0x73, 0x12, 0x5e, 0x0a, 0x0f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x75, 0x6e,
5574	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x62, 0x75,
5575	0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
5576	0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69,
5577	0x67, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c,
5578	0x75, 0x65, 0x52, 0x0e, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69,
5579	0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c,
5580	0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x45, 0x6e,
5581	0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x7d, 0x0a, 0x1f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
5582	0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x61, 0x70, 0x61,
5583	0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35,
5584	0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d,
5585	0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32,
5586	0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c,
5587	0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x1d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
5588	0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69,
5589	0x74, 0x69, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65,
5590	0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
5591	0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74,
5592	0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73,
5593	0x12, 0x60, 0x0a, 0x10, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74,
5594	0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x62, 0x75, 0x69,
5595	0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e,
5596	0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67,
5597	0x65, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x75,
5598	0x65, 0x52, 0x0f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
5599	0x6e, 0x73, 0x22, 0x4d, 0x0a, 0x0b, 0x54, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
5600	0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
5601	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21,
5602	0x0a, 0x0c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02,
5603	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
5604	0x6e, 0x22, 0xda, 0x02, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74,
5605	0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x0c, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x64, 0x65,
5606	0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x62, 0x75,
5607	0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
5608	0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x6f,
5609	0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0b, 0x74, 0x6f, 0x6f, 0x6c, 0x44,
5610	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
5611	0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f,
5612	0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x76, 0x6f,
5613	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
5614	0x10, 0x74, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
5615	0x64, 0x12, 0x3a, 0x0a, 0x19, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f,
5616	0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x04,
5617	0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64,
5618	0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x64, 0x12, 0x27, 0x0a,
5619	0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6e, 0x65, 0x6d, 0x6f, 0x6e, 0x69, 0x63,
5620	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6e,
5621	0x65, 0x6d, 0x6f, 0x6e, 0x69, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
5622	0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65,
5623	0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61,
5624	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63,
5625	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x32, 0xb9,
5626	0x02, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x8e, 0x01, 0x0a,
5627	0x07, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64,
5628	0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78,
5629	0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75,
5630	0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
5631	0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f,
5632	0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b,
5633	0x3a, 0x01, 0x2a, 0x22, 0x26, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e,
5634	0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x61, 0x63, 0x74, 0x69,
5635	0x6f, 0x6e, 0x73, 0x3a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x30, 0x01, 0x12, 0x9a, 0x01,
5636	0x0a, 0x0d, 0x57, 0x61, 0x69, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12,
5637	0x35, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65,
5638	0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
5639	0x32, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52,
5640	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
5641	0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72,
5642	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x3a, 0x01, 0x2a,
5643	0x22, 0x26, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x70, 0x65, 0x72,
5644	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0x3a, 0x77, 0x61, 0x69, 0x74, 0x45,
5645	0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x30, 0x01, 0x32, 0xd6, 0x03, 0x0a, 0x0b, 0x41,
5646	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0xd7, 0x01, 0x0a, 0x0f, 0x47,
5647	0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x37,
5648	0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d,
5649	0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32,
5650	0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
5651	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e,
5652	0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65,
5653	0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
5654	0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x5c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x12, 0x54,
5655	0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61,
5656	0x6d, 0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
5657	0x75, 0x6c, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x67,
5658	0x65, 0x73, 0x74, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x7d, 0x2f, 0x7b, 0x61, 0x63, 0x74, 0x69, 0x6f,
5659	0x6e, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79,
5660	0x74, 0x65, 0x73, 0x7d, 0x12, 0xec, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41,
5661	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3a, 0x2e, 0x62, 0x75,
5662	0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
5663	0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70,
5664	0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
5665	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e,
5666	0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65,
5667	0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
5668	0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x65, 0x3a, 0x0d,
5669	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x54, 0x2f,
5670	0x76, 0x32, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d,
5671	0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75,
5672	0x6c, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x67, 0x65,
5673	0x73, 0x74, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x7d, 0x2f, 0x7b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
5674	0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74,
5675	0x65, 0x73, 0x7d, 0x32, 0x9b, 0x06, 0x0a, 0x19, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41,
5676	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67,
5677	0x65, 0x12, 0xbc, 0x01, 0x0a, 0x10, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e,
5678	0x67, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x12, 0x38, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62,
5679	0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63,
5680	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x69, 0x73,
5681	0x73, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
5682	0x1a, 0x39, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72,
5683	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
5684	0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x42, 0x6c,
5685	0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4,
5686	0x93, 0x02, 0x2d, 0x3a, 0x01, 0x2a, 0x22, 0x28, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x69, 0x6e, 0x73,
5687	0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x62,
5688	0x6c, 0x6f, 0x62, 0x73, 0x3a, 0x66, 0x69, 0x6e, 0x64, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67,
5689	0x12, 0xbc, 0x01, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
5690	0x42, 0x6c, 0x6f, 0x62, 0x73, 0x12, 0x38, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61,
5691	0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75,
5692	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64,
5693	0x61, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
5694	0x39, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65,
5695	0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
5696	0x32, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6c, 0x6f,
5697	0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93,
5698	0x02, 0x2d, 0x3a, 0x01, 0x2a, 0x22, 0x28, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74,
5699	0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x62, 0x6c,
5700	0x6f, 0x62, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12,
5701	0xb4, 0x01, 0x0a, 0x0e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f,
5702	0x62, 0x73, 0x12, 0x36, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c,
5703	0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
5704	0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 0x64, 0x42, 0x6c,
5705	0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x62, 0x75, 0x69,
5706	0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e,
5707	0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x74,
5708	0x63, 0x68, 0x52, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
5709	0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x3a, 0x01, 0x2a, 0x22, 0x26,
5710	0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61,
5711	0x6d, 0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x3a, 0x62, 0x61, 0x74,
5712	0x63, 0x68, 0x52, 0x65, 0x61, 0x64, 0x12, 0xc8, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x54, 0x72,
5713	0x65, 0x65, 0x12, 0x2f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c,
5714	0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
5715	0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75,
5716	0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65,
5717	0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
5718	0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73,
5719	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x12, 0x50, 0x2f,
5720	0x76, 0x32, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d,
5721	0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x72, 0x6f, 0x6f,
5722	0x74, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x7d, 0x2f, 0x7b,
5723	0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x73, 0x69, 0x7a, 0x65,
5724	0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x7d, 0x3a, 0x67, 0x65, 0x74, 0x54, 0x72, 0x65, 0x65, 0x30,
5725	0x01, 0x32, 0xbd, 0x01, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69,
5726	0x65, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69,
5727	0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x37, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62,
5728	0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63,
5729	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61,
5730	0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
5731	0x33, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x72, 0x65,
5732	0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
5733	0x32, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69,
5734	0x74, 0x69, 0x65, 0x73, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x76,
5735	0x32, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
5736	0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65,
5737	0x73, 0x42, 0xb4, 0x01, 0x0a, 0x1f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x62, 0x61, 0x7a, 0x65,
5738	0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
5739	0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x42, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x78, 0x65,
5740	0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x51, 0x67,
5741	0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x62,
5742	0x75, 0x69, 0x6c, 0x64, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2d, 0x61, 0x70, 0x69, 0x73,
5743	0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2f, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x2f, 0x72, 0x65, 0x6d,
5744	0x6f, 0x74, 0x65, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x32,
5745	0x3b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
5746	0xa2, 0x02, 0x03, 0x52, 0x45, 0x58, 0xaa, 0x02, 0x1f, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x42,
5747	0x61, 0x7a, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x78, 0x65, 0x63,
5748	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
5749}
5750
5751var (
5752	file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescOnce sync.Once
5753	file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescData = file_build_bazel_remote_execution_v2_remote_execution_proto_rawDesc
5754)
5755
5756func file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescGZIP() []byte {
5757	file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescOnce.Do(func() {
5758		file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescData = protoimpl.X.CompressGZIP(file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescData)
5759	})
5760	return file_build_bazel_remote_execution_v2_remote_execution_proto_rawDescData
5761}
5762
5763var file_build_bazel_remote_execution_v2_remote_execution_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
5764var file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes = make([]protoimpl.MessageInfo, 52)
5765var file_build_bazel_remote_execution_v2_remote_execution_proto_goTypes = []interface{}{
5766	(Command_OutputDirectoryFormat)(0),         // 0: build.bazel.remote.execution.v2.Command.OutputDirectoryFormat
5767	(ExecutionStage_Value)(0),                  // 1: build.bazel.remote.execution.v2.ExecutionStage.Value
5768	(DigestFunction_Value)(0),                  // 2: build.bazel.remote.execution.v2.DigestFunction.Value
5769	(SymlinkAbsolutePathStrategy_Value)(0),     // 3: build.bazel.remote.execution.v2.SymlinkAbsolutePathStrategy.Value
5770	(Compressor_Value)(0),                      // 4: build.bazel.remote.execution.v2.Compressor.Value
5771	(*Action)(nil),                             // 5: build.bazel.remote.execution.v2.Action
5772	(*Command)(nil),                            // 6: build.bazel.remote.execution.v2.Command
5773	(*Platform)(nil),                           // 7: build.bazel.remote.execution.v2.Platform
5774	(*Directory)(nil),                          // 8: build.bazel.remote.execution.v2.Directory
5775	(*NodeProperty)(nil),                       // 9: build.bazel.remote.execution.v2.NodeProperty
5776	(*NodeProperties)(nil),                     // 10: build.bazel.remote.execution.v2.NodeProperties
5777	(*FileNode)(nil),                           // 11: build.bazel.remote.execution.v2.FileNode
5778	(*DirectoryNode)(nil),                      // 12: build.bazel.remote.execution.v2.DirectoryNode
5779	(*SymlinkNode)(nil),                        // 13: build.bazel.remote.execution.v2.SymlinkNode
5780	(*Digest)(nil),                             // 14: build.bazel.remote.execution.v2.Digest
5781	(*ExecutedActionMetadata)(nil),             // 15: build.bazel.remote.execution.v2.ExecutedActionMetadata
5782	(*ActionResult)(nil),                       // 16: build.bazel.remote.execution.v2.ActionResult
5783	(*OutputFile)(nil),                         // 17: build.bazel.remote.execution.v2.OutputFile
5784	(*Tree)(nil),                               // 18: build.bazel.remote.execution.v2.Tree
5785	(*OutputDirectory)(nil),                    // 19: build.bazel.remote.execution.v2.OutputDirectory
5786	(*OutputSymlink)(nil),                      // 20: build.bazel.remote.execution.v2.OutputSymlink
5787	(*ExecutionPolicy)(nil),                    // 21: build.bazel.remote.execution.v2.ExecutionPolicy
5788	(*ResultsCachePolicy)(nil),                 // 22: build.bazel.remote.execution.v2.ResultsCachePolicy
5789	(*ExecuteRequest)(nil),                     // 23: build.bazel.remote.execution.v2.ExecuteRequest
5790	(*LogFile)(nil),                            // 24: build.bazel.remote.execution.v2.LogFile
5791	(*ExecuteResponse)(nil),                    // 25: build.bazel.remote.execution.v2.ExecuteResponse
5792	(*ExecutionStage)(nil),                     // 26: build.bazel.remote.execution.v2.ExecutionStage
5793	(*ExecuteOperationMetadata)(nil),           // 27: build.bazel.remote.execution.v2.ExecuteOperationMetadata
5794	(*WaitExecutionRequest)(nil),               // 28: build.bazel.remote.execution.v2.WaitExecutionRequest
5795	(*GetActionResultRequest)(nil),             // 29: build.bazel.remote.execution.v2.GetActionResultRequest
5796	(*UpdateActionResultRequest)(nil),          // 30: build.bazel.remote.execution.v2.UpdateActionResultRequest
5797	(*FindMissingBlobsRequest)(nil),            // 31: build.bazel.remote.execution.v2.FindMissingBlobsRequest
5798	(*FindMissingBlobsResponse)(nil),           // 32: build.bazel.remote.execution.v2.FindMissingBlobsResponse
5799	(*BatchUpdateBlobsRequest)(nil),            // 33: build.bazel.remote.execution.v2.BatchUpdateBlobsRequest
5800	(*BatchUpdateBlobsResponse)(nil),           // 34: build.bazel.remote.execution.v2.BatchUpdateBlobsResponse
5801	(*BatchReadBlobsRequest)(nil),              // 35: build.bazel.remote.execution.v2.BatchReadBlobsRequest
5802	(*BatchReadBlobsResponse)(nil),             // 36: build.bazel.remote.execution.v2.BatchReadBlobsResponse
5803	(*GetTreeRequest)(nil),                     // 37: build.bazel.remote.execution.v2.GetTreeRequest
5804	(*GetTreeResponse)(nil),                    // 38: build.bazel.remote.execution.v2.GetTreeResponse
5805	(*GetCapabilitiesRequest)(nil),             // 39: build.bazel.remote.execution.v2.GetCapabilitiesRequest
5806	(*ServerCapabilities)(nil),                 // 40: build.bazel.remote.execution.v2.ServerCapabilities
5807	(*DigestFunction)(nil),                     // 41: build.bazel.remote.execution.v2.DigestFunction
5808	(*ActionCacheUpdateCapabilities)(nil),      // 42: build.bazel.remote.execution.v2.ActionCacheUpdateCapabilities
5809	(*PriorityCapabilities)(nil),               // 43: build.bazel.remote.execution.v2.PriorityCapabilities
5810	(*SymlinkAbsolutePathStrategy)(nil),        // 44: build.bazel.remote.execution.v2.SymlinkAbsolutePathStrategy
5811	(*Compressor)(nil),                         // 45: build.bazel.remote.execution.v2.Compressor
5812	(*CacheCapabilities)(nil),                  // 46: build.bazel.remote.execution.v2.CacheCapabilities
5813	(*ExecutionCapabilities)(nil),              // 47: build.bazel.remote.execution.v2.ExecutionCapabilities
5814	(*ToolDetails)(nil),                        // 48: build.bazel.remote.execution.v2.ToolDetails
5815	(*RequestMetadata)(nil),                    // 49: build.bazel.remote.execution.v2.RequestMetadata
5816	(*Command_EnvironmentVariable)(nil),        // 50: build.bazel.remote.execution.v2.Command.EnvironmentVariable
5817	(*Platform_Property)(nil),                  // 51: build.bazel.remote.execution.v2.Platform.Property
5818	nil,                                        // 52: build.bazel.remote.execution.v2.ExecuteResponse.ServerLogsEntry
5819	(*BatchUpdateBlobsRequest_Request)(nil),    // 53: build.bazel.remote.execution.v2.BatchUpdateBlobsRequest.Request
5820	(*BatchUpdateBlobsResponse_Response)(nil),  // 54: build.bazel.remote.execution.v2.BatchUpdateBlobsResponse.Response
5821	(*BatchReadBlobsResponse_Response)(nil),    // 55: build.bazel.remote.execution.v2.BatchReadBlobsResponse.Response
5822	(*PriorityCapabilities_PriorityRange)(nil), // 56: build.bazel.remote.execution.v2.PriorityCapabilities.PriorityRange
5823	(*durationpb.Duration)(nil),                // 57: google.protobuf.Duration
5824	(*timestamppb.Timestamp)(nil),              // 58: google.protobuf.Timestamp
5825	(*wrapperspb.UInt32Value)(nil),             // 59: google.protobuf.UInt32Value
5826	(*anypb.Any)(nil),                          // 60: google.protobuf.Any
5827	(*status.Status)(nil),                      // 61: google.rpc.Status
5828	(*semver.SemVer)(nil),                      // 62: build.bazel.semver.SemVer
5829	(*longrunning.Operation)(nil),              // 63: google.longrunning.Operation
5830}
5831var file_build_bazel_remote_execution_v2_remote_execution_proto_depIdxs = []int32{
5832	14,  // 0: build.bazel.remote.execution.v2.Action.command_digest:type_name -> build.bazel.remote.execution.v2.Digest
5833	14,  // 1: build.bazel.remote.execution.v2.Action.input_root_digest:type_name -> build.bazel.remote.execution.v2.Digest
5834	57,  // 2: build.bazel.remote.execution.v2.Action.timeout:type_name -> google.protobuf.Duration
5835	7,   // 3: build.bazel.remote.execution.v2.Action.platform:type_name -> build.bazel.remote.execution.v2.Platform
5836	50,  // 4: build.bazel.remote.execution.v2.Command.environment_variables:type_name -> build.bazel.remote.execution.v2.Command.EnvironmentVariable
5837	7,   // 5: build.bazel.remote.execution.v2.Command.platform:type_name -> build.bazel.remote.execution.v2.Platform
5838	0,   // 6: build.bazel.remote.execution.v2.Command.output_directory_format:type_name -> build.bazel.remote.execution.v2.Command.OutputDirectoryFormat
5839	51,  // 7: build.bazel.remote.execution.v2.Platform.properties:type_name -> build.bazel.remote.execution.v2.Platform.Property
5840	11,  // 8: build.bazel.remote.execution.v2.Directory.files:type_name -> build.bazel.remote.execution.v2.FileNode
5841	12,  // 9: build.bazel.remote.execution.v2.Directory.directories:type_name -> build.bazel.remote.execution.v2.DirectoryNode
5842	13,  // 10: build.bazel.remote.execution.v2.Directory.symlinks:type_name -> build.bazel.remote.execution.v2.SymlinkNode
5843	10,  // 11: build.bazel.remote.execution.v2.Directory.node_properties:type_name -> build.bazel.remote.execution.v2.NodeProperties
5844	9,   // 12: build.bazel.remote.execution.v2.NodeProperties.properties:type_name -> build.bazel.remote.execution.v2.NodeProperty
5845	58,  // 13: build.bazel.remote.execution.v2.NodeProperties.mtime:type_name -> google.protobuf.Timestamp
5846	59,  // 14: build.bazel.remote.execution.v2.NodeProperties.unix_mode:type_name -> google.protobuf.UInt32Value
5847	14,  // 15: build.bazel.remote.execution.v2.FileNode.digest:type_name -> build.bazel.remote.execution.v2.Digest
5848	10,  // 16: build.bazel.remote.execution.v2.FileNode.node_properties:type_name -> build.bazel.remote.execution.v2.NodeProperties
5849	14,  // 17: build.bazel.remote.execution.v2.DirectoryNode.digest:type_name -> build.bazel.remote.execution.v2.Digest
5850	10,  // 18: build.bazel.remote.execution.v2.SymlinkNode.node_properties:type_name -> build.bazel.remote.execution.v2.NodeProperties
5851	58,  // 19: build.bazel.remote.execution.v2.ExecutedActionMetadata.queued_timestamp:type_name -> google.protobuf.Timestamp
5852	58,  // 20: build.bazel.remote.execution.v2.ExecutedActionMetadata.worker_start_timestamp:type_name -> google.protobuf.Timestamp
5853	58,  // 21: build.bazel.remote.execution.v2.ExecutedActionMetadata.worker_completed_timestamp:type_name -> google.protobuf.Timestamp
5854	58,  // 22: build.bazel.remote.execution.v2.ExecutedActionMetadata.input_fetch_start_timestamp:type_name -> google.protobuf.Timestamp
5855	58,  // 23: build.bazel.remote.execution.v2.ExecutedActionMetadata.input_fetch_completed_timestamp:type_name -> google.protobuf.Timestamp
5856	58,  // 24: build.bazel.remote.execution.v2.ExecutedActionMetadata.execution_start_timestamp:type_name -> google.protobuf.Timestamp
5857	58,  // 25: build.bazel.remote.execution.v2.ExecutedActionMetadata.execution_completed_timestamp:type_name -> google.protobuf.Timestamp
5858	57,  // 26: build.bazel.remote.execution.v2.ExecutedActionMetadata.virtual_execution_duration:type_name -> google.protobuf.Duration
5859	58,  // 27: build.bazel.remote.execution.v2.ExecutedActionMetadata.output_upload_start_timestamp:type_name -> google.protobuf.Timestamp
5860	58,  // 28: build.bazel.remote.execution.v2.ExecutedActionMetadata.output_upload_completed_timestamp:type_name -> google.protobuf.Timestamp
5861	60,  // 29: build.bazel.remote.execution.v2.ExecutedActionMetadata.auxiliary_metadata:type_name -> google.protobuf.Any
5862	17,  // 30: build.bazel.remote.execution.v2.ActionResult.output_files:type_name -> build.bazel.remote.execution.v2.OutputFile
5863	20,  // 31: build.bazel.remote.execution.v2.ActionResult.output_file_symlinks:type_name -> build.bazel.remote.execution.v2.OutputSymlink
5864	20,  // 32: build.bazel.remote.execution.v2.ActionResult.output_symlinks:type_name -> build.bazel.remote.execution.v2.OutputSymlink
5865	19,  // 33: build.bazel.remote.execution.v2.ActionResult.output_directories:type_name -> build.bazel.remote.execution.v2.OutputDirectory
5866	20,  // 34: build.bazel.remote.execution.v2.ActionResult.output_directory_symlinks:type_name -> build.bazel.remote.execution.v2.OutputSymlink
5867	14,  // 35: build.bazel.remote.execution.v2.ActionResult.stdout_digest:type_name -> build.bazel.remote.execution.v2.Digest
5868	14,  // 36: build.bazel.remote.execution.v2.ActionResult.stderr_digest:type_name -> build.bazel.remote.execution.v2.Digest
5869	15,  // 37: build.bazel.remote.execution.v2.ActionResult.execution_metadata:type_name -> build.bazel.remote.execution.v2.ExecutedActionMetadata
5870	14,  // 38: build.bazel.remote.execution.v2.OutputFile.digest:type_name -> build.bazel.remote.execution.v2.Digest
5871	10,  // 39: build.bazel.remote.execution.v2.OutputFile.node_properties:type_name -> build.bazel.remote.execution.v2.NodeProperties
5872	8,   // 40: build.bazel.remote.execution.v2.Tree.root:type_name -> build.bazel.remote.execution.v2.Directory
5873	8,   // 41: build.bazel.remote.execution.v2.Tree.children:type_name -> build.bazel.remote.execution.v2.Directory
5874	14,  // 42: build.bazel.remote.execution.v2.OutputDirectory.tree_digest:type_name -> build.bazel.remote.execution.v2.Digest
5875	14,  // 43: build.bazel.remote.execution.v2.OutputDirectory.root_directory_digest:type_name -> build.bazel.remote.execution.v2.Digest
5876	10,  // 44: build.bazel.remote.execution.v2.OutputSymlink.node_properties:type_name -> build.bazel.remote.execution.v2.NodeProperties
5877	14,  // 45: build.bazel.remote.execution.v2.ExecuteRequest.action_digest:type_name -> build.bazel.remote.execution.v2.Digest
5878	21,  // 46: build.bazel.remote.execution.v2.ExecuteRequest.execution_policy:type_name -> build.bazel.remote.execution.v2.ExecutionPolicy
5879	22,  // 47: build.bazel.remote.execution.v2.ExecuteRequest.results_cache_policy:type_name -> build.bazel.remote.execution.v2.ResultsCachePolicy
5880	2,   // 48: build.bazel.remote.execution.v2.ExecuteRequest.digest_function:type_name -> build.bazel.remote.execution.v2.DigestFunction.Value
5881	14,  // 49: build.bazel.remote.execution.v2.LogFile.digest:type_name -> build.bazel.remote.execution.v2.Digest
5882	16,  // 50: build.bazel.remote.execution.v2.ExecuteResponse.result:type_name -> build.bazel.remote.execution.v2.ActionResult
5883	61,  // 51: build.bazel.remote.execution.v2.ExecuteResponse.status:type_name -> google.rpc.Status
5884	52,  // 52: build.bazel.remote.execution.v2.ExecuteResponse.server_logs:type_name -> build.bazel.remote.execution.v2.ExecuteResponse.ServerLogsEntry
5885	1,   // 53: build.bazel.remote.execution.v2.ExecuteOperationMetadata.stage:type_name -> build.bazel.remote.execution.v2.ExecutionStage.Value
5886	14,  // 54: build.bazel.remote.execution.v2.ExecuteOperationMetadata.action_digest:type_name -> build.bazel.remote.execution.v2.Digest
5887	15,  // 55: build.bazel.remote.execution.v2.ExecuteOperationMetadata.partial_execution_metadata:type_name -> build.bazel.remote.execution.v2.ExecutedActionMetadata
5888	14,  // 56: build.bazel.remote.execution.v2.GetActionResultRequest.action_digest:type_name -> build.bazel.remote.execution.v2.Digest
5889	2,   // 57: build.bazel.remote.execution.v2.GetActionResultRequest.digest_function:type_name -> build.bazel.remote.execution.v2.DigestFunction.Value
5890	14,  // 58: build.bazel.remote.execution.v2.UpdateActionResultRequest.action_digest:type_name -> build.bazel.remote.execution.v2.Digest
5891	16,  // 59: build.bazel.remote.execution.v2.UpdateActionResultRequest.action_result:type_name -> build.bazel.remote.execution.v2.ActionResult
5892	22,  // 60: build.bazel.remote.execution.v2.UpdateActionResultRequest.results_cache_policy:type_name -> build.bazel.remote.execution.v2.ResultsCachePolicy
5893	2,   // 61: build.bazel.remote.execution.v2.UpdateActionResultRequest.digest_function:type_name -> build.bazel.remote.execution.v2.DigestFunction.Value
5894	14,  // 62: build.bazel.remote.execution.v2.FindMissingBlobsRequest.blob_digests:type_name -> build.bazel.remote.execution.v2.Digest
5895	2,   // 63: build.bazel.remote.execution.v2.FindMissingBlobsRequest.digest_function:type_name -> build.bazel.remote.execution.v2.DigestFunction.Value
5896	14,  // 64: build.bazel.remote.execution.v2.FindMissingBlobsResponse.missing_blob_digests:type_name -> build.bazel.remote.execution.v2.Digest
5897	53,  // 65: build.bazel.remote.execution.v2.BatchUpdateBlobsRequest.requests:type_name -> build.bazel.remote.execution.v2.BatchUpdateBlobsRequest.Request
5898	2,   // 66: build.bazel.remote.execution.v2.BatchUpdateBlobsRequest.digest_function:type_name -> build.bazel.remote.execution.v2.DigestFunction.Value
5899	54,  // 67: build.bazel.remote.execution.v2.BatchUpdateBlobsResponse.responses:type_name -> build.bazel.remote.execution.v2.BatchUpdateBlobsResponse.Response
5900	14,  // 68: build.bazel.remote.execution.v2.BatchReadBlobsRequest.digests:type_name -> build.bazel.remote.execution.v2.Digest
5901	4,   // 69: build.bazel.remote.execution.v2.BatchReadBlobsRequest.acceptable_compressors:type_name -> build.bazel.remote.execution.v2.Compressor.Value
5902	2,   // 70: build.bazel.remote.execution.v2.BatchReadBlobsRequest.digest_function:type_name -> build.bazel.remote.execution.v2.DigestFunction.Value
5903	55,  // 71: build.bazel.remote.execution.v2.BatchReadBlobsResponse.responses:type_name -> build.bazel.remote.execution.v2.BatchReadBlobsResponse.Response
5904	14,  // 72: build.bazel.remote.execution.v2.GetTreeRequest.root_digest:type_name -> build.bazel.remote.execution.v2.Digest
5905	2,   // 73: build.bazel.remote.execution.v2.GetTreeRequest.digest_function:type_name -> build.bazel.remote.execution.v2.DigestFunction.Value
5906	8,   // 74: build.bazel.remote.execution.v2.GetTreeResponse.directories:type_name -> build.bazel.remote.execution.v2.Directory
5907	46,  // 75: build.bazel.remote.execution.v2.ServerCapabilities.cache_capabilities:type_name -> build.bazel.remote.execution.v2.CacheCapabilities
5908	47,  // 76: build.bazel.remote.execution.v2.ServerCapabilities.execution_capabilities:type_name -> build.bazel.remote.execution.v2.ExecutionCapabilities
5909	62,  // 77: build.bazel.remote.execution.v2.ServerCapabilities.deprecated_api_version:type_name -> build.bazel.semver.SemVer
5910	62,  // 78: build.bazel.remote.execution.v2.ServerCapabilities.low_api_version:type_name -> build.bazel.semver.SemVer
5911	62,  // 79: build.bazel.remote.execution.v2.ServerCapabilities.high_api_version:type_name -> build.bazel.semver.SemVer
5912	56,  // 80: build.bazel.remote.execution.v2.PriorityCapabilities.priorities:type_name -> build.bazel.remote.execution.v2.PriorityCapabilities.PriorityRange
5913	2,   // 81: build.bazel.remote.execution.v2.CacheCapabilities.digest_functions:type_name -> build.bazel.remote.execution.v2.DigestFunction.Value
5914	42,  // 82: build.bazel.remote.execution.v2.CacheCapabilities.action_cache_update_capabilities:type_name -> build.bazel.remote.execution.v2.ActionCacheUpdateCapabilities
5915	43,  // 83: build.bazel.remote.execution.v2.CacheCapabilities.cache_priority_capabilities:type_name -> build.bazel.remote.execution.v2.PriorityCapabilities
5916	3,   // 84: build.bazel.remote.execution.v2.CacheCapabilities.symlink_absolute_path_strategy:type_name -> build.bazel.remote.execution.v2.SymlinkAbsolutePathStrategy.Value
5917	4,   // 85: build.bazel.remote.execution.v2.CacheCapabilities.supported_compressors:type_name -> build.bazel.remote.execution.v2.Compressor.Value
5918	4,   // 86: build.bazel.remote.execution.v2.CacheCapabilities.supported_batch_update_compressors:type_name -> build.bazel.remote.execution.v2.Compressor.Value
5919	2,   // 87: build.bazel.remote.execution.v2.ExecutionCapabilities.digest_function:type_name -> build.bazel.remote.execution.v2.DigestFunction.Value
5920	43,  // 88: build.bazel.remote.execution.v2.ExecutionCapabilities.execution_priority_capabilities:type_name -> build.bazel.remote.execution.v2.PriorityCapabilities
5921	2,   // 89: build.bazel.remote.execution.v2.ExecutionCapabilities.digest_functions:type_name -> build.bazel.remote.execution.v2.DigestFunction.Value
5922	48,  // 90: build.bazel.remote.execution.v2.RequestMetadata.tool_details:type_name -> build.bazel.remote.execution.v2.ToolDetails
5923	24,  // 91: build.bazel.remote.execution.v2.ExecuteResponse.ServerLogsEntry.value:type_name -> build.bazel.remote.execution.v2.LogFile
5924	14,  // 92: build.bazel.remote.execution.v2.BatchUpdateBlobsRequest.Request.digest:type_name -> build.bazel.remote.execution.v2.Digest
5925	4,   // 93: build.bazel.remote.execution.v2.BatchUpdateBlobsRequest.Request.compressor:type_name -> build.bazel.remote.execution.v2.Compressor.Value
5926	14,  // 94: build.bazel.remote.execution.v2.BatchUpdateBlobsResponse.Response.digest:type_name -> build.bazel.remote.execution.v2.Digest
5927	61,  // 95: build.bazel.remote.execution.v2.BatchUpdateBlobsResponse.Response.status:type_name -> google.rpc.Status
5928	14,  // 96: build.bazel.remote.execution.v2.BatchReadBlobsResponse.Response.digest:type_name -> build.bazel.remote.execution.v2.Digest
5929	4,   // 97: build.bazel.remote.execution.v2.BatchReadBlobsResponse.Response.compressor:type_name -> build.bazel.remote.execution.v2.Compressor.Value
5930	61,  // 98: build.bazel.remote.execution.v2.BatchReadBlobsResponse.Response.status:type_name -> google.rpc.Status
5931	23,  // 99: build.bazel.remote.execution.v2.Execution.Execute:input_type -> build.bazel.remote.execution.v2.ExecuteRequest
5932	28,  // 100: build.bazel.remote.execution.v2.Execution.WaitExecution:input_type -> build.bazel.remote.execution.v2.WaitExecutionRequest
5933	29,  // 101: build.bazel.remote.execution.v2.ActionCache.GetActionResult:input_type -> build.bazel.remote.execution.v2.GetActionResultRequest
5934	30,  // 102: build.bazel.remote.execution.v2.ActionCache.UpdateActionResult:input_type -> build.bazel.remote.execution.v2.UpdateActionResultRequest
5935	31,  // 103: build.bazel.remote.execution.v2.ContentAddressableStorage.FindMissingBlobs:input_type -> build.bazel.remote.execution.v2.FindMissingBlobsRequest
5936	33,  // 104: build.bazel.remote.execution.v2.ContentAddressableStorage.BatchUpdateBlobs:input_type -> build.bazel.remote.execution.v2.BatchUpdateBlobsRequest
5937	35,  // 105: build.bazel.remote.execution.v2.ContentAddressableStorage.BatchReadBlobs:input_type -> build.bazel.remote.execution.v2.BatchReadBlobsRequest
5938	37,  // 106: build.bazel.remote.execution.v2.ContentAddressableStorage.GetTree:input_type -> build.bazel.remote.execution.v2.GetTreeRequest
5939	39,  // 107: build.bazel.remote.execution.v2.Capabilities.GetCapabilities:input_type -> build.bazel.remote.execution.v2.GetCapabilitiesRequest
5940	63,  // 108: build.bazel.remote.execution.v2.Execution.Execute:output_type -> google.longrunning.Operation
5941	63,  // 109: build.bazel.remote.execution.v2.Execution.WaitExecution:output_type -> google.longrunning.Operation
5942	16,  // 110: build.bazel.remote.execution.v2.ActionCache.GetActionResult:output_type -> build.bazel.remote.execution.v2.ActionResult
5943	16,  // 111: build.bazel.remote.execution.v2.ActionCache.UpdateActionResult:output_type -> build.bazel.remote.execution.v2.ActionResult
5944	32,  // 112: build.bazel.remote.execution.v2.ContentAddressableStorage.FindMissingBlobs:output_type -> build.bazel.remote.execution.v2.FindMissingBlobsResponse
5945	34,  // 113: build.bazel.remote.execution.v2.ContentAddressableStorage.BatchUpdateBlobs:output_type -> build.bazel.remote.execution.v2.BatchUpdateBlobsResponse
5946	36,  // 114: build.bazel.remote.execution.v2.ContentAddressableStorage.BatchReadBlobs:output_type -> build.bazel.remote.execution.v2.BatchReadBlobsResponse
5947	38,  // 115: build.bazel.remote.execution.v2.ContentAddressableStorage.GetTree:output_type -> build.bazel.remote.execution.v2.GetTreeResponse
5948	40,  // 116: build.bazel.remote.execution.v2.Capabilities.GetCapabilities:output_type -> build.bazel.remote.execution.v2.ServerCapabilities
5949	108, // [108:117] is the sub-list for method output_type
5950	99,  // [99:108] is the sub-list for method input_type
5951	99,  // [99:99] is the sub-list for extension type_name
5952	99,  // [99:99] is the sub-list for extension extendee
5953	0,   // [0:99] is the sub-list for field type_name
5954}
5955
5956func init() { file_build_bazel_remote_execution_v2_remote_execution_proto_init() }
5957func file_build_bazel_remote_execution_v2_remote_execution_proto_init() {
5958	if File_build_bazel_remote_execution_v2_remote_execution_proto != nil {
5959		return
5960	}
5961	if !protoimpl.UnsafeEnabled {
5962		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
5963			switch v := v.(*Action); i {
5964			case 0:
5965				return &v.state
5966			case 1:
5967				return &v.sizeCache
5968			case 2:
5969				return &v.unknownFields
5970			default:
5971				return nil
5972			}
5973		}
5974		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
5975			switch v := v.(*Command); i {
5976			case 0:
5977				return &v.state
5978			case 1:
5979				return &v.sizeCache
5980			case 2:
5981				return &v.unknownFields
5982			default:
5983				return nil
5984			}
5985		}
5986		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
5987			switch v := v.(*Platform); i {
5988			case 0:
5989				return &v.state
5990			case 1:
5991				return &v.sizeCache
5992			case 2:
5993				return &v.unknownFields
5994			default:
5995				return nil
5996			}
5997		}
5998		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
5999			switch v := v.(*Directory); i {
6000			case 0:
6001				return &v.state
6002			case 1:
6003				return &v.sizeCache
6004			case 2:
6005				return &v.unknownFields
6006			default:
6007				return nil
6008			}
6009		}
6010		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
6011			switch v := v.(*NodeProperty); i {
6012			case 0:
6013				return &v.state
6014			case 1:
6015				return &v.sizeCache
6016			case 2:
6017				return &v.unknownFields
6018			default:
6019				return nil
6020			}
6021		}
6022		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
6023			switch v := v.(*NodeProperties); i {
6024			case 0:
6025				return &v.state
6026			case 1:
6027				return &v.sizeCache
6028			case 2:
6029				return &v.unknownFields
6030			default:
6031				return nil
6032			}
6033		}
6034		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
6035			switch v := v.(*FileNode); i {
6036			case 0:
6037				return &v.state
6038			case 1:
6039				return &v.sizeCache
6040			case 2:
6041				return &v.unknownFields
6042			default:
6043				return nil
6044			}
6045		}
6046		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
6047			switch v := v.(*DirectoryNode); i {
6048			case 0:
6049				return &v.state
6050			case 1:
6051				return &v.sizeCache
6052			case 2:
6053				return &v.unknownFields
6054			default:
6055				return nil
6056			}
6057		}
6058		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
6059			switch v := v.(*SymlinkNode); i {
6060			case 0:
6061				return &v.state
6062			case 1:
6063				return &v.sizeCache
6064			case 2:
6065				return &v.unknownFields
6066			default:
6067				return nil
6068			}
6069		}
6070		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
6071			switch v := v.(*Digest); i {
6072			case 0:
6073				return &v.state
6074			case 1:
6075				return &v.sizeCache
6076			case 2:
6077				return &v.unknownFields
6078			default:
6079				return nil
6080			}
6081		}
6082		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
6083			switch v := v.(*ExecutedActionMetadata); i {
6084			case 0:
6085				return &v.state
6086			case 1:
6087				return &v.sizeCache
6088			case 2:
6089				return &v.unknownFields
6090			default:
6091				return nil
6092			}
6093		}
6094		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
6095			switch v := v.(*ActionResult); i {
6096			case 0:
6097				return &v.state
6098			case 1:
6099				return &v.sizeCache
6100			case 2:
6101				return &v.unknownFields
6102			default:
6103				return nil
6104			}
6105		}
6106		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
6107			switch v := v.(*OutputFile); i {
6108			case 0:
6109				return &v.state
6110			case 1:
6111				return &v.sizeCache
6112			case 2:
6113				return &v.unknownFields
6114			default:
6115				return nil
6116			}
6117		}
6118		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
6119			switch v := v.(*Tree); i {
6120			case 0:
6121				return &v.state
6122			case 1:
6123				return &v.sizeCache
6124			case 2:
6125				return &v.unknownFields
6126			default:
6127				return nil
6128			}
6129		}
6130		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
6131			switch v := v.(*OutputDirectory); i {
6132			case 0:
6133				return &v.state
6134			case 1:
6135				return &v.sizeCache
6136			case 2:
6137				return &v.unknownFields
6138			default:
6139				return nil
6140			}
6141		}
6142		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
6143			switch v := v.(*OutputSymlink); i {
6144			case 0:
6145				return &v.state
6146			case 1:
6147				return &v.sizeCache
6148			case 2:
6149				return &v.unknownFields
6150			default:
6151				return nil
6152			}
6153		}
6154		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
6155			switch v := v.(*ExecutionPolicy); i {
6156			case 0:
6157				return &v.state
6158			case 1:
6159				return &v.sizeCache
6160			case 2:
6161				return &v.unknownFields
6162			default:
6163				return nil
6164			}
6165		}
6166		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
6167			switch v := v.(*ResultsCachePolicy); i {
6168			case 0:
6169				return &v.state
6170			case 1:
6171				return &v.sizeCache
6172			case 2:
6173				return &v.unknownFields
6174			default:
6175				return nil
6176			}
6177		}
6178		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
6179			switch v := v.(*ExecuteRequest); i {
6180			case 0:
6181				return &v.state
6182			case 1:
6183				return &v.sizeCache
6184			case 2:
6185				return &v.unknownFields
6186			default:
6187				return nil
6188			}
6189		}
6190		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
6191			switch v := v.(*LogFile); i {
6192			case 0:
6193				return &v.state
6194			case 1:
6195				return &v.sizeCache
6196			case 2:
6197				return &v.unknownFields
6198			default:
6199				return nil
6200			}
6201		}
6202		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
6203			switch v := v.(*ExecuteResponse); i {
6204			case 0:
6205				return &v.state
6206			case 1:
6207				return &v.sizeCache
6208			case 2:
6209				return &v.unknownFields
6210			default:
6211				return nil
6212			}
6213		}
6214		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
6215			switch v := v.(*ExecutionStage); i {
6216			case 0:
6217				return &v.state
6218			case 1:
6219				return &v.sizeCache
6220			case 2:
6221				return &v.unknownFields
6222			default:
6223				return nil
6224			}
6225		}
6226		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
6227			switch v := v.(*ExecuteOperationMetadata); i {
6228			case 0:
6229				return &v.state
6230			case 1:
6231				return &v.sizeCache
6232			case 2:
6233				return &v.unknownFields
6234			default:
6235				return nil
6236			}
6237		}
6238		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
6239			switch v := v.(*WaitExecutionRequest); i {
6240			case 0:
6241				return &v.state
6242			case 1:
6243				return &v.sizeCache
6244			case 2:
6245				return &v.unknownFields
6246			default:
6247				return nil
6248			}
6249		}
6250		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
6251			switch v := v.(*GetActionResultRequest); i {
6252			case 0:
6253				return &v.state
6254			case 1:
6255				return &v.sizeCache
6256			case 2:
6257				return &v.unknownFields
6258			default:
6259				return nil
6260			}
6261		}
6262		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
6263			switch v := v.(*UpdateActionResultRequest); i {
6264			case 0:
6265				return &v.state
6266			case 1:
6267				return &v.sizeCache
6268			case 2:
6269				return &v.unknownFields
6270			default:
6271				return nil
6272			}
6273		}
6274		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
6275			switch v := v.(*FindMissingBlobsRequest); i {
6276			case 0:
6277				return &v.state
6278			case 1:
6279				return &v.sizeCache
6280			case 2:
6281				return &v.unknownFields
6282			default:
6283				return nil
6284			}
6285		}
6286		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
6287			switch v := v.(*FindMissingBlobsResponse); i {
6288			case 0:
6289				return &v.state
6290			case 1:
6291				return &v.sizeCache
6292			case 2:
6293				return &v.unknownFields
6294			default:
6295				return nil
6296			}
6297		}
6298		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
6299			switch v := v.(*BatchUpdateBlobsRequest); i {
6300			case 0:
6301				return &v.state
6302			case 1:
6303				return &v.sizeCache
6304			case 2:
6305				return &v.unknownFields
6306			default:
6307				return nil
6308			}
6309		}
6310		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
6311			switch v := v.(*BatchUpdateBlobsResponse); i {
6312			case 0:
6313				return &v.state
6314			case 1:
6315				return &v.sizeCache
6316			case 2:
6317				return &v.unknownFields
6318			default:
6319				return nil
6320			}
6321		}
6322		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
6323			switch v := v.(*BatchReadBlobsRequest); i {
6324			case 0:
6325				return &v.state
6326			case 1:
6327				return &v.sizeCache
6328			case 2:
6329				return &v.unknownFields
6330			default:
6331				return nil
6332			}
6333		}
6334		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
6335			switch v := v.(*BatchReadBlobsResponse); i {
6336			case 0:
6337				return &v.state
6338			case 1:
6339				return &v.sizeCache
6340			case 2:
6341				return &v.unknownFields
6342			default:
6343				return nil
6344			}
6345		}
6346		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
6347			switch v := v.(*GetTreeRequest); i {
6348			case 0:
6349				return &v.state
6350			case 1:
6351				return &v.sizeCache
6352			case 2:
6353				return &v.unknownFields
6354			default:
6355				return nil
6356			}
6357		}
6358		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
6359			switch v := v.(*GetTreeResponse); i {
6360			case 0:
6361				return &v.state
6362			case 1:
6363				return &v.sizeCache
6364			case 2:
6365				return &v.unknownFields
6366			default:
6367				return nil
6368			}
6369		}
6370		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
6371			switch v := v.(*GetCapabilitiesRequest); i {
6372			case 0:
6373				return &v.state
6374			case 1:
6375				return &v.sizeCache
6376			case 2:
6377				return &v.unknownFields
6378			default:
6379				return nil
6380			}
6381		}
6382		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
6383			switch v := v.(*ServerCapabilities); i {
6384			case 0:
6385				return &v.state
6386			case 1:
6387				return &v.sizeCache
6388			case 2:
6389				return &v.unknownFields
6390			default:
6391				return nil
6392			}
6393		}
6394		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
6395			switch v := v.(*DigestFunction); i {
6396			case 0:
6397				return &v.state
6398			case 1:
6399				return &v.sizeCache
6400			case 2:
6401				return &v.unknownFields
6402			default:
6403				return nil
6404			}
6405		}
6406		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
6407			switch v := v.(*ActionCacheUpdateCapabilities); i {
6408			case 0:
6409				return &v.state
6410			case 1:
6411				return &v.sizeCache
6412			case 2:
6413				return &v.unknownFields
6414			default:
6415				return nil
6416			}
6417		}
6418		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
6419			switch v := v.(*PriorityCapabilities); i {
6420			case 0:
6421				return &v.state
6422			case 1:
6423				return &v.sizeCache
6424			case 2:
6425				return &v.unknownFields
6426			default:
6427				return nil
6428			}
6429		}
6430		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
6431			switch v := v.(*SymlinkAbsolutePathStrategy); i {
6432			case 0:
6433				return &v.state
6434			case 1:
6435				return &v.sizeCache
6436			case 2:
6437				return &v.unknownFields
6438			default:
6439				return nil
6440			}
6441		}
6442		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
6443			switch v := v.(*Compressor); i {
6444			case 0:
6445				return &v.state
6446			case 1:
6447				return &v.sizeCache
6448			case 2:
6449				return &v.unknownFields
6450			default:
6451				return nil
6452			}
6453		}
6454		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
6455			switch v := v.(*CacheCapabilities); i {
6456			case 0:
6457				return &v.state
6458			case 1:
6459				return &v.sizeCache
6460			case 2:
6461				return &v.unknownFields
6462			default:
6463				return nil
6464			}
6465		}
6466		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
6467			switch v := v.(*ExecutionCapabilities); i {
6468			case 0:
6469				return &v.state
6470			case 1:
6471				return &v.sizeCache
6472			case 2:
6473				return &v.unknownFields
6474			default:
6475				return nil
6476			}
6477		}
6478		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
6479			switch v := v.(*ToolDetails); i {
6480			case 0:
6481				return &v.state
6482			case 1:
6483				return &v.sizeCache
6484			case 2:
6485				return &v.unknownFields
6486			default:
6487				return nil
6488			}
6489		}
6490		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
6491			switch v := v.(*RequestMetadata); i {
6492			case 0:
6493				return &v.state
6494			case 1:
6495				return &v.sizeCache
6496			case 2:
6497				return &v.unknownFields
6498			default:
6499				return nil
6500			}
6501		}
6502		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
6503			switch v := v.(*Command_EnvironmentVariable); i {
6504			case 0:
6505				return &v.state
6506			case 1:
6507				return &v.sizeCache
6508			case 2:
6509				return &v.unknownFields
6510			default:
6511				return nil
6512			}
6513		}
6514		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
6515			switch v := v.(*Platform_Property); i {
6516			case 0:
6517				return &v.state
6518			case 1:
6519				return &v.sizeCache
6520			case 2:
6521				return &v.unknownFields
6522			default:
6523				return nil
6524			}
6525		}
6526		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
6527			switch v := v.(*BatchUpdateBlobsRequest_Request); i {
6528			case 0:
6529				return &v.state
6530			case 1:
6531				return &v.sizeCache
6532			case 2:
6533				return &v.unknownFields
6534			default:
6535				return nil
6536			}
6537		}
6538		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
6539			switch v := v.(*BatchUpdateBlobsResponse_Response); i {
6540			case 0:
6541				return &v.state
6542			case 1:
6543				return &v.sizeCache
6544			case 2:
6545				return &v.unknownFields
6546			default:
6547				return nil
6548			}
6549		}
6550		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
6551			switch v := v.(*BatchReadBlobsResponse_Response); i {
6552			case 0:
6553				return &v.state
6554			case 1:
6555				return &v.sizeCache
6556			case 2:
6557				return &v.unknownFields
6558			default:
6559				return nil
6560			}
6561		}
6562		file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
6563			switch v := v.(*PriorityCapabilities_PriorityRange); i {
6564			case 0:
6565				return &v.state
6566			case 1:
6567				return &v.sizeCache
6568			case 2:
6569				return &v.unknownFields
6570			default:
6571				return nil
6572			}
6573		}
6574	}
6575	type x struct{}
6576	out := protoimpl.TypeBuilder{
6577		File: protoimpl.DescBuilder{
6578			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
6579			RawDescriptor: file_build_bazel_remote_execution_v2_remote_execution_proto_rawDesc,
6580			NumEnums:      5,
6581			NumMessages:   52,
6582			NumExtensions: 0,
6583			NumServices:   4,
6584		},
6585		GoTypes:           file_build_bazel_remote_execution_v2_remote_execution_proto_goTypes,
6586		DependencyIndexes: file_build_bazel_remote_execution_v2_remote_execution_proto_depIdxs,
6587		EnumInfos:         file_build_bazel_remote_execution_v2_remote_execution_proto_enumTypes,
6588		MessageInfos:      file_build_bazel_remote_execution_v2_remote_execution_proto_msgTypes,
6589	}.Build()
6590	File_build_bazel_remote_execution_v2_remote_execution_proto = out.File
6591	file_build_bazel_remote_execution_v2_remote_execution_proto_rawDesc = nil
6592	file_build_bazel_remote_execution_v2_remote_execution_proto_goTypes = nil
6593	file_build_bazel_remote_execution_v2_remote_execution_proto_depIdxs = nil
6594}
6595
6596// Reference imports to suppress errors if they are not otherwise used.
6597var _ context.Context
6598var _ grpc.ClientConnInterface
6599
6600// This is a compile-time assertion to ensure that this generated file
6601// is compatible with the grpc package it is being compiled against.
6602const _ = grpc.SupportPackageIsVersion6
6603
6604// ExecutionClient is the client API for Execution service.
6605//
6606// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
6607type ExecutionClient interface {
6608	// Execute an action remotely.
6609	//
6610	// In order to execute an action, the client must first upload all of the
6611	// inputs, the
6612	// [Command][build.bazel.remote.execution.v2.Command] to run, and the
6613	// [Action][build.bazel.remote.execution.v2.Action] into the
6614	// [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage].
6615	// It then calls `Execute` with an `action_digest` referring to them. The
6616	// server will run the action and eventually return the result.
6617	//
6618	// The input `Action`'s fields MUST meet the various canonicalization
6619	// requirements specified in the documentation for their types so that it has
6620	// the same digest as other logically equivalent `Action`s. The server MAY
6621	// enforce the requirements and return errors if a non-canonical input is
6622	// received. It MAY also proceed without verifying some or all of the
6623	// requirements, such as for performance reasons. If the server does not
6624	// verify the requirement, then it will treat the `Action` as distinct from
6625	// another logically equivalent action if they hash differently.
6626	//
6627	// Returns a stream of
6628	// [google.longrunning.Operation][google.longrunning.Operation] messages
6629	// describing the resulting execution, with eventual `response`
6630	// [ExecuteResponse][build.bazel.remote.execution.v2.ExecuteResponse]. The
6631	// `metadata` on the operation is of type
6632	// [ExecuteOperationMetadata][build.bazel.remote.execution.v2.ExecuteOperationMetadata].
6633	//
6634	// If the client remains connected after the first response is returned after
6635	// the server, then updates are streamed as if the client had called
6636	// [WaitExecution][build.bazel.remote.execution.v2.Execution.WaitExecution]
6637	// until the execution completes or the request reaches an error. The
6638	// operation can also be queried using [Operations
6639	// API][google.longrunning.Operations.GetOperation].
6640	//
6641	// The server NEED NOT implement other methods or functionality of the
6642	// Operations API.
6643	//
6644	// Errors discovered during creation of the `Operation` will be reported
6645	// as gRPC Status errors, while errors that occurred while running the
6646	// action will be reported in the `status` field of the `ExecuteResponse`. The
6647	// server MUST NOT set the `error` field of the `Operation` proto.
6648	// The possible errors include:
6649	//
6650	//   - `INVALID_ARGUMENT`: One or more arguments are invalid.
6651	//   - `FAILED_PRECONDITION`: One or more errors occurred in setting up the
6652	//     action requested, such as a missing input or command or no worker being
6653	//     available. The client may be able to fix the errors and retry.
6654	//   - `RESOURCE_EXHAUSTED`: There is insufficient quota of some resource to run
6655	//     the action.
6656	//   - `UNAVAILABLE`: Due to a transient condition, such as all workers being
6657	//     occupied (and the server does not support a queue), the action could not
6658	//     be started. The client should retry.
6659	//   - `INTERNAL`: An internal error occurred in the execution engine or the
6660	//     worker.
6661	//   - `DEADLINE_EXCEEDED`: The execution timed out.
6662	//   - `CANCELLED`: The operation was cancelled by the client. This status is
6663	//     only possible if the server implements the Operations API CancelOperation
6664	//     method, and it was called for the current execution.
6665	//
6666	// In the case of a missing input or command, the server SHOULD additionally
6667	// send a [PreconditionFailure][google.rpc.PreconditionFailure] error detail
6668	// where, for each requested blob not present in the CAS, there is a
6669	// `Violation` with a `type` of `MISSING` and a `subject` of
6670	// `"blobs/{digest_function/}{hash}/{size}"` indicating the digest of the
6671	// missing blob. The `subject` is formatted the same way as the
6672	// `resource_name` provided to
6673	// [ByteStream.Read][google.bytestream.ByteStream.Read], with the leading
6674	// instance name omitted. `digest_function` MUST thus be omitted if its value
6675	// is one of MD5, MURMUR3, SHA1, SHA256, SHA384, SHA512, or VSO.
6676	//
6677	// The server does not need to guarantee that a call to this method leads to
6678	// at most one execution of the action. The server MAY execute the action
6679	// multiple times, potentially in parallel. These redundant executions MAY
6680	// continue to run, even if the operation is completed.
6681	Execute(ctx context.Context, in *ExecuteRequest, opts ...grpc.CallOption) (Execution_ExecuteClient, error)
6682	// Wait for an execution operation to complete. When the client initially
6683	// makes the request, the server immediately responds with the current status
6684	// of the execution. The server will leave the request stream open until the
6685	// operation completes, and then respond with the completed operation. The
6686	// server MAY choose to stream additional updates as execution progresses,
6687	// such as to provide an update as to the state of the execution.
6688	//
6689	// In addition to the cases describe for Execute, the WaitExecution method
6690	// may fail as follows:
6691	//
6692	//   - `NOT_FOUND`: The operation no longer exists due to any of a transient
6693	//     condition, an unknown operation name, or if the server implements the
6694	//     Operations API DeleteOperation method and it was called for the current
6695	//     execution. The client should call `Execute` to retry.
6696	WaitExecution(ctx context.Context, in *WaitExecutionRequest, opts ...grpc.CallOption) (Execution_WaitExecutionClient, error)
6697}
6698
6699type executionClient struct {
6700	cc grpc.ClientConnInterface
6701}
6702
6703func NewExecutionClient(cc grpc.ClientConnInterface) ExecutionClient {
6704	return &executionClient{cc}
6705}
6706
6707func (c *executionClient) Execute(ctx context.Context, in *ExecuteRequest, opts ...grpc.CallOption) (Execution_ExecuteClient, error) {
6708	stream, err := c.cc.NewStream(ctx, &_Execution_serviceDesc.Streams[0], "/build.bazel.remote.execution.v2.Execution/Execute", opts...)
6709	if err != nil {
6710		return nil, err
6711	}
6712	x := &executionExecuteClient{stream}
6713	if err := x.ClientStream.SendMsg(in); err != nil {
6714		return nil, err
6715	}
6716	if err := x.ClientStream.CloseSend(); err != nil {
6717		return nil, err
6718	}
6719	return x, nil
6720}
6721
6722type Execution_ExecuteClient interface {
6723	Recv() (*longrunning.Operation, error)
6724	grpc.ClientStream
6725}
6726
6727type executionExecuteClient struct {
6728	grpc.ClientStream
6729}
6730
6731func (x *executionExecuteClient) Recv() (*longrunning.Operation, error) {
6732	m := new(longrunning.Operation)
6733	if err := x.ClientStream.RecvMsg(m); err != nil {
6734		return nil, err
6735	}
6736	return m, nil
6737}
6738
6739func (c *executionClient) WaitExecution(ctx context.Context, in *WaitExecutionRequest, opts ...grpc.CallOption) (Execution_WaitExecutionClient, error) {
6740	stream, err := c.cc.NewStream(ctx, &_Execution_serviceDesc.Streams[1], "/build.bazel.remote.execution.v2.Execution/WaitExecution", opts...)
6741	if err != nil {
6742		return nil, err
6743	}
6744	x := &executionWaitExecutionClient{stream}
6745	if err := x.ClientStream.SendMsg(in); err != nil {
6746		return nil, err
6747	}
6748	if err := x.ClientStream.CloseSend(); err != nil {
6749		return nil, err
6750	}
6751	return x, nil
6752}
6753
6754type Execution_WaitExecutionClient interface {
6755	Recv() (*longrunning.Operation, error)
6756	grpc.ClientStream
6757}
6758
6759type executionWaitExecutionClient struct {
6760	grpc.ClientStream
6761}
6762
6763func (x *executionWaitExecutionClient) Recv() (*longrunning.Operation, error) {
6764	m := new(longrunning.Operation)
6765	if err := x.ClientStream.RecvMsg(m); err != nil {
6766		return nil, err
6767	}
6768	return m, nil
6769}
6770
6771// ExecutionServer is the server API for Execution service.
6772type ExecutionServer interface {
6773	// Execute an action remotely.
6774	//
6775	// In order to execute an action, the client must first upload all of the
6776	// inputs, the
6777	// [Command][build.bazel.remote.execution.v2.Command] to run, and the
6778	// [Action][build.bazel.remote.execution.v2.Action] into the
6779	// [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage].
6780	// It then calls `Execute` with an `action_digest` referring to them. The
6781	// server will run the action and eventually return the result.
6782	//
6783	// The input `Action`'s fields MUST meet the various canonicalization
6784	// requirements specified in the documentation for their types so that it has
6785	// the same digest as other logically equivalent `Action`s. The server MAY
6786	// enforce the requirements and return errors if a non-canonical input is
6787	// received. It MAY also proceed without verifying some or all of the
6788	// requirements, such as for performance reasons. If the server does not
6789	// verify the requirement, then it will treat the `Action` as distinct from
6790	// another logically equivalent action if they hash differently.
6791	//
6792	// Returns a stream of
6793	// [google.longrunning.Operation][google.longrunning.Operation] messages
6794	// describing the resulting execution, with eventual `response`
6795	// [ExecuteResponse][build.bazel.remote.execution.v2.ExecuteResponse]. The
6796	// `metadata` on the operation is of type
6797	// [ExecuteOperationMetadata][build.bazel.remote.execution.v2.ExecuteOperationMetadata].
6798	//
6799	// If the client remains connected after the first response is returned after
6800	// the server, then updates are streamed as if the client had called
6801	// [WaitExecution][build.bazel.remote.execution.v2.Execution.WaitExecution]
6802	// until the execution completes or the request reaches an error. The
6803	// operation can also be queried using [Operations
6804	// API][google.longrunning.Operations.GetOperation].
6805	//
6806	// The server NEED NOT implement other methods or functionality of the
6807	// Operations API.
6808	//
6809	// Errors discovered during creation of the `Operation` will be reported
6810	// as gRPC Status errors, while errors that occurred while running the
6811	// action will be reported in the `status` field of the `ExecuteResponse`. The
6812	// server MUST NOT set the `error` field of the `Operation` proto.
6813	// The possible errors include:
6814	//
6815	//   - `INVALID_ARGUMENT`: One or more arguments are invalid.
6816	//   - `FAILED_PRECONDITION`: One or more errors occurred in setting up the
6817	//     action requested, such as a missing input or command or no worker being
6818	//     available. The client may be able to fix the errors and retry.
6819	//   - `RESOURCE_EXHAUSTED`: There is insufficient quota of some resource to run
6820	//     the action.
6821	//   - `UNAVAILABLE`: Due to a transient condition, such as all workers being
6822	//     occupied (and the server does not support a queue), the action could not
6823	//     be started. The client should retry.
6824	//   - `INTERNAL`: An internal error occurred in the execution engine or the
6825	//     worker.
6826	//   - `DEADLINE_EXCEEDED`: The execution timed out.
6827	//   - `CANCELLED`: The operation was cancelled by the client. This status is
6828	//     only possible if the server implements the Operations API CancelOperation
6829	//     method, and it was called for the current execution.
6830	//
6831	// In the case of a missing input or command, the server SHOULD additionally
6832	// send a [PreconditionFailure][google.rpc.PreconditionFailure] error detail
6833	// where, for each requested blob not present in the CAS, there is a
6834	// `Violation` with a `type` of `MISSING` and a `subject` of
6835	// `"blobs/{digest_function/}{hash}/{size}"` indicating the digest of the
6836	// missing blob. The `subject` is formatted the same way as the
6837	// `resource_name` provided to
6838	// [ByteStream.Read][google.bytestream.ByteStream.Read], with the leading
6839	// instance name omitted. `digest_function` MUST thus be omitted if its value
6840	// is one of MD5, MURMUR3, SHA1, SHA256, SHA384, SHA512, or VSO.
6841	//
6842	// The server does not need to guarantee that a call to this method leads to
6843	// at most one execution of the action. The server MAY execute the action
6844	// multiple times, potentially in parallel. These redundant executions MAY
6845	// continue to run, even if the operation is completed.
6846	Execute(*ExecuteRequest, Execution_ExecuteServer) error
6847	// Wait for an execution operation to complete. When the client initially
6848	// makes the request, the server immediately responds with the current status
6849	// of the execution. The server will leave the request stream open until the
6850	// operation completes, and then respond with the completed operation. The
6851	// server MAY choose to stream additional updates as execution progresses,
6852	// such as to provide an update as to the state of the execution.
6853	//
6854	// In addition to the cases describe for Execute, the WaitExecution method
6855	// may fail as follows:
6856	//
6857	//   - `NOT_FOUND`: The operation no longer exists due to any of a transient
6858	//     condition, an unknown operation name, or if the server implements the
6859	//     Operations API DeleteOperation method and it was called for the current
6860	//     execution. The client should call `Execute` to retry.
6861	WaitExecution(*WaitExecutionRequest, Execution_WaitExecutionServer) error
6862}
6863
6864// UnimplementedExecutionServer can be embedded to have forward compatible implementations.
6865type UnimplementedExecutionServer struct {
6866}
6867
6868func (*UnimplementedExecutionServer) Execute(*ExecuteRequest, Execution_ExecuteServer) error {
6869	return status1.Errorf(codes.Unimplemented, "method Execute not implemented")
6870}
6871func (*UnimplementedExecutionServer) WaitExecution(*WaitExecutionRequest, Execution_WaitExecutionServer) error {
6872	return status1.Errorf(codes.Unimplemented, "method WaitExecution not implemented")
6873}
6874
6875func RegisterExecutionServer(s *grpc.Server, srv ExecutionServer) {
6876	s.RegisterService(&_Execution_serviceDesc, srv)
6877}
6878
6879func _Execution_Execute_Handler(srv interface{}, stream grpc.ServerStream) error {
6880	m := new(ExecuteRequest)
6881	if err := stream.RecvMsg(m); err != nil {
6882		return err
6883	}
6884	return srv.(ExecutionServer).Execute(m, &executionExecuteServer{stream})
6885}
6886
6887type Execution_ExecuteServer interface {
6888	Send(*longrunning.Operation) error
6889	grpc.ServerStream
6890}
6891
6892type executionExecuteServer struct {
6893	grpc.ServerStream
6894}
6895
6896func (x *executionExecuteServer) Send(m *longrunning.Operation) error {
6897	return x.ServerStream.SendMsg(m)
6898}
6899
6900func _Execution_WaitExecution_Handler(srv interface{}, stream grpc.ServerStream) error {
6901	m := new(WaitExecutionRequest)
6902	if err := stream.RecvMsg(m); err != nil {
6903		return err
6904	}
6905	return srv.(ExecutionServer).WaitExecution(m, &executionWaitExecutionServer{stream})
6906}
6907
6908type Execution_WaitExecutionServer interface {
6909	Send(*longrunning.Operation) error
6910	grpc.ServerStream
6911}
6912
6913type executionWaitExecutionServer struct {
6914	grpc.ServerStream
6915}
6916
6917func (x *executionWaitExecutionServer) Send(m *longrunning.Operation) error {
6918	return x.ServerStream.SendMsg(m)
6919}
6920
6921var _Execution_serviceDesc = grpc.ServiceDesc{
6922	ServiceName: "build.bazel.remote.execution.v2.Execution",
6923	HandlerType: (*ExecutionServer)(nil),
6924	Methods:     []grpc.MethodDesc{},
6925	Streams: []grpc.StreamDesc{
6926		{
6927			StreamName:    "Execute",
6928			Handler:       _Execution_Execute_Handler,
6929			ServerStreams: true,
6930		},
6931		{
6932			StreamName:    "WaitExecution",
6933			Handler:       _Execution_WaitExecution_Handler,
6934			ServerStreams: true,
6935		},
6936	},
6937	Metadata: "build/bazel/remote/execution/v2/remote_execution.proto",
6938}
6939
6940// ActionCacheClient is the client API for ActionCache service.
6941//
6942// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
6943type ActionCacheClient interface {
6944	// Retrieve a cached execution result.
6945	//
6946	// Implementations SHOULD ensure that any blobs referenced from the
6947	// [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage]
6948	// are available at the time of returning the
6949	// [ActionResult][build.bazel.remote.execution.v2.ActionResult] and will be
6950	// for some period of time afterwards. The lifetimes of the referenced blobs SHOULD be increased
6951	// if necessary and applicable.
6952	//
6953	// Errors:
6954	//
6955	// * `NOT_FOUND`: The requested `ActionResult` is not in the cache.
6956	GetActionResult(ctx context.Context, in *GetActionResultRequest, opts ...grpc.CallOption) (*ActionResult, error)
6957	// Upload a new execution result.
6958	//
6959	// In order to allow the server to perform access control based on the type of
6960	// action, and to assist with client debugging, the client MUST first upload
6961	// the [Action][build.bazel.remote.execution.v2.Execution] that produced the
6962	// result, along with its
6963	// [Command][build.bazel.remote.execution.v2.Command], into the
6964	// `ContentAddressableStorage`.
6965	//
6966	// Server implementations MAY modify the
6967	// `UpdateActionResultRequest.action_result` and return an equivalent value.
6968	//
6969	// Errors:
6970	//
6971	//   - `INVALID_ARGUMENT`: One or more arguments are invalid.
6972	//   - `FAILED_PRECONDITION`: One or more errors occurred in updating the
6973	//     action result, such as a missing command or action.
6974	//   - `RESOURCE_EXHAUSTED`: There is insufficient storage space to add the
6975	//     entry to the cache.
6976	UpdateActionResult(ctx context.Context, in *UpdateActionResultRequest, opts ...grpc.CallOption) (*ActionResult, error)
6977}
6978
6979type actionCacheClient struct {
6980	cc grpc.ClientConnInterface
6981}
6982
6983func NewActionCacheClient(cc grpc.ClientConnInterface) ActionCacheClient {
6984	return &actionCacheClient{cc}
6985}
6986
6987func (c *actionCacheClient) GetActionResult(ctx context.Context, in *GetActionResultRequest, opts ...grpc.CallOption) (*ActionResult, error) {
6988	out := new(ActionResult)
6989	err := c.cc.Invoke(ctx, "/build.bazel.remote.execution.v2.ActionCache/GetActionResult", in, out, opts...)
6990	if err != nil {
6991		return nil, err
6992	}
6993	return out, nil
6994}
6995
6996func (c *actionCacheClient) UpdateActionResult(ctx context.Context, in *UpdateActionResultRequest, opts ...grpc.CallOption) (*ActionResult, error) {
6997	out := new(ActionResult)
6998	err := c.cc.Invoke(ctx, "/build.bazel.remote.execution.v2.ActionCache/UpdateActionResult", in, out, opts...)
6999	if err != nil {
7000		return nil, err
7001	}
7002	return out, nil
7003}
7004
7005// ActionCacheServer is the server API for ActionCache service.
7006type ActionCacheServer interface {
7007	// Retrieve a cached execution result.
7008	//
7009	// Implementations SHOULD ensure that any blobs referenced from the
7010	// [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage]
7011	// are available at the time of returning the
7012	// [ActionResult][build.bazel.remote.execution.v2.ActionResult] and will be
7013	// for some period of time afterwards. The lifetimes of the referenced blobs SHOULD be increased
7014	// if necessary and applicable.
7015	//
7016	// Errors:
7017	//
7018	// * `NOT_FOUND`: The requested `ActionResult` is not in the cache.
7019	GetActionResult(context.Context, *GetActionResultRequest) (*ActionResult, error)
7020	// Upload a new execution result.
7021	//
7022	// In order to allow the server to perform access control based on the type of
7023	// action, and to assist with client debugging, the client MUST first upload
7024	// the [Action][build.bazel.remote.execution.v2.Execution] that produced the
7025	// result, along with its
7026	// [Command][build.bazel.remote.execution.v2.Command], into the
7027	// `ContentAddressableStorage`.
7028	//
7029	// Server implementations MAY modify the
7030	// `UpdateActionResultRequest.action_result` and return an equivalent value.
7031	//
7032	// Errors:
7033	//
7034	//   - `INVALID_ARGUMENT`: One or more arguments are invalid.
7035	//   - `FAILED_PRECONDITION`: One or more errors occurred in updating the
7036	//     action result, such as a missing command or action.
7037	//   - `RESOURCE_EXHAUSTED`: There is insufficient storage space to add the
7038	//     entry to the cache.
7039	UpdateActionResult(context.Context, *UpdateActionResultRequest) (*ActionResult, error)
7040}
7041
7042// UnimplementedActionCacheServer can be embedded to have forward compatible implementations.
7043type UnimplementedActionCacheServer struct {
7044}
7045
7046func (*UnimplementedActionCacheServer) GetActionResult(context.Context, *GetActionResultRequest) (*ActionResult, error) {
7047	return nil, status1.Errorf(codes.Unimplemented, "method GetActionResult not implemented")
7048}
7049func (*UnimplementedActionCacheServer) UpdateActionResult(context.Context, *UpdateActionResultRequest) (*ActionResult, error) {
7050	return nil, status1.Errorf(codes.Unimplemented, "method UpdateActionResult not implemented")
7051}
7052
7053func RegisterActionCacheServer(s *grpc.Server, srv ActionCacheServer) {
7054	s.RegisterService(&_ActionCache_serviceDesc, srv)
7055}
7056
7057func _ActionCache_GetActionResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
7058	in := new(GetActionResultRequest)
7059	if err := dec(in); err != nil {
7060		return nil, err
7061	}
7062	if interceptor == nil {
7063		return srv.(ActionCacheServer).GetActionResult(ctx, in)
7064	}
7065	info := &grpc.UnaryServerInfo{
7066		Server:     srv,
7067		FullMethod: "/build.bazel.remote.execution.v2.ActionCache/GetActionResult",
7068	}
7069	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
7070		return srv.(ActionCacheServer).GetActionResult(ctx, req.(*GetActionResultRequest))
7071	}
7072	return interceptor(ctx, in, info, handler)
7073}
7074
7075func _ActionCache_UpdateActionResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
7076	in := new(UpdateActionResultRequest)
7077	if err := dec(in); err != nil {
7078		return nil, err
7079	}
7080	if interceptor == nil {
7081		return srv.(ActionCacheServer).UpdateActionResult(ctx, in)
7082	}
7083	info := &grpc.UnaryServerInfo{
7084		Server:     srv,
7085		FullMethod: "/build.bazel.remote.execution.v2.ActionCache/UpdateActionResult",
7086	}
7087	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
7088		return srv.(ActionCacheServer).UpdateActionResult(ctx, req.(*UpdateActionResultRequest))
7089	}
7090	return interceptor(ctx, in, info, handler)
7091}
7092
7093var _ActionCache_serviceDesc = grpc.ServiceDesc{
7094	ServiceName: "build.bazel.remote.execution.v2.ActionCache",
7095	HandlerType: (*ActionCacheServer)(nil),
7096	Methods: []grpc.MethodDesc{
7097		{
7098			MethodName: "GetActionResult",
7099			Handler:    _ActionCache_GetActionResult_Handler,
7100		},
7101		{
7102			MethodName: "UpdateActionResult",
7103			Handler:    _ActionCache_UpdateActionResult_Handler,
7104		},
7105	},
7106	Streams:  []grpc.StreamDesc{},
7107	Metadata: "build/bazel/remote/execution/v2/remote_execution.proto",
7108}
7109
7110// ContentAddressableStorageClient is the client API for ContentAddressableStorage service.
7111//
7112// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
7113type ContentAddressableStorageClient interface {
7114	// Determine if blobs are present in the CAS.
7115	//
7116	// Clients can use this API before uploading blobs to determine which ones are
7117	// already present in the CAS and do not need to be uploaded again.
7118	//
7119	// Servers SHOULD increase the lifetimes of the referenced blobs if necessary and
7120	// applicable.
7121	//
7122	// There are no method-specific errors.
7123	FindMissingBlobs(ctx context.Context, in *FindMissingBlobsRequest, opts ...grpc.CallOption) (*FindMissingBlobsResponse, error)
7124	// Upload many blobs at once.
7125	//
7126	// The server may enforce a limit of the combined total size of blobs
7127	// to be uploaded using this API. This limit may be obtained using the
7128	// [Capabilities][build.bazel.remote.execution.v2.Capabilities] API.
7129	// Requests exceeding the limit should either be split into smaller
7130	// chunks or uploaded using the
7131	// [ByteStream API][google.bytestream.ByteStream], as appropriate.
7132	//
7133	// This request is equivalent to calling a Bytestream `Write` request
7134	// on each individual blob, in parallel. The requests may succeed or fail
7135	// independently.
7136	//
7137	// Errors:
7138	//
7139	//   - `INVALID_ARGUMENT`: The client attempted to upload more than the
7140	//     server supported limit.
7141	//
7142	// Individual requests may return the following errors, additionally:
7143	//
7144	// * `RESOURCE_EXHAUSTED`: There is insufficient disk quota to store the blob.
7145	// * `INVALID_ARGUMENT`: The
7146	// [Digest][build.bazel.remote.execution.v2.Digest] does not match the
7147	// provided data.
7148	BatchUpdateBlobs(ctx context.Context, in *BatchUpdateBlobsRequest, opts ...grpc.CallOption) (*BatchUpdateBlobsResponse, error)
7149	// Download many blobs at once.
7150	//
7151	// The server may enforce a limit of the combined total size of blobs
7152	// to be downloaded using this API. This limit may be obtained using the
7153	// [Capabilities][build.bazel.remote.execution.v2.Capabilities] API.
7154	// Requests exceeding the limit should either be split into smaller
7155	// chunks or downloaded using the
7156	// [ByteStream API][google.bytestream.ByteStream], as appropriate.
7157	//
7158	// This request is equivalent to calling a Bytestream `Read` request
7159	// on each individual blob, in parallel. The requests may succeed or fail
7160	// independently.
7161	//
7162	// Errors:
7163	//
7164	//   - `INVALID_ARGUMENT`: The client attempted to read more than the
7165	//     server supported limit.
7166	//
7167	// Every error on individual read will be returned in the corresponding digest
7168	// status.
7169	BatchReadBlobs(ctx context.Context, in *BatchReadBlobsRequest, opts ...grpc.CallOption) (*BatchReadBlobsResponse, error)
7170	// Fetch the entire directory tree rooted at a node.
7171	//
7172	// This request must be targeted at a
7173	// [Directory][build.bazel.remote.execution.v2.Directory] stored in the
7174	// [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage]
7175	// (CAS). The server will enumerate the `Directory` tree recursively and
7176	// return every node descended from the root.
7177	//
7178	// The GetTreeRequest.page_token parameter can be used to skip ahead in
7179	// the stream (e.g. when retrying a partially completed and aborted request),
7180	// by setting it to a value taken from GetTreeResponse.next_page_token of the
7181	// last successfully processed GetTreeResponse).
7182	//
7183	// The exact traversal order is unspecified and, unless retrieving subsequent
7184	// pages from an earlier request, is not guaranteed to be stable across
7185	// multiple invocations of `GetTree`.
7186	//
7187	// If part of the tree is missing from the CAS, the server will return the
7188	// portion present and omit the rest.
7189	//
7190	// Errors:
7191	//
7192	// * `NOT_FOUND`: The requested tree root is not present in the CAS.
7193	GetTree(ctx context.Context, in *GetTreeRequest, opts ...grpc.CallOption) (ContentAddressableStorage_GetTreeClient, error)
7194}
7195
7196type contentAddressableStorageClient struct {
7197	cc grpc.ClientConnInterface
7198}
7199
7200func NewContentAddressableStorageClient(cc grpc.ClientConnInterface) ContentAddressableStorageClient {
7201	return &contentAddressableStorageClient{cc}
7202}
7203
7204func (c *contentAddressableStorageClient) FindMissingBlobs(ctx context.Context, in *FindMissingBlobsRequest, opts ...grpc.CallOption) (*FindMissingBlobsResponse, error) {
7205	out := new(FindMissingBlobsResponse)
7206	err := c.cc.Invoke(ctx, "/build.bazel.remote.execution.v2.ContentAddressableStorage/FindMissingBlobs", in, out, opts...)
7207	if err != nil {
7208		return nil, err
7209	}
7210	return out, nil
7211}
7212
7213func (c *contentAddressableStorageClient) BatchUpdateBlobs(ctx context.Context, in *BatchUpdateBlobsRequest, opts ...grpc.CallOption) (*BatchUpdateBlobsResponse, error) {
7214	out := new(BatchUpdateBlobsResponse)
7215	err := c.cc.Invoke(ctx, "/build.bazel.remote.execution.v2.ContentAddressableStorage/BatchUpdateBlobs", in, out, opts...)
7216	if err != nil {
7217		return nil, err
7218	}
7219	return out, nil
7220}
7221
7222func (c *contentAddressableStorageClient) BatchReadBlobs(ctx context.Context, in *BatchReadBlobsRequest, opts ...grpc.CallOption) (*BatchReadBlobsResponse, error) {
7223	out := new(BatchReadBlobsResponse)
7224	err := c.cc.Invoke(ctx, "/build.bazel.remote.execution.v2.ContentAddressableStorage/BatchReadBlobs", in, out, opts...)
7225	if err != nil {
7226		return nil, err
7227	}
7228	return out, nil
7229}
7230
7231func (c *contentAddressableStorageClient) GetTree(ctx context.Context, in *GetTreeRequest, opts ...grpc.CallOption) (ContentAddressableStorage_GetTreeClient, error) {
7232	stream, err := c.cc.NewStream(ctx, &_ContentAddressableStorage_serviceDesc.Streams[0], "/build.bazel.remote.execution.v2.ContentAddressableStorage/GetTree", opts...)
7233	if err != nil {
7234		return nil, err
7235	}
7236	x := &contentAddressableStorageGetTreeClient{stream}
7237	if err := x.ClientStream.SendMsg(in); err != nil {
7238		return nil, err
7239	}
7240	if err := x.ClientStream.CloseSend(); err != nil {
7241		return nil, err
7242	}
7243	return x, nil
7244}
7245
7246type ContentAddressableStorage_GetTreeClient interface {
7247	Recv() (*GetTreeResponse, error)
7248	grpc.ClientStream
7249}
7250
7251type contentAddressableStorageGetTreeClient struct {
7252	grpc.ClientStream
7253}
7254
7255func (x *contentAddressableStorageGetTreeClient) Recv() (*GetTreeResponse, error) {
7256	m := new(GetTreeResponse)
7257	if err := x.ClientStream.RecvMsg(m); err != nil {
7258		return nil, err
7259	}
7260	return m, nil
7261}
7262
7263// ContentAddressableStorageServer is the server API for ContentAddressableStorage service.
7264type ContentAddressableStorageServer interface {
7265	// Determine if blobs are present in the CAS.
7266	//
7267	// Clients can use this API before uploading blobs to determine which ones are
7268	// already present in the CAS and do not need to be uploaded again.
7269	//
7270	// Servers SHOULD increase the lifetimes of the referenced blobs if necessary and
7271	// applicable.
7272	//
7273	// There are no method-specific errors.
7274	FindMissingBlobs(context.Context, *FindMissingBlobsRequest) (*FindMissingBlobsResponse, error)
7275	// Upload many blobs at once.
7276	//
7277	// The server may enforce a limit of the combined total size of blobs
7278	// to be uploaded using this API. This limit may be obtained using the
7279	// [Capabilities][build.bazel.remote.execution.v2.Capabilities] API.
7280	// Requests exceeding the limit should either be split into smaller
7281	// chunks or uploaded using the
7282	// [ByteStream API][google.bytestream.ByteStream], as appropriate.
7283	//
7284	// This request is equivalent to calling a Bytestream `Write` request
7285	// on each individual blob, in parallel. The requests may succeed or fail
7286	// independently.
7287	//
7288	// Errors:
7289	//
7290	//   - `INVALID_ARGUMENT`: The client attempted to upload more than the
7291	//     server supported limit.
7292	//
7293	// Individual requests may return the following errors, additionally:
7294	//
7295	// * `RESOURCE_EXHAUSTED`: There is insufficient disk quota to store the blob.
7296	// * `INVALID_ARGUMENT`: The
7297	// [Digest][build.bazel.remote.execution.v2.Digest] does not match the
7298	// provided data.
7299	BatchUpdateBlobs(context.Context, *BatchUpdateBlobsRequest) (*BatchUpdateBlobsResponse, error)
7300	// Download many blobs at once.
7301	//
7302	// The server may enforce a limit of the combined total size of blobs
7303	// to be downloaded using this API. This limit may be obtained using the
7304	// [Capabilities][build.bazel.remote.execution.v2.Capabilities] API.
7305	// Requests exceeding the limit should either be split into smaller
7306	// chunks or downloaded using the
7307	// [ByteStream API][google.bytestream.ByteStream], as appropriate.
7308	//
7309	// This request is equivalent to calling a Bytestream `Read` request
7310	// on each individual blob, in parallel. The requests may succeed or fail
7311	// independently.
7312	//
7313	// Errors:
7314	//
7315	//   - `INVALID_ARGUMENT`: The client attempted to read more than the
7316	//     server supported limit.
7317	//
7318	// Every error on individual read will be returned in the corresponding digest
7319	// status.
7320	BatchReadBlobs(context.Context, *BatchReadBlobsRequest) (*BatchReadBlobsResponse, error)
7321	// Fetch the entire directory tree rooted at a node.
7322	//
7323	// This request must be targeted at a
7324	// [Directory][build.bazel.remote.execution.v2.Directory] stored in the
7325	// [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage]
7326	// (CAS). The server will enumerate the `Directory` tree recursively and
7327	// return every node descended from the root.
7328	//
7329	// The GetTreeRequest.page_token parameter can be used to skip ahead in
7330	// the stream (e.g. when retrying a partially completed and aborted request),
7331	// by setting it to a value taken from GetTreeResponse.next_page_token of the
7332	// last successfully processed GetTreeResponse).
7333	//
7334	// The exact traversal order is unspecified and, unless retrieving subsequent
7335	// pages from an earlier request, is not guaranteed to be stable across
7336	// multiple invocations of `GetTree`.
7337	//
7338	// If part of the tree is missing from the CAS, the server will return the
7339	// portion present and omit the rest.
7340	//
7341	// Errors:
7342	//
7343	// * `NOT_FOUND`: The requested tree root is not present in the CAS.
7344	GetTree(*GetTreeRequest, ContentAddressableStorage_GetTreeServer) error
7345}
7346
7347// UnimplementedContentAddressableStorageServer can be embedded to have forward compatible implementations.
7348type UnimplementedContentAddressableStorageServer struct {
7349}
7350
7351func (*UnimplementedContentAddressableStorageServer) FindMissingBlobs(context.Context, *FindMissingBlobsRequest) (*FindMissingBlobsResponse, error) {
7352	return nil, status1.Errorf(codes.Unimplemented, "method FindMissingBlobs not implemented")
7353}
7354func (*UnimplementedContentAddressableStorageServer) BatchUpdateBlobs(context.Context, *BatchUpdateBlobsRequest) (*BatchUpdateBlobsResponse, error) {
7355	return nil, status1.Errorf(codes.Unimplemented, "method BatchUpdateBlobs not implemented")
7356}
7357func (*UnimplementedContentAddressableStorageServer) BatchReadBlobs(context.Context, *BatchReadBlobsRequest) (*BatchReadBlobsResponse, error) {
7358	return nil, status1.Errorf(codes.Unimplemented, "method BatchReadBlobs not implemented")
7359}
7360func (*UnimplementedContentAddressableStorageServer) GetTree(*GetTreeRequest, ContentAddressableStorage_GetTreeServer) error {
7361	return status1.Errorf(codes.Unimplemented, "method GetTree not implemented")
7362}
7363
7364func RegisterContentAddressableStorageServer(s *grpc.Server, srv ContentAddressableStorageServer) {
7365	s.RegisterService(&_ContentAddressableStorage_serviceDesc, srv)
7366}
7367
7368func _ContentAddressableStorage_FindMissingBlobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
7369	in := new(FindMissingBlobsRequest)
7370	if err := dec(in); err != nil {
7371		return nil, err
7372	}
7373	if interceptor == nil {
7374		return srv.(ContentAddressableStorageServer).FindMissingBlobs(ctx, in)
7375	}
7376	info := &grpc.UnaryServerInfo{
7377		Server:     srv,
7378		FullMethod: "/build.bazel.remote.execution.v2.ContentAddressableStorage/FindMissingBlobs",
7379	}
7380	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
7381		return srv.(ContentAddressableStorageServer).FindMissingBlobs(ctx, req.(*FindMissingBlobsRequest))
7382	}
7383	return interceptor(ctx, in, info, handler)
7384}
7385
7386func _ContentAddressableStorage_BatchUpdateBlobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
7387	in := new(BatchUpdateBlobsRequest)
7388	if err := dec(in); err != nil {
7389		return nil, err
7390	}
7391	if interceptor == nil {
7392		return srv.(ContentAddressableStorageServer).BatchUpdateBlobs(ctx, in)
7393	}
7394	info := &grpc.UnaryServerInfo{
7395		Server:     srv,
7396		FullMethod: "/build.bazel.remote.execution.v2.ContentAddressableStorage/BatchUpdateBlobs",
7397	}
7398	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
7399		return srv.(ContentAddressableStorageServer).BatchUpdateBlobs(ctx, req.(*BatchUpdateBlobsRequest))
7400	}
7401	return interceptor(ctx, in, info, handler)
7402}
7403
7404func _ContentAddressableStorage_BatchReadBlobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
7405	in := new(BatchReadBlobsRequest)
7406	if err := dec(in); err != nil {
7407		return nil, err
7408	}
7409	if interceptor == nil {
7410		return srv.(ContentAddressableStorageServer).BatchReadBlobs(ctx, in)
7411	}
7412	info := &grpc.UnaryServerInfo{
7413		Server:     srv,
7414		FullMethod: "/build.bazel.remote.execution.v2.ContentAddressableStorage/BatchReadBlobs",
7415	}
7416	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
7417		return srv.(ContentAddressableStorageServer).BatchReadBlobs(ctx, req.(*BatchReadBlobsRequest))
7418	}
7419	return interceptor(ctx, in, info, handler)
7420}
7421
7422func _ContentAddressableStorage_GetTree_Handler(srv interface{}, stream grpc.ServerStream) error {
7423	m := new(GetTreeRequest)
7424	if err := stream.RecvMsg(m); err != nil {
7425		return err
7426	}
7427	return srv.(ContentAddressableStorageServer).GetTree(m, &contentAddressableStorageGetTreeServer{stream})
7428}
7429
7430type ContentAddressableStorage_GetTreeServer interface {
7431	Send(*GetTreeResponse) error
7432	grpc.ServerStream
7433}
7434
7435type contentAddressableStorageGetTreeServer struct {
7436	grpc.ServerStream
7437}
7438
7439func (x *contentAddressableStorageGetTreeServer) Send(m *GetTreeResponse) error {
7440	return x.ServerStream.SendMsg(m)
7441}
7442
7443var _ContentAddressableStorage_serviceDesc = grpc.ServiceDesc{
7444	ServiceName: "build.bazel.remote.execution.v2.ContentAddressableStorage",
7445	HandlerType: (*ContentAddressableStorageServer)(nil),
7446	Methods: []grpc.MethodDesc{
7447		{
7448			MethodName: "FindMissingBlobs",
7449			Handler:    _ContentAddressableStorage_FindMissingBlobs_Handler,
7450		},
7451		{
7452			MethodName: "BatchUpdateBlobs",
7453			Handler:    _ContentAddressableStorage_BatchUpdateBlobs_Handler,
7454		},
7455		{
7456			MethodName: "BatchReadBlobs",
7457			Handler:    _ContentAddressableStorage_BatchReadBlobs_Handler,
7458		},
7459	},
7460	Streams: []grpc.StreamDesc{
7461		{
7462			StreamName:    "GetTree",
7463			Handler:       _ContentAddressableStorage_GetTree_Handler,
7464			ServerStreams: true,
7465		},
7466	},
7467	Metadata: "build/bazel/remote/execution/v2/remote_execution.proto",
7468}
7469
7470// CapabilitiesClient is the client API for Capabilities service.
7471//
7472// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
7473type CapabilitiesClient interface {
7474	// GetCapabilities returns the server capabilities configuration of the
7475	// remote endpoint.
7476	// Only the capabilities of the services supported by the endpoint will
7477	// be returned:
7478	//   - Execution + CAS + Action Cache endpoints should return both
7479	//     CacheCapabilities and ExecutionCapabilities.
7480	//   - Execution only endpoints should return ExecutionCapabilities.
7481	//   - CAS + Action Cache only endpoints should return CacheCapabilities.
7482	//
7483	// There are no method-specific errors.
7484	GetCapabilities(ctx context.Context, in *GetCapabilitiesRequest, opts ...grpc.CallOption) (*ServerCapabilities, error)
7485}
7486
7487type capabilitiesClient struct {
7488	cc grpc.ClientConnInterface
7489}
7490
7491func NewCapabilitiesClient(cc grpc.ClientConnInterface) CapabilitiesClient {
7492	return &capabilitiesClient{cc}
7493}
7494
7495func (c *capabilitiesClient) GetCapabilities(ctx context.Context, in *GetCapabilitiesRequest, opts ...grpc.CallOption) (*ServerCapabilities, error) {
7496	out := new(ServerCapabilities)
7497	err := c.cc.Invoke(ctx, "/build.bazel.remote.execution.v2.Capabilities/GetCapabilities", in, out, opts...)
7498	if err != nil {
7499		return nil, err
7500	}
7501	return out, nil
7502}
7503
7504// CapabilitiesServer is the server API for Capabilities service.
7505type CapabilitiesServer interface {
7506	// GetCapabilities returns the server capabilities configuration of the
7507	// remote endpoint.
7508	// Only the capabilities of the services supported by the endpoint will
7509	// be returned:
7510	//   - Execution + CAS + Action Cache endpoints should return both
7511	//     CacheCapabilities and ExecutionCapabilities.
7512	//   - Execution only endpoints should return ExecutionCapabilities.
7513	//   - CAS + Action Cache only endpoints should return CacheCapabilities.
7514	//
7515	// There are no method-specific errors.
7516	GetCapabilities(context.Context, *GetCapabilitiesRequest) (*ServerCapabilities, error)
7517}
7518
7519// UnimplementedCapabilitiesServer can be embedded to have forward compatible implementations.
7520type UnimplementedCapabilitiesServer struct {
7521}
7522
7523func (*UnimplementedCapabilitiesServer) GetCapabilities(context.Context, *GetCapabilitiesRequest) (*ServerCapabilities, error) {
7524	return nil, status1.Errorf(codes.Unimplemented, "method GetCapabilities not implemented")
7525}
7526
7527func RegisterCapabilitiesServer(s *grpc.Server, srv CapabilitiesServer) {
7528	s.RegisterService(&_Capabilities_serviceDesc, srv)
7529}
7530
7531func _Capabilities_GetCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
7532	in := new(GetCapabilitiesRequest)
7533	if err := dec(in); err != nil {
7534		return nil, err
7535	}
7536	if interceptor == nil {
7537		return srv.(CapabilitiesServer).GetCapabilities(ctx, in)
7538	}
7539	info := &grpc.UnaryServerInfo{
7540		Server:     srv,
7541		FullMethod: "/build.bazel.remote.execution.v2.Capabilities/GetCapabilities",
7542	}
7543	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
7544		return srv.(CapabilitiesServer).GetCapabilities(ctx, req.(*GetCapabilitiesRequest))
7545	}
7546	return interceptor(ctx, in, info, handler)
7547}
7548
7549var _Capabilities_serviceDesc = grpc.ServiceDesc{
7550	ServiceName: "build.bazel.remote.execution.v2.Capabilities",
7551	HandlerType: (*CapabilitiesServer)(nil),
7552	Methods: []grpc.MethodDesc{
7553		{
7554			MethodName: "GetCapabilities",
7555			Handler:    _Capabilities_GetCapabilities_Handler,
7556		},
7557	},
7558	Streams:  []grpc.StreamDesc{},
7559	Metadata: "build/bazel/remote/execution/v2/remote_execution.proto",
7560}
7561