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