go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/swarming/proto/api_v2/swarming.pb.go (about) 1 // Copyright 2022 The LUCI Authors. All rights reserved. 2 // Use of this source code is governed under the Apache License, Version 2.0 3 // that can be found in the LICENSE file. 4 5 // Code generated by protoc-gen-go. DO NOT EDIT. 6 // versions: 7 // protoc-gen-go v1.31.0 8 // protoc v3.21.7 9 // source: go.chromium.org/luci/swarming/proto/api_v2/swarming.proto 10 11 package apipb 12 13 import ( 14 status "google.golang.org/genproto/googleapis/rpc/status" 15 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 16 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 17 emptypb "google.golang.org/protobuf/types/known/emptypb" 18 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 19 reflect "reflect" 20 sync "sync" 21 ) 22 23 const ( 24 // Verify that this generated code is sufficiently up-to-date. 25 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 26 // Verify that runtime/protoimpl is sufficiently up-to-date. 27 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 28 ) 29 30 // Use one of the values in this enum to query for tasks in one of the 31 // specified state. 32 // 33 // Use 'ALL' to not use any filtering based on task state. 34 // 35 // As an example, this enum enables querying for all tasks with state COMPLETED 36 // but non-zero exit code via COMPLETED_FAILURE. 37 // 38 // Do not confuse StateQuery and TaskState. StateQuery is to query tasks 39 // via the API. TaskState is the current task state. 40 type StateQuery int32 41 42 const ( 43 // Query for all tasks currently TaskState.PENDING. 44 StateQuery_QUERY_PENDING StateQuery = 0 45 // Query for all tasks currently TaskState.RUNNING. This includes tasks 46 // currently in the overhead phase; mapping input files or archiving outputs 47 // back to the server. 48 StateQuery_QUERY_RUNNING StateQuery = 1 49 // Query for all tasks currently TaskState.PENDING or TaskState.RUNNING. This 50 // is the query for the 'active' tasks. 51 StateQuery_QUERY_PENDING_RUNNING StateQuery = 2 52 // Query for all tasks that completed normally as TaskState.COMPLETED, 53 // independent of the process exit code. 54 StateQuery_QUERY_COMPLETED StateQuery = 3 55 // Query for all tasks that completed normally as TaskState.COMPLETED and that 56 // had exit code 0. 57 StateQuery_QUERY_COMPLETED_SUCCESS StateQuery = 4 58 // Query for all tasks that completed normally as TaskState.COMPLETED and that 59 // had exit code not 0. 60 StateQuery_QUERY_COMPLETED_FAILURE StateQuery = 5 61 // Query for all tasks that are TaskState.EXPIRED. 62 StateQuery_QUERY_EXPIRED StateQuery = 6 63 // Query for all tasks that are TaskState.TIMED_OUT. 64 StateQuery_QUERY_TIMED_OUT StateQuery = 7 65 // Query for all tasks that are TaskState.BOT_DIED. 66 StateQuery_QUERY_BOT_DIED StateQuery = 8 67 // Query for all tasks that are TaskState.CANCELED. 68 StateQuery_QUERY_CANCELED StateQuery = 9 69 // Query for all tasks, independent of the task state. 70 // 71 // In hindsight, this constant should have been the value 0. Sorry, the 72 // original author was young and foolish. 73 StateQuery_QUERY_ALL StateQuery = 10 74 // Query for all tasks that are TaskState.COMPLETED but that actually didn't 75 // run due to TaskProperties.idempotent being True *and* that a previous task 76 // with the exact same TaskProperties had successfully run before, aka 77 // COMPLETED_SUCCESS. 78 StateQuery_QUERY_DEDUPED StateQuery = 11 79 // Query for all tasks that are TaskState.KILLED. 80 StateQuery_QUERY_KILLED StateQuery = 12 81 // Query for all tasks that are TaskState.NO_RESOURCE. 82 StateQuery_QUERY_NO_RESOURCE StateQuery = 13 83 // Query for all tasks that are TaskState.CLIENT_ERROR. 84 StateQuery_QUERY_CLIENT_ERROR StateQuery = 14 85 ) 86 87 // Enum value maps for StateQuery. 88 var ( 89 StateQuery_name = map[int32]string{ 90 0: "QUERY_PENDING", 91 1: "QUERY_RUNNING", 92 2: "QUERY_PENDING_RUNNING", 93 3: "QUERY_COMPLETED", 94 4: "QUERY_COMPLETED_SUCCESS", 95 5: "QUERY_COMPLETED_FAILURE", 96 6: "QUERY_EXPIRED", 97 7: "QUERY_TIMED_OUT", 98 8: "QUERY_BOT_DIED", 99 9: "QUERY_CANCELED", 100 10: "QUERY_ALL", 101 11: "QUERY_DEDUPED", 102 12: "QUERY_KILLED", 103 13: "QUERY_NO_RESOURCE", 104 14: "QUERY_CLIENT_ERROR", 105 } 106 StateQuery_value = map[string]int32{ 107 "QUERY_PENDING": 0, 108 "QUERY_RUNNING": 1, 109 "QUERY_PENDING_RUNNING": 2, 110 "QUERY_COMPLETED": 3, 111 "QUERY_COMPLETED_SUCCESS": 4, 112 "QUERY_COMPLETED_FAILURE": 5, 113 "QUERY_EXPIRED": 6, 114 "QUERY_TIMED_OUT": 7, 115 "QUERY_BOT_DIED": 8, 116 "QUERY_CANCELED": 9, 117 "QUERY_ALL": 10, 118 "QUERY_DEDUPED": 11, 119 "QUERY_KILLED": 12, 120 "QUERY_NO_RESOURCE": 13, 121 "QUERY_CLIENT_ERROR": 14, 122 } 123 ) 124 125 func (x StateQuery) Enum() *StateQuery { 126 p := new(StateQuery) 127 *p = x 128 return p 129 } 130 131 func (x StateQuery) String() string { 132 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 133 } 134 135 func (StateQuery) Descriptor() protoreflect.EnumDescriptor { 136 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[0].Descriptor() 137 } 138 139 func (StateQuery) Type() protoreflect.EnumType { 140 return &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[0] 141 } 142 143 func (x StateQuery) Number() protoreflect.EnumNumber { 144 return protoreflect.EnumNumber(x) 145 } 146 147 // Deprecated: Use StateQuery.Descriptor instead. 148 func (StateQuery) EnumDescriptor() ([]byte, []int) { 149 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{0} 150 } 151 152 // Flag to sort returned tasks. The natural sort is CREATED_TS. 153 type SortQuery int32 154 155 const ( 156 SortQuery_QUERY_CREATED_TS SortQuery = 0 157 SortQuery_QUERY_COMPLETED_TS SortQuery = 2 158 SortQuery_QUERY_ABANDONED_TS SortQuery = 3 159 SortQuery_QUERY_STARTED_TS SortQuery = 4 160 ) 161 162 // Enum value maps for SortQuery. 163 var ( 164 SortQuery_name = map[int32]string{ 165 0: "QUERY_CREATED_TS", 166 2: "QUERY_COMPLETED_TS", 167 3: "QUERY_ABANDONED_TS", 168 4: "QUERY_STARTED_TS", 169 } 170 SortQuery_value = map[string]int32{ 171 "QUERY_CREATED_TS": 0, 172 "QUERY_COMPLETED_TS": 2, 173 "QUERY_ABANDONED_TS": 3, 174 "QUERY_STARTED_TS": 4, 175 } 176 ) 177 178 func (x SortQuery) Enum() *SortQuery { 179 p := new(SortQuery) 180 *p = x 181 return p 182 } 183 184 func (x SortQuery) String() string { 185 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 186 } 187 188 func (SortQuery) Descriptor() protoreflect.EnumDescriptor { 189 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[1].Descriptor() 190 } 191 192 func (SortQuery) Type() protoreflect.EnumType { 193 return &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[1] 194 } 195 196 func (x SortQuery) Number() protoreflect.EnumNumber { 197 return protoreflect.EnumNumber(x) 198 } 199 200 // Deprecated: Use SortQuery.Descriptor instead. 201 func (SortQuery) EnumDescriptor() ([]byte, []int) { 202 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{1} 203 } 204 205 // This flag is only relevant to windows swarming bots. 206 // It determines whether or not the task process will use a win32 JobObject. 207 type ContainmentType int32 208 209 const ( 210 // Do not specify a containment type. For tasks which don't run like 211 // Termination task. 212 ContainmentType_NOT_SPECIFIED ContainmentType = 0 213 // Do not use JOB_OBJECT to create new tasks. Has same effect as NOT_SPECIFIED 214 ContainmentType_NONE ContainmentType = 1 215 // On windows, this will start a process using win32 JobObject. 216 // On other platforms this will default to python standard POpen to create 217 // task process. 218 // See https://learn.microsoft.com/en-us/windows/win32/procthread/job-objects 219 ContainmentType_AUTO ContainmentType = 2 220 // Use JOB_OBJECTS on windows. Will auto-fail tasks on non-win32 platforms. 221 ContainmentType_JOB_OBJECT ContainmentType = 3 222 ) 223 224 // Enum value maps for ContainmentType. 225 var ( 226 ContainmentType_name = map[int32]string{ 227 0: "NOT_SPECIFIED", 228 1: "NONE", 229 2: "AUTO", 230 3: "JOB_OBJECT", 231 } 232 ContainmentType_value = map[string]int32{ 233 "NOT_SPECIFIED": 0, 234 "NONE": 1, 235 "AUTO": 2, 236 "JOB_OBJECT": 3, 237 } 238 ) 239 240 func (x ContainmentType) Enum() *ContainmentType { 241 p := new(ContainmentType) 242 *p = x 243 return p 244 } 245 246 func (x ContainmentType) String() string { 247 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 248 } 249 250 func (ContainmentType) Descriptor() protoreflect.EnumDescriptor { 251 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[2].Descriptor() 252 } 253 254 func (ContainmentType) Type() protoreflect.EnumType { 255 return &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[2] 256 } 257 258 func (x ContainmentType) Number() protoreflect.EnumNumber { 259 return protoreflect.EnumNumber(x) 260 } 261 262 // Deprecated: Use ContainmentType.Descriptor instead. 263 func (ContainmentType) EnumDescriptor() ([]byte, []int) { 264 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{2} 265 } 266 267 type NullableBool int32 268 269 const ( 270 NullableBool_NULL NullableBool = 0 271 NullableBool_FALSE NullableBool = 1 272 NullableBool_TRUE NullableBool = 2 273 ) 274 275 // Enum value maps for NullableBool. 276 var ( 277 NullableBool_name = map[int32]string{ 278 0: "NULL", 279 1: "FALSE", 280 2: "TRUE", 281 } 282 NullableBool_value = map[string]int32{ 283 "NULL": 0, 284 "FALSE": 1, 285 "TRUE": 2, 286 } 287 ) 288 289 func (x NullableBool) Enum() *NullableBool { 290 p := new(NullableBool) 291 *p = x 292 return p 293 } 294 295 func (x NullableBool) String() string { 296 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 297 } 298 299 func (NullableBool) Descriptor() protoreflect.EnumDescriptor { 300 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[3].Descriptor() 301 } 302 303 func (NullableBool) Type() protoreflect.EnumType { 304 return &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[3] 305 } 306 307 func (x NullableBool) Number() protoreflect.EnumNumber { 308 return protoreflect.EnumNumber(x) 309 } 310 311 // Deprecated: Use NullableBool.Descriptor instead. 312 func (NullableBool) EnumDescriptor() ([]byte, []int) { 313 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{3} 314 } 315 316 // Represents the current task state. 317 // 318 // Some states are still mutable: PENDING and RUNNING. The others are final and 319 // will not change afterward. 320 // 321 // A task is guaranteed to be in exactly one state at any point of time. 322 // 323 // Do not confuse StateQuery and TaskState. StateQuery is to query tasks 324 // via the API. TaskState is the current task state. 325 // 326 // As you read the following constants, astute readers may wonder why these 327 // constants look like a bitmask. This is because of historical reasons and this 328 // is effectively an enum, not a bitmask. 329 type TaskState int32 330 331 const ( 332 // Invalid state, do not use. 333 TaskState_INVALID TaskState = 0 334 // The task is currently running. This is in fact 3 phases: the initial 335 // overhead to fetch input files, the actual task running, and the tear down 336 // overhead to archive output files to the server. 337 TaskState_RUNNING TaskState = 16 338 // The task is currently pending. This means that no bot reaped the task. It 339 // will stay in this state until either a task reaps it or the expiration 340 // elapsed. The task pending expiration is specified as 341 // TaskSlice.expiration_secs, one per task slice. 342 TaskState_PENDING TaskState = 32 343 // The task is not pending anymore, and never ran due to lack of capacity. This 344 // means that other higher priority tasks ran instead and that not enough bots 345 // were available to run this task for TaskSlice.expiration_secs seconds. 346 TaskState_EXPIRED TaskState = 48 347 // The task ran for longer than the allowed time in 348 // TaskProperties.execution_timeout_secs or TaskProperties.io_timeout_secs. 349 // This means the bot forcefully killed the task process as described in the 350 // graceful termination dance in the documentation. 351 TaskState_TIMED_OUT TaskState = 64 352 // The task ran but the bot had an internal failure, unrelated to the task 353 // itself. It can be due to the server being unavailable to get task update, 354 // the host on which the bot is running crashing or rebooting, etc. 355 TaskState_BOT_DIED TaskState = 80 356 // The task never ran, and was manually cancelled via the 'cancel' API before 357 // it was reaped. 358 TaskState_CANCELED TaskState = 96 359 // The task ran and completed normally. The task process exit code may be 0 or 360 // another value. 361 TaskState_COMPLETED TaskState = 112 362 // The task ran but was manually killed via the 'cancel' API. This means the 363 // bot forcefully killed the task process as described in the graceful 364 // termination dance in the documentation. 365 TaskState_KILLED TaskState = 128 366 // The task was never set to PENDING and was immediately refused, as the server 367 // determined that there is no bot capacity to run this task. This happens 368 // because no bot exposes a superset of the requested task dimensions. 369 // 370 // Set TaskSlice.wait_for_capacity to True to force the server to keep the task 371 // slice pending even in this case. Generally speaking, the task will 372 // eventually switch to EXPIRED, as there's no bot to run it. That said, there 373 // are situations where it is known that in some not-too-distant future a wild 374 // bot will appear that will be able to run this task. 375 TaskState_NO_RESOURCE TaskState = 256 376 // The task run into an issue that was caused by the client. It can be due to 377 // a bad CIPD or CAS package. Retrying the task with the same parameters will 378 // not change the result. 379 TaskState_CLIENT_ERROR TaskState = 512 380 ) 381 382 // Enum value maps for TaskState. 383 var ( 384 TaskState_name = map[int32]string{ 385 0: "INVALID", 386 16: "RUNNING", 387 32: "PENDING", 388 48: "EXPIRED", 389 64: "TIMED_OUT", 390 80: "BOT_DIED", 391 96: "CANCELED", 392 112: "COMPLETED", 393 128: "KILLED", 394 256: "NO_RESOURCE", 395 512: "CLIENT_ERROR", 396 } 397 TaskState_value = map[string]int32{ 398 "INVALID": 0, 399 "RUNNING": 16, 400 "PENDING": 32, 401 "EXPIRED": 48, 402 "TIMED_OUT": 64, 403 "BOT_DIED": 80, 404 "CANCELED": 96, 405 "COMPLETED": 112, 406 "KILLED": 128, 407 "NO_RESOURCE": 256, 408 "CLIENT_ERROR": 512, 409 } 410 ) 411 412 func (x TaskState) Enum() *TaskState { 413 p := new(TaskState) 414 *p = x 415 return p 416 } 417 418 func (x TaskState) String() string { 419 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 420 } 421 422 func (TaskState) Descriptor() protoreflect.EnumDescriptor { 423 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[4].Descriptor() 424 } 425 426 func (TaskState) Type() protoreflect.EnumType { 427 return &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[4] 428 } 429 430 func (x TaskState) Number() protoreflect.EnumNumber { 431 return protoreflect.EnumNumber(x) 432 } 433 434 // Deprecated: Use TaskState.Descriptor instead. 435 func (TaskState) EnumDescriptor() ([]byte, []int) { 436 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{4} 437 } 438 439 // Controls the application of the pool's TaskTemplate to the creation of this 440 // task. By default this will automatically select the pool's preference for 441 // template, but you can also instruct swarming to prefer/prevent the 442 // application of canary templates, as well as skipping the template 443 // altogether. 444 type NewTaskRequest_PoolTaskTemplateField int32 445 446 const ( 447 NewTaskRequest_AUTO NewTaskRequest_PoolTaskTemplateField = 0 448 NewTaskRequest_CANARY_PREFER NewTaskRequest_PoolTaskTemplateField = 1 449 NewTaskRequest_CANARY_NEVER NewTaskRequest_PoolTaskTemplateField = 2 450 NewTaskRequest_SKIP NewTaskRequest_PoolTaskTemplateField = 3 451 ) 452 453 // Enum value maps for NewTaskRequest_PoolTaskTemplateField. 454 var ( 455 NewTaskRequest_PoolTaskTemplateField_name = map[int32]string{ 456 0: "AUTO", 457 1: "CANARY_PREFER", 458 2: "CANARY_NEVER", 459 3: "SKIP", 460 } 461 NewTaskRequest_PoolTaskTemplateField_value = map[string]int32{ 462 "AUTO": 0, 463 "CANARY_PREFER": 1, 464 "CANARY_NEVER": 2, 465 "SKIP": 3, 466 } 467 ) 468 469 func (x NewTaskRequest_PoolTaskTemplateField) Enum() *NewTaskRequest_PoolTaskTemplateField { 470 p := new(NewTaskRequest_PoolTaskTemplateField) 471 *p = x 472 return p 473 } 474 475 func (x NewTaskRequest_PoolTaskTemplateField) String() string { 476 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 477 } 478 479 func (NewTaskRequest_PoolTaskTemplateField) Descriptor() protoreflect.EnumDescriptor { 480 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[5].Descriptor() 481 } 482 483 func (NewTaskRequest_PoolTaskTemplateField) Type() protoreflect.EnumType { 484 return &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[5] 485 } 486 487 func (x NewTaskRequest_PoolTaskTemplateField) Number() protoreflect.EnumNumber { 488 return protoreflect.EnumNumber(x) 489 } 490 491 // Deprecated: Use NewTaskRequest_PoolTaskTemplateField.Descriptor instead. 492 func (NewTaskRequest_PoolTaskTemplateField) EnumDescriptor() ([]byte, []int) { 493 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{16, 0} 494 } 495 496 // Represents a mapping of string to a string. 497 // 498 // If the StringPair is itself repeated inside another message, the list 499 // must be sorted by key and the keys must be unique. 500 type StringPair struct { 501 state protoimpl.MessageState 502 sizeCache protoimpl.SizeCache 503 unknownFields protoimpl.UnknownFields 504 505 Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` 506 Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` 507 } 508 509 func (x *StringPair) Reset() { 510 *x = StringPair{} 511 if protoimpl.UnsafeEnabled { 512 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[0] 513 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 514 ms.StoreMessageInfo(mi) 515 } 516 } 517 518 func (x *StringPair) String() string { 519 return protoimpl.X.MessageStringOf(x) 520 } 521 522 func (*StringPair) ProtoMessage() {} 523 524 func (x *StringPair) ProtoReflect() protoreflect.Message { 525 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[0] 526 if protoimpl.UnsafeEnabled && x != nil { 527 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 528 if ms.LoadMessageInfo() == nil { 529 ms.StoreMessageInfo(mi) 530 } 531 return ms 532 } 533 return mi.MessageOf(x) 534 } 535 536 // Deprecated: Use StringPair.ProtoReflect.Descriptor instead. 537 func (*StringPair) Descriptor() ([]byte, []int) { 538 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{0} 539 } 540 541 func (x *StringPair) GetKey() string { 542 if x != nil { 543 return x.Key 544 } 545 return "" 546 } 547 548 func (x *StringPair) GetValue() string { 549 if x != nil { 550 return x.Value 551 } 552 return "" 553 } 554 555 // Represents a mapping of string to a list of strings. 556 // 557 // If the StringListPair is itself repeated inside another message, the list 558 // must be sorted by key and the keys must be unique. 559 type StringListPair struct { 560 state protoimpl.MessageState 561 sizeCache protoimpl.SizeCache 562 unknownFields protoimpl.UnknownFields 563 564 Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` 565 // All the values for this key. values must be sorted. Human readable. 566 // 567 // This string should make sense to a user in the context of 'key'. 568 Value []string `protobuf:"bytes,2,rep,name=value,proto3" json:"value,omitempty"` 569 } 570 571 func (x *StringListPair) Reset() { 572 *x = StringListPair{} 573 if protoimpl.UnsafeEnabled { 574 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[1] 575 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 576 ms.StoreMessageInfo(mi) 577 } 578 } 579 580 func (x *StringListPair) String() string { 581 return protoimpl.X.MessageStringOf(x) 582 } 583 584 func (*StringListPair) ProtoMessage() {} 585 586 func (x *StringListPair) ProtoReflect() protoreflect.Message { 587 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[1] 588 if protoimpl.UnsafeEnabled && x != nil { 589 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 590 if ms.LoadMessageInfo() == nil { 591 ms.StoreMessageInfo(mi) 592 } 593 return ms 594 } 595 return mi.MessageOf(x) 596 } 597 598 // Deprecated: Use StringListPair.ProtoReflect.Descriptor instead. 599 func (*StringListPair) Descriptor() ([]byte, []int) { 600 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{1} 601 } 602 603 func (x *StringListPair) GetKey() string { 604 if x != nil { 605 return x.Key 606 } 607 return "" 608 } 609 610 func (x *StringListPair) GetValue() []string { 611 if x != nil { 612 return x.Value 613 } 614 return nil 615 } 616 617 // Public details about the server. 618 type ServerDetails struct { 619 state protoimpl.MessageState 620 sizeCache protoimpl.SizeCache 621 unknownFields protoimpl.UnknownFields 622 623 ServerVersion string `protobuf:"bytes,1,opt,name=server_version,json=serverVersion,proto3" json:"server_version,omitempty"` 624 BotVersion string `protobuf:"bytes,2,opt,name=bot_version,json=botVersion,proto3" json:"bot_version,omitempty"` 625 // Deprecated: Marked as deprecated in go.chromium.org/luci/swarming/proto/api_v2/swarming.proto. 626 MachineProviderTemplate string `protobuf:"bytes,3,opt,name=machine_provider_template,json=machineProviderTemplate,proto3" json:"machine_provider_template,omitempty"` 627 DisplayServerUrlTemplate string `protobuf:"bytes,4,opt,name=display_server_url_template,json=displayServerUrlTemplate,proto3" json:"display_server_url_template,omitempty"` 628 // Deprecated: Marked as deprecated in go.chromium.org/luci/swarming/proto/api_v2/swarming.proto. 629 LuciConfig string `protobuf:"bytes,5,opt,name=luci_config,json=luciConfig,proto3" json:"luci_config,omitempty"` 630 CasViewerServer string `protobuf:"bytes,6,opt,name=cas_viewer_server,json=casViewerServer,proto3" json:"cas_viewer_server,omitempty"` 631 } 632 633 func (x *ServerDetails) Reset() { 634 *x = ServerDetails{} 635 if protoimpl.UnsafeEnabled { 636 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[2] 637 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 638 ms.StoreMessageInfo(mi) 639 } 640 } 641 642 func (x *ServerDetails) String() string { 643 return protoimpl.X.MessageStringOf(x) 644 } 645 646 func (*ServerDetails) ProtoMessage() {} 647 648 func (x *ServerDetails) ProtoReflect() protoreflect.Message { 649 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[2] 650 if protoimpl.UnsafeEnabled && x != nil { 651 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 652 if ms.LoadMessageInfo() == nil { 653 ms.StoreMessageInfo(mi) 654 } 655 return ms 656 } 657 return mi.MessageOf(x) 658 } 659 660 // Deprecated: Use ServerDetails.ProtoReflect.Descriptor instead. 661 func (*ServerDetails) Descriptor() ([]byte, []int) { 662 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{2} 663 } 664 665 func (x *ServerDetails) GetServerVersion() string { 666 if x != nil { 667 return x.ServerVersion 668 } 669 return "" 670 } 671 672 func (x *ServerDetails) GetBotVersion() string { 673 if x != nil { 674 return x.BotVersion 675 } 676 return "" 677 } 678 679 // Deprecated: Marked as deprecated in go.chromium.org/luci/swarming/proto/api_v2/swarming.proto. 680 func (x *ServerDetails) GetMachineProviderTemplate() string { 681 if x != nil { 682 return x.MachineProviderTemplate 683 } 684 return "" 685 } 686 687 func (x *ServerDetails) GetDisplayServerUrlTemplate() string { 688 if x != nil { 689 return x.DisplayServerUrlTemplate 690 } 691 return "" 692 } 693 694 // Deprecated: Marked as deprecated in go.chromium.org/luci/swarming/proto/api_v2/swarming.proto. 695 func (x *ServerDetails) GetLuciConfig() string { 696 if x != nil { 697 return x.LuciConfig 698 } 699 return "" 700 } 701 702 func (x *ServerDetails) GetCasViewerServer() string { 703 if x != nil { 704 return x.CasViewerServer 705 } 706 return "" 707 } 708 709 // An opaque token that can be used to bootstrap a new bot. 710 type BootstrapToken struct { 711 state protoimpl.MessageState 712 sizeCache protoimpl.SizeCache 713 unknownFields protoimpl.UnknownFields 714 715 BootstrapToken string `protobuf:"bytes,1,opt,name=bootstrap_token,json=bootstrapToken,proto3" json:"bootstrap_token,omitempty"` 716 } 717 718 func (x *BootstrapToken) Reset() { 719 *x = BootstrapToken{} 720 if protoimpl.UnsafeEnabled { 721 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[3] 722 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 723 ms.StoreMessageInfo(mi) 724 } 725 } 726 727 func (x *BootstrapToken) String() string { 728 return protoimpl.X.MessageStringOf(x) 729 } 730 731 func (*BootstrapToken) ProtoMessage() {} 732 733 func (x *BootstrapToken) ProtoReflect() protoreflect.Message { 734 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[3] 735 if protoimpl.UnsafeEnabled && x != nil { 736 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 737 if ms.LoadMessageInfo() == nil { 738 ms.StoreMessageInfo(mi) 739 } 740 return ms 741 } 742 return mi.MessageOf(x) 743 } 744 745 // Deprecated: Use BootstrapToken.ProtoReflect.Descriptor instead. 746 func (*BootstrapToken) Descriptor() ([]byte, []int) { 747 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{3} 748 } 749 750 func (x *BootstrapToken) GetBootstrapToken() string { 751 if x != nil { 752 return x.BootstrapToken 753 } 754 return "" 755 } 756 757 // Actions the caller is permitted to perform over a resource. 758 // 759 // The subject of an action is either a bot, a task or a bunch of pools, as 760 // specified in the PermissionsRequest message. Pools as specified indirectly 761 // via "pool:<name>" tags. 762 // 763 // This methods exists primarily to be used by the Web UI e.g. to hide 764 // inaccessible elements. 765 type ClientPermissions struct { 766 state protoimpl.MessageState 767 sizeCache protoimpl.SizeCache 768 unknownFields protoimpl.UnknownFields 769 770 // True if allowed to delete the specified bot. 771 DeleteBot bool `protobuf:"varint,1,opt,name=delete_bot,json=deleteBot,proto3" json:"delete_bot,omitempty"` 772 // True if allowed to delete bots in all specified pools. 773 DeleteBots bool `protobuf:"varint,2,opt,name=delete_bots,json=deleteBots,proto3" json:"delete_bots,omitempty"` 774 // True if allowed to terminate the specified bot. 775 TerminateBot bool `protobuf:"varint,3,opt,name=terminate_bot,json=terminateBot,proto3" json:"terminate_bot,omitempty"` 776 // Not used, always false. 777 // 778 // Deprecated: Marked as deprecated in go.chromium.org/luci/swarming/proto/api_v2/swarming.proto. 779 GetConfigs bool `protobuf:"varint,4,opt,name=get_configs,json=getConfigs,proto3" json:"get_configs,omitempty"` 780 // Not used, always false. 781 // 782 // Deprecated: Marked as deprecated in go.chromium.org/luci/swarming/proto/api_v2/swarming.proto. 783 PutConfigs bool `protobuf:"varint,5,opt,name=put_configs,json=putConfigs,proto3" json:"put_configs,omitempty"` 784 // True if allowed to cancel the specified task. 785 CancelTask bool `protobuf:"varint,6,opt,name=cancel_task,json=cancelTask,proto3" json:"cancel_task,omitempty"` 786 // True if allowed to request a bot bootstrap token. 787 GetBootstrapToken bool `protobuf:"varint,7,opt,name=get_bootstrap_token,json=getBootstrapToken,proto3" json:"get_bootstrap_token,omitempty"` 788 // True if allowed to cancel tasks in all specified pools. 789 CancelTasks bool `protobuf:"varint,8,opt,name=cancel_tasks,json=cancelTasks,proto3" json:"cancel_tasks,omitempty"` 790 // All known pools in which the caller is permitted to list all bots. 791 ListBots []string `protobuf:"bytes,9,rep,name=list_bots,json=listBots,proto3" json:"list_bots,omitempty"` 792 // All known pools in which the caller is permitted to list all tasks. 793 ListTasks []string `protobuf:"bytes,10,rep,name=list_tasks,json=listTasks,proto3" json:"list_tasks,omitempty"` 794 } 795 796 func (x *ClientPermissions) Reset() { 797 *x = ClientPermissions{} 798 if protoimpl.UnsafeEnabled { 799 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[4] 800 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 801 ms.StoreMessageInfo(mi) 802 } 803 } 804 805 func (x *ClientPermissions) String() string { 806 return protoimpl.X.MessageStringOf(x) 807 } 808 809 func (*ClientPermissions) ProtoMessage() {} 810 811 func (x *ClientPermissions) ProtoReflect() protoreflect.Message { 812 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[4] 813 if protoimpl.UnsafeEnabled && x != nil { 814 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 815 if ms.LoadMessageInfo() == nil { 816 ms.StoreMessageInfo(mi) 817 } 818 return ms 819 } 820 return mi.MessageOf(x) 821 } 822 823 // Deprecated: Use ClientPermissions.ProtoReflect.Descriptor instead. 824 func (*ClientPermissions) Descriptor() ([]byte, []int) { 825 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{4} 826 } 827 828 func (x *ClientPermissions) GetDeleteBot() bool { 829 if x != nil { 830 return x.DeleteBot 831 } 832 return false 833 } 834 835 func (x *ClientPermissions) GetDeleteBots() bool { 836 if x != nil { 837 return x.DeleteBots 838 } 839 return false 840 } 841 842 func (x *ClientPermissions) GetTerminateBot() bool { 843 if x != nil { 844 return x.TerminateBot 845 } 846 return false 847 } 848 849 // Deprecated: Marked as deprecated in go.chromium.org/luci/swarming/proto/api_v2/swarming.proto. 850 func (x *ClientPermissions) GetGetConfigs() bool { 851 if x != nil { 852 return x.GetConfigs 853 } 854 return false 855 } 856 857 // Deprecated: Marked as deprecated in go.chromium.org/luci/swarming/proto/api_v2/swarming.proto. 858 func (x *ClientPermissions) GetPutConfigs() bool { 859 if x != nil { 860 return x.PutConfigs 861 } 862 return false 863 } 864 865 func (x *ClientPermissions) GetCancelTask() bool { 866 if x != nil { 867 return x.CancelTask 868 } 869 return false 870 } 871 872 func (x *ClientPermissions) GetGetBootstrapToken() bool { 873 if x != nil { 874 return x.GetBootstrapToken 875 } 876 return false 877 } 878 879 func (x *ClientPermissions) GetCancelTasks() bool { 880 if x != nil { 881 return x.CancelTasks 882 } 883 return false 884 } 885 886 func (x *ClientPermissions) GetListBots() []string { 887 if x != nil { 888 return x.ListBots 889 } 890 return nil 891 } 892 893 func (x *ClientPermissions) GetListTasks() []string { 894 if x != nil { 895 return x.ListTasks 896 } 897 return nil 898 } 899 900 // This is a [Digest][build.bazel.remote.execution.v2.Digest] of a blob on 901 // RBE-CAS. See the explanations at the original definition. 902 // pylint: disable=line-too-long 903 // https://github.com/bazelbuild/remote-apis/blob/77cfb44a88577a7ade5dd2400425f6d50469ec6d/build/bazel/remote/execution/v2/remote_execution.proto#L753-L791 904 type Digest struct { 905 state protoimpl.MessageState 906 sizeCache protoimpl.SizeCache 907 unknownFields protoimpl.UnknownFields 908 909 Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` 910 SizeBytes int64 `protobuf:"varint,2,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"` 911 } 912 913 func (x *Digest) Reset() { 914 *x = Digest{} 915 if protoimpl.UnsafeEnabled { 916 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[5] 917 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 918 ms.StoreMessageInfo(mi) 919 } 920 } 921 922 func (x *Digest) String() string { 923 return protoimpl.X.MessageStringOf(x) 924 } 925 926 func (*Digest) ProtoMessage() {} 927 928 func (x *Digest) ProtoReflect() protoreflect.Message { 929 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[5] 930 if protoimpl.UnsafeEnabled && x != nil { 931 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 932 if ms.LoadMessageInfo() == nil { 933 ms.StoreMessageInfo(mi) 934 } 935 return ms 936 } 937 return mi.MessageOf(x) 938 } 939 940 // Deprecated: Use Digest.ProtoReflect.Descriptor instead. 941 func (*Digest) Descriptor() ([]byte, []int) { 942 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{5} 943 } 944 945 func (x *Digest) GetHash() string { 946 if x != nil { 947 return x.Hash 948 } 949 return "" 950 } 951 952 func (x *Digest) GetSizeBytes() int64 { 953 if x != nil { 954 return x.SizeBytes 955 } 956 return 0 957 } 958 959 type CASReference struct { 960 state protoimpl.MessageState 961 sizeCache protoimpl.SizeCache 962 unknownFields protoimpl.UnknownFields 963 964 // Full name of RBE-CAS instance. `projects/{project_id}/instances/{instance}`. 965 // e.g. projects/chromium-swarm/instances/default_instance 966 CasInstance string `protobuf:"bytes,1,opt,name=cas_instance,json=casInstance,proto3" json:"cas_instance,omitempty"` 967 // CAS Digest consists of hash and size bytes. 968 Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"` 969 } 970 971 func (x *CASReference) Reset() { 972 *x = CASReference{} 973 if protoimpl.UnsafeEnabled { 974 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[6] 975 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 976 ms.StoreMessageInfo(mi) 977 } 978 } 979 980 func (x *CASReference) String() string { 981 return protoimpl.X.MessageStringOf(x) 982 } 983 984 func (*CASReference) ProtoMessage() {} 985 986 func (x *CASReference) ProtoReflect() protoreflect.Message { 987 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[6] 988 if protoimpl.UnsafeEnabled && x != nil { 989 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 990 if ms.LoadMessageInfo() == nil { 991 ms.StoreMessageInfo(mi) 992 } 993 return ms 994 } 995 return mi.MessageOf(x) 996 } 997 998 // Deprecated: Use CASReference.ProtoReflect.Descriptor instead. 999 func (*CASReference) Descriptor() ([]byte, []int) { 1000 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{6} 1001 } 1002 1003 func (x *CASReference) GetCasInstance() string { 1004 if x != nil { 1005 return x.CasInstance 1006 } 1007 return "" 1008 } 1009 1010 func (x *CASReference) GetDigest() *Digest { 1011 if x != nil { 1012 return x.Digest 1013 } 1014 return nil 1015 } 1016 1017 type CipdPackage struct { 1018 state protoimpl.MessageState 1019 sizeCache protoimpl.SizeCache 1020 unknownFields protoimpl.UnknownFields 1021 1022 // A CIPD package to install in the run dir before task execution.""" 1023 // A template of a full CIPD package name, e.g. 1024 // "infra/tools/authutil/${platform}" 1025 // See also cipd.ALL_PARAMS. 1026 PackageName string `protobuf:"bytes,1,opt,name=package_name,json=packageName,proto3" json:"package_name,omitempty"` 1027 // Valid package version for all packages matched by package name. 1028 Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` 1029 // Path to dir, relative to the root dir, where to install the package. 1030 // If empty, the package will be installed a the root of the mapped directory. 1031 // If file names in the package and in the isolate clash, it will cause a 1032 // failure. 1033 Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"` 1034 } 1035 1036 func (x *CipdPackage) Reset() { 1037 *x = CipdPackage{} 1038 if protoimpl.UnsafeEnabled { 1039 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[7] 1040 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1041 ms.StoreMessageInfo(mi) 1042 } 1043 } 1044 1045 func (x *CipdPackage) String() string { 1046 return protoimpl.X.MessageStringOf(x) 1047 } 1048 1049 func (*CipdPackage) ProtoMessage() {} 1050 1051 func (x *CipdPackage) ProtoReflect() protoreflect.Message { 1052 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[7] 1053 if protoimpl.UnsafeEnabled && x != nil { 1054 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1055 if ms.LoadMessageInfo() == nil { 1056 ms.StoreMessageInfo(mi) 1057 } 1058 return ms 1059 } 1060 return mi.MessageOf(x) 1061 } 1062 1063 // Deprecated: Use CipdPackage.ProtoReflect.Descriptor instead. 1064 func (*CipdPackage) Descriptor() ([]byte, []int) { 1065 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{7} 1066 } 1067 1068 func (x *CipdPackage) GetPackageName() string { 1069 if x != nil { 1070 return x.PackageName 1071 } 1072 return "" 1073 } 1074 1075 func (x *CipdPackage) GetVersion() string { 1076 if x != nil { 1077 return x.Version 1078 } 1079 return "" 1080 } 1081 1082 func (x *CipdPackage) GetPath() string { 1083 if x != nil { 1084 return x.Path 1085 } 1086 return "" 1087 } 1088 1089 // Defines CIPD packages to install in task run directory. 1090 type CipdInput struct { 1091 state protoimpl.MessageState 1092 sizeCache protoimpl.SizeCache 1093 unknownFields protoimpl.UnknownFields 1094 1095 // URL of the CIPD server. Must start with "https://" or "http://". 1096 // This field or its subfields are optional if default cipd client is defined 1097 // in the server config. 1098 Server string `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"` 1099 // CIPD package of CIPD client to use. 1100 // client_package.version is required. 1101 // This field is optional is default value is defined in the server config. 1102 // client_package.path must be empty. 1103 ClientPackage *CipdPackage `protobuf:"bytes,2,opt,name=client_package,json=clientPackage,proto3" json:"client_package,omitempty"` 1104 // List of CIPD packages to install. 1105 Packages []*CipdPackage `protobuf:"bytes,3,rep,name=packages,proto3" json:"packages,omitempty"` 1106 } 1107 1108 func (x *CipdInput) Reset() { 1109 *x = CipdInput{} 1110 if protoimpl.UnsafeEnabled { 1111 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[8] 1112 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1113 ms.StoreMessageInfo(mi) 1114 } 1115 } 1116 1117 func (x *CipdInput) String() string { 1118 return protoimpl.X.MessageStringOf(x) 1119 } 1120 1121 func (*CipdInput) ProtoMessage() {} 1122 1123 func (x *CipdInput) ProtoReflect() protoreflect.Message { 1124 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[8] 1125 if protoimpl.UnsafeEnabled && x != nil { 1126 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1127 if ms.LoadMessageInfo() == nil { 1128 ms.StoreMessageInfo(mi) 1129 } 1130 return ms 1131 } 1132 return mi.MessageOf(x) 1133 } 1134 1135 // Deprecated: Use CipdInput.ProtoReflect.Descriptor instead. 1136 func (*CipdInput) Descriptor() ([]byte, []int) { 1137 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{8} 1138 } 1139 1140 func (x *CipdInput) GetServer() string { 1141 if x != nil { 1142 return x.Server 1143 } 1144 return "" 1145 } 1146 1147 func (x *CipdInput) GetClientPackage() *CipdPackage { 1148 if x != nil { 1149 return x.ClientPackage 1150 } 1151 return nil 1152 } 1153 1154 func (x *CipdInput) GetPackages() []*CipdPackage { 1155 if x != nil { 1156 return x.Packages 1157 } 1158 return nil 1159 } 1160 1161 // Defines pinned CIPD packages that were installed during the task. 1162 type CipdPins struct { 1163 state protoimpl.MessageState 1164 sizeCache protoimpl.SizeCache 1165 unknownFields protoimpl.UnknownFields 1166 1167 // The pinned package + version of the CIPD client that was actually used. 1168 ClientPackage *CipdPackage `protobuf:"bytes,1,opt,name=client_package,json=clientPackage,proto3" json:"client_package,omitempty"` 1169 // List of CIPD packages that were installed in the task with fully resolved 1170 // package names and versions. 1171 Packages []*CipdPackage `protobuf:"bytes,2,rep,name=packages,proto3" json:"packages,omitempty"` 1172 } 1173 1174 func (x *CipdPins) Reset() { 1175 *x = CipdPins{} 1176 if protoimpl.UnsafeEnabled { 1177 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[9] 1178 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1179 ms.StoreMessageInfo(mi) 1180 } 1181 } 1182 1183 func (x *CipdPins) String() string { 1184 return protoimpl.X.MessageStringOf(x) 1185 } 1186 1187 func (*CipdPins) ProtoMessage() {} 1188 1189 func (x *CipdPins) ProtoReflect() protoreflect.Message { 1190 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[9] 1191 if protoimpl.UnsafeEnabled && x != nil { 1192 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1193 if ms.LoadMessageInfo() == nil { 1194 ms.StoreMessageInfo(mi) 1195 } 1196 return ms 1197 } 1198 return mi.MessageOf(x) 1199 } 1200 1201 // Deprecated: Use CipdPins.ProtoReflect.Descriptor instead. 1202 func (*CipdPins) Descriptor() ([]byte, []int) { 1203 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{9} 1204 } 1205 1206 func (x *CipdPins) GetClientPackage() *CipdPackage { 1207 if x != nil { 1208 return x.ClientPackage 1209 } 1210 return nil 1211 } 1212 1213 func (x *CipdPins) GetPackages() []*CipdPackage { 1214 if x != nil { 1215 return x.Packages 1216 } 1217 return nil 1218 } 1219 1220 // Describes a named cache that should be present on the bot. 1221 // 1222 // A CacheEntry in a task specified that the task prefers the cache to be present 1223 // on the bot. A symlink to the cache directory is created at <run_dir>/|path|. 1224 // If cache is not present on the machine, the directory is empty. 1225 // If the tasks makes any changes to the contents of the cache directory, they 1226 // are persisted on the machine. If another task runs on the same machine and 1227 // requests the same named cache, even if mapped to a different path, it will see 1228 // the changes. 1229 type CacheEntry struct { 1230 state protoimpl.MessageState 1231 sizeCache protoimpl.SizeCache 1232 unknownFields protoimpl.UnknownFields 1233 1234 // Unique name of the cache. Required. Length is limited to 4096. 1235 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1236 // Relative path to the directory that will be linked to the named cache. 1237 // Required. 1238 // A path cannot be shared among multiple caches or CIPD installations. 1239 // A task will fail if a file/dir with the same name already exists. 1240 Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` 1241 } 1242 1243 func (x *CacheEntry) Reset() { 1244 *x = CacheEntry{} 1245 if protoimpl.UnsafeEnabled { 1246 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[10] 1247 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1248 ms.StoreMessageInfo(mi) 1249 } 1250 } 1251 1252 func (x *CacheEntry) String() string { 1253 return protoimpl.X.MessageStringOf(x) 1254 } 1255 1256 func (*CacheEntry) ProtoMessage() {} 1257 1258 func (x *CacheEntry) ProtoReflect() protoreflect.Message { 1259 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[10] 1260 if protoimpl.UnsafeEnabled && x != nil { 1261 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1262 if ms.LoadMessageInfo() == nil { 1263 ms.StoreMessageInfo(mi) 1264 } 1265 return ms 1266 } 1267 return mi.MessageOf(x) 1268 } 1269 1270 // Deprecated: Use CacheEntry.ProtoReflect.Descriptor instead. 1271 func (*CacheEntry) Descriptor() ([]byte, []int) { 1272 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{10} 1273 } 1274 1275 func (x *CacheEntry) GetName() string { 1276 if x != nil { 1277 return x.Name 1278 } 1279 return "" 1280 } 1281 1282 func (x *CacheEntry) GetPath() string { 1283 if x != nil { 1284 return x.Path 1285 } 1286 return "" 1287 } 1288 1289 type Containment struct { 1290 state protoimpl.MessageState 1291 sizeCache protoimpl.SizeCache 1292 unknownFields protoimpl.UnknownFields 1293 1294 ContainmentType ContainmentType `protobuf:"varint,1,opt,name=containment_type,json=containmentType,proto3,enum=swarming.v2.ContainmentType" json:"containment_type,omitempty"` 1295 } 1296 1297 func (x *Containment) Reset() { 1298 *x = Containment{} 1299 if protoimpl.UnsafeEnabled { 1300 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[11] 1301 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1302 ms.StoreMessageInfo(mi) 1303 } 1304 } 1305 1306 func (x *Containment) String() string { 1307 return protoimpl.X.MessageStringOf(x) 1308 } 1309 1310 func (*Containment) ProtoMessage() {} 1311 1312 func (x *Containment) ProtoReflect() protoreflect.Message { 1313 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[11] 1314 if protoimpl.UnsafeEnabled && x != nil { 1315 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1316 if ms.LoadMessageInfo() == nil { 1317 ms.StoreMessageInfo(mi) 1318 } 1319 return ms 1320 } 1321 return mi.MessageOf(x) 1322 } 1323 1324 // Deprecated: Use Containment.ProtoReflect.Descriptor instead. 1325 func (*Containment) Descriptor() ([]byte, []int) { 1326 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{11} 1327 } 1328 1329 func (x *Containment) GetContainmentType() ContainmentType { 1330 if x != nil { 1331 return x.ContainmentType 1332 } 1333 return ContainmentType_NOT_SPECIFIED 1334 } 1335 1336 // Important metadata about a particular task. 1337 type TaskProperties struct { 1338 state protoimpl.MessageState 1339 sizeCache protoimpl.SizeCache 1340 unknownFields protoimpl.UnknownFields 1341 1342 // Specifies named caches to map into the working directory. These caches 1343 // outlives the task, which can then be reused by tasks later used on this bot 1344 // that request the same named cache. 1345 Caches []*CacheEntry `protobuf:"bytes,1,rep,name=caches,proto3" json:"caches,omitempty"` 1346 // CIPD packages to install. These packages are meant to be software that is 1347 // needed (a dependency) to the task being run. Unlike isolated files, the CIPD 1348 // packages do not expire from the server. 1349 CipdInput *CipdInput `protobuf:"bytes,2,opt,name=cipd_input,json=cipdInput,proto3" json:"cipd_input,omitempty"` 1350 // Command to run. This has priority over a command specified in the isolated 1351 // files. 1352 Command []string `protobuf:"bytes,3,rep,name=command,proto3" json:"command,omitempty"` 1353 // Relative working directory to start the 'command' in, defaults to the root 1354 // mapped directory or what is provided in the isolated file, if any. 1355 RelativeCwd string `protobuf:"bytes,4,opt,name=relative_cwd,json=relativeCwd,proto3" json:"relative_cwd,omitempty"` 1356 // Dimensions are what is used to determine which bot can run the task. The 1357 // bot must have all the matching dimensions, even for repeated keys with 1358 // multiple different values. It is a logical AND, all values must match. 1359 // 1360 // It should have been a StringListPair but this would be a breaking change. 1361 Dimensions []*StringPair `protobuf:"bytes,5,rep,name=dimensions,proto3" json:"dimensions,omitempty"` 1362 // Environment variables to set when running the task. 1363 Env []*StringPair `protobuf:"bytes,6,rep,name=env,proto3" json:"env,omitempty"` 1364 // Swarming-root relative paths to prepend to a given environment variable. 1365 // 1366 // These allow you to put certain subdirectories of the task into PATH, 1367 // PYTHONPATH, or other PATH-like environment variables. The order of 1368 // operations is: 1369 // - Turn slashes into native-platform slashes. 1370 // - Make the path absolute 1371 // - Prepend it to the current value of the envvar using the os-native list 1372 // separator (i.e. `;` on windows, `:` on POSIX). 1373 // 1374 // Each envvar can have multiple paths to prepend. They will be prepended in 1375 // the order seen here. 1376 // 1377 // For example, if env_prefixes was: 1378 // 1379 // [("PATH", ["foo", "bar"]), 1380 // ("CUSTOMPATH", ["custom"])] 1381 // 1382 // The task would see: 1383 // 1384 // PATH=/path/to/swarming/rundir/foo:/path/to/swarming/rundir/bar:$PATH 1385 // CUSTOMPATH=/path/to/swarming/rundir/custom 1386 // 1387 // The path should always be specified here with forward-slashes, and it must 1388 // not attempt to escape the swarming root (i.e. must not contain `..`). 1389 // 1390 // These are applied AFTER evaluating `env` entries. 1391 EnvPrefixes []*StringListPair `protobuf:"bytes,7,rep,name=env_prefixes,json=envPrefixes,proto3" json:"env_prefixes,omitempty"` 1392 // Maximum number of seconds the task can run before its process is forcibly 1393 // terminated and the task results in TIMED_OUT. 1394 ExecutionTimeoutSecs int32 `protobuf:"varint,8,opt,name=execution_timeout_secs,json=executionTimeoutSecs,proto3" json:"execution_timeout_secs,omitempty"` 1395 // Number of second to give the child process after a SIGTERM before sending a 1396 // SIGKILL. See doc/Bot.md#timeout-handling 1397 GracePeriodSecs int32 `protobuf:"varint,9,opt,name=grace_period_secs,json=gracePeriodSecs,proto3" json:"grace_period_secs,omitempty"` 1398 // True if the task does not access any service through the network and is 1399 // believed to be 100% reproducible with the same outcome. In the case of a 1400 // successful task, previous results will be reused if possible. 1401 Idempotent bool `protobuf:"varint,10,opt,name=idempotent,proto3" json:"idempotent,omitempty"` 1402 // Digest of the input root uploaded to RBE-CAS. 1403 // This MUST be digest of [build.bazel.remote.execution.v2.Directory]. 1404 CasInputRoot *CASReference `protobuf:"bytes,11,opt,name=cas_input_root,json=casInputRoot,proto3" json:"cas_input_root,omitempty"` 1405 // Maximum number of seconds the task may be silent (no output to stdout nor 1406 // stderr) before it is considered hung and it forcibly terminated early and 1407 // the task results in TIMED_OUT. 1408 IoTimeoutSecs int32 `protobuf:"varint,12,opt,name=io_timeout_secs,json=ioTimeoutSecs,proto3" json:"io_timeout_secs,omitempty"` 1409 // Paths in the working directory to archive back. 1410 Outputs []string `protobuf:"bytes,13,rep,name=outputs,proto3" json:"outputs,omitempty"` 1411 // Secret bytes to provide to the task. Cannot be retrieved back. 1412 SecretBytes []byte `protobuf:"bytes,14,opt,name=secret_bytes,json=secretBytes,proto3" json:"secret_bytes,omitempty"` 1413 // Containment of the task processes. 1414 Containment *Containment `protobuf:"bytes,15,opt,name=containment,proto3" json:"containment,omitempty"` 1415 } 1416 1417 func (x *TaskProperties) Reset() { 1418 *x = TaskProperties{} 1419 if protoimpl.UnsafeEnabled { 1420 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[12] 1421 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1422 ms.StoreMessageInfo(mi) 1423 } 1424 } 1425 1426 func (x *TaskProperties) String() string { 1427 return protoimpl.X.MessageStringOf(x) 1428 } 1429 1430 func (*TaskProperties) ProtoMessage() {} 1431 1432 func (x *TaskProperties) ProtoReflect() protoreflect.Message { 1433 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[12] 1434 if protoimpl.UnsafeEnabled && x != nil { 1435 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1436 if ms.LoadMessageInfo() == nil { 1437 ms.StoreMessageInfo(mi) 1438 } 1439 return ms 1440 } 1441 return mi.MessageOf(x) 1442 } 1443 1444 // Deprecated: Use TaskProperties.ProtoReflect.Descriptor instead. 1445 func (*TaskProperties) Descriptor() ([]byte, []int) { 1446 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{12} 1447 } 1448 1449 func (x *TaskProperties) GetCaches() []*CacheEntry { 1450 if x != nil { 1451 return x.Caches 1452 } 1453 return nil 1454 } 1455 1456 func (x *TaskProperties) GetCipdInput() *CipdInput { 1457 if x != nil { 1458 return x.CipdInput 1459 } 1460 return nil 1461 } 1462 1463 func (x *TaskProperties) GetCommand() []string { 1464 if x != nil { 1465 return x.Command 1466 } 1467 return nil 1468 } 1469 1470 func (x *TaskProperties) GetRelativeCwd() string { 1471 if x != nil { 1472 return x.RelativeCwd 1473 } 1474 return "" 1475 } 1476 1477 func (x *TaskProperties) GetDimensions() []*StringPair { 1478 if x != nil { 1479 return x.Dimensions 1480 } 1481 return nil 1482 } 1483 1484 func (x *TaskProperties) GetEnv() []*StringPair { 1485 if x != nil { 1486 return x.Env 1487 } 1488 return nil 1489 } 1490 1491 func (x *TaskProperties) GetEnvPrefixes() []*StringListPair { 1492 if x != nil { 1493 return x.EnvPrefixes 1494 } 1495 return nil 1496 } 1497 1498 func (x *TaskProperties) GetExecutionTimeoutSecs() int32 { 1499 if x != nil { 1500 return x.ExecutionTimeoutSecs 1501 } 1502 return 0 1503 } 1504 1505 func (x *TaskProperties) GetGracePeriodSecs() int32 { 1506 if x != nil { 1507 return x.GracePeriodSecs 1508 } 1509 return 0 1510 } 1511 1512 func (x *TaskProperties) GetIdempotent() bool { 1513 if x != nil { 1514 return x.Idempotent 1515 } 1516 return false 1517 } 1518 1519 func (x *TaskProperties) GetCasInputRoot() *CASReference { 1520 if x != nil { 1521 return x.CasInputRoot 1522 } 1523 return nil 1524 } 1525 1526 func (x *TaskProperties) GetIoTimeoutSecs() int32 { 1527 if x != nil { 1528 return x.IoTimeoutSecs 1529 } 1530 return 0 1531 } 1532 1533 func (x *TaskProperties) GetOutputs() []string { 1534 if x != nil { 1535 return x.Outputs 1536 } 1537 return nil 1538 } 1539 1540 func (x *TaskProperties) GetSecretBytes() []byte { 1541 if x != nil { 1542 return x.SecretBytes 1543 } 1544 return nil 1545 } 1546 1547 func (x *TaskProperties) GetContainment() *Containment { 1548 if x != nil { 1549 return x.Containment 1550 } 1551 return nil 1552 } 1553 1554 // Defines a possible task execution for a task request to be run on the 1555 // Swarming infrastructure. 1556 // 1557 // This is one of the possible fallback on a task request. 1558 type TaskSlice struct { 1559 state protoimpl.MessageState 1560 sizeCache protoimpl.SizeCache 1561 unknownFields protoimpl.UnknownFields 1562 1563 // The property of the task to try to run. 1564 // 1565 // If there is no bot that can serve this properties.dimensions when this task 1566 // slice is enqueued, it is immediately denied. This can trigger if: 1567 // - There is no bot with these dimensions currently known. 1568 // - Bots that could run this task are either all dead or quarantined. 1569 // Swarming considers a bot dead if it hasn't pinged in the last N minutes 1570 // (currently 10 minutes). 1571 Properties *TaskProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` 1572 // Maximum of seconds the task slice may stay PENDING. 1573 // 1574 // If this task request slice is not scheduled after waiting this long, the 1575 // next one will be processed. If this slice is the last one, the task state 1576 // will be set to EXPIRED. 1577 ExpirationSecs int32 `protobuf:"varint,2,opt,name=expiration_secs,json=expirationSecs,proto3" json:"expiration_secs,omitempty"` 1578 // When a task is scheduled and there are currently no bots available to run 1579 // the task, the TaskSlice can either be PENDING, or be denied immediately. 1580 // When denied, the next TaskSlice is enqueued, and if there's no following 1581 // TaskSlice, the task state is set to NO_RESOURCE. This should normally be 1582 // set to False to avoid unnecessary waiting. 1583 WaitForCapacity bool `protobuf:"varint,3,opt,name=wait_for_capacity,json=waitForCapacity,proto3" json:"wait_for_capacity,omitempty"` 1584 } 1585 1586 func (x *TaskSlice) Reset() { 1587 *x = TaskSlice{} 1588 if protoimpl.UnsafeEnabled { 1589 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[13] 1590 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1591 ms.StoreMessageInfo(mi) 1592 } 1593 } 1594 1595 func (x *TaskSlice) String() string { 1596 return protoimpl.X.MessageStringOf(x) 1597 } 1598 1599 func (*TaskSlice) ProtoMessage() {} 1600 1601 func (x *TaskSlice) ProtoReflect() protoreflect.Message { 1602 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[13] 1603 if protoimpl.UnsafeEnabled && x != nil { 1604 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1605 if ms.LoadMessageInfo() == nil { 1606 ms.StoreMessageInfo(mi) 1607 } 1608 return ms 1609 } 1610 return mi.MessageOf(x) 1611 } 1612 1613 // Deprecated: Use TaskSlice.ProtoReflect.Descriptor instead. 1614 func (*TaskSlice) Descriptor() ([]byte, []int) { 1615 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{13} 1616 } 1617 1618 func (x *TaskSlice) GetProperties() *TaskProperties { 1619 if x != nil { 1620 return x.Properties 1621 } 1622 return nil 1623 } 1624 1625 func (x *TaskSlice) GetExpirationSecs() int32 { 1626 if x != nil { 1627 return x.ExpirationSecs 1628 } 1629 return 0 1630 } 1631 1632 func (x *TaskSlice) GetWaitForCapacity() bool { 1633 if x != nil { 1634 return x.WaitForCapacity 1635 } 1636 return false 1637 } 1638 1639 type SwarmingTaskBackendConfig struct { 1640 state protoimpl.MessageState 1641 sizeCache protoimpl.SizeCache 1642 unknownFields protoimpl.UnknownFields 1643 1644 // Task priority, the lower the more important. 1645 // 1646 // Valid values are between 1 and 255. 1647 Priority int32 `protobuf:"varint,1,opt,name=priority,proto3" json:"priority,omitempty"` 1648 // Maximum delay (in seconds) between bot pings before the bot is considered 1649 // dead while running a task. 1650 // 1651 // When a task is running, the bot sends update to the server every 1652 // few seconds. In some cases, like when the system is overloaded, 1653 // the bot may be preempted and delayed in sending its updates. 1654 // After the delay specified here, the server will claim the bot to 1655 // be dead and will forcibly abort the task as BOT_DIED. This is to 1656 // catch system wide issues like a BSOD. 1657 BotPingTolerance int64 `protobuf:"varint,2,opt,name=bot_ping_tolerance,json=botPingTolerance,proto3" json:"bot_ping_tolerance,omitempty"` 1658 // Parent Swarming task run ID of the process requesting this task. 1659 // 1660 // This field is set on the children tasks when a Swarming task creates 1661 // children Swarming tasks. 1662 // 1663 // This points to the TaskResult.run_id (ending with '1', '2' or more). 1664 ParentRunId string `protobuf:"bytes,3,opt,name=parent_run_id,json=parentRunId,proto3" json:"parent_run_id,omitempty"` 1665 // Defines what OAuth2 credentials the task uses when calling other services. 1666 // 1667 // Possible values are: 1668 // - 'none': do not use a task service account at all, this is the default. 1669 // - 'bot': use bot's own account, works only if bots authenticate with 1670 // OAuth2. 1671 // - <some email>: use this specific service account if it is allowed in the 1672 // pool (via 'allowed_service_account' pools.cfg setting) and configured 1673 // in the token server's service_accounts.cfg. 1674 // 1675 // Note that the service account name is specified outside of task properties, 1676 // and thus it is possible to have two tasks with different service accounts, 1677 // but identical properties hash (so one can be deduped). If this is 1678 // unsuitable use 'idempotent=False' or include a service account name in 1679 // properties separately. 1680 ServiceAccount string `protobuf:"bytes,4,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"` 1681 // When a task is scheduled and there are currently no bots available to run 1682 // the task, the TaskSlice can either be PENDING, or be denied immediately. 1683 // When denied, the next TaskSlice is enqueued, and if there's no following 1684 // TaskSlice, the task state is set to NO_RESOURCE. This should normally be 1685 // set to False to avoid unnecessary waiting. 1686 WaitForCapacity bool `protobuf:"varint,5,opt,name=wait_for_capacity,json=waitForCapacity,proto3" json:"wait_for_capacity,omitempty"` 1687 // CIPD package of the agent binary that should be called to run the task 1688 // command. Note that it will end with "${platform}" 1689 AgentBinaryCipdPkg string `protobuf:"bytes,6,opt,name=agent_binary_cipd_pkg,json=agentBinaryCipdPkg,proto3" json:"agent_binary_cipd_pkg,omitempty"` 1690 // CIPD package tag or ref of the agent binary. 1691 AgentBinaryCipdVers string `protobuf:"bytes,7,opt,name=agent_binary_cipd_vers,json=agentBinaryCipdVers,proto3" json:"agent_binary_cipd_vers,omitempty"` 1692 // Name of the file within the CIPD package and should be used to construct 1693 // the task command line. 1694 AgentBinaryCipdFilename string `protobuf:"bytes,8,opt,name=agent_binary_cipd_filename,json=agentBinaryCipdFilename,proto3" json:"agent_binary_cipd_filename,omitempty"` 1695 // Name of the CIPD server. 1696 AgentBinaryCipdServer string `protobuf:"bytes,9,opt,name=agent_binary_cipd_server,json=agentBinaryCipdServer,proto3" json:"agent_binary_cipd_server,omitempty"` 1697 // Tags are 'key:value' strings that describes what the task is about. 1698 // This can later be leveraged to search for kinds of tasks per tag. 1699 Tags []string `protobuf:"bytes,10,rep,name=tags,proto3" json:"tags,omitempty"` 1700 } 1701 1702 func (x *SwarmingTaskBackendConfig) Reset() { 1703 *x = SwarmingTaskBackendConfig{} 1704 if protoimpl.UnsafeEnabled { 1705 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[14] 1706 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1707 ms.StoreMessageInfo(mi) 1708 } 1709 } 1710 1711 func (x *SwarmingTaskBackendConfig) String() string { 1712 return protoimpl.X.MessageStringOf(x) 1713 } 1714 1715 func (*SwarmingTaskBackendConfig) ProtoMessage() {} 1716 1717 func (x *SwarmingTaskBackendConfig) ProtoReflect() protoreflect.Message { 1718 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[14] 1719 if protoimpl.UnsafeEnabled && x != nil { 1720 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1721 if ms.LoadMessageInfo() == nil { 1722 ms.StoreMessageInfo(mi) 1723 } 1724 return ms 1725 } 1726 return mi.MessageOf(x) 1727 } 1728 1729 // Deprecated: Use SwarmingTaskBackendConfig.ProtoReflect.Descriptor instead. 1730 func (*SwarmingTaskBackendConfig) Descriptor() ([]byte, []int) { 1731 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{14} 1732 } 1733 1734 func (x *SwarmingTaskBackendConfig) GetPriority() int32 { 1735 if x != nil { 1736 return x.Priority 1737 } 1738 return 0 1739 } 1740 1741 func (x *SwarmingTaskBackendConfig) GetBotPingTolerance() int64 { 1742 if x != nil { 1743 return x.BotPingTolerance 1744 } 1745 return 0 1746 } 1747 1748 func (x *SwarmingTaskBackendConfig) GetParentRunId() string { 1749 if x != nil { 1750 return x.ParentRunId 1751 } 1752 return "" 1753 } 1754 1755 func (x *SwarmingTaskBackendConfig) GetServiceAccount() string { 1756 if x != nil { 1757 return x.ServiceAccount 1758 } 1759 return "" 1760 } 1761 1762 func (x *SwarmingTaskBackendConfig) GetWaitForCapacity() bool { 1763 if x != nil { 1764 return x.WaitForCapacity 1765 } 1766 return false 1767 } 1768 1769 func (x *SwarmingTaskBackendConfig) GetAgentBinaryCipdPkg() string { 1770 if x != nil { 1771 return x.AgentBinaryCipdPkg 1772 } 1773 return "" 1774 } 1775 1776 func (x *SwarmingTaskBackendConfig) GetAgentBinaryCipdVers() string { 1777 if x != nil { 1778 return x.AgentBinaryCipdVers 1779 } 1780 return "" 1781 } 1782 1783 func (x *SwarmingTaskBackendConfig) GetAgentBinaryCipdFilename() string { 1784 if x != nil { 1785 return x.AgentBinaryCipdFilename 1786 } 1787 return "" 1788 } 1789 1790 func (x *SwarmingTaskBackendConfig) GetAgentBinaryCipdServer() string { 1791 if x != nil { 1792 return x.AgentBinaryCipdServer 1793 } 1794 return "" 1795 } 1796 1797 func (x *SwarmingTaskBackendConfig) GetTags() []string { 1798 if x != nil { 1799 return x.Tags 1800 } 1801 return nil 1802 } 1803 1804 // Swarming:ResultDB integration configuration for a task. 1805 // See NewTaskRequest.resultdb for more details. 1806 type ResultDBCfg struct { 1807 state protoimpl.MessageState 1808 sizeCache protoimpl.SizeCache 1809 unknownFields protoimpl.UnknownFields 1810 1811 // If True and this task is not deduplicated, create 1812 // "task-{swarming_hostname}-{run_id}" invocation for this task, 1813 // provide its update token to the task subprocess via LUCI_CONTEXT 1814 // and finalize the invocation when the task is done. 1815 // If the task is deduplicated, then TaskResult.invocation_name will be the 1816 // invocation name of the original task. 1817 // Swarming:ResultDB integration is off by default, but it may change in the 1818 // future. 1819 Enable bool `protobuf:"varint,1,opt,name=enable,proto3" json:"enable,omitempty"` 1820 } 1821 1822 func (x *ResultDBCfg) Reset() { 1823 *x = ResultDBCfg{} 1824 if protoimpl.UnsafeEnabled { 1825 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[15] 1826 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1827 ms.StoreMessageInfo(mi) 1828 } 1829 } 1830 1831 func (x *ResultDBCfg) String() string { 1832 return protoimpl.X.MessageStringOf(x) 1833 } 1834 1835 func (*ResultDBCfg) ProtoMessage() {} 1836 1837 func (x *ResultDBCfg) ProtoReflect() protoreflect.Message { 1838 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[15] 1839 if protoimpl.UnsafeEnabled && x != nil { 1840 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1841 if ms.LoadMessageInfo() == nil { 1842 ms.StoreMessageInfo(mi) 1843 } 1844 return ms 1845 } 1846 return mi.MessageOf(x) 1847 } 1848 1849 // Deprecated: Use ResultDBCfg.ProtoReflect.Descriptor instead. 1850 func (*ResultDBCfg) Descriptor() ([]byte, []int) { 1851 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{15} 1852 } 1853 1854 func (x *ResultDBCfg) GetEnable() bool { 1855 if x != nil { 1856 return x.Enable 1857 } 1858 return false 1859 } 1860 1861 // Description of a new task request as described by the client. 1862 // This message is used to create a new task. 1863 type NewTaskRequest struct { 1864 state protoimpl.MessageState 1865 sizeCache protoimpl.SizeCache 1866 unknownFields protoimpl.UnknownFields 1867 1868 // DEPRECATED. Use task_slices[0].expiration_secs. 1869 ExpirationSecs int32 `protobuf:"varint,1,opt,name=expiration_secs,json=expirationSecs,proto3" json:"expiration_secs,omitempty"` 1870 // Task name for display purpose. 1871 Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` 1872 // Parent Swarming run ID of the process requesting this task. This is to tell 1873 // the server about reentrancy: when a task creates children Swarming tasks, so 1874 // that the tree of tasks can be presented in the UI; the parent task will list 1875 // all the children tasks that were triggered. 1876 ParentTaskId string `protobuf:"bytes,3,opt,name=parent_task_id,json=parentTaskId,proto3" json:"parent_task_id,omitempty"` 1877 // Task priority, the lower the more important. 1878 Priority int32 `protobuf:"varint,4,opt,name=priority,proto3" json:"priority,omitempty"` 1879 // DEPRECATED. Use task_slices[0].properties. 1880 Properties *TaskProperties `protobuf:"bytes,5,opt,name=properties,proto3" json:"properties,omitempty"` 1881 // Slice of TaskSlice, along their scheduling parameters. Cannot be used at the 1882 // same time as properties and expiration_secs. 1883 // 1884 // This defines all the various possible task execution for a task request to 1885 // be run on the Swarming infrastructure. They are processed in order, and it 1886 // is guaranteed that at most one of these will be processed. 1887 TaskSlices []*TaskSlice `protobuf:"bytes,6,rep,name=task_slices,json=taskSlices,proto3" json:"task_slices,omitempty"` 1888 // Tags are 'key:value' strings that describes what the task is about. This can 1889 // later be leveraged to search for kinds of tasks per tag. 1890 Tags []string `protobuf:"bytes,7,rep,name=tags,proto3" json:"tags,omitempty"` 1891 // User on which behalf this task is run, if relevant. Not validated. 1892 User string `protobuf:"bytes,8,opt,name=user,proto3" json:"user,omitempty"` 1893 // Defines what OAuth2 credentials the task uses when calling other services. 1894 // 1895 // Possible values are: 1896 // - 'none': do not use a task service account at all, this is the default. 1897 // - 'bot': use bot's own account, works only if bots authenticate with 1898 // OAuth2. 1899 // - <some email>: use this specific service account if it is allowed in the 1900 // pool (via 'allowed_service_account' pools.cfg setting) and configured 1901 // in the token server's service_accounts.cfg. 1902 // 1903 // Note that the service account name is specified outside of task properties, 1904 // and thus it is possible to have two tasks with different service accounts, 1905 // but identical properties hash (so one can be deduped). If this is unsuitable 1906 // use 'idempotent=False' or include a service account name in properties 1907 // separately. 1908 ServiceAccount string `protobuf:"bytes,9,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"` 1909 // Full topic name to post task state updates to, e.g. 1910 // "projects/<id>/topics/<id>". 1911 PubsubTopic string `protobuf:"bytes,10,opt,name=pubsub_topic,json=pubsubTopic,proto3" json:"pubsub_topic,omitempty"` 1912 // Secret string to put into "auth_token" attribute of PubSub message. 1913 PubsubAuthToken string `protobuf:"bytes,11,opt,name=pubsub_auth_token,json=pubsubAuthToken,proto3" json:"pubsub_auth_token,omitempty"` 1914 // Will be but into "userdata" fields of PubSub message. 1915 PubsubUserdata string `protobuf:"bytes,12,opt,name=pubsub_userdata,json=pubsubUserdata,proto3" json:"pubsub_userdata,omitempty"` 1916 // Only evaluate the task, as if we were going to schedule it, but don't 1917 // actually schedule it. This will return the TaskRequest, but without 1918 // a task_id. 1919 EvaluateOnly bool `protobuf:"varint,13,opt,name=evaluate_only,json=evaluateOnly,proto3" json:"evaluate_only,omitempty"` 1920 PoolTaskTemplate NewTaskRequest_PoolTaskTemplateField `protobuf:"varint,14,opt,name=pool_task_template,json=poolTaskTemplate,proto3,enum=swarming.v2.NewTaskRequest_PoolTaskTemplateField" json:"pool_task_template,omitempty"` 1921 // Maximum delay between bot pings before the bot is considered dead 1922 // while running a task. 1923 BotPingToleranceSecs int32 `protobuf:"varint,15,opt,name=bot_ping_tolerance_secs,json=botPingToleranceSecs,proto3" json:"bot_ping_tolerance_secs,omitempty"` 1924 // This is used to make new task request idempotent in best effort. 1925 // If new request has request_uuid field, it checks memcache before scheduling 1926 // actual task to check there is already the task triggered by same request 1927 // previously. 1928 RequestUuid string `protobuf:"bytes,16,opt,name=request_uuid,json=requestUuid,proto3" json:"request_uuid,omitempty"` 1929 // Configuration of Swarming:ResultDB integration. 1930 Resultdb *ResultDBCfg `protobuf:"bytes,17,opt,name=resultdb,proto3" json:"resultdb,omitempty"` 1931 // Task realm. 1932 // See api/swarming.proto for more details. 1933 Realm string `protobuf:"bytes,18,opt,name=realm,proto3" json:"realm,omitempty"` 1934 } 1935 1936 func (x *NewTaskRequest) Reset() { 1937 *x = NewTaskRequest{} 1938 if protoimpl.UnsafeEnabled { 1939 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[16] 1940 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1941 ms.StoreMessageInfo(mi) 1942 } 1943 } 1944 1945 func (x *NewTaskRequest) String() string { 1946 return protoimpl.X.MessageStringOf(x) 1947 } 1948 1949 func (*NewTaskRequest) ProtoMessage() {} 1950 1951 func (x *NewTaskRequest) ProtoReflect() protoreflect.Message { 1952 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[16] 1953 if protoimpl.UnsafeEnabled && x != nil { 1954 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1955 if ms.LoadMessageInfo() == nil { 1956 ms.StoreMessageInfo(mi) 1957 } 1958 return ms 1959 } 1960 return mi.MessageOf(x) 1961 } 1962 1963 // Deprecated: Use NewTaskRequest.ProtoReflect.Descriptor instead. 1964 func (*NewTaskRequest) Descriptor() ([]byte, []int) { 1965 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{16} 1966 } 1967 1968 func (x *NewTaskRequest) GetExpirationSecs() int32 { 1969 if x != nil { 1970 return x.ExpirationSecs 1971 } 1972 return 0 1973 } 1974 1975 func (x *NewTaskRequest) GetName() string { 1976 if x != nil { 1977 return x.Name 1978 } 1979 return "" 1980 } 1981 1982 func (x *NewTaskRequest) GetParentTaskId() string { 1983 if x != nil { 1984 return x.ParentTaskId 1985 } 1986 return "" 1987 } 1988 1989 func (x *NewTaskRequest) GetPriority() int32 { 1990 if x != nil { 1991 return x.Priority 1992 } 1993 return 0 1994 } 1995 1996 func (x *NewTaskRequest) GetProperties() *TaskProperties { 1997 if x != nil { 1998 return x.Properties 1999 } 2000 return nil 2001 } 2002 2003 func (x *NewTaskRequest) GetTaskSlices() []*TaskSlice { 2004 if x != nil { 2005 return x.TaskSlices 2006 } 2007 return nil 2008 } 2009 2010 func (x *NewTaskRequest) GetTags() []string { 2011 if x != nil { 2012 return x.Tags 2013 } 2014 return nil 2015 } 2016 2017 func (x *NewTaskRequest) GetUser() string { 2018 if x != nil { 2019 return x.User 2020 } 2021 return "" 2022 } 2023 2024 func (x *NewTaskRequest) GetServiceAccount() string { 2025 if x != nil { 2026 return x.ServiceAccount 2027 } 2028 return "" 2029 } 2030 2031 func (x *NewTaskRequest) GetPubsubTopic() string { 2032 if x != nil { 2033 return x.PubsubTopic 2034 } 2035 return "" 2036 } 2037 2038 func (x *NewTaskRequest) GetPubsubAuthToken() string { 2039 if x != nil { 2040 return x.PubsubAuthToken 2041 } 2042 return "" 2043 } 2044 2045 func (x *NewTaskRequest) GetPubsubUserdata() string { 2046 if x != nil { 2047 return x.PubsubUserdata 2048 } 2049 return "" 2050 } 2051 2052 func (x *NewTaskRequest) GetEvaluateOnly() bool { 2053 if x != nil { 2054 return x.EvaluateOnly 2055 } 2056 return false 2057 } 2058 2059 func (x *NewTaskRequest) GetPoolTaskTemplate() NewTaskRequest_PoolTaskTemplateField { 2060 if x != nil { 2061 return x.PoolTaskTemplate 2062 } 2063 return NewTaskRequest_AUTO 2064 } 2065 2066 func (x *NewTaskRequest) GetBotPingToleranceSecs() int32 { 2067 if x != nil { 2068 return x.BotPingToleranceSecs 2069 } 2070 return 0 2071 } 2072 2073 func (x *NewTaskRequest) GetRequestUuid() string { 2074 if x != nil { 2075 return x.RequestUuid 2076 } 2077 return "" 2078 } 2079 2080 func (x *NewTaskRequest) GetResultdb() *ResultDBCfg { 2081 if x != nil { 2082 return x.Resultdb 2083 } 2084 return nil 2085 } 2086 2087 func (x *NewTaskRequest) GetRealm() string { 2088 if x != nil { 2089 return x.Realm 2090 } 2091 return "" 2092 } 2093 2094 // Description of a task request as registered by the server. 2095 // This message is used when retrieving information about an existing task. 2096 // See NewTaskRequest for more details. 2097 type TaskRequestResponse struct { 2098 state protoimpl.MessageState 2099 sizeCache protoimpl.SizeCache 2100 unknownFields protoimpl.UnknownFields 2101 2102 TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` 2103 ExpirationSecs int32 `protobuf:"varint,2,opt,name=expiration_secs,json=expirationSecs,proto3" json:"expiration_secs,omitempty"` 2104 Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` 2105 ParentTaskId string `protobuf:"bytes,4,opt,name=parent_task_id,json=parentTaskId,proto3" json:"parent_task_id,omitempty"` 2106 Priority int32 `protobuf:"varint,5,opt,name=priority,proto3" json:"priority,omitempty"` 2107 // For some amount of time, the properties will be copied into the 2108 // task_slices and vice-versa, to give time to the clients to update. 2109 // Eventually, only task_slices will be supported. 2110 Properties *TaskProperties `protobuf:"bytes,6,opt,name=properties,proto3" json:"properties,omitempty"` 2111 Tags []string `protobuf:"bytes,7,rep,name=tags,proto3" json:"tags,omitempty"` 2112 CreatedTs *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=created_ts,json=createdTs,proto3" json:"created_ts,omitempty"` 2113 User string `protobuf:"bytes,9,opt,name=user,proto3" json:"user,omitempty"` 2114 // User name of whoever posted this task, extracted from the credentials. 2115 Authenticated string `protobuf:"bytes,10,opt,name=authenticated,proto3" json:"authenticated,omitempty"` 2116 TaskSlices []*TaskSlice `protobuf:"bytes,11,rep,name=task_slices,json=taskSlices,proto3" json:"task_slices,omitempty"` 2117 // Indicates what OAuth2 credentials the task uses when calling other services. 2118 ServiceAccount string `protobuf:"bytes,12,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"` 2119 Realm string `protobuf:"bytes,13,opt,name=realm,proto3" json:"realm,omitempty"` 2120 // Configuration of Swarming:ResultDB integration. 2121 Resultdb *ResultDBCfg `protobuf:"bytes,14,opt,name=resultdb,proto3" json:"resultdb,omitempty"` 2122 PubsubTopic string `protobuf:"bytes,15,opt,name=pubsub_topic,json=pubsubTopic,proto3" json:"pubsub_topic,omitempty"` 2123 PubsubUserdata string `protobuf:"bytes,16,opt,name=pubsub_userdata,json=pubsubUserdata,proto3" json:"pubsub_userdata,omitempty"` 2124 BotPingToleranceSecs int32 `protobuf:"varint,17,opt,name=bot_ping_tolerance_secs,json=botPingToleranceSecs,proto3" json:"bot_ping_tolerance_secs,omitempty"` 2125 RbeInstance string `protobuf:"bytes,18,opt,name=rbe_instance,json=rbeInstance,proto3" json:"rbe_instance,omitempty"` 2126 } 2127 2128 func (x *TaskRequestResponse) Reset() { 2129 *x = TaskRequestResponse{} 2130 if protoimpl.UnsafeEnabled { 2131 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[17] 2132 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2133 ms.StoreMessageInfo(mi) 2134 } 2135 } 2136 2137 func (x *TaskRequestResponse) String() string { 2138 return protoimpl.X.MessageStringOf(x) 2139 } 2140 2141 func (*TaskRequestResponse) ProtoMessage() {} 2142 2143 func (x *TaskRequestResponse) ProtoReflect() protoreflect.Message { 2144 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[17] 2145 if protoimpl.UnsafeEnabled && x != nil { 2146 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2147 if ms.LoadMessageInfo() == nil { 2148 ms.StoreMessageInfo(mi) 2149 } 2150 return ms 2151 } 2152 return mi.MessageOf(x) 2153 } 2154 2155 // Deprecated: Use TaskRequestResponse.ProtoReflect.Descriptor instead. 2156 func (*TaskRequestResponse) Descriptor() ([]byte, []int) { 2157 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{17} 2158 } 2159 2160 func (x *TaskRequestResponse) GetTaskId() string { 2161 if x != nil { 2162 return x.TaskId 2163 } 2164 return "" 2165 } 2166 2167 func (x *TaskRequestResponse) GetExpirationSecs() int32 { 2168 if x != nil { 2169 return x.ExpirationSecs 2170 } 2171 return 0 2172 } 2173 2174 func (x *TaskRequestResponse) GetName() string { 2175 if x != nil { 2176 return x.Name 2177 } 2178 return "" 2179 } 2180 2181 func (x *TaskRequestResponse) GetParentTaskId() string { 2182 if x != nil { 2183 return x.ParentTaskId 2184 } 2185 return "" 2186 } 2187 2188 func (x *TaskRequestResponse) GetPriority() int32 { 2189 if x != nil { 2190 return x.Priority 2191 } 2192 return 0 2193 } 2194 2195 func (x *TaskRequestResponse) GetProperties() *TaskProperties { 2196 if x != nil { 2197 return x.Properties 2198 } 2199 return nil 2200 } 2201 2202 func (x *TaskRequestResponse) GetTags() []string { 2203 if x != nil { 2204 return x.Tags 2205 } 2206 return nil 2207 } 2208 2209 func (x *TaskRequestResponse) GetCreatedTs() *timestamppb.Timestamp { 2210 if x != nil { 2211 return x.CreatedTs 2212 } 2213 return nil 2214 } 2215 2216 func (x *TaskRequestResponse) GetUser() string { 2217 if x != nil { 2218 return x.User 2219 } 2220 return "" 2221 } 2222 2223 func (x *TaskRequestResponse) GetAuthenticated() string { 2224 if x != nil { 2225 return x.Authenticated 2226 } 2227 return "" 2228 } 2229 2230 func (x *TaskRequestResponse) GetTaskSlices() []*TaskSlice { 2231 if x != nil { 2232 return x.TaskSlices 2233 } 2234 return nil 2235 } 2236 2237 func (x *TaskRequestResponse) GetServiceAccount() string { 2238 if x != nil { 2239 return x.ServiceAccount 2240 } 2241 return "" 2242 } 2243 2244 func (x *TaskRequestResponse) GetRealm() string { 2245 if x != nil { 2246 return x.Realm 2247 } 2248 return "" 2249 } 2250 2251 func (x *TaskRequestResponse) GetResultdb() *ResultDBCfg { 2252 if x != nil { 2253 return x.Resultdb 2254 } 2255 return nil 2256 } 2257 2258 func (x *TaskRequestResponse) GetPubsubTopic() string { 2259 if x != nil { 2260 return x.PubsubTopic 2261 } 2262 return "" 2263 } 2264 2265 func (x *TaskRequestResponse) GetPubsubUserdata() string { 2266 if x != nil { 2267 return x.PubsubUserdata 2268 } 2269 return "" 2270 } 2271 2272 func (x *TaskRequestResponse) GetBotPingToleranceSecs() int32 { 2273 if x != nil { 2274 return x.BotPingToleranceSecs 2275 } 2276 return 0 2277 } 2278 2279 func (x *TaskRequestResponse) GetRbeInstance() string { 2280 if x != nil { 2281 return x.RbeInstance 2282 } 2283 return "" 2284 } 2285 2286 // Request to cancel one task. 2287 type TaskCancelRequest struct { 2288 state protoimpl.MessageState 2289 sizeCache protoimpl.SizeCache 2290 unknownFields protoimpl.UnknownFields 2291 2292 TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` 2293 KillRunning bool `protobuf:"varint,2,opt,name=kill_running,json=killRunning,proto3" json:"kill_running,omitempty"` 2294 } 2295 2296 func (x *TaskCancelRequest) Reset() { 2297 *x = TaskCancelRequest{} 2298 if protoimpl.UnsafeEnabled { 2299 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[18] 2300 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2301 ms.StoreMessageInfo(mi) 2302 } 2303 } 2304 2305 func (x *TaskCancelRequest) String() string { 2306 return protoimpl.X.MessageStringOf(x) 2307 } 2308 2309 func (*TaskCancelRequest) ProtoMessage() {} 2310 2311 func (x *TaskCancelRequest) ProtoReflect() protoreflect.Message { 2312 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[18] 2313 if protoimpl.UnsafeEnabled && x != nil { 2314 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2315 if ms.LoadMessageInfo() == nil { 2316 ms.StoreMessageInfo(mi) 2317 } 2318 return ms 2319 } 2320 return mi.MessageOf(x) 2321 } 2322 2323 // Deprecated: Use TaskCancelRequest.ProtoReflect.Descriptor instead. 2324 func (*TaskCancelRequest) Descriptor() ([]byte, []int) { 2325 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{18} 2326 } 2327 2328 func (x *TaskCancelRequest) GetTaskId() string { 2329 if x != nil { 2330 return x.TaskId 2331 } 2332 return "" 2333 } 2334 2335 func (x *TaskCancelRequest) GetKillRunning() bool { 2336 if x != nil { 2337 return x.KillRunning 2338 } 2339 return false 2340 } 2341 2342 // Request to cancel some subset of pending/running tasks. 2343 type TasksCancelRequest struct { 2344 state protoimpl.MessageState 2345 sizeCache protoimpl.SizeCache 2346 unknownFields protoimpl.UnknownFields 2347 2348 Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` 2349 Cursor string `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"` 2350 Tags []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty"` 2351 KillRunning bool `protobuf:"varint,4,opt,name=kill_running,json=killRunning,proto3" json:"kill_running,omitempty"` 2352 Start *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=start,proto3" json:"start,omitempty"` 2353 End *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=end,proto3" json:"end,omitempty"` 2354 } 2355 2356 func (x *TasksCancelRequest) Reset() { 2357 *x = TasksCancelRequest{} 2358 if protoimpl.UnsafeEnabled { 2359 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[19] 2360 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2361 ms.StoreMessageInfo(mi) 2362 } 2363 } 2364 2365 func (x *TasksCancelRequest) String() string { 2366 return protoimpl.X.MessageStringOf(x) 2367 } 2368 2369 func (*TasksCancelRequest) ProtoMessage() {} 2370 2371 func (x *TasksCancelRequest) ProtoReflect() protoreflect.Message { 2372 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[19] 2373 if protoimpl.UnsafeEnabled && x != nil { 2374 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2375 if ms.LoadMessageInfo() == nil { 2376 ms.StoreMessageInfo(mi) 2377 } 2378 return ms 2379 } 2380 return mi.MessageOf(x) 2381 } 2382 2383 // Deprecated: Use TasksCancelRequest.ProtoReflect.Descriptor instead. 2384 func (*TasksCancelRequest) Descriptor() ([]byte, []int) { 2385 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{19} 2386 } 2387 2388 func (x *TasksCancelRequest) GetLimit() int32 { 2389 if x != nil { 2390 return x.Limit 2391 } 2392 return 0 2393 } 2394 2395 func (x *TasksCancelRequest) GetCursor() string { 2396 if x != nil { 2397 return x.Cursor 2398 } 2399 return "" 2400 } 2401 2402 func (x *TasksCancelRequest) GetTags() []string { 2403 if x != nil { 2404 return x.Tags 2405 } 2406 return nil 2407 } 2408 2409 func (x *TasksCancelRequest) GetKillRunning() bool { 2410 if x != nil { 2411 return x.KillRunning 2412 } 2413 return false 2414 } 2415 2416 func (x *TasksCancelRequest) GetStart() *timestamppb.Timestamp { 2417 if x != nil { 2418 return x.Start 2419 } 2420 return nil 2421 } 2422 2423 func (x *TasksCancelRequest) GetEnd() *timestamppb.Timestamp { 2424 if x != nil { 2425 return x.End 2426 } 2427 return nil 2428 } 2429 2430 type OperationStats struct { 2431 state protoimpl.MessageState 2432 sizeCache protoimpl.SizeCache 2433 unknownFields protoimpl.UnknownFields 2434 2435 // Duration in seconds. 2436 Duration float32 `protobuf:"fixed32,1,opt,name=duration,proto3" json:"duration,omitempty"` 2437 } 2438 2439 func (x *OperationStats) Reset() { 2440 *x = OperationStats{} 2441 if protoimpl.UnsafeEnabled { 2442 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[20] 2443 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2444 ms.StoreMessageInfo(mi) 2445 } 2446 } 2447 2448 func (x *OperationStats) String() string { 2449 return protoimpl.X.MessageStringOf(x) 2450 } 2451 2452 func (*OperationStats) ProtoMessage() {} 2453 2454 func (x *OperationStats) ProtoReflect() protoreflect.Message { 2455 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[20] 2456 if protoimpl.UnsafeEnabled && x != nil { 2457 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2458 if ms.LoadMessageInfo() == nil { 2459 ms.StoreMessageInfo(mi) 2460 } 2461 return ms 2462 } 2463 return mi.MessageOf(x) 2464 } 2465 2466 // Deprecated: Use OperationStats.ProtoReflect.Descriptor instead. 2467 func (*OperationStats) Descriptor() ([]byte, []int) { 2468 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{20} 2469 } 2470 2471 func (x *OperationStats) GetDuration() float32 { 2472 if x != nil { 2473 return x.Duration 2474 } 2475 return 0 2476 } 2477 2478 type CASOperationStats struct { 2479 state protoimpl.MessageState 2480 sizeCache protoimpl.SizeCache 2481 unknownFields protoimpl.UnknownFields 2482 2483 // Duration in seconds. 2484 Duration float32 `protobuf:"fixed32,1,opt,name=duration,proto3" json:"duration,omitempty"` 2485 InitialNumberItems int32 `protobuf:"varint,2,opt,name=initial_number_items,json=initialNumberItems,proto3" json:"initial_number_items,omitempty"` 2486 InitialSize int64 `protobuf:"varint,3,opt,name=initial_size,json=initialSize,proto3" json:"initial_size,omitempty"` 2487 // These buffers are compressed as deflate'd delta-encoded varints. They are 2488 // all the items for an isolated operation, which can scale in the 100k range. 2489 // So can be large! See //client/utils/large.py for the code to handle these. 2490 ItemsCold []byte `protobuf:"bytes,4,opt,name=items_cold,json=itemsCold,proto3" json:"items_cold,omitempty"` 2491 ItemsHot []byte `protobuf:"bytes,5,opt,name=items_hot,json=itemsHot,proto3" json:"items_hot,omitempty"` 2492 // Corresponding summaries; for each list above, sum of the number of files 2493 // and the sum bytes of the files. 2494 NumItemsCold int64 `protobuf:"varint,6,opt,name=num_items_cold,json=numItemsCold,proto3" json:"num_items_cold,omitempty"` 2495 TotalBytesItemsCold int64 `protobuf:"varint,7,opt,name=total_bytes_items_cold,json=totalBytesItemsCold,proto3" json:"total_bytes_items_cold,omitempty"` 2496 NumItemsHot int64 `protobuf:"varint,8,opt,name=num_items_hot,json=numItemsHot,proto3" json:"num_items_hot,omitempty"` 2497 TotalBytesItemsHot int64 `protobuf:"varint,9,opt,name=total_bytes_items_hot,json=totalBytesItemsHot,proto3" json:"total_bytes_items_hot,omitempty"` 2498 } 2499 2500 func (x *CASOperationStats) Reset() { 2501 *x = CASOperationStats{} 2502 if protoimpl.UnsafeEnabled { 2503 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[21] 2504 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2505 ms.StoreMessageInfo(mi) 2506 } 2507 } 2508 2509 func (x *CASOperationStats) String() string { 2510 return protoimpl.X.MessageStringOf(x) 2511 } 2512 2513 func (*CASOperationStats) ProtoMessage() {} 2514 2515 func (x *CASOperationStats) ProtoReflect() protoreflect.Message { 2516 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[21] 2517 if protoimpl.UnsafeEnabled && x != nil { 2518 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2519 if ms.LoadMessageInfo() == nil { 2520 ms.StoreMessageInfo(mi) 2521 } 2522 return ms 2523 } 2524 return mi.MessageOf(x) 2525 } 2526 2527 // Deprecated: Use CASOperationStats.ProtoReflect.Descriptor instead. 2528 func (*CASOperationStats) Descriptor() ([]byte, []int) { 2529 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{21} 2530 } 2531 2532 func (x *CASOperationStats) GetDuration() float32 { 2533 if x != nil { 2534 return x.Duration 2535 } 2536 return 0 2537 } 2538 2539 func (x *CASOperationStats) GetInitialNumberItems() int32 { 2540 if x != nil { 2541 return x.InitialNumberItems 2542 } 2543 return 0 2544 } 2545 2546 func (x *CASOperationStats) GetInitialSize() int64 { 2547 if x != nil { 2548 return x.InitialSize 2549 } 2550 return 0 2551 } 2552 2553 func (x *CASOperationStats) GetItemsCold() []byte { 2554 if x != nil { 2555 return x.ItemsCold 2556 } 2557 return nil 2558 } 2559 2560 func (x *CASOperationStats) GetItemsHot() []byte { 2561 if x != nil { 2562 return x.ItemsHot 2563 } 2564 return nil 2565 } 2566 2567 func (x *CASOperationStats) GetNumItemsCold() int64 { 2568 if x != nil { 2569 return x.NumItemsCold 2570 } 2571 return 0 2572 } 2573 2574 func (x *CASOperationStats) GetTotalBytesItemsCold() int64 { 2575 if x != nil { 2576 return x.TotalBytesItemsCold 2577 } 2578 return 0 2579 } 2580 2581 func (x *CASOperationStats) GetNumItemsHot() int64 { 2582 if x != nil { 2583 return x.NumItemsHot 2584 } 2585 return 0 2586 } 2587 2588 func (x *CASOperationStats) GetTotalBytesItemsHot() int64 { 2589 if x != nil { 2590 return x.TotalBytesItemsHot 2591 } 2592 return 0 2593 } 2594 2595 // Performance stats of task execution. 2596 // See task_result.PerformanceStats for details. 2597 type PerformanceStats struct { 2598 state protoimpl.MessageState 2599 sizeCache protoimpl.SizeCache 2600 unknownFields protoimpl.UnknownFields 2601 2602 BotOverhead float32 `protobuf:"fixed32,1,opt,name=bot_overhead,json=botOverhead,proto3" json:"bot_overhead,omitempty"` 2603 IsolatedDownload *CASOperationStats `protobuf:"bytes,2,opt,name=isolated_download,json=isolatedDownload,proto3" json:"isolated_download,omitempty"` 2604 IsolatedUpload *CASOperationStats `protobuf:"bytes,3,opt,name=isolated_upload,json=isolatedUpload,proto3" json:"isolated_upload,omitempty"` 2605 PackageInstallation *OperationStats `protobuf:"bytes,4,opt,name=package_installation,json=packageInstallation,proto3" json:"package_installation,omitempty"` 2606 CacheTrim *OperationStats `protobuf:"bytes,5,opt,name=cache_trim,json=cacheTrim,proto3" json:"cache_trim,omitempty"` 2607 NamedCachesInstall *OperationStats `protobuf:"bytes,6,opt,name=named_caches_install,json=namedCachesInstall,proto3" json:"named_caches_install,omitempty"` 2608 NamedCachesUninstall *OperationStats `protobuf:"bytes,7,opt,name=named_caches_uninstall,json=namedCachesUninstall,proto3" json:"named_caches_uninstall,omitempty"` 2609 Cleanup *OperationStats `protobuf:"bytes,8,opt,name=cleanup,proto3" json:"cleanup,omitempty"` 2610 } 2611 2612 func (x *PerformanceStats) Reset() { 2613 *x = PerformanceStats{} 2614 if protoimpl.UnsafeEnabled { 2615 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[22] 2616 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2617 ms.StoreMessageInfo(mi) 2618 } 2619 } 2620 2621 func (x *PerformanceStats) String() string { 2622 return protoimpl.X.MessageStringOf(x) 2623 } 2624 2625 func (*PerformanceStats) ProtoMessage() {} 2626 2627 func (x *PerformanceStats) ProtoReflect() protoreflect.Message { 2628 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[22] 2629 if protoimpl.UnsafeEnabled && x != nil { 2630 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2631 if ms.LoadMessageInfo() == nil { 2632 ms.StoreMessageInfo(mi) 2633 } 2634 return ms 2635 } 2636 return mi.MessageOf(x) 2637 } 2638 2639 // Deprecated: Use PerformanceStats.ProtoReflect.Descriptor instead. 2640 func (*PerformanceStats) Descriptor() ([]byte, []int) { 2641 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{22} 2642 } 2643 2644 func (x *PerformanceStats) GetBotOverhead() float32 { 2645 if x != nil { 2646 return x.BotOverhead 2647 } 2648 return 0 2649 } 2650 2651 func (x *PerformanceStats) GetIsolatedDownload() *CASOperationStats { 2652 if x != nil { 2653 return x.IsolatedDownload 2654 } 2655 return nil 2656 } 2657 2658 func (x *PerformanceStats) GetIsolatedUpload() *CASOperationStats { 2659 if x != nil { 2660 return x.IsolatedUpload 2661 } 2662 return nil 2663 } 2664 2665 func (x *PerformanceStats) GetPackageInstallation() *OperationStats { 2666 if x != nil { 2667 return x.PackageInstallation 2668 } 2669 return nil 2670 } 2671 2672 func (x *PerformanceStats) GetCacheTrim() *OperationStats { 2673 if x != nil { 2674 return x.CacheTrim 2675 } 2676 return nil 2677 } 2678 2679 func (x *PerformanceStats) GetNamedCachesInstall() *OperationStats { 2680 if x != nil { 2681 return x.NamedCachesInstall 2682 } 2683 return nil 2684 } 2685 2686 func (x *PerformanceStats) GetNamedCachesUninstall() *OperationStats { 2687 if x != nil { 2688 return x.NamedCachesUninstall 2689 } 2690 return nil 2691 } 2692 2693 func (x *PerformanceStats) GetCleanup() *OperationStats { 2694 if x != nil { 2695 return x.Cleanup 2696 } 2697 return nil 2698 } 2699 2700 // Result of a request to cancel a task. 2701 type CancelResponse struct { 2702 state protoimpl.MessageState 2703 sizeCache protoimpl.SizeCache 2704 unknownFields protoimpl.UnknownFields 2705 2706 // True if the cancellation succeeded. Either the task atomically changed 2707 // from PENDING to CANCELED or it was RUNNING and killing bit has been set. 2708 Canceled bool `protobuf:"varint,1,opt,name=canceled,proto3" json:"canceled,omitempty"` 2709 // True if the task was running while it was canceled. 2710 WasRunning bool `protobuf:"varint,2,opt,name=was_running,json=wasRunning,proto3" json:"was_running,omitempty"` 2711 } 2712 2713 func (x *CancelResponse) Reset() { 2714 *x = CancelResponse{} 2715 if protoimpl.UnsafeEnabled { 2716 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[23] 2717 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2718 ms.StoreMessageInfo(mi) 2719 } 2720 } 2721 2722 func (x *CancelResponse) String() string { 2723 return protoimpl.X.MessageStringOf(x) 2724 } 2725 2726 func (*CancelResponse) ProtoMessage() {} 2727 2728 func (x *CancelResponse) ProtoReflect() protoreflect.Message { 2729 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[23] 2730 if protoimpl.UnsafeEnabled && x != nil { 2731 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2732 if ms.LoadMessageInfo() == nil { 2733 ms.StoreMessageInfo(mi) 2734 } 2735 return ms 2736 } 2737 return mi.MessageOf(x) 2738 } 2739 2740 // Deprecated: Use CancelResponse.ProtoReflect.Descriptor instead. 2741 func (*CancelResponse) Descriptor() ([]byte, []int) { 2742 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{23} 2743 } 2744 2745 func (x *CancelResponse) GetCanceled() bool { 2746 if x != nil { 2747 return x.Canceled 2748 } 2749 return false 2750 } 2751 2752 func (x *CancelResponse) GetWasRunning() bool { 2753 if x != nil { 2754 return x.WasRunning 2755 } 2756 return false 2757 } 2758 2759 // Result of canceling some subset of pending tasks. 2760 type TasksCancelResponse struct { 2761 state protoimpl.MessageState 2762 sizeCache protoimpl.SizeCache 2763 unknownFields protoimpl.UnknownFields 2764 2765 Cursor string `protobuf:"bytes,1,opt,name=cursor,proto3" json:"cursor,omitempty"` 2766 Now *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=now,proto3" json:"now,omitempty"` 2767 Matched int32 `protobuf:"varint,3,opt,name=matched,proto3" json:"matched,omitempty"` 2768 } 2769 2770 func (x *TasksCancelResponse) Reset() { 2771 *x = TasksCancelResponse{} 2772 if protoimpl.UnsafeEnabled { 2773 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[24] 2774 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2775 ms.StoreMessageInfo(mi) 2776 } 2777 } 2778 2779 func (x *TasksCancelResponse) String() string { 2780 return protoimpl.X.MessageStringOf(x) 2781 } 2782 2783 func (*TasksCancelResponse) ProtoMessage() {} 2784 2785 func (x *TasksCancelResponse) ProtoReflect() protoreflect.Message { 2786 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[24] 2787 if protoimpl.UnsafeEnabled && x != nil { 2788 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2789 if ms.LoadMessageInfo() == nil { 2790 ms.StoreMessageInfo(mi) 2791 } 2792 return ms 2793 } 2794 return mi.MessageOf(x) 2795 } 2796 2797 // Deprecated: Use TasksCancelResponse.ProtoReflect.Descriptor instead. 2798 func (*TasksCancelResponse) Descriptor() ([]byte, []int) { 2799 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{24} 2800 } 2801 2802 func (x *TasksCancelResponse) GetCursor() string { 2803 if x != nil { 2804 return x.Cursor 2805 } 2806 return "" 2807 } 2808 2809 func (x *TasksCancelResponse) GetNow() *timestamppb.Timestamp { 2810 if x != nil { 2811 return x.Now 2812 } 2813 return nil 2814 } 2815 2816 func (x *TasksCancelResponse) GetMatched() int32 { 2817 if x != nil { 2818 return x.Matched 2819 } 2820 return 0 2821 } 2822 2823 // A task's output as a bytestring 2824 type TaskOutputResponse struct { 2825 state protoimpl.MessageState 2826 sizeCache protoimpl.SizeCache 2827 unknownFields protoimpl.UnknownFields 2828 2829 Output []byte `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` 2830 // Current state of the task (e.g. PENDING, RUNNING, COMPLETED, EXPIRED, etc). 2831 State TaskState `protobuf:"varint,2,opt,name=state,proto3,enum=swarming.v2.TaskState" json:"state,omitempty"` 2832 } 2833 2834 func (x *TaskOutputResponse) Reset() { 2835 *x = TaskOutputResponse{} 2836 if protoimpl.UnsafeEnabled { 2837 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[25] 2838 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2839 ms.StoreMessageInfo(mi) 2840 } 2841 } 2842 2843 func (x *TaskOutputResponse) String() string { 2844 return protoimpl.X.MessageStringOf(x) 2845 } 2846 2847 func (*TaskOutputResponse) ProtoMessage() {} 2848 2849 func (x *TaskOutputResponse) ProtoReflect() protoreflect.Message { 2850 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[25] 2851 if protoimpl.UnsafeEnabled && x != nil { 2852 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2853 if ms.LoadMessageInfo() == nil { 2854 ms.StoreMessageInfo(mi) 2855 } 2856 return ms 2857 } 2858 return mi.MessageOf(x) 2859 } 2860 2861 // Deprecated: Use TaskOutputResponse.ProtoReflect.Descriptor instead. 2862 func (*TaskOutputResponse) Descriptor() ([]byte, []int) { 2863 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{25} 2864 } 2865 2866 func (x *TaskOutputResponse) GetOutput() []byte { 2867 if x != nil { 2868 return x.Output 2869 } 2870 return nil 2871 } 2872 2873 func (x *TaskOutputResponse) GetState() TaskState { 2874 if x != nil { 2875 return x.State 2876 } 2877 return TaskState_INVALID 2878 } 2879 2880 // ResultDB related properties. 2881 type ResultDBInfo struct { 2882 state protoimpl.MessageState 2883 sizeCache protoimpl.SizeCache 2884 unknownFields protoimpl.UnknownFields 2885 2886 // ResultDB hostname, e.g. "results.api.cr.dev" 2887 Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"` 2888 // e.g. "invocations/task-chromium-swarm.appspot.com-deadbeef1" 2889 // 2890 // If the task was deduplicated, this equals invocation name of the original 2891 // task. 2892 Invocation string `protobuf:"bytes,2,opt,name=invocation,proto3" json:"invocation,omitempty"` 2893 } 2894 2895 func (x *ResultDBInfo) Reset() { 2896 *x = ResultDBInfo{} 2897 if protoimpl.UnsafeEnabled { 2898 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[26] 2899 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2900 ms.StoreMessageInfo(mi) 2901 } 2902 } 2903 2904 func (x *ResultDBInfo) String() string { 2905 return protoimpl.X.MessageStringOf(x) 2906 } 2907 2908 func (*ResultDBInfo) ProtoMessage() {} 2909 2910 func (x *ResultDBInfo) ProtoReflect() protoreflect.Message { 2911 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[26] 2912 if protoimpl.UnsafeEnabled && x != nil { 2913 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2914 if ms.LoadMessageInfo() == nil { 2915 ms.StoreMessageInfo(mi) 2916 } 2917 return ms 2918 } 2919 return mi.MessageOf(x) 2920 } 2921 2922 // Deprecated: Use ResultDBInfo.ProtoReflect.Descriptor instead. 2923 func (*ResultDBInfo) Descriptor() ([]byte, []int) { 2924 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{26} 2925 } 2926 2927 func (x *ResultDBInfo) GetHostname() string { 2928 if x != nil { 2929 return x.Hostname 2930 } 2931 return "" 2932 } 2933 2934 func (x *ResultDBInfo) GetInvocation() string { 2935 if x != nil { 2936 return x.Invocation 2937 } 2938 return "" 2939 } 2940 2941 // Representation of the TaskResultSummary or TaskRunResult ndb model. 2942 type TaskResultResponse struct { 2943 state protoimpl.MessageState 2944 sizeCache protoimpl.SizeCache 2945 unknownFields protoimpl.UnknownFields 2946 2947 // Summary task ID (ending with '0') when creating a new task. 2948 TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` 2949 // Time when the task was abandoned instead of normal completion (e.g. 2950 // EXPIRED, BOT_DIED, KILLED). 2951 // 2952 // The same key cannot be repeated. 2953 BotDimensions []*StringListPair `protobuf:"bytes,2,rep,name=bot_dimensions,json=botDimensions,proto3" json:"bot_dimensions,omitempty"` 2954 // Unique ID of the bot. 2955 BotId string `protobuf:"bytes,3,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"` 2956 // Time the bot became ready for a next task. 2957 BotIdleSinceTs *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=bot_idle_since_ts,json=botIdleSinceTs,proto3" json:"bot_idle_since_ts,omitempty"` 2958 // Hash of the bot code which ran the task. 2959 BotVersion string `protobuf:"bytes,5,opt,name=bot_version,json=botVersion,proto3" json:"bot_version,omitempty"` 2960 // The cloud project id where the bot saves its logs. 2961 BotLogsCloudProject string `protobuf:"bytes,6,opt,name=bot_logs_cloud_project,json=botLogsCloudProject,proto3" json:"bot_logs_cloud_project,omitempty"` 2962 // Time the task completed normally. Only one of abandoned_ts or completed_ts 2963 // can be set except for state == KILLED. 2964 // 2965 // In case of KILLED, completed_ts is the time the task completed. 2966 CompletedTs *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=completed_ts,json=completedTs,proto3" json:"completed_ts,omitempty"` 2967 // $ saved for task with state DEDUPED. 2968 CostSavedUsd float32 `protobuf:"fixed32,9,opt,name=cost_saved_usd,json=costSavedUsd,proto3" json:"cost_saved_usd,omitempty"` 2969 // Time the task was requested. 2970 CreatedTs *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=created_ts,json=createdTs,proto3" json:"created_ts,omitempty"` 2971 // Task ID which results was reused for state DEDUPED. 2972 DedupedFrom string `protobuf:"bytes,11,opt,name=deduped_from,json=dedupedFrom,proto3" json:"deduped_from,omitempty"` 2973 // Duration of the task in seconds. This excludes overheads. 2974 Duration float32 `protobuf:"fixed32,12,opt,name=duration,proto3" json:"duration,omitempty"` 2975 // Process exit code if relevant. May be forcibly set to -1 in exceptional 2976 // cases. 2977 ExitCode int64 `protobuf:"varint,13,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"` 2978 // True if exit_code != 0. 2979 Failure bool `protobuf:"varint,14,opt,name=failure,proto3" json:"failure,omitempty"` 2980 // True if state is BOT_DIED. 2981 InternalFailure bool `protobuf:"varint,15,opt,name=internal_failure,json=internalFailure,proto3" json:"internal_failure,omitempty"` 2982 // Time the results was last updated in the DB. 2983 ModifiedTs *timestamppb.Timestamp `protobuf:"bytes,16,opt,name=modified_ts,json=modifiedTs,proto3" json:"modified_ts,omitempty"` 2984 // CAS Digest of the output root uploaded to RBE-CAS. 2985 // This MUST be digest of [build.bazel.remote.execution.v2.Directory]. 2986 CasOutputRoot *CASReference `protobuf:"bytes,17,opt,name=cas_output_root,json=casOutputRoot,proto3" json:"cas_output_root,omitempty"` 2987 // Server versions that touched this task. 2988 ServerVersions []string `protobuf:"bytes,18,rep,name=server_versions,json=serverVersions,proto3" json:"server_versions,omitempty"` 2989 // Time the task started being run by a bot. 2990 StartedTs *timestamppb.Timestamp `protobuf:"bytes,19,opt,name=started_ts,json=startedTs,proto3" json:"started_ts,omitempty"` 2991 // Current state of the task (e.g. PENDING, RUNNING, COMPLETED, EXPIRED, etc). 2992 State TaskState `protobuf:"varint,20,opt,name=state,proto3,enum=swarming.v2.TaskState" json:"state,omitempty"` 2993 // In the case of KILLED, this records the time the user requested the task to 2994 // stop. 2995 AbandonedTs *timestamppb.Timestamp `protobuf:"bytes,21,opt,name=abandoned_ts,json=abandonedTs,proto3" json:"abandoned_ts,omitempty"` 2996 // Can be multiple values only in TaskResultSummary. 2997 CostsUsd []float32 `protobuf:"fixed32,22,rep,packed,name=costs_usd,json=costsUsd,proto3" json:"costs_usd,omitempty"` 2998 // Name of the task. Only set when requesting task ID summary, ending with '0'. 2999 Name string `protobuf:"bytes,23,opt,name=name,proto3" json:"name,omitempty"` 3000 // Tags associated with the task when it was requested. Only set when 3001 // requesting task ID summary, ending with '0'. 3002 Tags []string `protobuf:"bytes,24,rep,name=tags,proto3" json:"tags,omitempty"` 3003 // User on behalf this task was requested. Only set when requesting task ID 3004 // summary, ending with '0'. 3005 User string `protobuf:"bytes,25,opt,name=user,proto3" json:"user,omitempty"` 3006 // Statistics about overhead for an isolated task. Only sent when requested. 3007 PerformanceStats *PerformanceStats `protobuf:"bytes,26,opt,name=performance_stats,json=performanceStats,proto3" json:"performance_stats,omitempty"` 3008 // Listing of the ACTUAL pinned CipdPackages that the task used. These can vary 3009 // from the input packages if the inputs included non-identity versions (e.g. a 3010 // ref like "latest"). 3011 CipdPins *CipdPins `protobuf:"bytes,27,opt,name=cipd_pins,json=cipdPins,proto3" json:"cipd_pins,omitempty"` 3012 // Actual executed task id that this task represents. For deduped tasks, it is 3013 // the same value as deduped_from. This value can be empty if there is no 3014 // execution, for example the task was cancelled. 3015 RunId string `protobuf:"bytes,28,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"` 3016 // Index in the TaskRequest.task_slices (TaskSlice instance) that this result 3017 // represents. This is updated when a TaskSlice is enqueued to run. 3018 // 3019 // The TaskSlice contains a TaskProperties, which defines what is run. 3020 CurrentTaskSlice int32 `protobuf:"varint,29,opt,name=current_task_slice,json=currentTaskSlice,proto3" json:"current_task_slice,omitempty"` 3021 // ResultDB related information. 3022 // None if the integration was not enabled for this task. 3023 ResultdbInfo *ResultDBInfo `protobuf:"bytes,30,opt,name=resultdb_info,json=resultdbInfo,proto3" json:"resultdb_info,omitempty"` 3024 // Reported missing CAS packages on CLIENT_ERROR state 3025 MissingCas []*CASReference `protobuf:"bytes,31,rep,name=missing_cas,json=missingCas,proto3" json:"missing_cas,omitempty"` 3026 // Reported missing CIPD packages on CLIENT_ERROR state 3027 MissingCipd []*CipdPackage `protobuf:"bytes,32,rep,name=missing_cipd,json=missingCipd,proto3" json:"missing_cipd,omitempty"` 3028 } 3029 3030 func (x *TaskResultResponse) Reset() { 3031 *x = TaskResultResponse{} 3032 if protoimpl.UnsafeEnabled { 3033 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[27] 3034 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3035 ms.StoreMessageInfo(mi) 3036 } 3037 } 3038 3039 func (x *TaskResultResponse) String() string { 3040 return protoimpl.X.MessageStringOf(x) 3041 } 3042 3043 func (*TaskResultResponse) ProtoMessage() {} 3044 3045 func (x *TaskResultResponse) ProtoReflect() protoreflect.Message { 3046 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[27] 3047 if protoimpl.UnsafeEnabled && x != nil { 3048 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3049 if ms.LoadMessageInfo() == nil { 3050 ms.StoreMessageInfo(mi) 3051 } 3052 return ms 3053 } 3054 return mi.MessageOf(x) 3055 } 3056 3057 // Deprecated: Use TaskResultResponse.ProtoReflect.Descriptor instead. 3058 func (*TaskResultResponse) Descriptor() ([]byte, []int) { 3059 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{27} 3060 } 3061 3062 func (x *TaskResultResponse) GetTaskId() string { 3063 if x != nil { 3064 return x.TaskId 3065 } 3066 return "" 3067 } 3068 3069 func (x *TaskResultResponse) GetBotDimensions() []*StringListPair { 3070 if x != nil { 3071 return x.BotDimensions 3072 } 3073 return nil 3074 } 3075 3076 func (x *TaskResultResponse) GetBotId() string { 3077 if x != nil { 3078 return x.BotId 3079 } 3080 return "" 3081 } 3082 3083 func (x *TaskResultResponse) GetBotIdleSinceTs() *timestamppb.Timestamp { 3084 if x != nil { 3085 return x.BotIdleSinceTs 3086 } 3087 return nil 3088 } 3089 3090 func (x *TaskResultResponse) GetBotVersion() string { 3091 if x != nil { 3092 return x.BotVersion 3093 } 3094 return "" 3095 } 3096 3097 func (x *TaskResultResponse) GetBotLogsCloudProject() string { 3098 if x != nil { 3099 return x.BotLogsCloudProject 3100 } 3101 return "" 3102 } 3103 3104 func (x *TaskResultResponse) GetCompletedTs() *timestamppb.Timestamp { 3105 if x != nil { 3106 return x.CompletedTs 3107 } 3108 return nil 3109 } 3110 3111 func (x *TaskResultResponse) GetCostSavedUsd() float32 { 3112 if x != nil { 3113 return x.CostSavedUsd 3114 } 3115 return 0 3116 } 3117 3118 func (x *TaskResultResponse) GetCreatedTs() *timestamppb.Timestamp { 3119 if x != nil { 3120 return x.CreatedTs 3121 } 3122 return nil 3123 } 3124 3125 func (x *TaskResultResponse) GetDedupedFrom() string { 3126 if x != nil { 3127 return x.DedupedFrom 3128 } 3129 return "" 3130 } 3131 3132 func (x *TaskResultResponse) GetDuration() float32 { 3133 if x != nil { 3134 return x.Duration 3135 } 3136 return 0 3137 } 3138 3139 func (x *TaskResultResponse) GetExitCode() int64 { 3140 if x != nil { 3141 return x.ExitCode 3142 } 3143 return 0 3144 } 3145 3146 func (x *TaskResultResponse) GetFailure() bool { 3147 if x != nil { 3148 return x.Failure 3149 } 3150 return false 3151 } 3152 3153 func (x *TaskResultResponse) GetInternalFailure() bool { 3154 if x != nil { 3155 return x.InternalFailure 3156 } 3157 return false 3158 } 3159 3160 func (x *TaskResultResponse) GetModifiedTs() *timestamppb.Timestamp { 3161 if x != nil { 3162 return x.ModifiedTs 3163 } 3164 return nil 3165 } 3166 3167 func (x *TaskResultResponse) GetCasOutputRoot() *CASReference { 3168 if x != nil { 3169 return x.CasOutputRoot 3170 } 3171 return nil 3172 } 3173 3174 func (x *TaskResultResponse) GetServerVersions() []string { 3175 if x != nil { 3176 return x.ServerVersions 3177 } 3178 return nil 3179 } 3180 3181 func (x *TaskResultResponse) GetStartedTs() *timestamppb.Timestamp { 3182 if x != nil { 3183 return x.StartedTs 3184 } 3185 return nil 3186 } 3187 3188 func (x *TaskResultResponse) GetState() TaskState { 3189 if x != nil { 3190 return x.State 3191 } 3192 return TaskState_INVALID 3193 } 3194 3195 func (x *TaskResultResponse) GetAbandonedTs() *timestamppb.Timestamp { 3196 if x != nil { 3197 return x.AbandonedTs 3198 } 3199 return nil 3200 } 3201 3202 func (x *TaskResultResponse) GetCostsUsd() []float32 { 3203 if x != nil { 3204 return x.CostsUsd 3205 } 3206 return nil 3207 } 3208 3209 func (x *TaskResultResponse) GetName() string { 3210 if x != nil { 3211 return x.Name 3212 } 3213 return "" 3214 } 3215 3216 func (x *TaskResultResponse) GetTags() []string { 3217 if x != nil { 3218 return x.Tags 3219 } 3220 return nil 3221 } 3222 3223 func (x *TaskResultResponse) GetUser() string { 3224 if x != nil { 3225 return x.User 3226 } 3227 return "" 3228 } 3229 3230 func (x *TaskResultResponse) GetPerformanceStats() *PerformanceStats { 3231 if x != nil { 3232 return x.PerformanceStats 3233 } 3234 return nil 3235 } 3236 3237 func (x *TaskResultResponse) GetCipdPins() *CipdPins { 3238 if x != nil { 3239 return x.CipdPins 3240 } 3241 return nil 3242 } 3243 3244 func (x *TaskResultResponse) GetRunId() string { 3245 if x != nil { 3246 return x.RunId 3247 } 3248 return "" 3249 } 3250 3251 func (x *TaskResultResponse) GetCurrentTaskSlice() int32 { 3252 if x != nil { 3253 return x.CurrentTaskSlice 3254 } 3255 return 0 3256 } 3257 3258 func (x *TaskResultResponse) GetResultdbInfo() *ResultDBInfo { 3259 if x != nil { 3260 return x.ResultdbInfo 3261 } 3262 return nil 3263 } 3264 3265 func (x *TaskResultResponse) GetMissingCas() []*CASReference { 3266 if x != nil { 3267 return x.MissingCas 3268 } 3269 return nil 3270 } 3271 3272 func (x *TaskResultResponse) GetMissingCipd() []*CipdPackage { 3273 if x != nil { 3274 return x.MissingCipd 3275 } 3276 return nil 3277 } 3278 3279 // Only holds states. Used in the 'get_states' RPC. 3280 type TaskStates struct { 3281 state protoimpl.MessageState 3282 sizeCache protoimpl.SizeCache 3283 unknownFields protoimpl.UnknownFields 3284 3285 States []TaskState `protobuf:"varint,1,rep,packed,name=states,proto3,enum=swarming.v2.TaskState" json:"states,omitempty"` 3286 } 3287 3288 func (x *TaskStates) Reset() { 3289 *x = TaskStates{} 3290 if protoimpl.UnsafeEnabled { 3291 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[28] 3292 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3293 ms.StoreMessageInfo(mi) 3294 } 3295 } 3296 3297 func (x *TaskStates) String() string { 3298 return protoimpl.X.MessageStringOf(x) 3299 } 3300 3301 func (*TaskStates) ProtoMessage() {} 3302 3303 func (x *TaskStates) ProtoReflect() protoreflect.Message { 3304 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[28] 3305 if protoimpl.UnsafeEnabled && x != nil { 3306 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3307 if ms.LoadMessageInfo() == nil { 3308 ms.StoreMessageInfo(mi) 3309 } 3310 return ms 3311 } 3312 return mi.MessageOf(x) 3313 } 3314 3315 // Deprecated: Use TaskStates.ProtoReflect.Descriptor instead. 3316 func (*TaskStates) Descriptor() ([]byte, []int) { 3317 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{28} 3318 } 3319 3320 func (x *TaskStates) GetStates() []TaskState { 3321 if x != nil { 3322 return x.States 3323 } 3324 return nil 3325 } 3326 3327 // Wraps a list of TaskResult. 3328 type TaskListResponse struct { 3329 state protoimpl.MessageState 3330 sizeCache protoimpl.SizeCache 3331 unknownFields protoimpl.UnknownFields 3332 3333 Cursor string `protobuf:"bytes,1,opt,name=cursor,proto3" json:"cursor,omitempty"` 3334 Items []*TaskResultResponse `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` 3335 Now *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=now,proto3" json:"now,omitempty"` 3336 } 3337 3338 func (x *TaskListResponse) Reset() { 3339 *x = TaskListResponse{} 3340 if protoimpl.UnsafeEnabled { 3341 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[29] 3342 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3343 ms.StoreMessageInfo(mi) 3344 } 3345 } 3346 3347 func (x *TaskListResponse) String() string { 3348 return protoimpl.X.MessageStringOf(x) 3349 } 3350 3351 func (*TaskListResponse) ProtoMessage() {} 3352 3353 func (x *TaskListResponse) ProtoReflect() protoreflect.Message { 3354 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[29] 3355 if protoimpl.UnsafeEnabled && x != nil { 3356 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3357 if ms.LoadMessageInfo() == nil { 3358 ms.StoreMessageInfo(mi) 3359 } 3360 return ms 3361 } 3362 return mi.MessageOf(x) 3363 } 3364 3365 // Deprecated: Use TaskListResponse.ProtoReflect.Descriptor instead. 3366 func (*TaskListResponse) Descriptor() ([]byte, []int) { 3367 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{29} 3368 } 3369 3370 func (x *TaskListResponse) GetCursor() string { 3371 if x != nil { 3372 return x.Cursor 3373 } 3374 return "" 3375 } 3376 3377 func (x *TaskListResponse) GetItems() []*TaskResultResponse { 3378 if x != nil { 3379 return x.Items 3380 } 3381 return nil 3382 } 3383 3384 func (x *TaskListResponse) GetNow() *timestamppb.Timestamp { 3385 if x != nil { 3386 return x.Now 3387 } 3388 return nil 3389 } 3390 3391 // Wraps a list of TaskRequest. 3392 type TaskRequestsResponse struct { 3393 state protoimpl.MessageState 3394 sizeCache protoimpl.SizeCache 3395 unknownFields protoimpl.UnknownFields 3396 3397 Cursor string `protobuf:"bytes,1,opt,name=cursor,proto3" json:"cursor,omitempty"` 3398 Items []*TaskRequestResponse `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` 3399 Now *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=now,proto3" json:"now,omitempty"` 3400 } 3401 3402 func (x *TaskRequestsResponse) Reset() { 3403 *x = TaskRequestsResponse{} 3404 if protoimpl.UnsafeEnabled { 3405 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[30] 3406 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3407 ms.StoreMessageInfo(mi) 3408 } 3409 } 3410 3411 func (x *TaskRequestsResponse) String() string { 3412 return protoimpl.X.MessageStringOf(x) 3413 } 3414 3415 func (*TaskRequestsResponse) ProtoMessage() {} 3416 3417 func (x *TaskRequestsResponse) ProtoReflect() protoreflect.Message { 3418 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[30] 3419 if protoimpl.UnsafeEnabled && x != nil { 3420 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3421 if ms.LoadMessageInfo() == nil { 3422 ms.StoreMessageInfo(mi) 3423 } 3424 return ms 3425 } 3426 return mi.MessageOf(x) 3427 } 3428 3429 // Deprecated: Use TaskRequestsResponse.ProtoReflect.Descriptor instead. 3430 func (*TaskRequestsResponse) Descriptor() ([]byte, []int) { 3431 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{30} 3432 } 3433 3434 func (x *TaskRequestsResponse) GetCursor() string { 3435 if x != nil { 3436 return x.Cursor 3437 } 3438 return "" 3439 } 3440 3441 func (x *TaskRequestsResponse) GetItems() []*TaskRequestResponse { 3442 if x != nil { 3443 return x.Items 3444 } 3445 return nil 3446 } 3447 3448 func (x *TaskRequestsResponse) GetNow() *timestamppb.Timestamp { 3449 if x != nil { 3450 return x.Now 3451 } 3452 return nil 3453 } 3454 3455 // Returns the count, as requested. 3456 type TasksCount struct { 3457 state protoimpl.MessageState 3458 sizeCache protoimpl.SizeCache 3459 unknownFields protoimpl.UnknownFields 3460 3461 Count int32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` 3462 Now *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=now,proto3" json:"now,omitempty"` 3463 } 3464 3465 func (x *TasksCount) Reset() { 3466 *x = TasksCount{} 3467 if protoimpl.UnsafeEnabled { 3468 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[31] 3469 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3470 ms.StoreMessageInfo(mi) 3471 } 3472 } 3473 3474 func (x *TasksCount) String() string { 3475 return protoimpl.X.MessageStringOf(x) 3476 } 3477 3478 func (*TasksCount) ProtoMessage() {} 3479 3480 func (x *TasksCount) ProtoReflect() protoreflect.Message { 3481 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[31] 3482 if protoimpl.UnsafeEnabled && x != nil { 3483 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3484 if ms.LoadMessageInfo() == nil { 3485 ms.StoreMessageInfo(mi) 3486 } 3487 return ms 3488 } 3489 return mi.MessageOf(x) 3490 } 3491 3492 // Deprecated: Use TasksCount.ProtoReflect.Descriptor instead. 3493 func (*TasksCount) Descriptor() ([]byte, []int) { 3494 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{31} 3495 } 3496 3497 func (x *TasksCount) GetCount() int32 { 3498 if x != nil { 3499 return x.Count 3500 } 3501 return 0 3502 } 3503 3504 func (x *TasksCount) GetNow() *timestamppb.Timestamp { 3505 if x != nil { 3506 return x.Now 3507 } 3508 return nil 3509 } 3510 3511 // Provides the ID of the requested TaskRequest. 3512 type TaskRequestMetadataResponse struct { 3513 state protoimpl.MessageState 3514 sizeCache protoimpl.SizeCache 3515 unknownFields protoimpl.UnknownFields 3516 3517 TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` 3518 Request *TaskRequestResponse `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` 3519 // Set to finished task result in case task was deduplicated. 3520 TaskResult *TaskResultResponse `protobuf:"bytes,3,opt,name=task_result,json=taskResult,proto3" json:"task_result,omitempty"` 3521 } 3522 3523 func (x *TaskRequestMetadataResponse) Reset() { 3524 *x = TaskRequestMetadataResponse{} 3525 if protoimpl.UnsafeEnabled { 3526 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[32] 3527 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3528 ms.StoreMessageInfo(mi) 3529 } 3530 } 3531 3532 func (x *TaskRequestMetadataResponse) String() string { 3533 return protoimpl.X.MessageStringOf(x) 3534 } 3535 3536 func (*TaskRequestMetadataResponse) ProtoMessage() {} 3537 3538 func (x *TaskRequestMetadataResponse) ProtoReflect() protoreflect.Message { 3539 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[32] 3540 if protoimpl.UnsafeEnabled && x != nil { 3541 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3542 if ms.LoadMessageInfo() == nil { 3543 ms.StoreMessageInfo(mi) 3544 } 3545 return ms 3546 } 3547 return mi.MessageOf(x) 3548 } 3549 3550 // Deprecated: Use TaskRequestMetadataResponse.ProtoReflect.Descriptor instead. 3551 func (*TaskRequestMetadataResponse) Descriptor() ([]byte, []int) { 3552 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{32} 3553 } 3554 3555 func (x *TaskRequestMetadataResponse) GetTaskId() string { 3556 if x != nil { 3557 return x.TaskId 3558 } 3559 return "" 3560 } 3561 3562 func (x *TaskRequestMetadataResponse) GetRequest() *TaskRequestResponse { 3563 if x != nil { 3564 return x.Request 3565 } 3566 return nil 3567 } 3568 3569 func (x *TaskRequestMetadataResponse) GetTaskResult() *TaskResultResponse { 3570 if x != nil { 3571 return x.TaskResult 3572 } 3573 return nil 3574 } 3575 3576 // Representation of the BotInfo ndb model. 3577 type BotInfo struct { 3578 state protoimpl.MessageState 3579 sizeCache protoimpl.SizeCache 3580 unknownFields protoimpl.UnknownFields 3581 3582 BotId string `protobuf:"bytes,1,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"` 3583 TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` 3584 ExternalIp string `protobuf:"bytes,3,opt,name=external_ip,json=externalIp,proto3" json:"external_ip,omitempty"` 3585 AuthenticatedAs string `protobuf:"bytes,4,opt,name=authenticated_as,json=authenticatedAs,proto3" json:"authenticated_as,omitempty"` 3586 FirstSeenTs *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=first_seen_ts,json=firstSeenTs,proto3" json:"first_seen_ts,omitempty"` 3587 IsDead bool `protobuf:"varint,6,opt,name=is_dead,json=isDead,proto3" json:"is_dead,omitempty"` 3588 LastSeenTs *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=last_seen_ts,json=lastSeenTs,proto3" json:"last_seen_ts,omitempty"` 3589 Quarantined bool `protobuf:"varint,8,opt,name=quarantined,proto3" json:"quarantined,omitempty"` 3590 MaintenanceMsg string `protobuf:"bytes,9,opt,name=maintenance_msg,json=maintenanceMsg,proto3" json:"maintenance_msg,omitempty"` 3591 Dimensions []*StringListPair `protobuf:"bytes,10,rep,name=dimensions,proto3" json:"dimensions,omitempty"` 3592 TaskName string `protobuf:"bytes,11,opt,name=task_name,json=taskName,proto3" json:"task_name,omitempty"` 3593 Version string `protobuf:"bytes,12,opt,name=version,proto3" json:"version,omitempty"` 3594 // Encoded as json since it's an arbitrary dict. 3595 State string `protobuf:"bytes,13,opt,name=state,proto3" json:"state,omitempty"` 3596 Deleted bool `protobuf:"varint,14,opt,name=deleted,proto3" json:"deleted,omitempty"` 3597 } 3598 3599 func (x *BotInfo) Reset() { 3600 *x = BotInfo{} 3601 if protoimpl.UnsafeEnabled { 3602 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[33] 3603 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3604 ms.StoreMessageInfo(mi) 3605 } 3606 } 3607 3608 func (x *BotInfo) String() string { 3609 return protoimpl.X.MessageStringOf(x) 3610 } 3611 3612 func (*BotInfo) ProtoMessage() {} 3613 3614 func (x *BotInfo) ProtoReflect() protoreflect.Message { 3615 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[33] 3616 if protoimpl.UnsafeEnabled && x != nil { 3617 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3618 if ms.LoadMessageInfo() == nil { 3619 ms.StoreMessageInfo(mi) 3620 } 3621 return ms 3622 } 3623 return mi.MessageOf(x) 3624 } 3625 3626 // Deprecated: Use BotInfo.ProtoReflect.Descriptor instead. 3627 func (*BotInfo) Descriptor() ([]byte, []int) { 3628 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{33} 3629 } 3630 3631 func (x *BotInfo) GetBotId() string { 3632 if x != nil { 3633 return x.BotId 3634 } 3635 return "" 3636 } 3637 3638 func (x *BotInfo) GetTaskId() string { 3639 if x != nil { 3640 return x.TaskId 3641 } 3642 return "" 3643 } 3644 3645 func (x *BotInfo) GetExternalIp() string { 3646 if x != nil { 3647 return x.ExternalIp 3648 } 3649 return "" 3650 } 3651 3652 func (x *BotInfo) GetAuthenticatedAs() string { 3653 if x != nil { 3654 return x.AuthenticatedAs 3655 } 3656 return "" 3657 } 3658 3659 func (x *BotInfo) GetFirstSeenTs() *timestamppb.Timestamp { 3660 if x != nil { 3661 return x.FirstSeenTs 3662 } 3663 return nil 3664 } 3665 3666 func (x *BotInfo) GetIsDead() bool { 3667 if x != nil { 3668 return x.IsDead 3669 } 3670 return false 3671 } 3672 3673 func (x *BotInfo) GetLastSeenTs() *timestamppb.Timestamp { 3674 if x != nil { 3675 return x.LastSeenTs 3676 } 3677 return nil 3678 } 3679 3680 func (x *BotInfo) GetQuarantined() bool { 3681 if x != nil { 3682 return x.Quarantined 3683 } 3684 return false 3685 } 3686 3687 func (x *BotInfo) GetMaintenanceMsg() string { 3688 if x != nil { 3689 return x.MaintenanceMsg 3690 } 3691 return "" 3692 } 3693 3694 func (x *BotInfo) GetDimensions() []*StringListPair { 3695 if x != nil { 3696 return x.Dimensions 3697 } 3698 return nil 3699 } 3700 3701 func (x *BotInfo) GetTaskName() string { 3702 if x != nil { 3703 return x.TaskName 3704 } 3705 return "" 3706 } 3707 3708 func (x *BotInfo) GetVersion() string { 3709 if x != nil { 3710 return x.Version 3711 } 3712 return "" 3713 } 3714 3715 func (x *BotInfo) GetState() string { 3716 if x != nil { 3717 return x.State 3718 } 3719 return "" 3720 } 3721 3722 func (x *BotInfo) GetDeleted() bool { 3723 if x != nil { 3724 return x.Deleted 3725 } 3726 return false 3727 } 3728 3729 // Wraps a list of BotInfo. 3730 type BotInfoListResponse struct { 3731 state protoimpl.MessageState 3732 sizeCache protoimpl.SizeCache 3733 unknownFields protoimpl.UnknownFields 3734 3735 Cursor string `protobuf:"bytes,1,opt,name=cursor,proto3" json:"cursor,omitempty"` 3736 Items []*BotInfo `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` 3737 Now *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=now,proto3" json:"now,omitempty"` 3738 DeathTimeout int32 `protobuf:"varint,4,opt,name=death_timeout,json=deathTimeout,proto3" json:"death_timeout,omitempty"` 3739 } 3740 3741 func (x *BotInfoListResponse) Reset() { 3742 *x = BotInfoListResponse{} 3743 if protoimpl.UnsafeEnabled { 3744 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[34] 3745 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3746 ms.StoreMessageInfo(mi) 3747 } 3748 } 3749 3750 func (x *BotInfoListResponse) String() string { 3751 return protoimpl.X.MessageStringOf(x) 3752 } 3753 3754 func (*BotInfoListResponse) ProtoMessage() {} 3755 3756 func (x *BotInfoListResponse) ProtoReflect() protoreflect.Message { 3757 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[34] 3758 if protoimpl.UnsafeEnabled && x != nil { 3759 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3760 if ms.LoadMessageInfo() == nil { 3761 ms.StoreMessageInfo(mi) 3762 } 3763 return ms 3764 } 3765 return mi.MessageOf(x) 3766 } 3767 3768 // Deprecated: Use BotInfoListResponse.ProtoReflect.Descriptor instead. 3769 func (*BotInfoListResponse) Descriptor() ([]byte, []int) { 3770 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{34} 3771 } 3772 3773 func (x *BotInfoListResponse) GetCursor() string { 3774 if x != nil { 3775 return x.Cursor 3776 } 3777 return "" 3778 } 3779 3780 func (x *BotInfoListResponse) GetItems() []*BotInfo { 3781 if x != nil { 3782 return x.Items 3783 } 3784 return nil 3785 } 3786 3787 func (x *BotInfoListResponse) GetNow() *timestamppb.Timestamp { 3788 if x != nil { 3789 return x.Now 3790 } 3791 return nil 3792 } 3793 3794 func (x *BotInfoListResponse) GetDeathTimeout() int32 { 3795 if x != nil { 3796 return x.DeathTimeout 3797 } 3798 return 0 3799 } 3800 3801 // Returns the count, as requested. 3802 type BotsCount struct { 3803 state protoimpl.MessageState 3804 sizeCache protoimpl.SizeCache 3805 unknownFields protoimpl.UnknownFields 3806 3807 Now *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=now,proto3" json:"now,omitempty"` 3808 Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` 3809 Quarantined int32 `protobuf:"varint,3,opt,name=quarantined,proto3" json:"quarantined,omitempty"` 3810 Maintenance int32 `protobuf:"varint,4,opt,name=maintenance,proto3" json:"maintenance,omitempty"` 3811 Dead int32 `protobuf:"varint,5,opt,name=dead,proto3" json:"dead,omitempty"` 3812 Busy int32 `protobuf:"varint,6,opt,name=busy,proto3" json:"busy,omitempty"` 3813 } 3814 3815 func (x *BotsCount) Reset() { 3816 *x = BotsCount{} 3817 if protoimpl.UnsafeEnabled { 3818 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[35] 3819 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3820 ms.StoreMessageInfo(mi) 3821 } 3822 } 3823 3824 func (x *BotsCount) String() string { 3825 return protoimpl.X.MessageStringOf(x) 3826 } 3827 3828 func (*BotsCount) ProtoMessage() {} 3829 3830 func (x *BotsCount) ProtoReflect() protoreflect.Message { 3831 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[35] 3832 if protoimpl.UnsafeEnabled && x != nil { 3833 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3834 if ms.LoadMessageInfo() == nil { 3835 ms.StoreMessageInfo(mi) 3836 } 3837 return ms 3838 } 3839 return mi.MessageOf(x) 3840 } 3841 3842 // Deprecated: Use BotsCount.ProtoReflect.Descriptor instead. 3843 func (*BotsCount) Descriptor() ([]byte, []int) { 3844 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{35} 3845 } 3846 3847 func (x *BotsCount) GetNow() *timestamppb.Timestamp { 3848 if x != nil { 3849 return x.Now 3850 } 3851 return nil 3852 } 3853 3854 func (x *BotsCount) GetCount() int32 { 3855 if x != nil { 3856 return x.Count 3857 } 3858 return 0 3859 } 3860 3861 func (x *BotsCount) GetQuarantined() int32 { 3862 if x != nil { 3863 return x.Quarantined 3864 } 3865 return 0 3866 } 3867 3868 func (x *BotsCount) GetMaintenance() int32 { 3869 if x != nil { 3870 return x.Maintenance 3871 } 3872 return 0 3873 } 3874 3875 func (x *BotsCount) GetDead() int32 { 3876 if x != nil { 3877 return x.Dead 3878 } 3879 return 0 3880 } 3881 3882 func (x *BotsCount) GetBusy() int32 { 3883 if x != nil { 3884 return x.Busy 3885 } 3886 return 0 3887 } 3888 3889 // Returns all the dimensions and dimension possibilities in the fleet. 3890 type BotsDimensions struct { 3891 state protoimpl.MessageState 3892 sizeCache protoimpl.SizeCache 3893 unknownFields protoimpl.UnknownFields 3894 3895 BotsDimensions []*StringListPair `protobuf:"bytes,1,rep,name=bots_dimensions,json=botsDimensions,proto3" json:"bots_dimensions,omitempty"` 3896 // Time at which this summary was calculated. 3897 Ts *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=ts,proto3" json:"ts,omitempty"` 3898 } 3899 3900 func (x *BotsDimensions) Reset() { 3901 *x = BotsDimensions{} 3902 if protoimpl.UnsafeEnabled { 3903 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[36] 3904 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3905 ms.StoreMessageInfo(mi) 3906 } 3907 } 3908 3909 func (x *BotsDimensions) String() string { 3910 return protoimpl.X.MessageStringOf(x) 3911 } 3912 3913 func (*BotsDimensions) ProtoMessage() {} 3914 3915 func (x *BotsDimensions) ProtoReflect() protoreflect.Message { 3916 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[36] 3917 if protoimpl.UnsafeEnabled && x != nil { 3918 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3919 if ms.LoadMessageInfo() == nil { 3920 ms.StoreMessageInfo(mi) 3921 } 3922 return ms 3923 } 3924 return mi.MessageOf(x) 3925 } 3926 3927 // Deprecated: Use BotsDimensions.ProtoReflect.Descriptor instead. 3928 func (*BotsDimensions) Descriptor() ([]byte, []int) { 3929 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{36} 3930 } 3931 3932 func (x *BotsDimensions) GetBotsDimensions() []*StringListPair { 3933 if x != nil { 3934 return x.BotsDimensions 3935 } 3936 return nil 3937 } 3938 3939 func (x *BotsDimensions) GetTs() *timestamppb.Timestamp { 3940 if x != nil { 3941 return x.Ts 3942 } 3943 return nil 3944 } 3945 3946 type BotEventResponse struct { 3947 state protoimpl.MessageState 3948 sizeCache protoimpl.SizeCache 3949 unknownFields protoimpl.UnknownFields 3950 3951 // google.protobuf.Timestamp of this event. 3952 Ts *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=ts,proto3" json:"ts,omitempty"` 3953 // Type of event. 3954 EventType string `protobuf:"bytes,2,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"` 3955 // Message included in the event. 3956 Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` 3957 // Bot dimensions at that moment. 3958 Dimensions []*StringListPair `protobuf:"bytes,4,rep,name=dimensions,proto3" json:"dimensions,omitempty"` 3959 // Bot state at that moment, encoded as json. 3960 State string `protobuf:"bytes,5,opt,name=state,proto3" json:"state,omitempty"` 3961 // IP address as seen by the HTTP handler. 3962 ExternalIp string `protobuf:"bytes,6,opt,name=external_ip,json=externalIp,proto3" json:"external_ip,omitempty"` 3963 // Bot identity as seen by the HTTP handler. 3964 AuthenticatedAs string `protobuf:"bytes,7,opt,name=authenticated_as,json=authenticatedAs,proto3" json:"authenticated_as,omitempty"` 3965 // Version of swarming_bot.zip the bot is currently running. 3966 Version string `protobuf:"bytes,8,opt,name=version,proto3" json:"version,omitempty"` 3967 // If True, the bot is not accepting task due to being quarantined. 3968 Quarantined bool `protobuf:"varint,9,opt,name=quarantined,proto3" json:"quarantined,omitempty"` 3969 // If set, the bot is rejecting tasks due to maintenance. 3970 MaintenanceMsg string `protobuf:"bytes,10,opt,name=maintenance_msg,json=maintenanceMsg,proto3" json:"maintenance_msg,omitempty"` 3971 // Affected by event_type == 'request_task', 'task_completed', 'task_error'. 3972 TaskId string `protobuf:"bytes,11,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` 3973 } 3974 3975 func (x *BotEventResponse) Reset() { 3976 *x = BotEventResponse{} 3977 if protoimpl.UnsafeEnabled { 3978 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[37] 3979 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3980 ms.StoreMessageInfo(mi) 3981 } 3982 } 3983 3984 func (x *BotEventResponse) String() string { 3985 return protoimpl.X.MessageStringOf(x) 3986 } 3987 3988 func (*BotEventResponse) ProtoMessage() {} 3989 3990 func (x *BotEventResponse) ProtoReflect() protoreflect.Message { 3991 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[37] 3992 if protoimpl.UnsafeEnabled && x != nil { 3993 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3994 if ms.LoadMessageInfo() == nil { 3995 ms.StoreMessageInfo(mi) 3996 } 3997 return ms 3998 } 3999 return mi.MessageOf(x) 4000 } 4001 4002 // Deprecated: Use BotEventResponse.ProtoReflect.Descriptor instead. 4003 func (*BotEventResponse) Descriptor() ([]byte, []int) { 4004 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{37} 4005 } 4006 4007 func (x *BotEventResponse) GetTs() *timestamppb.Timestamp { 4008 if x != nil { 4009 return x.Ts 4010 } 4011 return nil 4012 } 4013 4014 func (x *BotEventResponse) GetEventType() string { 4015 if x != nil { 4016 return x.EventType 4017 } 4018 return "" 4019 } 4020 4021 func (x *BotEventResponse) GetMessage() string { 4022 if x != nil { 4023 return x.Message 4024 } 4025 return "" 4026 } 4027 4028 func (x *BotEventResponse) GetDimensions() []*StringListPair { 4029 if x != nil { 4030 return x.Dimensions 4031 } 4032 return nil 4033 } 4034 4035 func (x *BotEventResponse) GetState() string { 4036 if x != nil { 4037 return x.State 4038 } 4039 return "" 4040 } 4041 4042 func (x *BotEventResponse) GetExternalIp() string { 4043 if x != nil { 4044 return x.ExternalIp 4045 } 4046 return "" 4047 } 4048 4049 func (x *BotEventResponse) GetAuthenticatedAs() string { 4050 if x != nil { 4051 return x.AuthenticatedAs 4052 } 4053 return "" 4054 } 4055 4056 func (x *BotEventResponse) GetVersion() string { 4057 if x != nil { 4058 return x.Version 4059 } 4060 return "" 4061 } 4062 4063 func (x *BotEventResponse) GetQuarantined() bool { 4064 if x != nil { 4065 return x.Quarantined 4066 } 4067 return false 4068 } 4069 4070 func (x *BotEventResponse) GetMaintenanceMsg() string { 4071 if x != nil { 4072 return x.MaintenanceMsg 4073 } 4074 return "" 4075 } 4076 4077 func (x *BotEventResponse) GetTaskId() string { 4078 if x != nil { 4079 return x.TaskId 4080 } 4081 return "" 4082 } 4083 4084 type BotEventsResponse struct { 4085 state protoimpl.MessageState 4086 sizeCache protoimpl.SizeCache 4087 unknownFields protoimpl.UnknownFields 4088 4089 Cursor string `protobuf:"bytes,1,opt,name=cursor,proto3" json:"cursor,omitempty"` 4090 Items []*BotEventResponse `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` 4091 Now *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=now,proto3" json:"now,omitempty"` 4092 } 4093 4094 func (x *BotEventsResponse) Reset() { 4095 *x = BotEventsResponse{} 4096 if protoimpl.UnsafeEnabled { 4097 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[38] 4098 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4099 ms.StoreMessageInfo(mi) 4100 } 4101 } 4102 4103 func (x *BotEventsResponse) String() string { 4104 return protoimpl.X.MessageStringOf(x) 4105 } 4106 4107 func (*BotEventsResponse) ProtoMessage() {} 4108 4109 func (x *BotEventsResponse) ProtoReflect() protoreflect.Message { 4110 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[38] 4111 if protoimpl.UnsafeEnabled && x != nil { 4112 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4113 if ms.LoadMessageInfo() == nil { 4114 ms.StoreMessageInfo(mi) 4115 } 4116 return ms 4117 } 4118 return mi.MessageOf(x) 4119 } 4120 4121 // Deprecated: Use BotEventsResponse.ProtoReflect.Descriptor instead. 4122 func (*BotEventsResponse) Descriptor() ([]byte, []int) { 4123 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{38} 4124 } 4125 4126 func (x *BotEventsResponse) GetCursor() string { 4127 if x != nil { 4128 return x.Cursor 4129 } 4130 return "" 4131 } 4132 4133 func (x *BotEventsResponse) GetItems() []*BotEventResponse { 4134 if x != nil { 4135 return x.Items 4136 } 4137 return nil 4138 } 4139 4140 func (x *BotEventsResponse) GetNow() *timestamppb.Timestamp { 4141 if x != nil { 4142 return x.Now 4143 } 4144 return nil 4145 } 4146 4147 // Indicates whether a bot was deleted. 4148 type DeleteResponse struct { 4149 state protoimpl.MessageState 4150 sizeCache protoimpl.SizeCache 4151 unknownFields protoimpl.UnknownFields 4152 4153 Deleted bool `protobuf:"varint,1,opt,name=deleted,proto3" json:"deleted,omitempty"` 4154 } 4155 4156 func (x *DeleteResponse) Reset() { 4157 *x = DeleteResponse{} 4158 if protoimpl.UnsafeEnabled { 4159 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[39] 4160 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4161 ms.StoreMessageInfo(mi) 4162 } 4163 } 4164 4165 func (x *DeleteResponse) String() string { 4166 return protoimpl.X.MessageStringOf(x) 4167 } 4168 4169 func (*DeleteResponse) ProtoMessage() {} 4170 4171 func (x *DeleteResponse) ProtoReflect() protoreflect.Message { 4172 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[39] 4173 if protoimpl.UnsafeEnabled && x != nil { 4174 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4175 if ms.LoadMessageInfo() == nil { 4176 ms.StoreMessageInfo(mi) 4177 } 4178 return ms 4179 } 4180 return mi.MessageOf(x) 4181 } 4182 4183 // Deprecated: Use DeleteResponse.ProtoReflect.Descriptor instead. 4184 func (*DeleteResponse) Descriptor() ([]byte, []int) { 4185 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{39} 4186 } 4187 4188 func (x *DeleteResponse) GetDeleted() bool { 4189 if x != nil { 4190 return x.Deleted 4191 } 4192 return false 4193 } 4194 4195 // Returns the pseudo taskid to wait for the bot to shut down. 4196 type TerminateResponse struct { 4197 state protoimpl.MessageState 4198 sizeCache protoimpl.SizeCache 4199 unknownFields protoimpl.UnknownFields 4200 4201 TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` 4202 } 4203 4204 func (x *TerminateResponse) Reset() { 4205 *x = TerminateResponse{} 4206 if protoimpl.UnsafeEnabled { 4207 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[40] 4208 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4209 ms.StoreMessageInfo(mi) 4210 } 4211 } 4212 4213 func (x *TerminateResponse) String() string { 4214 return protoimpl.X.MessageStringOf(x) 4215 } 4216 4217 func (*TerminateResponse) ProtoMessage() {} 4218 4219 func (x *TerminateResponse) ProtoReflect() protoreflect.Message { 4220 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[40] 4221 if protoimpl.UnsafeEnabled && x != nil { 4222 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4223 if ms.LoadMessageInfo() == nil { 4224 ms.StoreMessageInfo(mi) 4225 } 4226 return ms 4227 } 4228 return mi.MessageOf(x) 4229 } 4230 4231 // Deprecated: Use TerminateResponse.ProtoReflect.Descriptor instead. 4232 func (*TerminateResponse) Descriptor() ([]byte, []int) { 4233 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{40} 4234 } 4235 4236 func (x *TerminateResponse) GetTaskId() string { 4237 if x != nil { 4238 return x.TaskId 4239 } 4240 return "" 4241 } 4242 4243 type BotRequest struct { 4244 state protoimpl.MessageState 4245 sizeCache protoimpl.SizeCache 4246 unknownFields protoimpl.UnknownFields 4247 4248 BotId string `protobuf:"bytes,1,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"` 4249 } 4250 4251 func (x *BotRequest) Reset() { 4252 *x = BotRequest{} 4253 if protoimpl.UnsafeEnabled { 4254 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[41] 4255 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4256 ms.StoreMessageInfo(mi) 4257 } 4258 } 4259 4260 func (x *BotRequest) String() string { 4261 return protoimpl.X.MessageStringOf(x) 4262 } 4263 4264 func (*BotRequest) ProtoMessage() {} 4265 4266 func (x *BotRequest) ProtoReflect() protoreflect.Message { 4267 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[41] 4268 if protoimpl.UnsafeEnabled && x != nil { 4269 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4270 if ms.LoadMessageInfo() == nil { 4271 ms.StoreMessageInfo(mi) 4272 } 4273 return ms 4274 } 4275 return mi.MessageOf(x) 4276 } 4277 4278 // Deprecated: Use BotRequest.ProtoReflect.Descriptor instead. 4279 func (*BotRequest) Descriptor() ([]byte, []int) { 4280 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{41} 4281 } 4282 4283 func (x *BotRequest) GetBotId() string { 4284 if x != nil { 4285 return x.BotId 4286 } 4287 return "" 4288 } 4289 4290 type TerminateRequest struct { 4291 state protoimpl.MessageState 4292 sizeCache protoimpl.SizeCache 4293 unknownFields protoimpl.UnknownFields 4294 4295 // Id of bot to terminate. 4296 BotId string `protobuf:"bytes,1,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"` 4297 // Reason why the termination was created. 4298 Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"` 4299 } 4300 4301 func (x *TerminateRequest) Reset() { 4302 *x = TerminateRequest{} 4303 if protoimpl.UnsafeEnabled { 4304 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[42] 4305 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4306 ms.StoreMessageInfo(mi) 4307 } 4308 } 4309 4310 func (x *TerminateRequest) String() string { 4311 return protoimpl.X.MessageStringOf(x) 4312 } 4313 4314 func (*TerminateRequest) ProtoMessage() {} 4315 4316 func (x *TerminateRequest) ProtoReflect() protoreflect.Message { 4317 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[42] 4318 if protoimpl.UnsafeEnabled && x != nil { 4319 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4320 if ms.LoadMessageInfo() == nil { 4321 ms.StoreMessageInfo(mi) 4322 } 4323 return ms 4324 } 4325 return mi.MessageOf(x) 4326 } 4327 4328 // Deprecated: Use TerminateRequest.ProtoReflect.Descriptor instead. 4329 func (*TerminateRequest) Descriptor() ([]byte, []int) { 4330 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{42} 4331 } 4332 4333 func (x *TerminateRequest) GetBotId() string { 4334 if x != nil { 4335 return x.BotId 4336 } 4337 return "" 4338 } 4339 4340 func (x *TerminateRequest) GetReason() string { 4341 if x != nil { 4342 return x.Reason 4343 } 4344 return "" 4345 } 4346 4347 type BotEventsRequest struct { 4348 state protoimpl.MessageState 4349 sizeCache protoimpl.SizeCache 4350 unknownFields protoimpl.UnknownFields 4351 4352 BotId string `protobuf:"bytes,1,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"` 4353 Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` 4354 Cursor string `protobuf:"bytes,3,opt,name=cursor,proto3" json:"cursor,omitempty"` 4355 Start *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=start,proto3" json:"start,omitempty"` 4356 End *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=end,proto3" json:"end,omitempty"` 4357 } 4358 4359 func (x *BotEventsRequest) Reset() { 4360 *x = BotEventsRequest{} 4361 if protoimpl.UnsafeEnabled { 4362 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[43] 4363 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4364 ms.StoreMessageInfo(mi) 4365 } 4366 } 4367 4368 func (x *BotEventsRequest) String() string { 4369 return protoimpl.X.MessageStringOf(x) 4370 } 4371 4372 func (*BotEventsRequest) ProtoMessage() {} 4373 4374 func (x *BotEventsRequest) ProtoReflect() protoreflect.Message { 4375 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[43] 4376 if protoimpl.UnsafeEnabled && x != nil { 4377 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4378 if ms.LoadMessageInfo() == nil { 4379 ms.StoreMessageInfo(mi) 4380 } 4381 return ms 4382 } 4383 return mi.MessageOf(x) 4384 } 4385 4386 // Deprecated: Use BotEventsRequest.ProtoReflect.Descriptor instead. 4387 func (*BotEventsRequest) Descriptor() ([]byte, []int) { 4388 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{43} 4389 } 4390 4391 func (x *BotEventsRequest) GetBotId() string { 4392 if x != nil { 4393 return x.BotId 4394 } 4395 return "" 4396 } 4397 4398 func (x *BotEventsRequest) GetLimit() int32 { 4399 if x != nil { 4400 return x.Limit 4401 } 4402 return 0 4403 } 4404 4405 func (x *BotEventsRequest) GetCursor() string { 4406 if x != nil { 4407 return x.Cursor 4408 } 4409 return "" 4410 } 4411 4412 func (x *BotEventsRequest) GetStart() *timestamppb.Timestamp { 4413 if x != nil { 4414 return x.Start 4415 } 4416 return nil 4417 } 4418 4419 func (x *BotEventsRequest) GetEnd() *timestamppb.Timestamp { 4420 if x != nil { 4421 return x.End 4422 } 4423 return nil 4424 } 4425 4426 type BotTasksRequest struct { 4427 state protoimpl.MessageState 4428 sizeCache protoimpl.SizeCache 4429 unknownFields protoimpl.UnknownFields 4430 4431 BotId string `protobuf:"bytes,1,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"` 4432 Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` 4433 Cursor string `protobuf:"bytes,3,opt,name=cursor,proto3" json:"cursor,omitempty"` 4434 Start *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=start,proto3" json:"start,omitempty"` 4435 End *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=end,proto3" json:"end,omitempty"` 4436 State StateQuery `protobuf:"varint,6,opt,name=state,proto3,enum=swarming.v2.StateQuery" json:"state,omitempty"` 4437 Sort SortQuery `protobuf:"varint,7,opt,name=sort,proto3,enum=swarming.v2.SortQuery" json:"sort,omitempty"` 4438 IncludePerformanceStats bool `protobuf:"varint,8,opt,name=include_performance_stats,json=includePerformanceStats,proto3" json:"include_performance_stats,omitempty"` 4439 } 4440 4441 func (x *BotTasksRequest) Reset() { 4442 *x = BotTasksRequest{} 4443 if protoimpl.UnsafeEnabled { 4444 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[44] 4445 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4446 ms.StoreMessageInfo(mi) 4447 } 4448 } 4449 4450 func (x *BotTasksRequest) String() string { 4451 return protoimpl.X.MessageStringOf(x) 4452 } 4453 4454 func (*BotTasksRequest) ProtoMessage() {} 4455 4456 func (x *BotTasksRequest) ProtoReflect() protoreflect.Message { 4457 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[44] 4458 if protoimpl.UnsafeEnabled && x != nil { 4459 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4460 if ms.LoadMessageInfo() == nil { 4461 ms.StoreMessageInfo(mi) 4462 } 4463 return ms 4464 } 4465 return mi.MessageOf(x) 4466 } 4467 4468 // Deprecated: Use BotTasksRequest.ProtoReflect.Descriptor instead. 4469 func (*BotTasksRequest) Descriptor() ([]byte, []int) { 4470 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{44} 4471 } 4472 4473 func (x *BotTasksRequest) GetBotId() string { 4474 if x != nil { 4475 return x.BotId 4476 } 4477 return "" 4478 } 4479 4480 func (x *BotTasksRequest) GetLimit() int32 { 4481 if x != nil { 4482 return x.Limit 4483 } 4484 return 0 4485 } 4486 4487 func (x *BotTasksRequest) GetCursor() string { 4488 if x != nil { 4489 return x.Cursor 4490 } 4491 return "" 4492 } 4493 4494 func (x *BotTasksRequest) GetStart() *timestamppb.Timestamp { 4495 if x != nil { 4496 return x.Start 4497 } 4498 return nil 4499 } 4500 4501 func (x *BotTasksRequest) GetEnd() *timestamppb.Timestamp { 4502 if x != nil { 4503 return x.End 4504 } 4505 return nil 4506 } 4507 4508 func (x *BotTasksRequest) GetState() StateQuery { 4509 if x != nil { 4510 return x.State 4511 } 4512 return StateQuery_QUERY_PENDING 4513 } 4514 4515 func (x *BotTasksRequest) GetSort() SortQuery { 4516 if x != nil { 4517 return x.Sort 4518 } 4519 return SortQuery_QUERY_CREATED_TS 4520 } 4521 4522 func (x *BotTasksRequest) GetIncludePerformanceStats() bool { 4523 if x != nil { 4524 return x.IncludePerformanceStats 4525 } 4526 return false 4527 } 4528 4529 type BotsRequest struct { 4530 state protoimpl.MessageState 4531 sizeCache protoimpl.SizeCache 4532 unknownFields protoimpl.UnknownFields 4533 4534 Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` 4535 Cursor string `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"` 4536 Dimensions []*StringPair `protobuf:"bytes,3,rep,name=dimensions,proto3" json:"dimensions,omitempty"` 4537 Quarantined NullableBool `protobuf:"varint,4,opt,name=quarantined,proto3,enum=swarming.v2.NullableBool" json:"quarantined,omitempty"` 4538 InMaintenance NullableBool `protobuf:"varint,5,opt,name=in_maintenance,json=inMaintenance,proto3,enum=swarming.v2.NullableBool" json:"in_maintenance,omitempty"` 4539 IsDead NullableBool `protobuf:"varint,6,opt,name=is_dead,json=isDead,proto3,enum=swarming.v2.NullableBool" json:"is_dead,omitempty"` 4540 IsBusy NullableBool `protobuf:"varint,7,opt,name=is_busy,json=isBusy,proto3,enum=swarming.v2.NullableBool" json:"is_busy,omitempty"` 4541 } 4542 4543 func (x *BotsRequest) Reset() { 4544 *x = BotsRequest{} 4545 if protoimpl.UnsafeEnabled { 4546 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[45] 4547 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4548 ms.StoreMessageInfo(mi) 4549 } 4550 } 4551 4552 func (x *BotsRequest) String() string { 4553 return protoimpl.X.MessageStringOf(x) 4554 } 4555 4556 func (*BotsRequest) ProtoMessage() {} 4557 4558 func (x *BotsRequest) ProtoReflect() protoreflect.Message { 4559 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[45] 4560 if protoimpl.UnsafeEnabled && x != nil { 4561 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4562 if ms.LoadMessageInfo() == nil { 4563 ms.StoreMessageInfo(mi) 4564 } 4565 return ms 4566 } 4567 return mi.MessageOf(x) 4568 } 4569 4570 // Deprecated: Use BotsRequest.ProtoReflect.Descriptor instead. 4571 func (*BotsRequest) Descriptor() ([]byte, []int) { 4572 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{45} 4573 } 4574 4575 func (x *BotsRequest) GetLimit() int32 { 4576 if x != nil { 4577 return x.Limit 4578 } 4579 return 0 4580 } 4581 4582 func (x *BotsRequest) GetCursor() string { 4583 if x != nil { 4584 return x.Cursor 4585 } 4586 return "" 4587 } 4588 4589 func (x *BotsRequest) GetDimensions() []*StringPair { 4590 if x != nil { 4591 return x.Dimensions 4592 } 4593 return nil 4594 } 4595 4596 func (x *BotsRequest) GetQuarantined() NullableBool { 4597 if x != nil { 4598 return x.Quarantined 4599 } 4600 return NullableBool_NULL 4601 } 4602 4603 func (x *BotsRequest) GetInMaintenance() NullableBool { 4604 if x != nil { 4605 return x.InMaintenance 4606 } 4607 return NullableBool_NULL 4608 } 4609 4610 func (x *BotsRequest) GetIsDead() NullableBool { 4611 if x != nil { 4612 return x.IsDead 4613 } 4614 return NullableBool_NULL 4615 } 4616 4617 func (x *BotsRequest) GetIsBusy() NullableBool { 4618 if x != nil { 4619 return x.IsBusy 4620 } 4621 return NullableBool_NULL 4622 } 4623 4624 type BotsCountRequest struct { 4625 state protoimpl.MessageState 4626 sizeCache protoimpl.SizeCache 4627 unknownFields protoimpl.UnknownFields 4628 4629 Dimensions []*StringPair `protobuf:"bytes,1,rep,name=dimensions,proto3" json:"dimensions,omitempty"` 4630 } 4631 4632 func (x *BotsCountRequest) Reset() { 4633 *x = BotsCountRequest{} 4634 if protoimpl.UnsafeEnabled { 4635 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[46] 4636 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4637 ms.StoreMessageInfo(mi) 4638 } 4639 } 4640 4641 func (x *BotsCountRequest) String() string { 4642 return protoimpl.X.MessageStringOf(x) 4643 } 4644 4645 func (*BotsCountRequest) ProtoMessage() {} 4646 4647 func (x *BotsCountRequest) ProtoReflect() protoreflect.Message { 4648 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[46] 4649 if protoimpl.UnsafeEnabled && x != nil { 4650 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4651 if ms.LoadMessageInfo() == nil { 4652 ms.StoreMessageInfo(mi) 4653 } 4654 return ms 4655 } 4656 return mi.MessageOf(x) 4657 } 4658 4659 // Deprecated: Use BotsCountRequest.ProtoReflect.Descriptor instead. 4660 func (*BotsCountRequest) Descriptor() ([]byte, []int) { 4661 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{46} 4662 } 4663 4664 func (x *BotsCountRequest) GetDimensions() []*StringPair { 4665 if x != nil { 4666 return x.Dimensions 4667 } 4668 return nil 4669 } 4670 4671 type BotsDimensionsRequest struct { 4672 state protoimpl.MessageState 4673 sizeCache protoimpl.SizeCache 4674 unknownFields protoimpl.UnknownFields 4675 4676 Pool string `protobuf:"bytes,1,opt,name=pool,proto3" json:"pool,omitempty"` 4677 } 4678 4679 func (x *BotsDimensionsRequest) Reset() { 4680 *x = BotsDimensionsRequest{} 4681 if protoimpl.UnsafeEnabled { 4682 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[47] 4683 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4684 ms.StoreMessageInfo(mi) 4685 } 4686 } 4687 4688 func (x *BotsDimensionsRequest) String() string { 4689 return protoimpl.X.MessageStringOf(x) 4690 } 4691 4692 func (*BotsDimensionsRequest) ProtoMessage() {} 4693 4694 func (x *BotsDimensionsRequest) ProtoReflect() protoreflect.Message { 4695 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[47] 4696 if protoimpl.UnsafeEnabled && x != nil { 4697 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4698 if ms.LoadMessageInfo() == nil { 4699 ms.StoreMessageInfo(mi) 4700 } 4701 return ms 4702 } 4703 return mi.MessageOf(x) 4704 } 4705 4706 // Deprecated: Use BotsDimensionsRequest.ProtoReflect.Descriptor instead. 4707 func (*BotsDimensionsRequest) Descriptor() ([]byte, []int) { 4708 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{47} 4709 } 4710 4711 func (x *BotsDimensionsRequest) GetPool() string { 4712 if x != nil { 4713 return x.Pool 4714 } 4715 return "" 4716 } 4717 4718 type PermissionsRequest struct { 4719 state protoimpl.MessageState 4720 sizeCache protoimpl.SizeCache 4721 unknownFields protoimpl.UnknownFields 4722 4723 BotId string `protobuf:"bytes,1,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"` 4724 TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` 4725 Tags []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty"` 4726 } 4727 4728 func (x *PermissionsRequest) Reset() { 4729 *x = PermissionsRequest{} 4730 if protoimpl.UnsafeEnabled { 4731 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[48] 4732 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4733 ms.StoreMessageInfo(mi) 4734 } 4735 } 4736 4737 func (x *PermissionsRequest) String() string { 4738 return protoimpl.X.MessageStringOf(x) 4739 } 4740 4741 func (*PermissionsRequest) ProtoMessage() {} 4742 4743 func (x *PermissionsRequest) ProtoReflect() protoreflect.Message { 4744 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[48] 4745 if protoimpl.UnsafeEnabled && x != nil { 4746 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4747 if ms.LoadMessageInfo() == nil { 4748 ms.StoreMessageInfo(mi) 4749 } 4750 return ms 4751 } 4752 return mi.MessageOf(x) 4753 } 4754 4755 // Deprecated: Use PermissionsRequest.ProtoReflect.Descriptor instead. 4756 func (*PermissionsRequest) Descriptor() ([]byte, []int) { 4757 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{48} 4758 } 4759 4760 func (x *PermissionsRequest) GetBotId() string { 4761 if x != nil { 4762 return x.BotId 4763 } 4764 return "" 4765 } 4766 4767 func (x *PermissionsRequest) GetTaskId() string { 4768 if x != nil { 4769 return x.TaskId 4770 } 4771 return "" 4772 } 4773 4774 func (x *PermissionsRequest) GetTags() []string { 4775 if x != nil { 4776 return x.Tags 4777 } 4778 return nil 4779 } 4780 4781 type TaskStatesRequest struct { 4782 state protoimpl.MessageState 4783 sizeCache protoimpl.SizeCache 4784 unknownFields protoimpl.UnknownFields 4785 4786 TaskId []string `protobuf:"bytes,1,rep,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` 4787 } 4788 4789 func (x *TaskStatesRequest) Reset() { 4790 *x = TaskStatesRequest{} 4791 if protoimpl.UnsafeEnabled { 4792 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[49] 4793 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4794 ms.StoreMessageInfo(mi) 4795 } 4796 } 4797 4798 func (x *TaskStatesRequest) String() string { 4799 return protoimpl.X.MessageStringOf(x) 4800 } 4801 4802 func (*TaskStatesRequest) ProtoMessage() {} 4803 4804 func (x *TaskStatesRequest) ProtoReflect() protoreflect.Message { 4805 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[49] 4806 if protoimpl.UnsafeEnabled && x != nil { 4807 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4808 if ms.LoadMessageInfo() == nil { 4809 ms.StoreMessageInfo(mi) 4810 } 4811 return ms 4812 } 4813 return mi.MessageOf(x) 4814 } 4815 4816 // Deprecated: Use TaskStatesRequest.ProtoReflect.Descriptor instead. 4817 func (*TaskStatesRequest) Descriptor() ([]byte, []int) { 4818 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{49} 4819 } 4820 4821 func (x *TaskStatesRequest) GetTaskId() []string { 4822 if x != nil { 4823 return x.TaskId 4824 } 4825 return nil 4826 } 4827 4828 type TasksWithPerfRequest struct { 4829 state protoimpl.MessageState 4830 sizeCache protoimpl.SizeCache 4831 unknownFields protoimpl.UnknownFields 4832 4833 Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` 4834 Cursor string `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"` 4835 // These were floats in the legacy protorpc api 4836 Start *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start,proto3" json:"start,omitempty"` 4837 End *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=end,proto3" json:"end,omitempty"` 4838 State StateQuery `protobuf:"varint,5,opt,name=state,proto3,enum=swarming.v2.StateQuery" json:"state,omitempty"` 4839 Sort SortQuery `protobuf:"varint,6,opt,name=sort,proto3,enum=swarming.v2.SortQuery" json:"sort,omitempty"` 4840 Tags []string `protobuf:"bytes,7,rep,name=tags,proto3" json:"tags,omitempty"` 4841 IncludePerformanceStats bool `protobuf:"varint,8,opt,name=include_performance_stats,json=includePerformanceStats,proto3" json:"include_performance_stats,omitempty"` 4842 } 4843 4844 func (x *TasksWithPerfRequest) Reset() { 4845 *x = TasksWithPerfRequest{} 4846 if protoimpl.UnsafeEnabled { 4847 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[50] 4848 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4849 ms.StoreMessageInfo(mi) 4850 } 4851 } 4852 4853 func (x *TasksWithPerfRequest) String() string { 4854 return protoimpl.X.MessageStringOf(x) 4855 } 4856 4857 func (*TasksWithPerfRequest) ProtoMessage() {} 4858 4859 func (x *TasksWithPerfRequest) ProtoReflect() protoreflect.Message { 4860 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[50] 4861 if protoimpl.UnsafeEnabled && x != nil { 4862 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4863 if ms.LoadMessageInfo() == nil { 4864 ms.StoreMessageInfo(mi) 4865 } 4866 return ms 4867 } 4868 return mi.MessageOf(x) 4869 } 4870 4871 // Deprecated: Use TasksWithPerfRequest.ProtoReflect.Descriptor instead. 4872 func (*TasksWithPerfRequest) Descriptor() ([]byte, []int) { 4873 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{50} 4874 } 4875 4876 func (x *TasksWithPerfRequest) GetLimit() int32 { 4877 if x != nil { 4878 return x.Limit 4879 } 4880 return 0 4881 } 4882 4883 func (x *TasksWithPerfRequest) GetCursor() string { 4884 if x != nil { 4885 return x.Cursor 4886 } 4887 return "" 4888 } 4889 4890 func (x *TasksWithPerfRequest) GetStart() *timestamppb.Timestamp { 4891 if x != nil { 4892 return x.Start 4893 } 4894 return nil 4895 } 4896 4897 func (x *TasksWithPerfRequest) GetEnd() *timestamppb.Timestamp { 4898 if x != nil { 4899 return x.End 4900 } 4901 return nil 4902 } 4903 4904 func (x *TasksWithPerfRequest) GetState() StateQuery { 4905 if x != nil { 4906 return x.State 4907 } 4908 return StateQuery_QUERY_PENDING 4909 } 4910 4911 func (x *TasksWithPerfRequest) GetSort() SortQuery { 4912 if x != nil { 4913 return x.Sort 4914 } 4915 return SortQuery_QUERY_CREATED_TS 4916 } 4917 4918 func (x *TasksWithPerfRequest) GetTags() []string { 4919 if x != nil { 4920 return x.Tags 4921 } 4922 return nil 4923 } 4924 4925 func (x *TasksWithPerfRequest) GetIncludePerformanceStats() bool { 4926 if x != nil { 4927 return x.IncludePerformanceStats 4928 } 4929 return false 4930 } 4931 4932 type TasksRequest struct { 4933 state protoimpl.MessageState 4934 sizeCache protoimpl.SizeCache 4935 unknownFields protoimpl.UnknownFields 4936 4937 Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` 4938 Cursor string `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"` 4939 // These were floats in the legacy protorpc api 4940 Start *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start,proto3" json:"start,omitempty"` 4941 End *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=end,proto3" json:"end,omitempty"` 4942 State StateQuery `protobuf:"varint,5,opt,name=state,proto3,enum=swarming.v2.StateQuery" json:"state,omitempty"` 4943 Sort SortQuery `protobuf:"varint,6,opt,name=sort,proto3,enum=swarming.v2.SortQuery" json:"sort,omitempty"` 4944 Tags []string `protobuf:"bytes,7,rep,name=tags,proto3" json:"tags,omitempty"` 4945 } 4946 4947 func (x *TasksRequest) Reset() { 4948 *x = TasksRequest{} 4949 if protoimpl.UnsafeEnabled { 4950 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[51] 4951 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4952 ms.StoreMessageInfo(mi) 4953 } 4954 } 4955 4956 func (x *TasksRequest) String() string { 4957 return protoimpl.X.MessageStringOf(x) 4958 } 4959 4960 func (*TasksRequest) ProtoMessage() {} 4961 4962 func (x *TasksRequest) ProtoReflect() protoreflect.Message { 4963 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[51] 4964 if protoimpl.UnsafeEnabled && x != nil { 4965 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4966 if ms.LoadMessageInfo() == nil { 4967 ms.StoreMessageInfo(mi) 4968 } 4969 return ms 4970 } 4971 return mi.MessageOf(x) 4972 } 4973 4974 // Deprecated: Use TasksRequest.ProtoReflect.Descriptor instead. 4975 func (*TasksRequest) Descriptor() ([]byte, []int) { 4976 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{51} 4977 } 4978 4979 func (x *TasksRequest) GetLimit() int32 { 4980 if x != nil { 4981 return x.Limit 4982 } 4983 return 0 4984 } 4985 4986 func (x *TasksRequest) GetCursor() string { 4987 if x != nil { 4988 return x.Cursor 4989 } 4990 return "" 4991 } 4992 4993 func (x *TasksRequest) GetStart() *timestamppb.Timestamp { 4994 if x != nil { 4995 return x.Start 4996 } 4997 return nil 4998 } 4999 5000 func (x *TasksRequest) GetEnd() *timestamppb.Timestamp { 5001 if x != nil { 5002 return x.End 5003 } 5004 return nil 5005 } 5006 5007 func (x *TasksRequest) GetState() StateQuery { 5008 if x != nil { 5009 return x.State 5010 } 5011 return StateQuery_QUERY_PENDING 5012 } 5013 5014 func (x *TasksRequest) GetSort() SortQuery { 5015 if x != nil { 5016 return x.Sort 5017 } 5018 return SortQuery_QUERY_CREATED_TS 5019 } 5020 5021 func (x *TasksRequest) GetTags() []string { 5022 if x != nil { 5023 return x.Tags 5024 } 5025 return nil 5026 } 5027 5028 type TasksCountRequest struct { 5029 state protoimpl.MessageState 5030 sizeCache protoimpl.SizeCache 5031 unknownFields protoimpl.UnknownFields 5032 5033 Start *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` 5034 End *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"` 5035 State StateQuery `protobuf:"varint,3,opt,name=state,proto3,enum=swarming.v2.StateQuery" json:"state,omitempty"` 5036 Tags []string `protobuf:"bytes,4,rep,name=tags,proto3" json:"tags,omitempty"` 5037 } 5038 5039 func (x *TasksCountRequest) Reset() { 5040 *x = TasksCountRequest{} 5041 if protoimpl.UnsafeEnabled { 5042 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[52] 5043 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5044 ms.StoreMessageInfo(mi) 5045 } 5046 } 5047 5048 func (x *TasksCountRequest) String() string { 5049 return protoimpl.X.MessageStringOf(x) 5050 } 5051 5052 func (*TasksCountRequest) ProtoMessage() {} 5053 5054 func (x *TasksCountRequest) ProtoReflect() protoreflect.Message { 5055 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[52] 5056 if protoimpl.UnsafeEnabled && x != nil { 5057 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5058 if ms.LoadMessageInfo() == nil { 5059 ms.StoreMessageInfo(mi) 5060 } 5061 return ms 5062 } 5063 return mi.MessageOf(x) 5064 } 5065 5066 // Deprecated: Use TasksCountRequest.ProtoReflect.Descriptor instead. 5067 func (*TasksCountRequest) Descriptor() ([]byte, []int) { 5068 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{52} 5069 } 5070 5071 func (x *TasksCountRequest) GetStart() *timestamppb.Timestamp { 5072 if x != nil { 5073 return x.Start 5074 } 5075 return nil 5076 } 5077 5078 func (x *TasksCountRequest) GetEnd() *timestamppb.Timestamp { 5079 if x != nil { 5080 return x.End 5081 } 5082 return nil 5083 } 5084 5085 func (x *TasksCountRequest) GetState() StateQuery { 5086 if x != nil { 5087 return x.State 5088 } 5089 return StateQuery_QUERY_PENDING 5090 } 5091 5092 func (x *TasksCountRequest) GetTags() []string { 5093 if x != nil { 5094 return x.Tags 5095 } 5096 return nil 5097 } 5098 5099 type TaskIdRequest struct { 5100 state protoimpl.MessageState 5101 sizeCache protoimpl.SizeCache 5102 unknownFields protoimpl.UnknownFields 5103 5104 TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` 5105 } 5106 5107 func (x *TaskIdRequest) Reset() { 5108 *x = TaskIdRequest{} 5109 if protoimpl.UnsafeEnabled { 5110 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[53] 5111 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5112 ms.StoreMessageInfo(mi) 5113 } 5114 } 5115 5116 func (x *TaskIdRequest) String() string { 5117 return protoimpl.X.MessageStringOf(x) 5118 } 5119 5120 func (*TaskIdRequest) ProtoMessage() {} 5121 5122 func (x *TaskIdRequest) ProtoReflect() protoreflect.Message { 5123 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[53] 5124 if protoimpl.UnsafeEnabled && x != nil { 5125 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5126 if ms.LoadMessageInfo() == nil { 5127 ms.StoreMessageInfo(mi) 5128 } 5129 return ms 5130 } 5131 return mi.MessageOf(x) 5132 } 5133 5134 // Deprecated: Use TaskIdRequest.ProtoReflect.Descriptor instead. 5135 func (*TaskIdRequest) Descriptor() ([]byte, []int) { 5136 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{53} 5137 } 5138 5139 func (x *TaskIdRequest) GetTaskId() string { 5140 if x != nil { 5141 return x.TaskId 5142 } 5143 return "" 5144 } 5145 5146 type TaskIdWithOffsetRequest struct { 5147 state protoimpl.MessageState 5148 sizeCache protoimpl.SizeCache 5149 unknownFields protoimpl.UnknownFields 5150 5151 TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` 5152 Offset int64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` 5153 Length int64 `protobuf:"varint,3,opt,name=length,proto3" json:"length,omitempty"` 5154 } 5155 5156 func (x *TaskIdWithOffsetRequest) Reset() { 5157 *x = TaskIdWithOffsetRequest{} 5158 if protoimpl.UnsafeEnabled { 5159 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[54] 5160 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5161 ms.StoreMessageInfo(mi) 5162 } 5163 } 5164 5165 func (x *TaskIdWithOffsetRequest) String() string { 5166 return protoimpl.X.MessageStringOf(x) 5167 } 5168 5169 func (*TaskIdWithOffsetRequest) ProtoMessage() {} 5170 5171 func (x *TaskIdWithOffsetRequest) ProtoReflect() protoreflect.Message { 5172 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[54] 5173 if protoimpl.UnsafeEnabled && x != nil { 5174 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5175 if ms.LoadMessageInfo() == nil { 5176 ms.StoreMessageInfo(mi) 5177 } 5178 return ms 5179 } 5180 return mi.MessageOf(x) 5181 } 5182 5183 // Deprecated: Use TaskIdWithOffsetRequest.ProtoReflect.Descriptor instead. 5184 func (*TaskIdWithOffsetRequest) Descriptor() ([]byte, []int) { 5185 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{54} 5186 } 5187 5188 func (x *TaskIdWithOffsetRequest) GetTaskId() string { 5189 if x != nil { 5190 return x.TaskId 5191 } 5192 return "" 5193 } 5194 5195 func (x *TaskIdWithOffsetRequest) GetOffset() int64 { 5196 if x != nil { 5197 return x.Offset 5198 } 5199 return 0 5200 } 5201 5202 func (x *TaskIdWithOffsetRequest) GetLength() int64 { 5203 if x != nil { 5204 return x.Length 5205 } 5206 return 0 5207 } 5208 5209 type TaskIdWithPerfRequest struct { 5210 state protoimpl.MessageState 5211 sizeCache protoimpl.SizeCache 5212 unknownFields protoimpl.UnknownFields 5213 5214 TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` 5215 IncludePerformanceStats bool `protobuf:"varint,2,opt,name=include_performance_stats,json=includePerformanceStats,proto3" json:"include_performance_stats,omitempty"` 5216 } 5217 5218 func (x *TaskIdWithPerfRequest) Reset() { 5219 *x = TaskIdWithPerfRequest{} 5220 if protoimpl.UnsafeEnabled { 5221 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[55] 5222 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5223 ms.StoreMessageInfo(mi) 5224 } 5225 } 5226 5227 func (x *TaskIdWithPerfRequest) String() string { 5228 return protoimpl.X.MessageStringOf(x) 5229 } 5230 5231 func (*TaskIdWithPerfRequest) ProtoMessage() {} 5232 5233 func (x *TaskIdWithPerfRequest) ProtoReflect() protoreflect.Message { 5234 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[55] 5235 if protoimpl.UnsafeEnabled && x != nil { 5236 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5237 if ms.LoadMessageInfo() == nil { 5238 ms.StoreMessageInfo(mi) 5239 } 5240 return ms 5241 } 5242 return mi.MessageOf(x) 5243 } 5244 5245 // Deprecated: Use TaskIdWithPerfRequest.ProtoReflect.Descriptor instead. 5246 func (*TaskIdWithPerfRequest) Descriptor() ([]byte, []int) { 5247 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{55} 5248 } 5249 5250 func (x *TaskIdWithPerfRequest) GetTaskId() string { 5251 if x != nil { 5252 return x.TaskId 5253 } 5254 return "" 5255 } 5256 5257 func (x *TaskIdWithPerfRequest) GetIncludePerformanceStats() bool { 5258 if x != nil { 5259 return x.IncludePerformanceStats 5260 } 5261 return false 5262 } 5263 5264 type BatchGetResultRequest struct { 5265 state protoimpl.MessageState 5266 sizeCache protoimpl.SizeCache 5267 unknownFields protoimpl.UnknownFields 5268 5269 // One or more task IDs (ending with '0'), must have no duplicates. 5270 TaskIds []string `protobuf:"bytes,1,rep,name=task_ids,json=taskIds,proto3" json:"task_ids,omitempty"` 5271 // If true, populate `performance_stats` in the output. 5272 IncludePerformanceStats bool `protobuf:"varint,2,opt,name=include_performance_stats,json=includePerformanceStats,proto3" json:"include_performance_stats,omitempty"` 5273 } 5274 5275 func (x *BatchGetResultRequest) Reset() { 5276 *x = BatchGetResultRequest{} 5277 if protoimpl.UnsafeEnabled { 5278 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[56] 5279 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5280 ms.StoreMessageInfo(mi) 5281 } 5282 } 5283 5284 func (x *BatchGetResultRequest) String() string { 5285 return protoimpl.X.MessageStringOf(x) 5286 } 5287 5288 func (*BatchGetResultRequest) ProtoMessage() {} 5289 5290 func (x *BatchGetResultRequest) ProtoReflect() protoreflect.Message { 5291 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[56] 5292 if protoimpl.UnsafeEnabled && x != nil { 5293 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5294 if ms.LoadMessageInfo() == nil { 5295 ms.StoreMessageInfo(mi) 5296 } 5297 return ms 5298 } 5299 return mi.MessageOf(x) 5300 } 5301 5302 // Deprecated: Use BatchGetResultRequest.ProtoReflect.Descriptor instead. 5303 func (*BatchGetResultRequest) Descriptor() ([]byte, []int) { 5304 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{56} 5305 } 5306 5307 func (x *BatchGetResultRequest) GetTaskIds() []string { 5308 if x != nil { 5309 return x.TaskIds 5310 } 5311 return nil 5312 } 5313 5314 func (x *BatchGetResultRequest) GetIncludePerformanceStats() bool { 5315 if x != nil { 5316 return x.IncludePerformanceStats 5317 } 5318 return false 5319 } 5320 5321 type BatchGetResultResponse struct { 5322 state protoimpl.MessageState 5323 sizeCache protoimpl.SizeCache 5324 unknownFields protoimpl.UnknownFields 5325 5326 // Task results or errors, in the same order as `task_ids` in the request. 5327 Results []*BatchGetResultResponse_ResultOrError `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` 5328 } 5329 5330 func (x *BatchGetResultResponse) Reset() { 5331 *x = BatchGetResultResponse{} 5332 if protoimpl.UnsafeEnabled { 5333 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[57] 5334 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5335 ms.StoreMessageInfo(mi) 5336 } 5337 } 5338 5339 func (x *BatchGetResultResponse) String() string { 5340 return protoimpl.X.MessageStringOf(x) 5341 } 5342 5343 func (*BatchGetResultResponse) ProtoMessage() {} 5344 5345 func (x *BatchGetResultResponse) ProtoReflect() protoreflect.Message { 5346 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[57] 5347 if protoimpl.UnsafeEnabled && x != nil { 5348 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5349 if ms.LoadMessageInfo() == nil { 5350 ms.StoreMessageInfo(mi) 5351 } 5352 return ms 5353 } 5354 return mi.MessageOf(x) 5355 } 5356 5357 // Deprecated: Use BatchGetResultResponse.ProtoReflect.Descriptor instead. 5358 func (*BatchGetResultResponse) Descriptor() ([]byte, []int) { 5359 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{57} 5360 } 5361 5362 func (x *BatchGetResultResponse) GetResults() []*BatchGetResultResponse_ResultOrError { 5363 if x != nil { 5364 return x.Results 5365 } 5366 return nil 5367 } 5368 5369 // Outcome of fetching one task's result. 5370 type BatchGetResultResponse_ResultOrError struct { 5371 state protoimpl.MessageState 5372 sizeCache protoimpl.SizeCache 5373 unknownFields protoimpl.UnknownFields 5374 5375 TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` 5376 // Types that are assignable to Outcome: 5377 // 5378 // *BatchGetResultResponse_ResultOrError_Result 5379 // *BatchGetResultResponse_ResultOrError_Error 5380 Outcome isBatchGetResultResponse_ResultOrError_Outcome `protobuf_oneof:"outcome"` 5381 } 5382 5383 func (x *BatchGetResultResponse_ResultOrError) Reset() { 5384 *x = BatchGetResultResponse_ResultOrError{} 5385 if protoimpl.UnsafeEnabled { 5386 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[58] 5387 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5388 ms.StoreMessageInfo(mi) 5389 } 5390 } 5391 5392 func (x *BatchGetResultResponse_ResultOrError) String() string { 5393 return protoimpl.X.MessageStringOf(x) 5394 } 5395 5396 func (*BatchGetResultResponse_ResultOrError) ProtoMessage() {} 5397 5398 func (x *BatchGetResultResponse_ResultOrError) ProtoReflect() protoreflect.Message { 5399 mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[58] 5400 if protoimpl.UnsafeEnabled && x != nil { 5401 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5402 if ms.LoadMessageInfo() == nil { 5403 ms.StoreMessageInfo(mi) 5404 } 5405 return ms 5406 } 5407 return mi.MessageOf(x) 5408 } 5409 5410 // Deprecated: Use BatchGetResultResponse_ResultOrError.ProtoReflect.Descriptor instead. 5411 func (*BatchGetResultResponse_ResultOrError) Descriptor() ([]byte, []int) { 5412 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{57, 0} 5413 } 5414 5415 func (x *BatchGetResultResponse_ResultOrError) GetTaskId() string { 5416 if x != nil { 5417 return x.TaskId 5418 } 5419 return "" 5420 } 5421 5422 func (m *BatchGetResultResponse_ResultOrError) GetOutcome() isBatchGetResultResponse_ResultOrError_Outcome { 5423 if m != nil { 5424 return m.Outcome 5425 } 5426 return nil 5427 } 5428 5429 func (x *BatchGetResultResponse_ResultOrError) GetResult() *TaskResultResponse { 5430 if x, ok := x.GetOutcome().(*BatchGetResultResponse_ResultOrError_Result); ok { 5431 return x.Result 5432 } 5433 return nil 5434 } 5435 5436 func (x *BatchGetResultResponse_ResultOrError) GetError() *status.Status { 5437 if x, ok := x.GetOutcome().(*BatchGetResultResponse_ResultOrError_Error); ok { 5438 return x.Error 5439 } 5440 return nil 5441 } 5442 5443 type isBatchGetResultResponse_ResultOrError_Outcome interface { 5444 isBatchGetResultResponse_ResultOrError_Outcome() 5445 } 5446 5447 type BatchGetResultResponse_ResultOrError_Result struct { 5448 Result *TaskResultResponse `protobuf:"bytes,2,opt,name=result,proto3,oneof"` 5449 } 5450 5451 type BatchGetResultResponse_ResultOrError_Error struct { 5452 Error *status.Status `protobuf:"bytes,3,opt,name=error,proto3,oneof"` 5453 } 5454 5455 func (*BatchGetResultResponse_ResultOrError_Result) isBatchGetResultResponse_ResultOrError_Outcome() { 5456 } 5457 5458 func (*BatchGetResultResponse_ResultOrError_Error) isBatchGetResultResponse_ResultOrError_Outcome() {} 5459 5460 var File_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto protoreflect.FileDescriptor 5461 5462 var file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDesc = []byte{ 5463 0x0a, 0x39, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 5464 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 5465 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x32, 0x2f, 0x73, 0x77, 0x61, 5466 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x73, 0x77, 0x61, 5467 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 5468 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 5469 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 5470 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 5471 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 5472 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 5473 0x34, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x12, 0x10, 0x0a, 5474 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 5475 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 5476 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x38, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 5477 0x69, 0x73, 0x74, 0x50, 0x61, 0x69, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 5478 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 5479 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 5480 0xa7, 0x02, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 5481 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 5482 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 5483 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x6f, 0x74, 0x5f, 5484 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 5485 0x6f, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x19, 0x6d, 0x61, 0x63, 5486 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x65, 5487 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 5488 0x52, 0x17, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 5489 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x1b, 0x64, 0x69, 0x73, 5490 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x5f, 5491 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 5492 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 5493 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x75, 0x63, 0x69, 5494 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 5495 0x01, 0x52, 0x0a, 0x6c, 0x75, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a, 5496 0x11, 0x63, 0x61, 0x73, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, 5497 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x61, 0x73, 0x56, 0x69, 0x65, 5498 0x77, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0x39, 0x0a, 0x0e, 0x42, 0x6f, 0x6f, 5499 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x62, 5500 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 5501 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x54, 5502 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xf2, 0x02, 0x0a, 0x11, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 5503 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 5504 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x62, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 5505 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6f, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 5506 0x65, 0x74, 0x65, 0x5f, 0x62, 0x6f, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 5507 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6f, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x65, 5508 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 5509 0x08, 0x52, 0x0c, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x74, 0x12, 5510 0x23, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x04, 5511 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6e, 5512 0x66, 0x69, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 5513 0x69, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x70, 5514 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 5515 0x63, 0x65, 0x6c, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 5516 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2e, 0x0a, 0x13, 0x67, 0x65, 5517 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 5518 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x67, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x74, 5519 0x73, 0x74, 0x72, 0x61, 0x70, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61, 5520 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 5521 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1b, 0x0a, 5522 0x09, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 5523 0x52, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x69, 5524 0x73, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 5525 0x6c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x3b, 0x0a, 0x06, 0x44, 0x69, 0x67, 5526 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 5527 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f, 5528 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x69, 0x7a, 5529 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x5e, 0x0a, 0x0c, 0x43, 0x41, 0x53, 0x52, 0x65, 0x66, 5530 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61, 0x73, 0x5f, 0x69, 0x6e, 5531 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x61, 5532 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x64, 0x69, 0x67, 5533 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x77, 0x61, 0x72, 5534 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x06, 5535 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x22, 0x5e, 0x0a, 0x0b, 0x43, 0x69, 0x70, 0x64, 0x50, 0x61, 5536 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 5537 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x63, 5538 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 5539 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 5540 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 5541 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x9a, 0x01, 0x0a, 0x09, 0x43, 0x69, 0x70, 0x64, 0x49, 5542 0x6e, 0x70, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 5543 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x0e, 5544 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 5545 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 5546 0x76, 0x32, 0x2e, 0x43, 0x69, 0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x0d, 5547 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 5548 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 5549 0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x69, 5550 0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 5551 0x67, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x08, 0x43, 0x69, 0x70, 0x64, 0x50, 0x69, 0x6e, 0x73, 5552 0x12, 0x3f, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 5553 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 5554 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x69, 0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 5555 0x67, 0x65, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 5556 0x65, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 5557 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 5558 0x32, 0x2e, 0x43, 0x69, 0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x08, 0x70, 5559 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x22, 0x34, 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, 0x65, 5560 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 5561 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 5562 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x56, 0x0a, 5563 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x10, 5564 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 5565 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 5566 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 5567 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, 5568 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0xbd, 0x05, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 5569 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x61, 0x63, 0x68, 5570 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 5571 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 5572 0x79, 0x52, 0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x0a, 0x63, 0x69, 0x70, 5573 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 5574 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x69, 0x70, 0x64, 5575 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x63, 0x69, 0x70, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 5576 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 5577 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 5578 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x77, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 5579 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x43, 0x77, 0x64, 0x12, 0x37, 0x0a, 5580 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 5581 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 5582 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x64, 0x69, 0x6d, 0x65, 5583 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x06, 0x20, 5584 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 5585 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x03, 0x65, 0x6e, 5586 0x76, 0x12, 0x3e, 0x0a, 0x0c, 0x65, 0x6e, 0x76, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 5587 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 5588 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 5589 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 5590 0x73, 0x12, 0x34, 0x0a, 0x16, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 5591 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 5592 0x05, 0x52, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 5593 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x67, 0x72, 0x61, 0x63, 0x65, 5594 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 5595 0x28, 0x05, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 5596 0x65, 0x63, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 5597 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 5598 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x0e, 0x63, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 5599 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x77, 5600 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x41, 0x53, 0x52, 0x65, 0x66, 5601 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0c, 0x63, 0x61, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 5602 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 5603 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 5604 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x73, 0x12, 0x18, 0x0a, 0x07, 5605 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 5606 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 5607 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x65, 5608 0x63, 0x72, 0x65, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 5609 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 5610 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 5611 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 5612 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x6c, 5613 0x69, 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 5614 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 5615 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 5616 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 5617 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 5618 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 5619 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x77, 0x61, 0x69, 5620 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x03, 5621 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x77, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x43, 0x61, 0x70, 5622 0x61, 0x63, 0x69, 0x74, 0x79, 0x22, 0xd0, 0x03, 0x0a, 0x19, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 5623 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 5624 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 5625 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 5626 0x2c, 0x0a, 0x12, 0x62, 0x6f, 0x74, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 5627 0x72, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x62, 0x6f, 0x74, 5628 0x50, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x22, 0x0a, 5629 0x0d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 5630 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x49, 5631 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 5632 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 5633 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x77, 0x61, 5634 0x69, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 5635 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x77, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x43, 0x61, 5636 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x15, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 5637 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x69, 0x70, 0x64, 0x5f, 0x70, 0x6b, 0x67, 0x18, 5638 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x6e, 0x61, 5639 0x72, 0x79, 0x43, 0x69, 0x70, 0x64, 0x50, 0x6b, 0x67, 0x12, 0x33, 0x0a, 0x16, 0x61, 0x67, 0x65, 5640 0x6e, 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x69, 0x70, 0x64, 0x5f, 0x76, 5641 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x61, 0x67, 0x65, 0x6e, 0x74, 5642 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x43, 0x69, 0x70, 0x64, 0x56, 0x65, 0x72, 0x73, 0x12, 0x3b, 5643 0x0a, 0x1a, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x63, 5644 0x69, 0x70, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 5645 0x28, 0x09, 0x52, 0x17, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x43, 5646 0x69, 0x70, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x61, 5647 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x69, 0x70, 0x64, 5648 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 5649 0x67, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x43, 0x69, 0x70, 0x64, 0x53, 0x65, 5650 0x72, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x03, 5651 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x25, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x75, 5652 0x6c, 0x74, 0x44, 0x42, 0x43, 0x66, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 5653 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 5654 0xcc, 0x06, 0x0a, 0x0e, 0x4e, 0x65, 0x77, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 5655 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 5656 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x78, 0x70, 5657 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 5658 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 5659 0x24, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 5660 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 5661 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 5662 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 5663 0x79, 0x12, 0x3b, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 5664 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 5665 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 5666 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x37, 5667 0x0a, 0x0b, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 5668 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 5669 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x0a, 0x74, 0x61, 0x73, 5670 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 5671 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 5672 0x73, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 5673 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 5674 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 5675 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x62, 0x73, 5676 0x75, 0x62, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 5677 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x11, 0x70, 5678 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 5679 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x41, 0x75, 5680 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x75, 0x62, 0x73, 0x75, 5681 0x62, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 5682 0x52, 0x0e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 5683 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 5684 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 5685 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x5f, 0x0a, 0x12, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x61, 5686 0x73, 0x6b, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 5687 0x0e, 0x32, 0x31, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 5688 0x4e, 0x65, 0x77, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 5689 0x6f, 0x6f, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x46, 5690 0x69, 0x65, 0x6c, 0x64, 0x52, 0x10, 0x70, 0x6f, 0x6f, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x65, 5691 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x62, 0x6f, 0x74, 0x5f, 0x70, 0x69, 5692 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x63, 5693 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x62, 0x6f, 0x74, 0x50, 0x69, 0x6e, 0x67, 5694 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x63, 0x73, 0x12, 0x21, 0x0a, 5695 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x10, 0x20, 5696 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 5697 0x12, 0x34, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x18, 0x11, 0x20, 0x01, 5698 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 5699 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x42, 0x43, 0x66, 0x67, 0x52, 0x08, 0x72, 0x65, 5700 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x18, 5701 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x22, 0x50, 0x0a, 0x15, 5702 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 5703 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x00, 0x12, 5704 0x11, 0x0a, 0x0d, 0x43, 0x41, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, 5705 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x41, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4e, 0x45, 0x56, 5706 0x45, 0x52, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x4b, 0x49, 0x50, 0x10, 0x03, 0x22, 0xc7, 5707 0x05, 0x0a, 0x13, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 5708 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 5709 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 5710 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 5711 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 5712 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 5713 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 5714 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, 5715 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 5716 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 5717 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3b, 5718 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 5719 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 5720 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 5721 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 5722 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 5723 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x73, 0x18, 0x08, 0x20, 5724 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 5725 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 5726 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 5727 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x24, 5728 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 5729 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 5730 0x61, 0x74, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x6c, 0x69, 5731 0x63, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x77, 0x61, 0x72, 5732 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x6c, 0x69, 0x63, 5733 0x65, 0x52, 0x0a, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x73, 0x12, 0x27, 0x0a, 5734 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 5735 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 5736 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x18, 5737 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x34, 0x0a, 0x08, 5738 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 5739 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 5740 0x75, 0x6c, 0x74, 0x44, 0x42, 0x43, 0x66, 0x67, 0x52, 0x08, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 5741 0x64, 0x62, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6f, 0x70, 5742 0x69, 0x63, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 5743 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f, 5744 0x75, 0x73, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 5745 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x12, 0x35, 5746 0x0a, 0x17, 0x62, 0x6f, 0x74, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 5747 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 5748 0x14, 0x62, 0x6f, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 5749 0x65, 0x53, 0x65, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x62, 0x65, 0x5f, 0x69, 0x6e, 0x73, 5750 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x62, 0x65, 5751 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 5752 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 5753 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 5754 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x72, 5755 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6b, 0x69, 5756 0x6c, 0x6c, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0xd9, 0x01, 0x0a, 0x12, 0x54, 0x61, 5757 0x73, 0x6b, 0x73, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 5758 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 5759 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 5760 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x12, 5761 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 5762 0x67, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69, 5763 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x75, 5764 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 5765 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 5766 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 5767 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x06, 5768 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 5769 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 5770 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x2c, 0x0a, 0x0e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 5771 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 5772 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 5773 0x69, 0x6f, 0x6e, 0x22, 0xf2, 0x02, 0x0a, 0x11, 0x43, 0x41, 0x53, 0x4f, 0x70, 0x65, 0x72, 0x61, 5774 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 5775 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 5776 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 5777 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 5778 0x01, 0x28, 0x05, 0x52, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 5779 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 5780 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x69, 5781 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x74, 5782 0x65, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 5783 0x69, 0x74, 0x65, 0x6d, 0x73, 0x43, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x74, 0x65, 5784 0x6d, 0x73, 0x5f, 0x68, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x69, 0x74, 5785 0x65, 0x6d, 0x73, 0x48, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x69, 0x74, 5786 0x65, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 5787 0x6e, 0x75, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x43, 0x6f, 0x6c, 0x64, 0x12, 0x33, 0x0a, 0x16, 5788 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x69, 0x74, 0x65, 0x6d, 5789 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x74, 0x6f, 5790 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x43, 0x6f, 0x6c, 5791 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x75, 0x6d, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x68, 5792 0x6f, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x49, 0x74, 0x65, 5793 0x6d, 0x73, 0x48, 0x6f, 0x74, 0x12, 0x31, 0x0a, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 5794 0x79, 0x74, 0x65, 0x73, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x68, 0x6f, 0x74, 0x18, 0x09, 5795 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 5796 0x49, 0x74, 0x65, 0x6d, 0x73, 0x48, 0x6f, 0x74, 0x22, 0xb0, 0x04, 0x0a, 0x10, 0x50, 0x65, 0x72, 5797 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x21, 0x0a, 5798 0x0c, 0x62, 0x6f, 0x74, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 5799 0x01, 0x28, 0x02, 0x52, 0x0b, 0x62, 0x6f, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x64, 5800 0x12, 0x4b, 0x0a, 0x11, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x77, 5801 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x77, 5802 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x41, 0x53, 0x4f, 0x70, 0x65, 5803 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x10, 0x69, 0x73, 0x6f, 5804 0x6c, 0x61, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x47, 0x0a, 5805 0x0f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 5806 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 5807 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x41, 0x53, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 5808 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0e, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x64, 5809 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x4e, 0x0a, 0x14, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 5810 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 5811 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 5812 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 5813 0x73, 0x52, 0x13, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 5814 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x0a, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 5815 0x74, 0x72, 0x69, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 5816 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 5817 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x54, 0x72, 5818 0x69, 0x6d, 0x12, 0x4d, 0x0a, 0x14, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x63, 0x68, 5819 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 5820 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 5821 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x12, 0x6e, 5822 0x61, 0x6d, 0x65, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 5823 0x6c, 0x12, 0x51, 0x0a, 0x16, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 5824 0x73, 0x5f, 0x75, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 5825 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 5826 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x14, 5827 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x73, 0x55, 0x6e, 0x69, 0x6e, 0x73, 5828 0x74, 0x61, 0x6c, 0x6c, 0x12, 0x35, 0x0a, 0x07, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x18, 5829 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 5830 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 5831 0x74, 0x73, 0x52, 0x07, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x22, 0x4d, 0x0a, 0x0e, 0x43, 5832 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 5833 0x08, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 5834 0x08, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x61, 0x73, 5835 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 5836 0x77, 0x61, 0x73, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x75, 0x0a, 0x13, 0x54, 0x61, 5837 0x73, 0x6b, 0x73, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 5838 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 5839 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x2c, 0x0a, 0x03, 0x6e, 0x6f, 0x77, 5840 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 5841 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 5842 0x6d, 0x70, 0x52, 0x03, 0x6e, 0x6f, 0x77, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 5843 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 5844 0x64, 0x22, 0x5a, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 5845 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 5846 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 5847 0x2c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 5848 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 5849 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x4a, 0x0a, 5850 0x0c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x42, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 5851 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 5852 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 5853 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 5854 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa7, 0x0b, 0x0a, 0x12, 0x54, 0x61, 5855 0x73, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 5856 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 5857 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0e, 0x62, 0x6f, 0x74, 5858 0x5f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 5859 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 5860 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0d, 5861 0x62, 0x6f, 0x74, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x15, 0x0a, 5862 0x06, 0x62, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 5863 0x6f, 0x74, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x11, 0x62, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x6c, 0x65, 5864 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 5865 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 5866 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x62, 0x6f, 0x74, 5867 0x49, 0x64, 0x6c, 0x65, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x54, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 5868 0x6f, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 5869 0x52, 0x0a, 0x62, 0x6f, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x16, 5870 0x62, 0x6f, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70, 5871 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x62, 0x6f, 5872 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 5873 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x74, 5874 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 5875 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 5876 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x73, 5877 0x12, 0x24, 0x0a, 0x0e, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x75, 5878 0x73, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x63, 0x6f, 0x73, 0x74, 0x53, 0x61, 5879 0x76, 0x65, 0x64, 0x55, 0x73, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 5880 0x64, 0x5f, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 5881 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 5882 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 5883 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x64, 0x75, 0x70, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x6f, 5884 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x64, 0x75, 0x70, 0x65, 0x64, 5885 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 5886 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 5887 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 5888 0x01, 0x28, 0x03, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 5889 0x07, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 5890 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 5891 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 5892 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x46, 0x61, 0x69, 0x6c, 0x75, 5893 0x72, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x74, 5894 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 5895 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 5896 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x73, 0x12, 5897 0x41, 0x0a, 0x0f, 0x63, 0x61, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x6f, 5898 0x6f, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 5899 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x41, 0x53, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 5900 0x6e, 0x63, 0x65, 0x52, 0x0d, 0x63, 0x61, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x6f, 5901 0x6f, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 5902 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 5903 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x73, 5904 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 5905 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 5906 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 5907 0x72, 0x74, 0x65, 0x64, 0x54, 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 5908 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 5909 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 5910 0x74, 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 5911 0x64, 0x5f, 0x74, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 5912 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 5913 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 5914 0x64, 0x54, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x73, 0x74, 0x73, 0x5f, 0x75, 0x73, 0x64, 5915 0x18, 0x16, 0x20, 0x03, 0x28, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x73, 0x55, 0x73, 0x64, 5916 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 5917 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x18, 0x20, 0x03, 5918 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 5919 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x11, 5920 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 5921 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 5922 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 5923 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x10, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 5924 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x09, 0x63, 0x69, 0x70, 0x64, 5925 0x5f, 0x70, 0x69, 0x6e, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x77, 5926 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x69, 0x70, 0x64, 0x50, 0x69, 5927 0x6e, 0x73, 0x52, 0x08, 0x63, 0x69, 0x70, 0x64, 0x50, 0x69, 0x6e, 0x73, 0x12, 0x15, 0x0a, 0x06, 5928 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x75, 5929 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 5930 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 5931 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x6c, 0x69, 0x63, 5932 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x5f, 0x69, 0x6e, 5933 0x66, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 5934 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x42, 0x49, 5935 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x49, 0x6e, 0x66, 5936 0x6f, 0x12, 0x3a, 0x0a, 0x0b, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x73, 5937 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 5938 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x41, 0x53, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 5939 0x65, 0x52, 0x0a, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x61, 0x73, 0x12, 0x3b, 0x0a, 5940 0x0c, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x69, 0x70, 0x64, 0x18, 0x20, 0x20, 5941 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 5942 0x32, 0x2e, 0x43, 0x69, 0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x6d, 5943 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x69, 0x70, 0x64, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 5944 0x52, 0x11, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 5945 0x69, 0x64, 0x73, 0x22, 0x3c, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 5946 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 5947 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 5948 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 5949 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x10, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 5950 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 5951 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x35, 5952 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 5953 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 5954 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 5955 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2c, 0x0a, 0x03, 0x6e, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 5956 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 5957 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 5958 0x6e, 0x6f, 0x77, 0x22, 0x94, 0x01, 0x0a, 0x14, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 5959 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 5960 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 5961 0x72, 0x73, 0x6f, 0x72, 0x12, 0x36, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 5962 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 5963 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 5964 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2c, 0x0a, 0x03, 5965 0x6e, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 5966 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 5967 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6e, 0x6f, 0x77, 0x22, 0x50, 0x0a, 0x0a, 0x54, 0x61, 5968 0x73, 0x6b, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 5969 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 5970 0x0a, 0x03, 0x6e, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 5971 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 5972 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6e, 0x6f, 0x77, 0x22, 0xb4, 0x01, 0x0a, 5973 0x1b, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 5974 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 5975 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 5976 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 5977 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 5978 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 5979 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 5980 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 5981 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 5982 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 5983 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 5984 0x75, 0x6c, 0x74, 0x22, 0x8b, 0x04, 0x0a, 0x07, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 5985 0x15, 0x0a, 0x06, 0x62, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 5986 0x05, 0x62, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 5987 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 5988 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x18, 0x03, 5989 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x70, 5990 0x12, 0x29, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 5991 0x64, 0x5f, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x75, 0x74, 0x68, 5992 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x41, 0x73, 0x12, 0x3e, 0x0a, 0x0d, 0x66, 5993 0x69, 0x72, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 5994 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 5995 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 5996 0x66, 0x69, 0x72, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x54, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x69, 5997 0x73, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 5998 0x44, 0x65, 0x61, 0x64, 0x12, 0x3c, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65, 5999 0x6e, 0x5f, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 6000 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 6001 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 6002 0x54, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 6003 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x71, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 6004 0x69, 0x6e, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 6005 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 6006 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x3b, 0x0a, 6007 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 6008 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 6009 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 6010 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 6011 0x73, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 6012 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 6013 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 6014 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 6015 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 6016 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 6017 0x64, 0x22, 0xac, 0x01, 0x0a, 0x13, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 6018 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 6019 0x73, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 6020 0x72, 0x12, 0x2a, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 6021 0x32, 0x14, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 6022 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2c, 0x0a, 6023 0x03, 0x6e, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 6024 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 6025 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6e, 0x6f, 0x77, 0x12, 0x23, 0x0a, 0x0d, 0x64, 6026 0x65, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 6027 0x28, 0x05, 0x52, 0x0c, 0x64, 0x65, 0x61, 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 6028 0x22, 0xbb, 0x01, 0x0a, 0x09, 0x42, 0x6f, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 6029 0x0a, 0x03, 0x6e, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 6030 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 6031 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6e, 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 6032 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 6033 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 6034 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x71, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 6035 0x69, 0x6e, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 6036 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x74, 6037 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x61, 0x64, 0x18, 0x05, 6038 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x75, 6039 0x73, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x62, 0x75, 0x73, 0x79, 0x22, 0x82, 6040 0x01, 0x0a, 0x0e, 0x42, 0x6f, 0x74, 0x73, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 6041 0x73, 0x12, 0x44, 0x0a, 0x0f, 0x62, 0x6f, 0x74, 0x73, 0x5f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 6042 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 6043 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 6044 0x69, 0x73, 0x74, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0e, 0x62, 0x6f, 0x74, 0x73, 0x44, 0x69, 0x6d, 6045 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x02, 0x74, 0x73, 0x18, 0x02, 0x20, 6046 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 6047 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 6048 0x02, 0x74, 0x73, 0x22, 0x94, 0x03, 0x0a, 0x10, 0x42, 0x6f, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 6049 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x02, 0x74, 0x73, 0x18, 0x01, 6050 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 6051 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 6052 0x52, 0x02, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 6053 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 6054 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 6055 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3b, 0x0a, 6056 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 6057 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 6058 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 6059 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 6060 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 6061 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x18, 6062 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 6063 0x70, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 6064 0x65, 0x64, 0x5f, 0x61, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x75, 0x74, 6065 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x41, 0x73, 0x12, 0x18, 0x0a, 0x07, 6066 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 6067 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x61, 0x72, 0x61, 0x6e, 6068 0x74, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x71, 0x75, 0x61, 6069 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x69, 0x6e, 6070 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 6071 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x73, 6072 0x67, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 6073 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x8e, 0x01, 0x0a, 0x11, 0x42, 6074 0x6f, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 6075 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 6076 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x33, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 6077 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 6078 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 6079 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2c, 0x0a, 6080 0x03, 0x6e, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 6081 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 6082 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6e, 0x6f, 0x77, 0x22, 0x2a, 0x0a, 0x0e, 0x44, 6083 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 6084 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 6085 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x0a, 0x11, 0x54, 0x65, 0x72, 0x6d, 0x69, 6086 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 6087 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 6088 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x0a, 0x42, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 6089 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 6090 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x6f, 0x74, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x10, 0x54, 0x65, 6091 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 6092 0x0a, 0x06, 0x62, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 6093 0x62, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 6094 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xb7, 0x01, 6095 0x0a, 0x10, 0x42, 0x6f, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 6096 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 6097 0x28, 0x09, 0x52, 0x05, 0x62, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 6098 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 6099 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 6100 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 6101 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 6102 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 6103 0x6d, 0x70, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 6104 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 6105 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 6106 0x6d, 0x70, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0xcd, 0x02, 0x0a, 0x0f, 0x42, 0x6f, 0x74, 0x54, 6107 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x62, 6108 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x6f, 0x74, 6109 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 6110 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 6111 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 6112 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 6113 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 6114 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x73, 0x74, 0x61, 6115 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 6116 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 6117 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x65, 0x6e, 0x64, 6118 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 6119 0x17, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 6120 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 6121 0x2a, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 6122 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x6f, 0x72, 0x74, 6123 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x3a, 0x0a, 0x19, 0x69, 6124 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 6125 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 6126 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 6127 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0xdb, 0x02, 0x0a, 0x0b, 0x42, 0x6f, 0x74, 0x73, 6128 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 6129 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 6130 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 6131 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x37, 0x0a, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 6132 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x77, 0x61, 0x72, 6133 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 6134 0x69, 0x72, 0x52, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3b, 6135 0x0a, 0x0b, 0x71, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x04, 0x20, 6136 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 6137 0x32, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x0b, 6138 0x71, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x0e, 0x69, 6139 0x6e, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 6140 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 6141 0x32, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x0d, 6142 0x69, 0x6e, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 6143 0x07, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 6144 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x75, 0x6c, 6145 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x06, 0x69, 0x73, 0x44, 0x65, 0x61, 6146 0x64, 0x12, 0x32, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x62, 0x75, 0x73, 0x79, 0x18, 0x07, 0x20, 0x01, 6147 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 6148 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x06, 0x69, 6149 0x73, 0x42, 0x75, 0x73, 0x79, 0x22, 0x4b, 0x0a, 0x10, 0x42, 0x6f, 0x74, 0x73, 0x43, 0x6f, 0x75, 6150 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x64, 0x69, 0x6d, 6151 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 6152 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 6153 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 6154 0x6e, 0x73, 0x22, 0x2b, 0x0a, 0x15, 0x42, 0x6f, 0x74, 0x73, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 6155 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 6156 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x22, 6157 0x58, 0x0a, 0x12, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 6158 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 6159 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 6160 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 6161 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 6162 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x2c, 0x0a, 0x11, 0x54, 0x61, 0x73, 6163 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 6164 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 6165 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0xcf, 0x02, 0x0a, 0x14, 0x54, 0x61, 0x73, 0x6b, 6166 0x73, 0x57, 0x69, 0x74, 0x68, 0x50, 0x65, 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 6167 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 6168 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 6169 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x30, 6170 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 6171 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 6172 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 6173 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 6174 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 6175 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x2d, 6176 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 6177 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 6178 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 6179 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x77, 6180 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x51, 0x75, 6181 0x65, 0x72, 0x79, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 6182 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x3a, 0x0a, 6183 0x19, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 6184 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 6185 0x52, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 6186 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x8b, 0x02, 0x0a, 0x0c, 0x54, 0x61, 6187 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 6188 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 6189 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 6190 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 6191 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 6192 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 6193 0x61, 0x6d, 0x70, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6e, 6194 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 6195 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 6196 0x61, 0x6d, 0x70, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 6197 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 6198 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 6199 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 6200 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 6201 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x04, 0x73, 6202 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 6203 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0xb6, 0x01, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 6204 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 6205 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 6206 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 6207 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 6208 0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 6209 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 6210 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 6211 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x73, 6212 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 6213 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 6214 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 6215 0x22, 0x28, 0x0a, 0x0d, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 6216 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 6217 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x62, 0x0a, 0x17, 0x54, 0x61, 6218 0x73, 0x6b, 0x49, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x52, 0x65, 6219 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 6220 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x16, 6221 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 6222 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 6223 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x6c, 6224 0x0a, 0x15, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x57, 0x69, 0x74, 0x68, 0x50, 0x65, 0x72, 0x66, 6225 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 6226 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 6227 0x12, 0x3a, 0x0a, 0x19, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x66, 6228 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 6229 0x01, 0x28, 0x08, 0x52, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x65, 0x72, 0x66, 6230 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x6e, 0x0a, 0x15, 6231 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 6232 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 6233 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 6234 0x12, 0x3a, 0x0a, 0x19, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x66, 6235 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 6236 0x01, 0x28, 0x08, 0x52, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x65, 0x72, 0x66, 6237 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x82, 0x02, 0x0a, 6238 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 6239 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 6240 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 6241 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 6242 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 6243 0x73, 0x75, 0x6c, 0x74, 0x4f, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x07, 0x72, 0x65, 0x73, 6244 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x9a, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4f, 6245 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 6246 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 6247 0x39, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 6248 0x1f, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 6249 0x73, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 6250 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72, 6251 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 6252 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 6253 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 6254 0x65, 0x2a, 0xcf, 0x02, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 6255 0x12, 0x11, 0x0a, 0x0d, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 6256 0x47, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x52, 0x55, 0x4e, 6257 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 6258 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 6259 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 6260 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 6261 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 6262 0x53, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 6263 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x05, 6264 0x12, 0x11, 0x0a, 0x0d, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 6265 0x44, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x54, 0x49, 0x4d, 6266 0x45, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x51, 0x55, 0x45, 0x52, 6267 0x59, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x44, 0x49, 0x45, 0x44, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 6268 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x09, 6269 0x12, 0x0d, 0x0a, 0x09, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x0a, 0x12, 6270 0x11, 0x0a, 0x0d, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x44, 0x45, 0x44, 0x55, 0x50, 0x45, 0x44, 6271 0x10, 0x0b, 0x12, 0x10, 0x0a, 0x0c, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 6272 0x45, 0x44, 0x10, 0x0c, 0x12, 0x15, 0x0a, 0x11, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x4e, 0x4f, 6273 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x0d, 0x12, 0x16, 0x0a, 0x12, 0x51, 6274 0x55, 0x45, 0x52, 0x59, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 6275 0x52, 0x10, 0x0e, 0x2a, 0x6d, 0x0a, 0x09, 0x53, 0x6f, 0x72, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 6276 0x12, 0x14, 0x0a, 0x10, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 6277 0x44, 0x5f, 0x54, 0x53, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 6278 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x53, 0x10, 0x02, 0x12, 0x16, 6279 0x0a, 0x12, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x45, 6280 0x44, 0x5f, 0x54, 0x53, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 6281 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x53, 0x10, 0x04, 0x22, 0x04, 0x08, 0x01, 6282 0x10, 0x01, 0x2a, 0x48, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, 6283 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x50, 0x45, 6284 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 6285 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 6286 0x4a, 0x4f, 0x42, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x03, 0x2a, 0x2d, 0x0a, 0x0c, 6287 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x08, 0x0a, 0x04, 6288 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x41, 0x4c, 0x53, 0x45, 0x10, 6289 0x01, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x52, 0x55, 0x45, 0x10, 0x02, 0x2a, 0xab, 0x01, 0x0a, 0x09, 6290 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 6291 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 6292 0x47, 0x10, 0x10, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x20, 6293 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x30, 0x12, 0x0d, 0x0a, 6294 0x09, 0x54, 0x49, 0x4d, 0x45, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x40, 0x12, 0x0c, 0x0a, 0x08, 6295 0x42, 0x4f, 0x54, 0x5f, 0x44, 0x49, 0x45, 0x44, 0x10, 0x50, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x41, 6296 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x60, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 6297 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x70, 0x12, 0x0b, 0x0a, 0x06, 0x4b, 0x49, 0x4c, 0x4c, 0x45, 6298 0x44, 0x10, 0x80, 0x01, 0x12, 0x10, 0x0a, 0x0b, 0x4e, 0x4f, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 6299 0x52, 0x43, 0x45, 0x10, 0x80, 0x02, 0x12, 0x11, 0x0a, 0x0c, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 6300 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x80, 0x04, 0x32, 0xcf, 0x04, 0x0a, 0x04, 0x42, 0x6f, 6301 0x74, 0x73, 0x12, 0x37, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x74, 0x12, 0x17, 0x2e, 0x73, 6302 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x52, 0x65, 6303 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 6304 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x09, 0x44, 6305 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6f, 0x74, 0x12, 0x17, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 6306 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 6307 0x74, 0x1a, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 6308 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 6309 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 6310 0x1d, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 6311 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 6312 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 6313 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 6314 0x0a, 0x0c, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x74, 0x12, 0x1d, 6315 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x65, 0x72, 6316 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 6317 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x65, 0x72, 0x6d, 6318 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 6319 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1c, 0x2e, 6320 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x54, 6321 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x77, 6322 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 6323 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x08, 0x4c, 0x69, 6324 0x73, 0x74, 0x42, 0x6f, 0x74, 0x73, 0x12, 0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 6325 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 6326 0x1a, 0x20, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 6327 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 6328 0x73, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x6f, 0x74, 0x73, 0x12, 6329 0x1d, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 6330 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 6331 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 6332 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x74, 6333 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x2e, 0x73, 0x77, 0x61, 6334 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x73, 0x44, 0x69, 0x6d, 6335 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 6336 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 6337 0x73, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0xf6, 0x06, 0x0a, 0x05, 6338 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 6339 0x6c, 0x74, 0x12, 0x22, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 6340 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x57, 0x69, 0x74, 0x68, 0x50, 0x65, 0x72, 0x66, 0x52, 6341 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 6342 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 6343 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x0e, 0x42, 0x61, 0x74, 0x63, 0x68, 6344 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x22, 0x2e, 0x73, 0x77, 0x61, 0x72, 6345 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 6346 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 6347 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x74, 0x63, 6348 0x68, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 6349 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 6350 0x12, 0x1a, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 6351 0x61, 0x73, 0x6b, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 6352 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 6353 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 6354 0x0a, 0x0a, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1e, 0x2e, 0x73, 6355 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x43, 6356 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x73, 6357 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 6358 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x09, 0x47, 0x65, 0x74, 6359 0x53, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x12, 0x24, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 6360 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4f, 6361 0x66, 0x66, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 6362 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x4f, 6363 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 6364 0x07, 0x4e, 0x65, 0x77, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 6365 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x65, 0x77, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 6366 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 6367 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 6368 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 6369 0x4d, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x21, 0x2e, 0x73, 6370 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 6371 0x57, 0x69, 0x74, 0x68, 0x50, 0x65, 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 6372 0x1d, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 6373 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 6374 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 6375 0x12, 0x1e, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 6376 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 6377 0x1a, 0x17, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 6378 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x10, 0x4c, 0x69, 0x73, 6379 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x19, 0x2e, 6380 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 6381 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 6382 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 6383 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x43, 6384 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1f, 0x2e, 0x73, 0x77, 0x61, 6385 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x43, 0x61, 6386 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x77, 6387 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x43, 6388 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 6389 0x0a, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1e, 0x2e, 0x73, 0x77, 6390 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x43, 6391 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x73, 0x77, 6392 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x43, 6393 0x6f, 0x75, 0x6e, 0x74, 0x32, 0xe0, 0x01, 0x0a, 0x08, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 6394 0x67, 0x12, 0x40, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 6395 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 6396 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 6397 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 6398 0x69, 0x6c, 0x73, 0x12, 0x3f, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 6399 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 6400 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 6401 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x54, 6402 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x51, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 6403 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 6404 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 6405 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 6406 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x6d, 6407 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x6f, 0x2e, 0x63, 0x68, 6408 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 6409 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 6410 0x70, 0x69, 0x5f, 0x76, 0x32, 0x3b, 0x61, 0x70, 0x69, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 6411 0x74, 0x6f, 0x33, 6412 } 6413 6414 var ( 6415 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescOnce sync.Once 6416 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescData = file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDesc 6417 ) 6418 6419 func file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP() []byte { 6420 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescOnce.Do(func() { 6421 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescData) 6422 }) 6423 return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescData 6424 } 6425 6426 var file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes = make([]protoimpl.EnumInfo, 6) 6427 var file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes = make([]protoimpl.MessageInfo, 59) 6428 var file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_goTypes = []interface{}{ 6429 (StateQuery)(0), // 0: swarming.v2.StateQuery 6430 (SortQuery)(0), // 1: swarming.v2.SortQuery 6431 (ContainmentType)(0), // 2: swarming.v2.ContainmentType 6432 (NullableBool)(0), // 3: swarming.v2.NullableBool 6433 (TaskState)(0), // 4: swarming.v2.TaskState 6434 (NewTaskRequest_PoolTaskTemplateField)(0), // 5: swarming.v2.NewTaskRequest.PoolTaskTemplateField 6435 (*StringPair)(nil), // 6: swarming.v2.StringPair 6436 (*StringListPair)(nil), // 7: swarming.v2.StringListPair 6437 (*ServerDetails)(nil), // 8: swarming.v2.ServerDetails 6438 (*BootstrapToken)(nil), // 9: swarming.v2.BootstrapToken 6439 (*ClientPermissions)(nil), // 10: swarming.v2.ClientPermissions 6440 (*Digest)(nil), // 11: swarming.v2.Digest 6441 (*CASReference)(nil), // 12: swarming.v2.CASReference 6442 (*CipdPackage)(nil), // 13: swarming.v2.CipdPackage 6443 (*CipdInput)(nil), // 14: swarming.v2.CipdInput 6444 (*CipdPins)(nil), // 15: swarming.v2.CipdPins 6445 (*CacheEntry)(nil), // 16: swarming.v2.CacheEntry 6446 (*Containment)(nil), // 17: swarming.v2.Containment 6447 (*TaskProperties)(nil), // 18: swarming.v2.TaskProperties 6448 (*TaskSlice)(nil), // 19: swarming.v2.TaskSlice 6449 (*SwarmingTaskBackendConfig)(nil), // 20: swarming.v2.SwarmingTaskBackendConfig 6450 (*ResultDBCfg)(nil), // 21: swarming.v2.ResultDBCfg 6451 (*NewTaskRequest)(nil), // 22: swarming.v2.NewTaskRequest 6452 (*TaskRequestResponse)(nil), // 23: swarming.v2.TaskRequestResponse 6453 (*TaskCancelRequest)(nil), // 24: swarming.v2.TaskCancelRequest 6454 (*TasksCancelRequest)(nil), // 25: swarming.v2.TasksCancelRequest 6455 (*OperationStats)(nil), // 26: swarming.v2.OperationStats 6456 (*CASOperationStats)(nil), // 27: swarming.v2.CASOperationStats 6457 (*PerformanceStats)(nil), // 28: swarming.v2.PerformanceStats 6458 (*CancelResponse)(nil), // 29: swarming.v2.CancelResponse 6459 (*TasksCancelResponse)(nil), // 30: swarming.v2.TasksCancelResponse 6460 (*TaskOutputResponse)(nil), // 31: swarming.v2.TaskOutputResponse 6461 (*ResultDBInfo)(nil), // 32: swarming.v2.ResultDBInfo 6462 (*TaskResultResponse)(nil), // 33: swarming.v2.TaskResultResponse 6463 (*TaskStates)(nil), // 34: swarming.v2.TaskStates 6464 (*TaskListResponse)(nil), // 35: swarming.v2.TaskListResponse 6465 (*TaskRequestsResponse)(nil), // 36: swarming.v2.TaskRequestsResponse 6466 (*TasksCount)(nil), // 37: swarming.v2.TasksCount 6467 (*TaskRequestMetadataResponse)(nil), // 38: swarming.v2.TaskRequestMetadataResponse 6468 (*BotInfo)(nil), // 39: swarming.v2.BotInfo 6469 (*BotInfoListResponse)(nil), // 40: swarming.v2.BotInfoListResponse 6470 (*BotsCount)(nil), // 41: swarming.v2.BotsCount 6471 (*BotsDimensions)(nil), // 42: swarming.v2.BotsDimensions 6472 (*BotEventResponse)(nil), // 43: swarming.v2.BotEventResponse 6473 (*BotEventsResponse)(nil), // 44: swarming.v2.BotEventsResponse 6474 (*DeleteResponse)(nil), // 45: swarming.v2.DeleteResponse 6475 (*TerminateResponse)(nil), // 46: swarming.v2.TerminateResponse 6476 (*BotRequest)(nil), // 47: swarming.v2.BotRequest 6477 (*TerminateRequest)(nil), // 48: swarming.v2.TerminateRequest 6478 (*BotEventsRequest)(nil), // 49: swarming.v2.BotEventsRequest 6479 (*BotTasksRequest)(nil), // 50: swarming.v2.BotTasksRequest 6480 (*BotsRequest)(nil), // 51: swarming.v2.BotsRequest 6481 (*BotsCountRequest)(nil), // 52: swarming.v2.BotsCountRequest 6482 (*BotsDimensionsRequest)(nil), // 53: swarming.v2.BotsDimensionsRequest 6483 (*PermissionsRequest)(nil), // 54: swarming.v2.PermissionsRequest 6484 (*TaskStatesRequest)(nil), // 55: swarming.v2.TaskStatesRequest 6485 (*TasksWithPerfRequest)(nil), // 56: swarming.v2.TasksWithPerfRequest 6486 (*TasksRequest)(nil), // 57: swarming.v2.TasksRequest 6487 (*TasksCountRequest)(nil), // 58: swarming.v2.TasksCountRequest 6488 (*TaskIdRequest)(nil), // 59: swarming.v2.TaskIdRequest 6489 (*TaskIdWithOffsetRequest)(nil), // 60: swarming.v2.TaskIdWithOffsetRequest 6490 (*TaskIdWithPerfRequest)(nil), // 61: swarming.v2.TaskIdWithPerfRequest 6491 (*BatchGetResultRequest)(nil), // 62: swarming.v2.BatchGetResultRequest 6492 (*BatchGetResultResponse)(nil), // 63: swarming.v2.BatchGetResultResponse 6493 (*BatchGetResultResponse_ResultOrError)(nil), // 64: swarming.v2.BatchGetResultResponse.ResultOrError 6494 (*timestamppb.Timestamp)(nil), // 65: google.protobuf.Timestamp 6495 (*status.Status)(nil), // 66: google.rpc.Status 6496 (*emptypb.Empty)(nil), // 67: google.protobuf.Empty 6497 } 6498 var file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_depIdxs = []int32{ 6499 11, // 0: swarming.v2.CASReference.digest:type_name -> swarming.v2.Digest 6500 13, // 1: swarming.v2.CipdInput.client_package:type_name -> swarming.v2.CipdPackage 6501 13, // 2: swarming.v2.CipdInput.packages:type_name -> swarming.v2.CipdPackage 6502 13, // 3: swarming.v2.CipdPins.client_package:type_name -> swarming.v2.CipdPackage 6503 13, // 4: swarming.v2.CipdPins.packages:type_name -> swarming.v2.CipdPackage 6504 2, // 5: swarming.v2.Containment.containment_type:type_name -> swarming.v2.ContainmentType 6505 16, // 6: swarming.v2.TaskProperties.caches:type_name -> swarming.v2.CacheEntry 6506 14, // 7: swarming.v2.TaskProperties.cipd_input:type_name -> swarming.v2.CipdInput 6507 6, // 8: swarming.v2.TaskProperties.dimensions:type_name -> swarming.v2.StringPair 6508 6, // 9: swarming.v2.TaskProperties.env:type_name -> swarming.v2.StringPair 6509 7, // 10: swarming.v2.TaskProperties.env_prefixes:type_name -> swarming.v2.StringListPair 6510 12, // 11: swarming.v2.TaskProperties.cas_input_root:type_name -> swarming.v2.CASReference 6511 17, // 12: swarming.v2.TaskProperties.containment:type_name -> swarming.v2.Containment 6512 18, // 13: swarming.v2.TaskSlice.properties:type_name -> swarming.v2.TaskProperties 6513 18, // 14: swarming.v2.NewTaskRequest.properties:type_name -> swarming.v2.TaskProperties 6514 19, // 15: swarming.v2.NewTaskRequest.task_slices:type_name -> swarming.v2.TaskSlice 6515 5, // 16: swarming.v2.NewTaskRequest.pool_task_template:type_name -> swarming.v2.NewTaskRequest.PoolTaskTemplateField 6516 21, // 17: swarming.v2.NewTaskRequest.resultdb:type_name -> swarming.v2.ResultDBCfg 6517 18, // 18: swarming.v2.TaskRequestResponse.properties:type_name -> swarming.v2.TaskProperties 6518 65, // 19: swarming.v2.TaskRequestResponse.created_ts:type_name -> google.protobuf.Timestamp 6519 19, // 20: swarming.v2.TaskRequestResponse.task_slices:type_name -> swarming.v2.TaskSlice 6520 21, // 21: swarming.v2.TaskRequestResponse.resultdb:type_name -> swarming.v2.ResultDBCfg 6521 65, // 22: swarming.v2.TasksCancelRequest.start:type_name -> google.protobuf.Timestamp 6522 65, // 23: swarming.v2.TasksCancelRequest.end:type_name -> google.protobuf.Timestamp 6523 27, // 24: swarming.v2.PerformanceStats.isolated_download:type_name -> swarming.v2.CASOperationStats 6524 27, // 25: swarming.v2.PerformanceStats.isolated_upload:type_name -> swarming.v2.CASOperationStats 6525 26, // 26: swarming.v2.PerformanceStats.package_installation:type_name -> swarming.v2.OperationStats 6526 26, // 27: swarming.v2.PerformanceStats.cache_trim:type_name -> swarming.v2.OperationStats 6527 26, // 28: swarming.v2.PerformanceStats.named_caches_install:type_name -> swarming.v2.OperationStats 6528 26, // 29: swarming.v2.PerformanceStats.named_caches_uninstall:type_name -> swarming.v2.OperationStats 6529 26, // 30: swarming.v2.PerformanceStats.cleanup:type_name -> swarming.v2.OperationStats 6530 65, // 31: swarming.v2.TasksCancelResponse.now:type_name -> google.protobuf.Timestamp 6531 4, // 32: swarming.v2.TaskOutputResponse.state:type_name -> swarming.v2.TaskState 6532 7, // 33: swarming.v2.TaskResultResponse.bot_dimensions:type_name -> swarming.v2.StringListPair 6533 65, // 34: swarming.v2.TaskResultResponse.bot_idle_since_ts:type_name -> google.protobuf.Timestamp 6534 65, // 35: swarming.v2.TaskResultResponse.completed_ts:type_name -> google.protobuf.Timestamp 6535 65, // 36: swarming.v2.TaskResultResponse.created_ts:type_name -> google.protobuf.Timestamp 6536 65, // 37: swarming.v2.TaskResultResponse.modified_ts:type_name -> google.protobuf.Timestamp 6537 12, // 38: swarming.v2.TaskResultResponse.cas_output_root:type_name -> swarming.v2.CASReference 6538 65, // 39: swarming.v2.TaskResultResponse.started_ts:type_name -> google.protobuf.Timestamp 6539 4, // 40: swarming.v2.TaskResultResponse.state:type_name -> swarming.v2.TaskState 6540 65, // 41: swarming.v2.TaskResultResponse.abandoned_ts:type_name -> google.protobuf.Timestamp 6541 28, // 42: swarming.v2.TaskResultResponse.performance_stats:type_name -> swarming.v2.PerformanceStats 6542 15, // 43: swarming.v2.TaskResultResponse.cipd_pins:type_name -> swarming.v2.CipdPins 6543 32, // 44: swarming.v2.TaskResultResponse.resultdb_info:type_name -> swarming.v2.ResultDBInfo 6544 12, // 45: swarming.v2.TaskResultResponse.missing_cas:type_name -> swarming.v2.CASReference 6545 13, // 46: swarming.v2.TaskResultResponse.missing_cipd:type_name -> swarming.v2.CipdPackage 6546 4, // 47: swarming.v2.TaskStates.states:type_name -> swarming.v2.TaskState 6547 33, // 48: swarming.v2.TaskListResponse.items:type_name -> swarming.v2.TaskResultResponse 6548 65, // 49: swarming.v2.TaskListResponse.now:type_name -> google.protobuf.Timestamp 6549 23, // 50: swarming.v2.TaskRequestsResponse.items:type_name -> swarming.v2.TaskRequestResponse 6550 65, // 51: swarming.v2.TaskRequestsResponse.now:type_name -> google.protobuf.Timestamp 6551 65, // 52: swarming.v2.TasksCount.now:type_name -> google.protobuf.Timestamp 6552 23, // 53: swarming.v2.TaskRequestMetadataResponse.request:type_name -> swarming.v2.TaskRequestResponse 6553 33, // 54: swarming.v2.TaskRequestMetadataResponse.task_result:type_name -> swarming.v2.TaskResultResponse 6554 65, // 55: swarming.v2.BotInfo.first_seen_ts:type_name -> google.protobuf.Timestamp 6555 65, // 56: swarming.v2.BotInfo.last_seen_ts:type_name -> google.protobuf.Timestamp 6556 7, // 57: swarming.v2.BotInfo.dimensions:type_name -> swarming.v2.StringListPair 6557 39, // 58: swarming.v2.BotInfoListResponse.items:type_name -> swarming.v2.BotInfo 6558 65, // 59: swarming.v2.BotInfoListResponse.now:type_name -> google.protobuf.Timestamp 6559 65, // 60: swarming.v2.BotsCount.now:type_name -> google.protobuf.Timestamp 6560 7, // 61: swarming.v2.BotsDimensions.bots_dimensions:type_name -> swarming.v2.StringListPair 6561 65, // 62: swarming.v2.BotsDimensions.ts:type_name -> google.protobuf.Timestamp 6562 65, // 63: swarming.v2.BotEventResponse.ts:type_name -> google.protobuf.Timestamp 6563 7, // 64: swarming.v2.BotEventResponse.dimensions:type_name -> swarming.v2.StringListPair 6564 43, // 65: swarming.v2.BotEventsResponse.items:type_name -> swarming.v2.BotEventResponse 6565 65, // 66: swarming.v2.BotEventsResponse.now:type_name -> google.protobuf.Timestamp 6566 65, // 67: swarming.v2.BotEventsRequest.start:type_name -> google.protobuf.Timestamp 6567 65, // 68: swarming.v2.BotEventsRequest.end:type_name -> google.protobuf.Timestamp 6568 65, // 69: swarming.v2.BotTasksRequest.start:type_name -> google.protobuf.Timestamp 6569 65, // 70: swarming.v2.BotTasksRequest.end:type_name -> google.protobuf.Timestamp 6570 0, // 71: swarming.v2.BotTasksRequest.state:type_name -> swarming.v2.StateQuery 6571 1, // 72: swarming.v2.BotTasksRequest.sort:type_name -> swarming.v2.SortQuery 6572 6, // 73: swarming.v2.BotsRequest.dimensions:type_name -> swarming.v2.StringPair 6573 3, // 74: swarming.v2.BotsRequest.quarantined:type_name -> swarming.v2.NullableBool 6574 3, // 75: swarming.v2.BotsRequest.in_maintenance:type_name -> swarming.v2.NullableBool 6575 3, // 76: swarming.v2.BotsRequest.is_dead:type_name -> swarming.v2.NullableBool 6576 3, // 77: swarming.v2.BotsRequest.is_busy:type_name -> swarming.v2.NullableBool 6577 6, // 78: swarming.v2.BotsCountRequest.dimensions:type_name -> swarming.v2.StringPair 6578 65, // 79: swarming.v2.TasksWithPerfRequest.start:type_name -> google.protobuf.Timestamp 6579 65, // 80: swarming.v2.TasksWithPerfRequest.end:type_name -> google.protobuf.Timestamp 6580 0, // 81: swarming.v2.TasksWithPerfRequest.state:type_name -> swarming.v2.StateQuery 6581 1, // 82: swarming.v2.TasksWithPerfRequest.sort:type_name -> swarming.v2.SortQuery 6582 65, // 83: swarming.v2.TasksRequest.start:type_name -> google.protobuf.Timestamp 6583 65, // 84: swarming.v2.TasksRequest.end:type_name -> google.protobuf.Timestamp 6584 0, // 85: swarming.v2.TasksRequest.state:type_name -> swarming.v2.StateQuery 6585 1, // 86: swarming.v2.TasksRequest.sort:type_name -> swarming.v2.SortQuery 6586 65, // 87: swarming.v2.TasksCountRequest.start:type_name -> google.protobuf.Timestamp 6587 65, // 88: swarming.v2.TasksCountRequest.end:type_name -> google.protobuf.Timestamp 6588 0, // 89: swarming.v2.TasksCountRequest.state:type_name -> swarming.v2.StateQuery 6589 64, // 90: swarming.v2.BatchGetResultResponse.results:type_name -> swarming.v2.BatchGetResultResponse.ResultOrError 6590 33, // 91: swarming.v2.BatchGetResultResponse.ResultOrError.result:type_name -> swarming.v2.TaskResultResponse 6591 66, // 92: swarming.v2.BatchGetResultResponse.ResultOrError.error:type_name -> google.rpc.Status 6592 47, // 93: swarming.v2.Bots.GetBot:input_type -> swarming.v2.BotRequest 6593 47, // 94: swarming.v2.Bots.DeleteBot:input_type -> swarming.v2.BotRequest 6594 49, // 95: swarming.v2.Bots.ListBotEvents:input_type -> swarming.v2.BotEventsRequest 6595 48, // 96: swarming.v2.Bots.TerminateBot:input_type -> swarming.v2.TerminateRequest 6596 50, // 97: swarming.v2.Bots.ListBotTasks:input_type -> swarming.v2.BotTasksRequest 6597 51, // 98: swarming.v2.Bots.ListBots:input_type -> swarming.v2.BotsRequest 6598 52, // 99: swarming.v2.Bots.CountBots:input_type -> swarming.v2.BotsCountRequest 6599 53, // 100: swarming.v2.Bots.GetBotDimensions:input_type -> swarming.v2.BotsDimensionsRequest 6600 61, // 101: swarming.v2.Tasks.GetResult:input_type -> swarming.v2.TaskIdWithPerfRequest 6601 62, // 102: swarming.v2.Tasks.BatchGetResult:input_type -> swarming.v2.BatchGetResultRequest 6602 59, // 103: swarming.v2.Tasks.GetRequest:input_type -> swarming.v2.TaskIdRequest 6603 24, // 104: swarming.v2.Tasks.CancelTask:input_type -> swarming.v2.TaskCancelRequest 6604 60, // 105: swarming.v2.Tasks.GetStdout:input_type -> swarming.v2.TaskIdWithOffsetRequest 6605 22, // 106: swarming.v2.Tasks.NewTask:input_type -> swarming.v2.NewTaskRequest 6606 56, // 107: swarming.v2.Tasks.ListTasks:input_type -> swarming.v2.TasksWithPerfRequest 6607 55, // 108: swarming.v2.Tasks.ListTaskStates:input_type -> swarming.v2.TaskStatesRequest 6608 57, // 109: swarming.v2.Tasks.ListTaskRequests:input_type -> swarming.v2.TasksRequest 6609 25, // 110: swarming.v2.Tasks.CancelTasks:input_type -> swarming.v2.TasksCancelRequest 6610 58, // 111: swarming.v2.Tasks.CountTasks:input_type -> swarming.v2.TasksCountRequest 6611 67, // 112: swarming.v2.Swarming.GetDetails:input_type -> google.protobuf.Empty 6612 67, // 113: swarming.v2.Swarming.GetToken:input_type -> google.protobuf.Empty 6613 54, // 114: swarming.v2.Swarming.GetPermissions:input_type -> swarming.v2.PermissionsRequest 6614 39, // 115: swarming.v2.Bots.GetBot:output_type -> swarming.v2.BotInfo 6615 45, // 116: swarming.v2.Bots.DeleteBot:output_type -> swarming.v2.DeleteResponse 6616 44, // 117: swarming.v2.Bots.ListBotEvents:output_type -> swarming.v2.BotEventsResponse 6617 46, // 118: swarming.v2.Bots.TerminateBot:output_type -> swarming.v2.TerminateResponse 6618 35, // 119: swarming.v2.Bots.ListBotTasks:output_type -> swarming.v2.TaskListResponse 6619 40, // 120: swarming.v2.Bots.ListBots:output_type -> swarming.v2.BotInfoListResponse 6620 41, // 121: swarming.v2.Bots.CountBots:output_type -> swarming.v2.BotsCount 6621 42, // 122: swarming.v2.Bots.GetBotDimensions:output_type -> swarming.v2.BotsDimensions 6622 33, // 123: swarming.v2.Tasks.GetResult:output_type -> swarming.v2.TaskResultResponse 6623 63, // 124: swarming.v2.Tasks.BatchGetResult:output_type -> swarming.v2.BatchGetResultResponse 6624 23, // 125: swarming.v2.Tasks.GetRequest:output_type -> swarming.v2.TaskRequestResponse 6625 29, // 126: swarming.v2.Tasks.CancelTask:output_type -> swarming.v2.CancelResponse 6626 31, // 127: swarming.v2.Tasks.GetStdout:output_type -> swarming.v2.TaskOutputResponse 6627 38, // 128: swarming.v2.Tasks.NewTask:output_type -> swarming.v2.TaskRequestMetadataResponse 6628 35, // 129: swarming.v2.Tasks.ListTasks:output_type -> swarming.v2.TaskListResponse 6629 34, // 130: swarming.v2.Tasks.ListTaskStates:output_type -> swarming.v2.TaskStates 6630 36, // 131: swarming.v2.Tasks.ListTaskRequests:output_type -> swarming.v2.TaskRequestsResponse 6631 30, // 132: swarming.v2.Tasks.CancelTasks:output_type -> swarming.v2.TasksCancelResponse 6632 37, // 133: swarming.v2.Tasks.CountTasks:output_type -> swarming.v2.TasksCount 6633 8, // 134: swarming.v2.Swarming.GetDetails:output_type -> swarming.v2.ServerDetails 6634 9, // 135: swarming.v2.Swarming.GetToken:output_type -> swarming.v2.BootstrapToken 6635 10, // 136: swarming.v2.Swarming.GetPermissions:output_type -> swarming.v2.ClientPermissions 6636 115, // [115:137] is the sub-list for method output_type 6637 93, // [93:115] is the sub-list for method input_type 6638 93, // [93:93] is the sub-list for extension type_name 6639 93, // [93:93] is the sub-list for extension extendee 6640 0, // [0:93] is the sub-list for field type_name 6641 } 6642 6643 func init() { file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_init() } 6644 func file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_init() { 6645 if File_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto != nil { 6646 return 6647 } 6648 if !protoimpl.UnsafeEnabled { 6649 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 6650 switch v := v.(*StringPair); i { 6651 case 0: 6652 return &v.state 6653 case 1: 6654 return &v.sizeCache 6655 case 2: 6656 return &v.unknownFields 6657 default: 6658 return nil 6659 } 6660 } 6661 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 6662 switch v := v.(*StringListPair); i { 6663 case 0: 6664 return &v.state 6665 case 1: 6666 return &v.sizeCache 6667 case 2: 6668 return &v.unknownFields 6669 default: 6670 return nil 6671 } 6672 } 6673 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 6674 switch v := v.(*ServerDetails); i { 6675 case 0: 6676 return &v.state 6677 case 1: 6678 return &v.sizeCache 6679 case 2: 6680 return &v.unknownFields 6681 default: 6682 return nil 6683 } 6684 } 6685 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 6686 switch v := v.(*BootstrapToken); i { 6687 case 0: 6688 return &v.state 6689 case 1: 6690 return &v.sizeCache 6691 case 2: 6692 return &v.unknownFields 6693 default: 6694 return nil 6695 } 6696 } 6697 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 6698 switch v := v.(*ClientPermissions); i { 6699 case 0: 6700 return &v.state 6701 case 1: 6702 return &v.sizeCache 6703 case 2: 6704 return &v.unknownFields 6705 default: 6706 return nil 6707 } 6708 } 6709 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 6710 switch v := v.(*Digest); i { 6711 case 0: 6712 return &v.state 6713 case 1: 6714 return &v.sizeCache 6715 case 2: 6716 return &v.unknownFields 6717 default: 6718 return nil 6719 } 6720 } 6721 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 6722 switch v := v.(*CASReference); i { 6723 case 0: 6724 return &v.state 6725 case 1: 6726 return &v.sizeCache 6727 case 2: 6728 return &v.unknownFields 6729 default: 6730 return nil 6731 } 6732 } 6733 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 6734 switch v := v.(*CipdPackage); i { 6735 case 0: 6736 return &v.state 6737 case 1: 6738 return &v.sizeCache 6739 case 2: 6740 return &v.unknownFields 6741 default: 6742 return nil 6743 } 6744 } 6745 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 6746 switch v := v.(*CipdInput); i { 6747 case 0: 6748 return &v.state 6749 case 1: 6750 return &v.sizeCache 6751 case 2: 6752 return &v.unknownFields 6753 default: 6754 return nil 6755 } 6756 } 6757 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 6758 switch v := v.(*CipdPins); i { 6759 case 0: 6760 return &v.state 6761 case 1: 6762 return &v.sizeCache 6763 case 2: 6764 return &v.unknownFields 6765 default: 6766 return nil 6767 } 6768 } 6769 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 6770 switch v := v.(*CacheEntry); i { 6771 case 0: 6772 return &v.state 6773 case 1: 6774 return &v.sizeCache 6775 case 2: 6776 return &v.unknownFields 6777 default: 6778 return nil 6779 } 6780 } 6781 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 6782 switch v := v.(*Containment); i { 6783 case 0: 6784 return &v.state 6785 case 1: 6786 return &v.sizeCache 6787 case 2: 6788 return &v.unknownFields 6789 default: 6790 return nil 6791 } 6792 } 6793 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 6794 switch v := v.(*TaskProperties); i { 6795 case 0: 6796 return &v.state 6797 case 1: 6798 return &v.sizeCache 6799 case 2: 6800 return &v.unknownFields 6801 default: 6802 return nil 6803 } 6804 } 6805 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 6806 switch v := v.(*TaskSlice); i { 6807 case 0: 6808 return &v.state 6809 case 1: 6810 return &v.sizeCache 6811 case 2: 6812 return &v.unknownFields 6813 default: 6814 return nil 6815 } 6816 } 6817 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 6818 switch v := v.(*SwarmingTaskBackendConfig); i { 6819 case 0: 6820 return &v.state 6821 case 1: 6822 return &v.sizeCache 6823 case 2: 6824 return &v.unknownFields 6825 default: 6826 return nil 6827 } 6828 } 6829 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 6830 switch v := v.(*ResultDBCfg); i { 6831 case 0: 6832 return &v.state 6833 case 1: 6834 return &v.sizeCache 6835 case 2: 6836 return &v.unknownFields 6837 default: 6838 return nil 6839 } 6840 } 6841 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 6842 switch v := v.(*NewTaskRequest); i { 6843 case 0: 6844 return &v.state 6845 case 1: 6846 return &v.sizeCache 6847 case 2: 6848 return &v.unknownFields 6849 default: 6850 return nil 6851 } 6852 } 6853 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 6854 switch v := v.(*TaskRequestResponse); i { 6855 case 0: 6856 return &v.state 6857 case 1: 6858 return &v.sizeCache 6859 case 2: 6860 return &v.unknownFields 6861 default: 6862 return nil 6863 } 6864 } 6865 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 6866 switch v := v.(*TaskCancelRequest); i { 6867 case 0: 6868 return &v.state 6869 case 1: 6870 return &v.sizeCache 6871 case 2: 6872 return &v.unknownFields 6873 default: 6874 return nil 6875 } 6876 } 6877 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 6878 switch v := v.(*TasksCancelRequest); i { 6879 case 0: 6880 return &v.state 6881 case 1: 6882 return &v.sizeCache 6883 case 2: 6884 return &v.unknownFields 6885 default: 6886 return nil 6887 } 6888 } 6889 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 6890 switch v := v.(*OperationStats); i { 6891 case 0: 6892 return &v.state 6893 case 1: 6894 return &v.sizeCache 6895 case 2: 6896 return &v.unknownFields 6897 default: 6898 return nil 6899 } 6900 } 6901 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 6902 switch v := v.(*CASOperationStats); i { 6903 case 0: 6904 return &v.state 6905 case 1: 6906 return &v.sizeCache 6907 case 2: 6908 return &v.unknownFields 6909 default: 6910 return nil 6911 } 6912 } 6913 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 6914 switch v := v.(*PerformanceStats); i { 6915 case 0: 6916 return &v.state 6917 case 1: 6918 return &v.sizeCache 6919 case 2: 6920 return &v.unknownFields 6921 default: 6922 return nil 6923 } 6924 } 6925 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 6926 switch v := v.(*CancelResponse); i { 6927 case 0: 6928 return &v.state 6929 case 1: 6930 return &v.sizeCache 6931 case 2: 6932 return &v.unknownFields 6933 default: 6934 return nil 6935 } 6936 } 6937 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 6938 switch v := v.(*TasksCancelResponse); i { 6939 case 0: 6940 return &v.state 6941 case 1: 6942 return &v.sizeCache 6943 case 2: 6944 return &v.unknownFields 6945 default: 6946 return nil 6947 } 6948 } 6949 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 6950 switch v := v.(*TaskOutputResponse); i { 6951 case 0: 6952 return &v.state 6953 case 1: 6954 return &v.sizeCache 6955 case 2: 6956 return &v.unknownFields 6957 default: 6958 return nil 6959 } 6960 } 6961 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { 6962 switch v := v.(*ResultDBInfo); i { 6963 case 0: 6964 return &v.state 6965 case 1: 6966 return &v.sizeCache 6967 case 2: 6968 return &v.unknownFields 6969 default: 6970 return nil 6971 } 6972 } 6973 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { 6974 switch v := v.(*TaskResultResponse); i { 6975 case 0: 6976 return &v.state 6977 case 1: 6978 return &v.sizeCache 6979 case 2: 6980 return &v.unknownFields 6981 default: 6982 return nil 6983 } 6984 } 6985 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { 6986 switch v := v.(*TaskStates); i { 6987 case 0: 6988 return &v.state 6989 case 1: 6990 return &v.sizeCache 6991 case 2: 6992 return &v.unknownFields 6993 default: 6994 return nil 6995 } 6996 } 6997 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { 6998 switch v := v.(*TaskListResponse); i { 6999 case 0: 7000 return &v.state 7001 case 1: 7002 return &v.sizeCache 7003 case 2: 7004 return &v.unknownFields 7005 default: 7006 return nil 7007 } 7008 } 7009 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { 7010 switch v := v.(*TaskRequestsResponse); i { 7011 case 0: 7012 return &v.state 7013 case 1: 7014 return &v.sizeCache 7015 case 2: 7016 return &v.unknownFields 7017 default: 7018 return nil 7019 } 7020 } 7021 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { 7022 switch v := v.(*TasksCount); i { 7023 case 0: 7024 return &v.state 7025 case 1: 7026 return &v.sizeCache 7027 case 2: 7028 return &v.unknownFields 7029 default: 7030 return nil 7031 } 7032 } 7033 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { 7034 switch v := v.(*TaskRequestMetadataResponse); i { 7035 case 0: 7036 return &v.state 7037 case 1: 7038 return &v.sizeCache 7039 case 2: 7040 return &v.unknownFields 7041 default: 7042 return nil 7043 } 7044 } 7045 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { 7046 switch v := v.(*BotInfo); i { 7047 case 0: 7048 return &v.state 7049 case 1: 7050 return &v.sizeCache 7051 case 2: 7052 return &v.unknownFields 7053 default: 7054 return nil 7055 } 7056 } 7057 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { 7058 switch v := v.(*BotInfoListResponse); i { 7059 case 0: 7060 return &v.state 7061 case 1: 7062 return &v.sizeCache 7063 case 2: 7064 return &v.unknownFields 7065 default: 7066 return nil 7067 } 7068 } 7069 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { 7070 switch v := v.(*BotsCount); i { 7071 case 0: 7072 return &v.state 7073 case 1: 7074 return &v.sizeCache 7075 case 2: 7076 return &v.unknownFields 7077 default: 7078 return nil 7079 } 7080 } 7081 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { 7082 switch v := v.(*BotsDimensions); i { 7083 case 0: 7084 return &v.state 7085 case 1: 7086 return &v.sizeCache 7087 case 2: 7088 return &v.unknownFields 7089 default: 7090 return nil 7091 } 7092 } 7093 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { 7094 switch v := v.(*BotEventResponse); i { 7095 case 0: 7096 return &v.state 7097 case 1: 7098 return &v.sizeCache 7099 case 2: 7100 return &v.unknownFields 7101 default: 7102 return nil 7103 } 7104 } 7105 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { 7106 switch v := v.(*BotEventsResponse); i { 7107 case 0: 7108 return &v.state 7109 case 1: 7110 return &v.sizeCache 7111 case 2: 7112 return &v.unknownFields 7113 default: 7114 return nil 7115 } 7116 } 7117 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { 7118 switch v := v.(*DeleteResponse); i { 7119 case 0: 7120 return &v.state 7121 case 1: 7122 return &v.sizeCache 7123 case 2: 7124 return &v.unknownFields 7125 default: 7126 return nil 7127 } 7128 } 7129 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { 7130 switch v := v.(*TerminateResponse); i { 7131 case 0: 7132 return &v.state 7133 case 1: 7134 return &v.sizeCache 7135 case 2: 7136 return &v.unknownFields 7137 default: 7138 return nil 7139 } 7140 } 7141 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { 7142 switch v := v.(*BotRequest); i { 7143 case 0: 7144 return &v.state 7145 case 1: 7146 return &v.sizeCache 7147 case 2: 7148 return &v.unknownFields 7149 default: 7150 return nil 7151 } 7152 } 7153 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { 7154 switch v := v.(*TerminateRequest); i { 7155 case 0: 7156 return &v.state 7157 case 1: 7158 return &v.sizeCache 7159 case 2: 7160 return &v.unknownFields 7161 default: 7162 return nil 7163 } 7164 } 7165 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { 7166 switch v := v.(*BotEventsRequest); i { 7167 case 0: 7168 return &v.state 7169 case 1: 7170 return &v.sizeCache 7171 case 2: 7172 return &v.unknownFields 7173 default: 7174 return nil 7175 } 7176 } 7177 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { 7178 switch v := v.(*BotTasksRequest); i { 7179 case 0: 7180 return &v.state 7181 case 1: 7182 return &v.sizeCache 7183 case 2: 7184 return &v.unknownFields 7185 default: 7186 return nil 7187 } 7188 } 7189 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { 7190 switch v := v.(*BotsRequest); i { 7191 case 0: 7192 return &v.state 7193 case 1: 7194 return &v.sizeCache 7195 case 2: 7196 return &v.unknownFields 7197 default: 7198 return nil 7199 } 7200 } 7201 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { 7202 switch v := v.(*BotsCountRequest); i { 7203 case 0: 7204 return &v.state 7205 case 1: 7206 return &v.sizeCache 7207 case 2: 7208 return &v.unknownFields 7209 default: 7210 return nil 7211 } 7212 } 7213 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { 7214 switch v := v.(*BotsDimensionsRequest); i { 7215 case 0: 7216 return &v.state 7217 case 1: 7218 return &v.sizeCache 7219 case 2: 7220 return &v.unknownFields 7221 default: 7222 return nil 7223 } 7224 } 7225 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { 7226 switch v := v.(*PermissionsRequest); i { 7227 case 0: 7228 return &v.state 7229 case 1: 7230 return &v.sizeCache 7231 case 2: 7232 return &v.unknownFields 7233 default: 7234 return nil 7235 } 7236 } 7237 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { 7238 switch v := v.(*TaskStatesRequest); i { 7239 case 0: 7240 return &v.state 7241 case 1: 7242 return &v.sizeCache 7243 case 2: 7244 return &v.unknownFields 7245 default: 7246 return nil 7247 } 7248 } 7249 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { 7250 switch v := v.(*TasksWithPerfRequest); i { 7251 case 0: 7252 return &v.state 7253 case 1: 7254 return &v.sizeCache 7255 case 2: 7256 return &v.unknownFields 7257 default: 7258 return nil 7259 } 7260 } 7261 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { 7262 switch v := v.(*TasksRequest); i { 7263 case 0: 7264 return &v.state 7265 case 1: 7266 return &v.sizeCache 7267 case 2: 7268 return &v.unknownFields 7269 default: 7270 return nil 7271 } 7272 } 7273 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { 7274 switch v := v.(*TasksCountRequest); i { 7275 case 0: 7276 return &v.state 7277 case 1: 7278 return &v.sizeCache 7279 case 2: 7280 return &v.unknownFields 7281 default: 7282 return nil 7283 } 7284 } 7285 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { 7286 switch v := v.(*TaskIdRequest); i { 7287 case 0: 7288 return &v.state 7289 case 1: 7290 return &v.sizeCache 7291 case 2: 7292 return &v.unknownFields 7293 default: 7294 return nil 7295 } 7296 } 7297 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { 7298 switch v := v.(*TaskIdWithOffsetRequest); i { 7299 case 0: 7300 return &v.state 7301 case 1: 7302 return &v.sizeCache 7303 case 2: 7304 return &v.unknownFields 7305 default: 7306 return nil 7307 } 7308 } 7309 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { 7310 switch v := v.(*TaskIdWithPerfRequest); i { 7311 case 0: 7312 return &v.state 7313 case 1: 7314 return &v.sizeCache 7315 case 2: 7316 return &v.unknownFields 7317 default: 7318 return nil 7319 } 7320 } 7321 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { 7322 switch v := v.(*BatchGetResultRequest); i { 7323 case 0: 7324 return &v.state 7325 case 1: 7326 return &v.sizeCache 7327 case 2: 7328 return &v.unknownFields 7329 default: 7330 return nil 7331 } 7332 } 7333 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { 7334 switch v := v.(*BatchGetResultResponse); i { 7335 case 0: 7336 return &v.state 7337 case 1: 7338 return &v.sizeCache 7339 case 2: 7340 return &v.unknownFields 7341 default: 7342 return nil 7343 } 7344 } 7345 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { 7346 switch v := v.(*BatchGetResultResponse_ResultOrError); i { 7347 case 0: 7348 return &v.state 7349 case 1: 7350 return &v.sizeCache 7351 case 2: 7352 return &v.unknownFields 7353 default: 7354 return nil 7355 } 7356 } 7357 } 7358 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[58].OneofWrappers = []interface{}{ 7359 (*BatchGetResultResponse_ResultOrError_Result)(nil), 7360 (*BatchGetResultResponse_ResultOrError_Error)(nil), 7361 } 7362 type x struct{} 7363 out := protoimpl.TypeBuilder{ 7364 File: protoimpl.DescBuilder{ 7365 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 7366 RawDescriptor: file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDesc, 7367 NumEnums: 6, 7368 NumMessages: 59, 7369 NumExtensions: 0, 7370 NumServices: 3, 7371 }, 7372 GoTypes: file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_goTypes, 7373 DependencyIndexes: file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_depIdxs, 7374 EnumInfos: file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes, 7375 MessageInfos: file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes, 7376 }.Build() 7377 File_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto = out.File 7378 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDesc = nil 7379 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_goTypes = nil 7380 file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_depIdxs = nil 7381 }