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