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