github.com/cdmixer/woolloomooloo@v0.1.0/grpc-go/interop/grpc_testing/control.pb.go (about) 1 // Copyright 2015 gRPC authors. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // Code generated by protoc-gen-go. DO NOT EDIT. 16 // versions: 17 // protoc-gen-go v1.25.0 18 // protoc v3.14.0 19 // source: grpc/testing/control.proto 20 21 package grpc_testing 22 23 import ( 24 reflect "reflect" 25 sync "sync" 26 27 proto "github.com/golang/protobuf/proto" 28 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 29 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 30 ) 31 32 const ( 33 // Verify that this generated code is sufficiently up-to-date. 34 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 35 // Verify that runtime/protoimpl is sufficiently up-to-date. 36 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 37 ) 38 39 // This is a compile-time assertion that a sufficiently up-to-date version 40 // of the legacy proto package is being used. 41 const _ = proto.ProtoPackageIsVersion4 42 43 type ClientType int32 44 45 const ( 46 // Many languages support a basic distinction between using 47 // sync or async client, and this allows the specification 48 ClientType_SYNC_CLIENT ClientType = 0 49 ClientType_ASYNC_CLIENT ClientType = 1 50 ClientType_OTHER_CLIENT ClientType = 2 // used for some language-specific variants 51 ClientType_CALLBACK_CLIENT ClientType = 3 52 ) 53 54 // Enum value maps for ClientType. 55 var ( 56 ClientType_name = map[int32]string{ 57 0: "SYNC_CLIENT", 58 1: "ASYNC_CLIENT", 59 2: "OTHER_CLIENT", 60 3: "CALLBACK_CLIENT", 61 } 62 ClientType_value = map[string]int32{ 63 "SYNC_CLIENT": 0, 64 "ASYNC_CLIENT": 1, 65 "OTHER_CLIENT": 2, 66 "CALLBACK_CLIENT": 3, 67 } 68 ) 69 70 func (x ClientType) Enum() *ClientType { 71 p := new(ClientType) 72 *p = x 73 return p 74 } 75 76 func (x ClientType) String() string { 77 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 78 } 79 80 func (ClientType) Descriptor() protoreflect.EnumDescriptor { 81 return file_grpc_testing_control_proto_enumTypes[0].Descriptor() 82 } 83 84 func (ClientType) Type() protoreflect.EnumType { 85 return &file_grpc_testing_control_proto_enumTypes[0] 86 } 87 88 func (x ClientType) Number() protoreflect.EnumNumber { 89 return protoreflect.EnumNumber(x) 90 } 91 92 // Deprecated: Use ClientType.Descriptor instead. 93 func (ClientType) EnumDescriptor() ([]byte, []int) { 94 return file_grpc_testing_control_proto_rawDescGZIP(), []int{0} 95 } 96 97 type ServerType int32 98 99 const ( 100 ServerType_SYNC_SERVER ServerType = 0 101 ServerType_ASYNC_SERVER ServerType = 1 102 ServerType_ASYNC_GENERIC_SERVER ServerType = 2 103 ServerType_OTHER_SERVER ServerType = 3 // used for some language-specific variants 104 ServerType_CALLBACK_SERVER ServerType = 4 105 ) 106 107 // Enum value maps for ServerType. 108 var ( 109 ServerType_name = map[int32]string{ 110 0: "SYNC_SERVER", 111 1: "ASYNC_SERVER", 112 2: "ASYNC_GENERIC_SERVER", 113 3: "OTHER_SERVER", 114 4: "CALLBACK_SERVER", 115 } 116 ServerType_value = map[string]int32{ 117 "SYNC_SERVER": 0, 118 "ASYNC_SERVER": 1, 119 "ASYNC_GENERIC_SERVER": 2, 120 "OTHER_SERVER": 3, 121 "CALLBACK_SERVER": 4, 122 } 123 ) 124 125 func (x ServerType) Enum() *ServerType { 126 p := new(ServerType) 127 *p = x 128 return p 129 } 130 131 func (x ServerType) String() string { 132 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 133 } 134 135 func (ServerType) Descriptor() protoreflect.EnumDescriptor { 136 return file_grpc_testing_control_proto_enumTypes[1].Descriptor() 137 } 138 139 func (ServerType) Type() protoreflect.EnumType { 140 return &file_grpc_testing_control_proto_enumTypes[1] 141 } 142 143 func (x ServerType) Number() protoreflect.EnumNumber { 144 return protoreflect.EnumNumber(x) 145 } 146 147 // Deprecated: Use ServerType.Descriptor instead. 148 func (ServerType) EnumDescriptor() ([]byte, []int) { 149 return file_grpc_testing_control_proto_rawDescGZIP(), []int{1} 150 } 151 152 type RpcType int32 153 154 const ( 155 RpcType_UNARY RpcType = 0 156 RpcType_STREAMING RpcType = 1 157 RpcType_STREAMING_FROM_CLIENT RpcType = 2 158 RpcType_STREAMING_FROM_SERVER RpcType = 3 159 RpcType_STREAMING_BOTH_WAYS RpcType = 4 160 ) 161 162 // Enum value maps for RpcType. 163 var ( 164 RpcType_name = map[int32]string{ 165 0: "UNARY", 166 1: "STREAMING", 167 2: "STREAMING_FROM_CLIENT", 168 3: "STREAMING_FROM_SERVER", 169 4: "STREAMING_BOTH_WAYS", 170 } 171 RpcType_value = map[string]int32{ 172 "UNARY": 0, 173 "STREAMING": 1, 174 "STREAMING_FROM_CLIENT": 2, 175 "STREAMING_FROM_SERVER": 3, 176 "STREAMING_BOTH_WAYS": 4, 177 } 178 ) 179 180 func (x RpcType) Enum() *RpcType { 181 p := new(RpcType) 182 *p = x 183 return p 184 } 185 186 func (x RpcType) String() string { 187 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 188 } 189 190 func (RpcType) Descriptor() protoreflect.EnumDescriptor { 191 return file_grpc_testing_control_proto_enumTypes[2].Descriptor() 192 } 193 194 func (RpcType) Type() protoreflect.EnumType { 195 return &file_grpc_testing_control_proto_enumTypes[2] 196 } 197 198 func (x RpcType) Number() protoreflect.EnumNumber { 199 return protoreflect.EnumNumber(x) 200 } 201 202 // Deprecated: Use RpcType.Descriptor instead. 203 func (RpcType) EnumDescriptor() ([]byte, []int) { 204 return file_grpc_testing_control_proto_rawDescGZIP(), []int{2} 205 } 206 207 // Parameters of poisson process distribution, which is a good representation 208 // of activity coming in from independent identical stationary sources. 209 type PoissonParams struct { 210 state protoimpl.MessageState 211 sizeCache protoimpl.SizeCache 212 unknownFields protoimpl.UnknownFields 213 214 // The rate of arrivals (a.k.a. lambda parameter of the exp distribution). 215 OfferedLoad float64 `protobuf:"fixed64,1,opt,name=offered_load,json=offeredLoad,proto3" json:"offered_load,omitempty"` 216 } 217 218 func (x *PoissonParams) Reset() { 219 *x = PoissonParams{} 220 if protoimpl.UnsafeEnabled { 221 mi := &file_grpc_testing_control_proto_msgTypes[0] 222 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 223 ms.StoreMessageInfo(mi) 224 } 225 } 226 227 func (x *PoissonParams) String() string { 228 return protoimpl.X.MessageStringOf(x) 229 } 230 231 func (*PoissonParams) ProtoMessage() {} 232 233 func (x *PoissonParams) ProtoReflect() protoreflect.Message { 234 mi := &file_grpc_testing_control_proto_msgTypes[0] 235 if protoimpl.UnsafeEnabled && x != nil { 236 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 237 if ms.LoadMessageInfo() == nil { 238 ms.StoreMessageInfo(mi) 239 } 240 return ms 241 } 242 return mi.MessageOf(x) 243 } 244 245 // Deprecated: Use PoissonParams.ProtoReflect.Descriptor instead. 246 func (*PoissonParams) Descriptor() ([]byte, []int) { 247 return file_grpc_testing_control_proto_rawDescGZIP(), []int{0} 248 } 249 250 func (x *PoissonParams) GetOfferedLoad() float64 { 251 if x != nil { 252 return x.OfferedLoad 253 } 254 return 0 255 } 256 257 // Once an RPC finishes, immediately start a new one. 258 // No configuration parameters needed. 259 type ClosedLoopParams struct { 260 state protoimpl.MessageState 261 sizeCache protoimpl.SizeCache 262 unknownFields protoimpl.UnknownFields 263 } 264 265 func (x *ClosedLoopParams) Reset() { 266 *x = ClosedLoopParams{} 267 if protoimpl.UnsafeEnabled { 268 mi := &file_grpc_testing_control_proto_msgTypes[1] 269 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 270 ms.StoreMessageInfo(mi) 271 } 272 } 273 274 func (x *ClosedLoopParams) String() string { 275 return protoimpl.X.MessageStringOf(x) 276 } 277 278 func (*ClosedLoopParams) ProtoMessage() {} 279 280 func (x *ClosedLoopParams) ProtoReflect() protoreflect.Message { 281 mi := &file_grpc_testing_control_proto_msgTypes[1] 282 if protoimpl.UnsafeEnabled && x != nil { 283 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 284 if ms.LoadMessageInfo() == nil { 285 ms.StoreMessageInfo(mi) 286 } 287 return ms 288 } 289 return mi.MessageOf(x) 290 } 291 292 // Deprecated: Use ClosedLoopParams.ProtoReflect.Descriptor instead. 293 func (*ClosedLoopParams) Descriptor() ([]byte, []int) { 294 return file_grpc_testing_control_proto_rawDescGZIP(), []int{1} 295 } 296 297 type LoadParams struct { 298 state protoimpl.MessageState 299 sizeCache protoimpl.SizeCache 300 unknownFields protoimpl.UnknownFields 301 302 // Types that are assignable to Load: 303 // *LoadParams_ClosedLoop 304 // *LoadParams_Poisson 305 Load isLoadParams_Load `protobuf_oneof:"load"` 306 } 307 308 func (x *LoadParams) Reset() { 309 *x = LoadParams{} 310 if protoimpl.UnsafeEnabled { 311 mi := &file_grpc_testing_control_proto_msgTypes[2] 312 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 313 ms.StoreMessageInfo(mi) 314 } 315 } 316 317 func (x *LoadParams) String() string { 318 return protoimpl.X.MessageStringOf(x) 319 } 320 321 func (*LoadParams) ProtoMessage() {} 322 323 func (x *LoadParams) ProtoReflect() protoreflect.Message { 324 mi := &file_grpc_testing_control_proto_msgTypes[2] 325 if protoimpl.UnsafeEnabled && x != nil { 326 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 327 if ms.LoadMessageInfo() == nil { 328 ms.StoreMessageInfo(mi) 329 } 330 return ms 331 } 332 return mi.MessageOf(x) 333 } 334 335 // Deprecated: Use LoadParams.ProtoReflect.Descriptor instead. 336 func (*LoadParams) Descriptor() ([]byte, []int) { 337 return file_grpc_testing_control_proto_rawDescGZIP(), []int{2} 338 } 339 340 func (m *LoadParams) GetLoad() isLoadParams_Load { 341 if m != nil { 342 return m.Load 343 } 344 return nil 345 } 346 347 func (x *LoadParams) GetClosedLoop() *ClosedLoopParams { 348 if x, ok := x.GetLoad().(*LoadParams_ClosedLoop); ok { 349 return x.ClosedLoop 350 } 351 return nil 352 } 353 354 func (x *LoadParams) GetPoisson() *PoissonParams { 355 if x, ok := x.GetLoad().(*LoadParams_Poisson); ok { 356 return x.Poisson 357 } 358 return nil 359 } 360 361 type isLoadParams_Load interface { 362 isLoadParams_Load() 363 } 364 365 type LoadParams_ClosedLoop struct { 366 ClosedLoop *ClosedLoopParams `protobuf:"bytes,1,opt,name=closed_loop,json=closedLoop,proto3,oneof"` 367 } 368 369 type LoadParams_Poisson struct { 370 Poisson *PoissonParams `protobuf:"bytes,2,opt,name=poisson,proto3,oneof"` 371 } 372 373 func (*LoadParams_ClosedLoop) isLoadParams_Load() {} 374 375 func (*LoadParams_Poisson) isLoadParams_Load() {} 376 377 // presence of SecurityParams implies use of TLS 378 type SecurityParams struct { 379 state protoimpl.MessageState 380 sizeCache protoimpl.SizeCache 381 unknownFields protoimpl.UnknownFields 382 383 UseTestCa bool `protobuf:"varint,1,opt,name=use_test_ca,json=useTestCa,proto3" json:"use_test_ca,omitempty"` 384 ServerHostOverride string `protobuf:"bytes,2,opt,name=server_host_override,json=serverHostOverride,proto3" json:"server_host_override,omitempty"` 385 CredType string `protobuf:"bytes,3,opt,name=cred_type,json=credType,proto3" json:"cred_type,omitempty"` 386 } 387 388 func (x *SecurityParams) Reset() { 389 *x = SecurityParams{} 390 if protoimpl.UnsafeEnabled { 391 mi := &file_grpc_testing_control_proto_msgTypes[3] 392 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 393 ms.StoreMessageInfo(mi) 394 } 395 } 396 397 func (x *SecurityParams) String() string { 398 return protoimpl.X.MessageStringOf(x) 399 } 400 401 func (*SecurityParams) ProtoMessage() {} 402 403 func (x *SecurityParams) ProtoReflect() protoreflect.Message { 404 mi := &file_grpc_testing_control_proto_msgTypes[3] 405 if protoimpl.UnsafeEnabled && x != nil { 406 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 407 if ms.LoadMessageInfo() == nil { 408 ms.StoreMessageInfo(mi) 409 } 410 return ms 411 } 412 return mi.MessageOf(x) 413 } 414 415 // Deprecated: Use SecurityParams.ProtoReflect.Descriptor instead. 416 func (*SecurityParams) Descriptor() ([]byte, []int) { 417 return file_grpc_testing_control_proto_rawDescGZIP(), []int{3} 418 } 419 420 func (x *SecurityParams) GetUseTestCa() bool { 421 if x != nil { 422 return x.UseTestCa 423 } 424 return false 425 } 426 427 func (x *SecurityParams) GetServerHostOverride() string { 428 if x != nil { 429 return x.ServerHostOverride 430 } 431 return "" 432 } 433 434 func (x *SecurityParams) GetCredType() string { 435 if x != nil { 436 return x.CredType 437 } 438 return "" 439 } 440 441 type ChannelArg struct { 442 state protoimpl.MessageState 443 sizeCache protoimpl.SizeCache 444 unknownFields protoimpl.UnknownFields 445 446 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 447 // Types that are assignable to Value: 448 // *ChannelArg_StrValue 449 // *ChannelArg_IntValue 450 Value isChannelArg_Value `protobuf_oneof:"value"` 451 } 452 453 func (x *ChannelArg) Reset() { 454 *x = ChannelArg{} 455 if protoimpl.UnsafeEnabled { 456 mi := &file_grpc_testing_control_proto_msgTypes[4] 457 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 458 ms.StoreMessageInfo(mi) 459 } 460 } 461 462 func (x *ChannelArg) String() string { 463 return protoimpl.X.MessageStringOf(x) 464 } 465 466 func (*ChannelArg) ProtoMessage() {} 467 468 func (x *ChannelArg) ProtoReflect() protoreflect.Message { 469 mi := &file_grpc_testing_control_proto_msgTypes[4] 470 if protoimpl.UnsafeEnabled && x != nil { 471 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 472 if ms.LoadMessageInfo() == nil { 473 ms.StoreMessageInfo(mi) 474 } 475 return ms 476 } 477 return mi.MessageOf(x) 478 } 479 480 // Deprecated: Use ChannelArg.ProtoReflect.Descriptor instead. 481 func (*ChannelArg) Descriptor() ([]byte, []int) { 482 return file_grpc_testing_control_proto_rawDescGZIP(), []int{4} 483 } 484 485 func (x *ChannelArg) GetName() string { 486 if x != nil { 487 return x.Name 488 } 489 return "" 490 } 491 492 func (m *ChannelArg) GetValue() isChannelArg_Value { 493 if m != nil { 494 return m.Value 495 } 496 return nil 497 } 498 499 func (x *ChannelArg) GetStrValue() string { 500 if x, ok := x.GetValue().(*ChannelArg_StrValue); ok { 501 return x.StrValue 502 } 503 return "" 504 } 505 506 func (x *ChannelArg) GetIntValue() int32 { 507 if x, ok := x.GetValue().(*ChannelArg_IntValue); ok { 508 return x.IntValue 509 } 510 return 0 511 } 512 513 type isChannelArg_Value interface { 514 isChannelArg_Value() 515 } 516 517 type ChannelArg_StrValue struct { 518 StrValue string `protobuf:"bytes,2,opt,name=str_value,json=strValue,proto3,oneof"` 519 } 520 521 type ChannelArg_IntValue struct { 522 IntValue int32 `protobuf:"varint,3,opt,name=int_value,json=intValue,proto3,oneof"` 523 } 524 525 func (*ChannelArg_StrValue) isChannelArg_Value() {} 526 527 func (*ChannelArg_IntValue) isChannelArg_Value() {} 528 529 type ClientConfig struct { 530 state protoimpl.MessageState 531 sizeCache protoimpl.SizeCache 532 unknownFields protoimpl.UnknownFields 533 534 // List of targets to connect to. At least one target needs to be specified. 535 ServerTargets []string `protobuf:"bytes,1,rep,name=server_targets,json=serverTargets,proto3" json:"server_targets,omitempty"` 536 ClientType ClientType `protobuf:"varint,2,opt,name=client_type,json=clientType,proto3,enum=grpc.testing.ClientType" json:"client_type,omitempty"` 537 SecurityParams *SecurityParams `protobuf:"bytes,3,opt,name=security_params,json=securityParams,proto3" json:"security_params,omitempty"` 538 // How many concurrent RPCs to start for each channel. 539 // For synchronous client, use a separate thread for each outstanding RPC. 540 OutstandingRpcsPerChannel int32 `protobuf:"varint,4,opt,name=outstanding_rpcs_per_channel,json=outstandingRpcsPerChannel,proto3" json:"outstanding_rpcs_per_channel,omitempty"` 541 // Number of independent client channels to create. 542 // i-th channel will connect to server_target[i % server_targets.size()] 543 ClientChannels int32 `protobuf:"varint,5,opt,name=client_channels,json=clientChannels,proto3" json:"client_channels,omitempty"` 544 // Only for async client. Number of threads to use to start/manage RPCs. 545 AsyncClientThreads int32 `protobuf:"varint,7,opt,name=async_client_threads,json=asyncClientThreads,proto3" json:"async_client_threads,omitempty"` 546 RpcType RpcType `protobuf:"varint,8,opt,name=rpc_type,json=rpcType,proto3,enum=grpc.testing.RpcType" json:"rpc_type,omitempty"` 547 // The requested load for the entire client (aggregated over all the threads). 548 LoadParams *LoadParams `protobuf:"bytes,10,opt,name=load_params,json=loadParams,proto3" json:"load_params,omitempty"` 549 PayloadConfig *PayloadConfig `protobuf:"bytes,11,opt,name=payload_config,json=payloadConfig,proto3" json:"payload_config,omitempty"` 550 HistogramParams *HistogramParams `protobuf:"bytes,12,opt,name=histogram_params,json=histogramParams,proto3" json:"histogram_params,omitempty"` 551 // Specify the cores we should run the client on, if desired 552 CoreList []int32 `protobuf:"varint,13,rep,packed,name=core_list,json=coreList,proto3" json:"core_list,omitempty"` 553 CoreLimit int32 `protobuf:"varint,14,opt,name=core_limit,json=coreLimit,proto3" json:"core_limit,omitempty"` 554 // If we use an OTHER_CLIENT client_type, this string gives more detail 555 OtherClientApi string `protobuf:"bytes,15,opt,name=other_client_api,json=otherClientApi,proto3" json:"other_client_api,omitempty"` 556 ChannelArgs []*ChannelArg `protobuf:"bytes,16,rep,name=channel_args,json=channelArgs,proto3" json:"channel_args,omitempty"` 557 // Number of threads that share each completion queue 558 ThreadsPerCq int32 `protobuf:"varint,17,opt,name=threads_per_cq,json=threadsPerCq,proto3" json:"threads_per_cq,omitempty"` 559 // Number of messages on a stream before it gets finished/restarted 560 MessagesPerStream int32 `protobuf:"varint,18,opt,name=messages_per_stream,json=messagesPerStream,proto3" json:"messages_per_stream,omitempty"` 561 // Use coalescing API when possible. 562 UseCoalesceApi bool `protobuf:"varint,19,opt,name=use_coalesce_api,json=useCoalesceApi,proto3" json:"use_coalesce_api,omitempty"` 563 // If 0, disabled. Else, specifies the period between gathering latency 564 // medians in milliseconds. 565 MedianLatencyCollectionIntervalMillis int32 `protobuf:"varint,20,opt,name=median_latency_collection_interval_millis,json=medianLatencyCollectionIntervalMillis,proto3" json:"median_latency_collection_interval_millis,omitempty"` 566 // Number of client processes. 0 indicates no restriction. 567 ClientProcesses int32 `protobuf:"varint,21,opt,name=client_processes,json=clientProcesses,proto3" json:"client_processes,omitempty"` 568 } 569 570 func (x *ClientConfig) Reset() { 571 *x = ClientConfig{} 572 if protoimpl.UnsafeEnabled { 573 mi := &file_grpc_testing_control_proto_msgTypes[5] 574 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 575 ms.StoreMessageInfo(mi) 576 } 577 } 578 579 func (x *ClientConfig) String() string { 580 return protoimpl.X.MessageStringOf(x) 581 } 582 583 func (*ClientConfig) ProtoMessage() {} 584 585 func (x *ClientConfig) ProtoReflect() protoreflect.Message { 586 mi := &file_grpc_testing_control_proto_msgTypes[5] 587 if protoimpl.UnsafeEnabled && x != nil { 588 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 589 if ms.LoadMessageInfo() == nil { 590 ms.StoreMessageInfo(mi) 591 } 592 return ms 593 } 594 return mi.MessageOf(x) 595 } 596 597 // Deprecated: Use ClientConfig.ProtoReflect.Descriptor instead. 598 func (*ClientConfig) Descriptor() ([]byte, []int) { 599 return file_grpc_testing_control_proto_rawDescGZIP(), []int{5} 600 } 601 602 func (x *ClientConfig) GetServerTargets() []string { 603 if x != nil { 604 return x.ServerTargets 605 } 606 return nil 607 } 608 609 func (x *ClientConfig) GetClientType() ClientType { 610 if x != nil { 611 return x.ClientType 612 } 613 return ClientType_SYNC_CLIENT 614 } 615 616 func (x *ClientConfig) GetSecurityParams() *SecurityParams { 617 if x != nil { 618 return x.SecurityParams 619 } 620 return nil 621 } 622 623 func (x *ClientConfig) GetOutstandingRpcsPerChannel() int32 { 624 if x != nil { 625 return x.OutstandingRpcsPerChannel 626 } 627 return 0 628 } 629 630 func (x *ClientConfig) GetClientChannels() int32 { 631 if x != nil { 632 return x.ClientChannels 633 } 634 return 0 635 } 636 637 func (x *ClientConfig) GetAsyncClientThreads() int32 { 638 if x != nil { 639 return x.AsyncClientThreads 640 } 641 return 0 642 } 643 644 func (x *ClientConfig) GetRpcType() RpcType { 645 if x != nil { 646 return x.RpcType 647 } 648 return RpcType_UNARY 649 } 650 651 func (x *ClientConfig) GetLoadParams() *LoadParams { 652 if x != nil { 653 return x.LoadParams 654 } 655 return nil 656 } 657 658 func (x *ClientConfig) GetPayloadConfig() *PayloadConfig { 659 if x != nil { 660 return x.PayloadConfig 661 } 662 return nil 663 } 664 665 func (x *ClientConfig) GetHistogramParams() *HistogramParams { 666 if x != nil { 667 return x.HistogramParams 668 } 669 return nil 670 } 671 672 func (x *ClientConfig) GetCoreList() []int32 { 673 if x != nil { 674 return x.CoreList 675 } 676 return nil 677 } 678 679 func (x *ClientConfig) GetCoreLimit() int32 { 680 if x != nil { 681 return x.CoreLimit 682 } 683 return 0 684 } 685 686 func (x *ClientConfig) GetOtherClientApi() string { 687 if x != nil { 688 return x.OtherClientApi 689 } 690 return "" 691 } 692 693 func (x *ClientConfig) GetChannelArgs() []*ChannelArg { 694 if x != nil { 695 return x.ChannelArgs 696 } 697 return nil 698 } 699 700 func (x *ClientConfig) GetThreadsPerCq() int32 { 701 if x != nil { 702 return x.ThreadsPerCq 703 } 704 return 0 705 } 706 707 func (x *ClientConfig) GetMessagesPerStream() int32 { 708 if x != nil { 709 return x.MessagesPerStream 710 } 711 return 0 712 } 713 714 func (x *ClientConfig) GetUseCoalesceApi() bool { 715 if x != nil { 716 return x.UseCoalesceApi 717 } 718 return false 719 } 720 721 func (x *ClientConfig) GetMedianLatencyCollectionIntervalMillis() int32 { 722 if x != nil { 723 return x.MedianLatencyCollectionIntervalMillis 724 } 725 return 0 726 } 727 728 func (x *ClientConfig) GetClientProcesses() int32 { 729 if x != nil { 730 return x.ClientProcesses 731 } 732 return 0 733 } 734 735 type ClientStatus struct { 736 state protoimpl.MessageState 737 sizeCache protoimpl.SizeCache 738 unknownFields protoimpl.UnknownFields 739 740 Stats *ClientStats `protobuf:"bytes,1,opt,name=stats,proto3" json:"stats,omitempty"` 741 } 742 743 func (x *ClientStatus) Reset() { 744 *x = ClientStatus{} 745 if protoimpl.UnsafeEnabled { 746 mi := &file_grpc_testing_control_proto_msgTypes[6] 747 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 748 ms.StoreMessageInfo(mi) 749 } 750 } 751 752 func (x *ClientStatus) String() string { 753 return protoimpl.X.MessageStringOf(x) 754 } 755 756 func (*ClientStatus) ProtoMessage() {} 757 758 func (x *ClientStatus) ProtoReflect() protoreflect.Message { 759 mi := &file_grpc_testing_control_proto_msgTypes[6] 760 if protoimpl.UnsafeEnabled && x != nil { 761 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 762 if ms.LoadMessageInfo() == nil { 763 ms.StoreMessageInfo(mi) 764 } 765 return ms 766 } 767 return mi.MessageOf(x) 768 } 769 770 // Deprecated: Use ClientStatus.ProtoReflect.Descriptor instead. 771 func (*ClientStatus) Descriptor() ([]byte, []int) { 772 return file_grpc_testing_control_proto_rawDescGZIP(), []int{6} 773 } 774 775 func (x *ClientStatus) GetStats() *ClientStats { 776 if x != nil { 777 return x.Stats 778 } 779 return nil 780 } 781 782 // Request current stats 783 type Mark struct { 784 state protoimpl.MessageState 785 sizeCache protoimpl.SizeCache 786 unknownFields protoimpl.UnknownFields 787 788 // if true, the stats will be reset after taking their snapshot. 789 Reset_ bool `protobuf:"varint,1,opt,name=reset,proto3" json:"reset,omitempty"` 790 } 791 792 func (x *Mark) Reset() { 793 *x = Mark{} 794 if protoimpl.UnsafeEnabled { 795 mi := &file_grpc_testing_control_proto_msgTypes[7] 796 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 797 ms.StoreMessageInfo(mi) 798 } 799 } 800 801 func (x *Mark) String() string { 802 return protoimpl.X.MessageStringOf(x) 803 } 804 805 func (*Mark) ProtoMessage() {} 806 807 func (x *Mark) ProtoReflect() protoreflect.Message { 808 mi := &file_grpc_testing_control_proto_msgTypes[7] 809 if protoimpl.UnsafeEnabled && x != nil { 810 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 811 if ms.LoadMessageInfo() == nil { 812 ms.StoreMessageInfo(mi) 813 } 814 return ms 815 } 816 return mi.MessageOf(x) 817 } 818 819 // Deprecated: Use Mark.ProtoReflect.Descriptor instead. 820 func (*Mark) Descriptor() ([]byte, []int) { 821 return file_grpc_testing_control_proto_rawDescGZIP(), []int{7} 822 } 823 824 func (x *Mark) GetReset_() bool { 825 if x != nil { 826 return x.Reset_ 827 } 828 return false 829 } 830 831 type ClientArgs struct { 832 state protoimpl.MessageState 833 sizeCache protoimpl.SizeCache 834 unknownFields protoimpl.UnknownFields 835 836 // Types that are assignable to Argtype: 837 // *ClientArgs_Setup 838 // *ClientArgs_Mark 839 Argtype isClientArgs_Argtype `protobuf_oneof:"argtype"` 840 } 841 842 func (x *ClientArgs) Reset() { 843 *x = ClientArgs{} 844 if protoimpl.UnsafeEnabled { 845 mi := &file_grpc_testing_control_proto_msgTypes[8] 846 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 847 ms.StoreMessageInfo(mi) 848 } 849 } 850 851 func (x *ClientArgs) String() string { 852 return protoimpl.X.MessageStringOf(x) 853 } 854 855 func (*ClientArgs) ProtoMessage() {} 856 857 func (x *ClientArgs) ProtoReflect() protoreflect.Message { 858 mi := &file_grpc_testing_control_proto_msgTypes[8] 859 if protoimpl.UnsafeEnabled && x != nil { 860 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 861 if ms.LoadMessageInfo() == nil { 862 ms.StoreMessageInfo(mi) 863 } 864 return ms 865 } 866 return mi.MessageOf(x) 867 } 868 869 // Deprecated: Use ClientArgs.ProtoReflect.Descriptor instead. 870 func (*ClientArgs) Descriptor() ([]byte, []int) { 871 return file_grpc_testing_control_proto_rawDescGZIP(), []int{8} 872 } 873 874 func (m *ClientArgs) GetArgtype() isClientArgs_Argtype { 875 if m != nil { 876 return m.Argtype 877 } 878 return nil 879 } 880 881 func (x *ClientArgs) GetSetup() *ClientConfig { 882 if x, ok := x.GetArgtype().(*ClientArgs_Setup); ok { 883 return x.Setup 884 } 885 return nil 886 } 887 888 func (x *ClientArgs) GetMark() *Mark { 889 if x, ok := x.GetArgtype().(*ClientArgs_Mark); ok { 890 return x.Mark 891 } 892 return nil 893 } 894 895 type isClientArgs_Argtype interface { 896 isClientArgs_Argtype() 897 } 898 899 type ClientArgs_Setup struct { 900 Setup *ClientConfig `protobuf:"bytes,1,opt,name=setup,proto3,oneof"` 901 } 902 903 type ClientArgs_Mark struct { 904 Mark *Mark `protobuf:"bytes,2,opt,name=mark,proto3,oneof"` 905 } 906 907 func (*ClientArgs_Setup) isClientArgs_Argtype() {} 908 909 func (*ClientArgs_Mark) isClientArgs_Argtype() {} 910 911 type ServerConfig struct { 912 state protoimpl.MessageState 913 sizeCache protoimpl.SizeCache 914 unknownFields protoimpl.UnknownFields 915 916 ServerType ServerType `protobuf:"varint,1,opt,name=server_type,json=serverType,proto3,enum=grpc.testing.ServerType" json:"server_type,omitempty"` 917 SecurityParams *SecurityParams `protobuf:"bytes,2,opt,name=security_params,json=securityParams,proto3" json:"security_params,omitempty"` 918 // Port on which to listen. Zero means pick unused port. 919 Port int32 `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"` 920 // Only for async server. Number of threads used to serve the requests. 921 AsyncServerThreads int32 `protobuf:"varint,7,opt,name=async_server_threads,json=asyncServerThreads,proto3" json:"async_server_threads,omitempty"` 922 // Specify the number of cores to limit server to, if desired 923 CoreLimit int32 `protobuf:"varint,8,opt,name=core_limit,json=coreLimit,proto3" json:"core_limit,omitempty"` 924 // payload config, used in generic server. 925 // Note this must NOT be used in proto (non-generic) servers. For proto servers, 926 // 'response sizes' must be configured from the 'response_size' field of the 927 // 'SimpleRequest' objects in RPC requests. 928 PayloadConfig *PayloadConfig `protobuf:"bytes,9,opt,name=payload_config,json=payloadConfig,proto3" json:"payload_config,omitempty"` 929 // Specify the cores we should run the server on, if desired 930 CoreList []int32 `protobuf:"varint,10,rep,packed,name=core_list,json=coreList,proto3" json:"core_list,omitempty"` 931 // If we use an OTHER_SERVER client_type, this string gives more detail 932 OtherServerApi string `protobuf:"bytes,11,opt,name=other_server_api,json=otherServerApi,proto3" json:"other_server_api,omitempty"` 933 // Number of threads that share each completion queue 934 ThreadsPerCq int32 `protobuf:"varint,12,opt,name=threads_per_cq,json=threadsPerCq,proto3" json:"threads_per_cq,omitempty"` 935 // Buffer pool size (no buffer pool specified if unset) 936 ResourceQuotaSize int32 `protobuf:"varint,1001,opt,name=resource_quota_size,json=resourceQuotaSize,proto3" json:"resource_quota_size,omitempty"` 937 ChannelArgs []*ChannelArg `protobuf:"bytes,1002,rep,name=channel_args,json=channelArgs,proto3" json:"channel_args,omitempty"` 938 // Number of server processes. 0 indicates no restriction. 939 ServerProcesses int32 `protobuf:"varint,21,opt,name=server_processes,json=serverProcesses,proto3" json:"server_processes,omitempty"` 940 } 941 942 func (x *ServerConfig) Reset() { 943 *x = ServerConfig{} 944 if protoimpl.UnsafeEnabled { 945 mi := &file_grpc_testing_control_proto_msgTypes[9] 946 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 947 ms.StoreMessageInfo(mi) 948 } 949 } 950 951 func (x *ServerConfig) String() string { 952 return protoimpl.X.MessageStringOf(x) 953 } 954 955 func (*ServerConfig) ProtoMessage() {} 956 957 func (x *ServerConfig) ProtoReflect() protoreflect.Message { 958 mi := &file_grpc_testing_control_proto_msgTypes[9] 959 if protoimpl.UnsafeEnabled && x != nil { 960 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 961 if ms.LoadMessageInfo() == nil { 962 ms.StoreMessageInfo(mi) 963 } 964 return ms 965 } 966 return mi.MessageOf(x) 967 } 968 969 // Deprecated: Use ServerConfig.ProtoReflect.Descriptor instead. 970 func (*ServerConfig) Descriptor() ([]byte, []int) { 971 return file_grpc_testing_control_proto_rawDescGZIP(), []int{9} 972 } 973 974 func (x *ServerConfig) GetServerType() ServerType { 975 if x != nil { 976 return x.ServerType 977 } 978 return ServerType_SYNC_SERVER 979 } 980 981 func (x *ServerConfig) GetSecurityParams() *SecurityParams { 982 if x != nil { 983 return x.SecurityParams 984 } 985 return nil 986 } 987 988 func (x *ServerConfig) GetPort() int32 { 989 if x != nil { 990 return x.Port 991 } 992 return 0 993 } 994 995 func (x *ServerConfig) GetAsyncServerThreads() int32 { 996 if x != nil { 997 return x.AsyncServerThreads 998 } 999 return 0 1000 } 1001 1002 func (x *ServerConfig) GetCoreLimit() int32 { 1003 if x != nil { 1004 return x.CoreLimit 1005 } 1006 return 0 1007 } 1008 1009 func (x *ServerConfig) GetPayloadConfig() *PayloadConfig { 1010 if x != nil { 1011 return x.PayloadConfig 1012 } 1013 return nil 1014 } 1015 1016 func (x *ServerConfig) GetCoreList() []int32 { 1017 if x != nil { 1018 return x.CoreList 1019 } 1020 return nil 1021 } 1022 1023 func (x *ServerConfig) GetOtherServerApi() string { 1024 if x != nil { 1025 return x.OtherServerApi 1026 } 1027 return "" 1028 } 1029 1030 func (x *ServerConfig) GetThreadsPerCq() int32 { 1031 if x != nil { 1032 return x.ThreadsPerCq 1033 } 1034 return 0 1035 } 1036 1037 func (x *ServerConfig) GetResourceQuotaSize() int32 { 1038 if x != nil { 1039 return x.ResourceQuotaSize 1040 } 1041 return 0 1042 } 1043 1044 func (x *ServerConfig) GetChannelArgs() []*ChannelArg { 1045 if x != nil { 1046 return x.ChannelArgs 1047 } 1048 return nil 1049 } 1050 1051 func (x *ServerConfig) GetServerProcesses() int32 { 1052 if x != nil { 1053 return x.ServerProcesses 1054 } 1055 return 0 1056 } 1057 1058 type ServerArgs struct { 1059 state protoimpl.MessageState 1060 sizeCache protoimpl.SizeCache 1061 unknownFields protoimpl.UnknownFields 1062 1063 // Types that are assignable to Argtype: 1064 // *ServerArgs_Setup 1065 // *ServerArgs_Mark 1066 Argtype isServerArgs_Argtype `protobuf_oneof:"argtype"` 1067 } 1068 1069 func (x *ServerArgs) Reset() { 1070 *x = ServerArgs{} 1071 if protoimpl.UnsafeEnabled { 1072 mi := &file_grpc_testing_control_proto_msgTypes[10] 1073 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1074 ms.StoreMessageInfo(mi) 1075 } 1076 } 1077 1078 func (x *ServerArgs) String() string { 1079 return protoimpl.X.MessageStringOf(x) 1080 } 1081 1082 func (*ServerArgs) ProtoMessage() {} 1083 1084 func (x *ServerArgs) ProtoReflect() protoreflect.Message { 1085 mi := &file_grpc_testing_control_proto_msgTypes[10] 1086 if protoimpl.UnsafeEnabled && x != nil { 1087 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1088 if ms.LoadMessageInfo() == nil { 1089 ms.StoreMessageInfo(mi) 1090 } 1091 return ms 1092 } 1093 return mi.MessageOf(x) 1094 } 1095 1096 // Deprecated: Use ServerArgs.ProtoReflect.Descriptor instead. 1097 func (*ServerArgs) Descriptor() ([]byte, []int) { 1098 return file_grpc_testing_control_proto_rawDescGZIP(), []int{10} 1099 } 1100 1101 func (m *ServerArgs) GetArgtype() isServerArgs_Argtype { 1102 if m != nil { 1103 return m.Argtype 1104 } 1105 return nil 1106 } 1107 1108 func (x *ServerArgs) GetSetup() *ServerConfig { 1109 if x, ok := x.GetArgtype().(*ServerArgs_Setup); ok { 1110 return x.Setup 1111 } 1112 return nil 1113 } 1114 1115 func (x *ServerArgs) GetMark() *Mark { 1116 if x, ok := x.GetArgtype().(*ServerArgs_Mark); ok { 1117 return x.Mark 1118 } 1119 return nil 1120 } 1121 1122 type isServerArgs_Argtype interface { 1123 isServerArgs_Argtype() 1124 } 1125 1126 type ServerArgs_Setup struct { 1127 Setup *ServerConfig `protobuf:"bytes,1,opt,name=setup,proto3,oneof"` 1128 } 1129 1130 type ServerArgs_Mark struct { 1131 Mark *Mark `protobuf:"bytes,2,opt,name=mark,proto3,oneof"` 1132 } 1133 1134 func (*ServerArgs_Setup) isServerArgs_Argtype() {} 1135 1136 func (*ServerArgs_Mark) isServerArgs_Argtype() {} 1137 1138 type ServerStatus struct { 1139 state protoimpl.MessageState 1140 sizeCache protoimpl.SizeCache 1141 unknownFields protoimpl.UnknownFields 1142 1143 Stats *ServerStats `protobuf:"bytes,1,opt,name=stats,proto3" json:"stats,omitempty"` 1144 // the port bound by the server 1145 Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` 1146 // Number of cores available to the server 1147 Cores int32 `protobuf:"varint,3,opt,name=cores,proto3" json:"cores,omitempty"` 1148 } 1149 1150 func (x *ServerStatus) Reset() { 1151 *x = ServerStatus{} 1152 if protoimpl.UnsafeEnabled { 1153 mi := &file_grpc_testing_control_proto_msgTypes[11] 1154 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1155 ms.StoreMessageInfo(mi) 1156 } 1157 } 1158 1159 func (x *ServerStatus) String() string { 1160 return protoimpl.X.MessageStringOf(x) 1161 } 1162 1163 func (*ServerStatus) ProtoMessage() {} 1164 1165 func (x *ServerStatus) ProtoReflect() protoreflect.Message { 1166 mi := &file_grpc_testing_control_proto_msgTypes[11] 1167 if protoimpl.UnsafeEnabled && x != nil { 1168 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1169 if ms.LoadMessageInfo() == nil { 1170 ms.StoreMessageInfo(mi) 1171 } 1172 return ms 1173 } 1174 return mi.MessageOf(x) 1175 } 1176 1177 // Deprecated: Use ServerStatus.ProtoReflect.Descriptor instead. 1178 func (*ServerStatus) Descriptor() ([]byte, []int) { 1179 return file_grpc_testing_control_proto_rawDescGZIP(), []int{11} 1180 } 1181 1182 func (x *ServerStatus) GetStats() *ServerStats { 1183 if x != nil { 1184 return x.Stats 1185 } 1186 return nil 1187 } 1188 1189 func (x *ServerStatus) GetPort() int32 { 1190 if x != nil { 1191 return x.Port 1192 } 1193 return 0 1194 } 1195 1196 func (x *ServerStatus) GetCores() int32 { 1197 if x != nil { 1198 return x.Cores 1199 } 1200 return 0 1201 } 1202 1203 type CoreRequest struct { 1204 state protoimpl.MessageState 1205 sizeCache protoimpl.SizeCache 1206 unknownFields protoimpl.UnknownFields 1207 } 1208 1209 func (x *CoreRequest) Reset() { 1210 *x = CoreRequest{} 1211 if protoimpl.UnsafeEnabled { 1212 mi := &file_grpc_testing_control_proto_msgTypes[12] 1213 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1214 ms.StoreMessageInfo(mi) 1215 } 1216 } 1217 1218 func (x *CoreRequest) String() string { 1219 return protoimpl.X.MessageStringOf(x) 1220 } 1221 1222 func (*CoreRequest) ProtoMessage() {} 1223 1224 func (x *CoreRequest) ProtoReflect() protoreflect.Message { 1225 mi := &file_grpc_testing_control_proto_msgTypes[12] 1226 if protoimpl.UnsafeEnabled && x != nil { 1227 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1228 if ms.LoadMessageInfo() == nil { 1229 ms.StoreMessageInfo(mi) 1230 } 1231 return ms 1232 } 1233 return mi.MessageOf(x) 1234 } 1235 1236 // Deprecated: Use CoreRequest.ProtoReflect.Descriptor instead. 1237 func (*CoreRequest) Descriptor() ([]byte, []int) { 1238 return file_grpc_testing_control_proto_rawDescGZIP(), []int{12} 1239 } 1240 1241 type CoreResponse struct { 1242 state protoimpl.MessageState 1243 sizeCache protoimpl.SizeCache 1244 unknownFields protoimpl.UnknownFields 1245 1246 // Number of cores available on the server 1247 Cores int32 `protobuf:"varint,1,opt,name=cores,proto3" json:"cores,omitempty"` 1248 } 1249 1250 func (x *CoreResponse) Reset() { 1251 *x = CoreResponse{} 1252 if protoimpl.UnsafeEnabled { 1253 mi := &file_grpc_testing_control_proto_msgTypes[13] 1254 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1255 ms.StoreMessageInfo(mi) 1256 } 1257 } 1258 1259 func (x *CoreResponse) String() string { 1260 return protoimpl.X.MessageStringOf(x) 1261 } 1262 1263 func (*CoreResponse) ProtoMessage() {} 1264 1265 func (x *CoreResponse) ProtoReflect() protoreflect.Message { 1266 mi := &file_grpc_testing_control_proto_msgTypes[13] 1267 if protoimpl.UnsafeEnabled && x != nil { 1268 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1269 if ms.LoadMessageInfo() == nil { 1270 ms.StoreMessageInfo(mi) 1271 } 1272 return ms 1273 } 1274 return mi.MessageOf(x) 1275 } 1276 1277 // Deprecated: Use CoreResponse.ProtoReflect.Descriptor instead. 1278 func (*CoreResponse) Descriptor() ([]byte, []int) { 1279 return file_grpc_testing_control_proto_rawDescGZIP(), []int{13} 1280 } 1281 1282 func (x *CoreResponse) GetCores() int32 { 1283 if x != nil { 1284 return x.Cores 1285 } 1286 return 0 1287 } 1288 1289 type Void struct { 1290 state protoimpl.MessageState 1291 sizeCache protoimpl.SizeCache 1292 unknownFields protoimpl.UnknownFields 1293 } 1294 1295 func (x *Void) Reset() { 1296 *x = Void{} 1297 if protoimpl.UnsafeEnabled { 1298 mi := &file_grpc_testing_control_proto_msgTypes[14] 1299 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1300 ms.StoreMessageInfo(mi) 1301 } 1302 } 1303 1304 func (x *Void) String() string { 1305 return protoimpl.X.MessageStringOf(x) 1306 } 1307 1308 func (*Void) ProtoMessage() {} 1309 1310 func (x *Void) ProtoReflect() protoreflect.Message { 1311 mi := &file_grpc_testing_control_proto_msgTypes[14] 1312 if protoimpl.UnsafeEnabled && x != nil { 1313 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1314 if ms.LoadMessageInfo() == nil { 1315 ms.StoreMessageInfo(mi) 1316 } 1317 return ms 1318 } 1319 return mi.MessageOf(x) 1320 } 1321 1322 // Deprecated: Use Void.ProtoReflect.Descriptor instead. 1323 func (*Void) Descriptor() ([]byte, []int) { 1324 return file_grpc_testing_control_proto_rawDescGZIP(), []int{14} 1325 } 1326 1327 // A single performance scenario: input to qps_json_driver 1328 type Scenario struct { 1329 state protoimpl.MessageState 1330 sizeCache protoimpl.SizeCache 1331 unknownFields protoimpl.UnknownFields 1332 1333 // Human readable name for this scenario 1334 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1335 // Client configuration 1336 ClientConfig *ClientConfig `protobuf:"bytes,2,opt,name=client_config,json=clientConfig,proto3" json:"client_config,omitempty"` 1337 // Number of clients to start for the test 1338 NumClients int32 `protobuf:"varint,3,opt,name=num_clients,json=numClients,proto3" json:"num_clients,omitempty"` 1339 // Server configuration 1340 ServerConfig *ServerConfig `protobuf:"bytes,4,opt,name=server_config,json=serverConfig,proto3" json:"server_config,omitempty"` 1341 // Number of servers to start for the test 1342 NumServers int32 `protobuf:"varint,5,opt,name=num_servers,json=numServers,proto3" json:"num_servers,omitempty"` 1343 // Warmup period, in seconds 1344 WarmupSeconds int32 `protobuf:"varint,6,opt,name=warmup_seconds,json=warmupSeconds,proto3" json:"warmup_seconds,omitempty"` 1345 // Benchmark time, in seconds 1346 BenchmarkSeconds int32 `protobuf:"varint,7,opt,name=benchmark_seconds,json=benchmarkSeconds,proto3" json:"benchmark_seconds,omitempty"` 1347 // Number of workers to spawn locally (usually zero) 1348 SpawnLocalWorkerCount int32 `protobuf:"varint,8,opt,name=spawn_local_worker_count,json=spawnLocalWorkerCount,proto3" json:"spawn_local_worker_count,omitempty"` 1349 } 1350 1351 func (x *Scenario) Reset() { 1352 *x = Scenario{} 1353 if protoimpl.UnsafeEnabled { 1354 mi := &file_grpc_testing_control_proto_msgTypes[15] 1355 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1356 ms.StoreMessageInfo(mi) 1357 } 1358 } 1359 1360 func (x *Scenario) String() string { 1361 return protoimpl.X.MessageStringOf(x) 1362 } 1363 1364 func (*Scenario) ProtoMessage() {} 1365 1366 func (x *Scenario) ProtoReflect() protoreflect.Message { 1367 mi := &file_grpc_testing_control_proto_msgTypes[15] 1368 if protoimpl.UnsafeEnabled && x != nil { 1369 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1370 if ms.LoadMessageInfo() == nil { 1371 ms.StoreMessageInfo(mi) 1372 } 1373 return ms 1374 } 1375 return mi.MessageOf(x) 1376 } 1377 1378 // Deprecated: Use Scenario.ProtoReflect.Descriptor instead. 1379 func (*Scenario) Descriptor() ([]byte, []int) { 1380 return file_grpc_testing_control_proto_rawDescGZIP(), []int{15} 1381 } 1382 1383 func (x *Scenario) GetName() string { 1384 if x != nil { 1385 return x.Name 1386 } 1387 return "" 1388 } 1389 1390 func (x *Scenario) GetClientConfig() *ClientConfig { 1391 if x != nil { 1392 return x.ClientConfig 1393 } 1394 return nil 1395 } 1396 1397 func (x *Scenario) GetNumClients() int32 { 1398 if x != nil { 1399 return x.NumClients 1400 } 1401 return 0 1402 } 1403 1404 func (x *Scenario) GetServerConfig() *ServerConfig { 1405 if x != nil { 1406 return x.ServerConfig 1407 } 1408 return nil 1409 } 1410 1411 func (x *Scenario) GetNumServers() int32 { 1412 if x != nil { 1413 return x.NumServers 1414 } 1415 return 0 1416 } 1417 1418 func (x *Scenario) GetWarmupSeconds() int32 { 1419 if x != nil { 1420 return x.WarmupSeconds 1421 } 1422 return 0 1423 } 1424 1425 func (x *Scenario) GetBenchmarkSeconds() int32 { 1426 if x != nil { 1427 return x.BenchmarkSeconds 1428 } 1429 return 0 1430 } 1431 1432 func (x *Scenario) GetSpawnLocalWorkerCount() int32 { 1433 if x != nil { 1434 return x.SpawnLocalWorkerCount 1435 } 1436 return 0 1437 } 1438 1439 // A set of scenarios to be run with qps_json_driver 1440 type Scenarios struct { 1441 state protoimpl.MessageState 1442 sizeCache protoimpl.SizeCache 1443 unknownFields protoimpl.UnknownFields 1444 1445 Scenarios []*Scenario `protobuf:"bytes,1,rep,name=scenarios,proto3" json:"scenarios,omitempty"` 1446 } 1447 1448 func (x *Scenarios) Reset() { 1449 *x = Scenarios{} 1450 if protoimpl.UnsafeEnabled { 1451 mi := &file_grpc_testing_control_proto_msgTypes[16] 1452 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1453 ms.StoreMessageInfo(mi) 1454 } 1455 } 1456 1457 func (x *Scenarios) String() string { 1458 return protoimpl.X.MessageStringOf(x) 1459 } 1460 1461 func (*Scenarios) ProtoMessage() {} 1462 1463 func (x *Scenarios) ProtoReflect() protoreflect.Message { 1464 mi := &file_grpc_testing_control_proto_msgTypes[16] 1465 if protoimpl.UnsafeEnabled && x != nil { 1466 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1467 if ms.LoadMessageInfo() == nil { 1468 ms.StoreMessageInfo(mi) 1469 } 1470 return ms 1471 } 1472 return mi.MessageOf(x) 1473 } 1474 1475 // Deprecated: Use Scenarios.ProtoReflect.Descriptor instead. 1476 func (*Scenarios) Descriptor() ([]byte, []int) { 1477 return file_grpc_testing_control_proto_rawDescGZIP(), []int{16} 1478 } 1479 1480 func (x *Scenarios) GetScenarios() []*Scenario { 1481 if x != nil { 1482 return x.Scenarios 1483 } 1484 return nil 1485 } 1486 1487 // Basic summary that can be computed from ClientStats and ServerStats 1488 // once the scenario has finished. 1489 type ScenarioResultSummary struct { 1490 state protoimpl.MessageState 1491 sizeCache protoimpl.SizeCache 1492 unknownFields protoimpl.UnknownFields 1493 1494 // Total number of operations per second over all clients. What is counted as 1 'operation' depends on the benchmark scenarios: 1495 // For unary benchmarks, an operation is processing of a single unary RPC. 1496 // For streaming benchmarks, an operation is processing of a single ping pong of request and response. 1497 Qps float64 `protobuf:"fixed64,1,opt,name=qps,proto3" json:"qps,omitempty"` 1498 // QPS per server core. 1499 QpsPerServerCore float64 `protobuf:"fixed64,2,opt,name=qps_per_server_core,json=qpsPerServerCore,proto3" json:"qps_per_server_core,omitempty"` 1500 // The total server cpu load based on system time across all server processes, expressed as percentage of a single cpu core. 1501 // For example, 85 implies 85% of a cpu core, 125 implies 125% of a cpu core. Since we are accumulating the cpu load across all the server 1502 // processes, the value could > 100 when there are multiple servers or a single server using multiple threads and cores. 1503 // Same explanation for the total client cpu load below. 1504 ServerSystemTime float64 `protobuf:"fixed64,3,opt,name=server_system_time,json=serverSystemTime,proto3" json:"server_system_time,omitempty"` 1505 // The total server cpu load based on user time across all server processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%) 1506 ServerUserTime float64 `protobuf:"fixed64,4,opt,name=server_user_time,json=serverUserTime,proto3" json:"server_user_time,omitempty"` 1507 // The total client cpu load based on system time across all client processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%) 1508 ClientSystemTime float64 `protobuf:"fixed64,5,opt,name=client_system_time,json=clientSystemTime,proto3" json:"client_system_time,omitempty"` 1509 // The total client cpu load based on user time across all client processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%) 1510 ClientUserTime float64 `protobuf:"fixed64,6,opt,name=client_user_time,json=clientUserTime,proto3" json:"client_user_time,omitempty"` 1511 // X% latency percentiles (in nanoseconds) 1512 Latency_50 float64 `protobuf:"fixed64,7,opt,name=latency_50,json=latency50,proto3" json:"latency_50,omitempty"` 1513 Latency_90 float64 `protobuf:"fixed64,8,opt,name=latency_90,json=latency90,proto3" json:"latency_90,omitempty"` 1514 Latency_95 float64 `protobuf:"fixed64,9,opt,name=latency_95,json=latency95,proto3" json:"latency_95,omitempty"` 1515 Latency_99 float64 `protobuf:"fixed64,10,opt,name=latency_99,json=latency99,proto3" json:"latency_99,omitempty"` 1516 Latency_999 float64 `protobuf:"fixed64,11,opt,name=latency_999,json=latency999,proto3" json:"latency_999,omitempty"` 1517 // server cpu usage percentage 1518 ServerCpuUsage float64 `protobuf:"fixed64,12,opt,name=server_cpu_usage,json=serverCpuUsage,proto3" json:"server_cpu_usage,omitempty"` 1519 // Number of requests that succeeded/failed 1520 SuccessfulRequestsPerSecond float64 `protobuf:"fixed64,13,opt,name=successful_requests_per_second,json=successfulRequestsPerSecond,proto3" json:"successful_requests_per_second,omitempty"` 1521 FailedRequestsPerSecond float64 `protobuf:"fixed64,14,opt,name=failed_requests_per_second,json=failedRequestsPerSecond,proto3" json:"failed_requests_per_second,omitempty"` 1522 // Number of polls called inside completion queue per request 1523 ClientPollsPerRequest float64 `protobuf:"fixed64,15,opt,name=client_polls_per_request,json=clientPollsPerRequest,proto3" json:"client_polls_per_request,omitempty"` 1524 ServerPollsPerRequest float64 `protobuf:"fixed64,16,opt,name=server_polls_per_request,json=serverPollsPerRequest,proto3" json:"server_polls_per_request,omitempty"` 1525 // Queries per CPU-sec over all servers or clients 1526 ServerQueriesPerCpuSec float64 `protobuf:"fixed64,17,opt,name=server_queries_per_cpu_sec,json=serverQueriesPerCpuSec,proto3" json:"server_queries_per_cpu_sec,omitempty"` 1527 ClientQueriesPerCpuSec float64 `protobuf:"fixed64,18,opt,name=client_queries_per_cpu_sec,json=clientQueriesPerCpuSec,proto3" json:"client_queries_per_cpu_sec,omitempty"` 1528 } 1529 1530 func (x *ScenarioResultSummary) Reset() { 1531 *x = ScenarioResultSummary{} 1532 if protoimpl.UnsafeEnabled { 1533 mi := &file_grpc_testing_control_proto_msgTypes[17] 1534 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1535 ms.StoreMessageInfo(mi) 1536 } 1537 } 1538 1539 func (x *ScenarioResultSummary) String() string { 1540 return protoimpl.X.MessageStringOf(x) 1541 } 1542 1543 func (*ScenarioResultSummary) ProtoMessage() {} 1544 1545 func (x *ScenarioResultSummary) ProtoReflect() protoreflect.Message { 1546 mi := &file_grpc_testing_control_proto_msgTypes[17] 1547 if protoimpl.UnsafeEnabled && x != nil { 1548 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1549 if ms.LoadMessageInfo() == nil { 1550 ms.StoreMessageInfo(mi) 1551 } 1552 return ms 1553 } 1554 return mi.MessageOf(x) 1555 } 1556 1557 // Deprecated: Use ScenarioResultSummary.ProtoReflect.Descriptor instead. 1558 func (*ScenarioResultSummary) Descriptor() ([]byte, []int) { 1559 return file_grpc_testing_control_proto_rawDescGZIP(), []int{17} 1560 } 1561 1562 func (x *ScenarioResultSummary) GetQps() float64 { 1563 if x != nil { 1564 return x.Qps 1565 } 1566 return 0 1567 } 1568 1569 func (x *ScenarioResultSummary) GetQpsPerServerCore() float64 { 1570 if x != nil { 1571 return x.QpsPerServerCore 1572 } 1573 return 0 1574 } 1575 1576 func (x *ScenarioResultSummary) GetServerSystemTime() float64 { 1577 if x != nil { 1578 return x.ServerSystemTime 1579 } 1580 return 0 1581 } 1582 1583 func (x *ScenarioResultSummary) GetServerUserTime() float64 { 1584 if x != nil { 1585 return x.ServerUserTime 1586 } 1587 return 0 1588 } 1589 1590 func (x *ScenarioResultSummary) GetClientSystemTime() float64 { 1591 if x != nil { 1592 return x.ClientSystemTime 1593 } 1594 return 0 1595 } 1596 1597 func (x *ScenarioResultSummary) GetClientUserTime() float64 { 1598 if x != nil { 1599 return x.ClientUserTime 1600 } 1601 return 0 1602 } 1603 1604 func (x *ScenarioResultSummary) GetLatency_50() float64 { 1605 if x != nil { 1606 return x.Latency_50 1607 } 1608 return 0 1609 } 1610 1611 func (x *ScenarioResultSummary) GetLatency_90() float64 { 1612 if x != nil { 1613 return x.Latency_90 1614 } 1615 return 0 1616 } 1617 1618 func (x *ScenarioResultSummary) GetLatency_95() float64 { 1619 if x != nil { 1620 return x.Latency_95 1621 } 1622 return 0 1623 } 1624 1625 func (x *ScenarioResultSummary) GetLatency_99() float64 { 1626 if x != nil { 1627 return x.Latency_99 1628 } 1629 return 0 1630 } 1631 1632 func (x *ScenarioResultSummary) GetLatency_999() float64 { 1633 if x != nil { 1634 return x.Latency_999 1635 } 1636 return 0 1637 } 1638 1639 func (x *ScenarioResultSummary) GetServerCpuUsage() float64 { 1640 if x != nil { 1641 return x.ServerCpuUsage 1642 } 1643 return 0 1644 } 1645 1646 func (x *ScenarioResultSummary) GetSuccessfulRequestsPerSecond() float64 { 1647 if x != nil { 1648 return x.SuccessfulRequestsPerSecond 1649 } 1650 return 0 1651 } 1652 1653 func (x *ScenarioResultSummary) GetFailedRequestsPerSecond() float64 { 1654 if x != nil { 1655 return x.FailedRequestsPerSecond 1656 } 1657 return 0 1658 } 1659 1660 func (x *ScenarioResultSummary) GetClientPollsPerRequest() float64 { 1661 if x != nil { 1662 return x.ClientPollsPerRequest 1663 } 1664 return 0 1665 } 1666 1667 func (x *ScenarioResultSummary) GetServerPollsPerRequest() float64 { 1668 if x != nil { 1669 return x.ServerPollsPerRequest 1670 } 1671 return 0 1672 } 1673 1674 func (x *ScenarioResultSummary) GetServerQueriesPerCpuSec() float64 { 1675 if x != nil { 1676 return x.ServerQueriesPerCpuSec 1677 } 1678 return 0 1679 } 1680 1681 func (x *ScenarioResultSummary) GetClientQueriesPerCpuSec() float64 { 1682 if x != nil { 1683 return x.ClientQueriesPerCpuSec 1684 } 1685 return 0 1686 } 1687 1688 // Results of a single benchmark scenario. 1689 type ScenarioResult struct { 1690 state protoimpl.MessageState 1691 sizeCache protoimpl.SizeCache 1692 unknownFields protoimpl.UnknownFields 1693 1694 // Inputs used to run the scenario. 1695 Scenario *Scenario `protobuf:"bytes,1,opt,name=scenario,proto3" json:"scenario,omitempty"` 1696 // Histograms from all clients merged into one histogram. 1697 Latencies *HistogramData `protobuf:"bytes,2,opt,name=latencies,proto3" json:"latencies,omitempty"` 1698 // Client stats for each client 1699 ClientStats []*ClientStats `protobuf:"bytes,3,rep,name=client_stats,json=clientStats,proto3" json:"client_stats,omitempty"` 1700 // Server stats for each server 1701 ServerStats []*ServerStats `protobuf:"bytes,4,rep,name=server_stats,json=serverStats,proto3" json:"server_stats,omitempty"` 1702 // Number of cores available to each server 1703 ServerCores []int32 `protobuf:"varint,5,rep,packed,name=server_cores,json=serverCores,proto3" json:"server_cores,omitempty"` 1704 // An after-the-fact computed summary 1705 Summary *ScenarioResultSummary `protobuf:"bytes,6,opt,name=summary,proto3" json:"summary,omitempty"` 1706 // Information on success or failure of each worker 1707 ClientSuccess []bool `protobuf:"varint,7,rep,packed,name=client_success,json=clientSuccess,proto3" json:"client_success,omitempty"` 1708 ServerSuccess []bool `protobuf:"varint,8,rep,packed,name=server_success,json=serverSuccess,proto3" json:"server_success,omitempty"` 1709 // Number of failed requests (one row per status code seen) 1710 RequestResults []*RequestResultCount `protobuf:"bytes,9,rep,name=request_results,json=requestResults,proto3" json:"request_results,omitempty"` 1711 } 1712 1713 func (x *ScenarioResult) Reset() { 1714 *x = ScenarioResult{} 1715 if protoimpl.UnsafeEnabled { 1716 mi := &file_grpc_testing_control_proto_msgTypes[18] 1717 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1718 ms.StoreMessageInfo(mi) 1719 } 1720 } 1721 1722 func (x *ScenarioResult) String() string { 1723 return protoimpl.X.MessageStringOf(x) 1724 } 1725 1726 func (*ScenarioResult) ProtoMessage() {} 1727 1728 func (x *ScenarioResult) ProtoReflect() protoreflect.Message { 1729 mi := &file_grpc_testing_control_proto_msgTypes[18] 1730 if protoimpl.UnsafeEnabled && x != nil { 1731 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1732 if ms.LoadMessageInfo() == nil { 1733 ms.StoreMessageInfo(mi) 1734 } 1735 return ms 1736 } 1737 return mi.MessageOf(x) 1738 } 1739 1740 // Deprecated: Use ScenarioResult.ProtoReflect.Descriptor instead. 1741 func (*ScenarioResult) Descriptor() ([]byte, []int) { 1742 return file_grpc_testing_control_proto_rawDescGZIP(), []int{18} 1743 } 1744 1745 func (x *ScenarioResult) GetScenario() *Scenario { 1746 if x != nil { 1747 return x.Scenario 1748 } 1749 return nil 1750 } 1751 1752 func (x *ScenarioResult) GetLatencies() *HistogramData { 1753 if x != nil { 1754 return x.Latencies 1755 } 1756 return nil 1757 } 1758 1759 func (x *ScenarioResult) GetClientStats() []*ClientStats { 1760 if x != nil { 1761 return x.ClientStats 1762 } 1763 return nil 1764 } 1765 1766 func (x *ScenarioResult) GetServerStats() []*ServerStats { 1767 if x != nil { 1768 return x.ServerStats 1769 } 1770 return nil 1771 } 1772 1773 func (x *ScenarioResult) GetServerCores() []int32 { 1774 if x != nil { 1775 return x.ServerCores 1776 } 1777 return nil 1778 } 1779 1780 func (x *ScenarioResult) GetSummary() *ScenarioResultSummary { 1781 if x != nil { 1782 return x.Summary 1783 } 1784 return nil 1785 } 1786 1787 func (x *ScenarioResult) GetClientSuccess() []bool { 1788 if x != nil { 1789 return x.ClientSuccess 1790 } 1791 return nil 1792 } 1793 1794 func (x *ScenarioResult) GetServerSuccess() []bool { 1795 if x != nil { 1796 return x.ServerSuccess 1797 } 1798 return nil 1799 } 1800 1801 func (x *ScenarioResult) GetRequestResults() []*RequestResultCount { 1802 if x != nil { 1803 return x.RequestResults 1804 } 1805 return nil 1806 } 1807 1808 var File_grpc_testing_control_proto protoreflect.FileDescriptor 1809 1810 var file_grpc_testing_control_proto_rawDesc = []byte{ 1811 0x0a, 0x1a, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x63, 1812 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x67, 0x72, 1813 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x1a, 0x1b, 0x67, 0x72, 0x70, 0x63, 1814 0x2f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 1815 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x65, 1816 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1817 0x6f, 0x22, 0x32, 0x0a, 0x0d, 0x50, 0x6f, 0x69, 0x73, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 1818 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 1819 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 1820 0x64, 0x4c, 0x6f, 0x61, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x4c, 1821 0x6f, 0x6f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x0a, 0x4c, 0x6f, 1822 0x61, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x41, 0x0a, 0x0b, 0x63, 0x6c, 0x6f, 0x73, 1823 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 1824 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x6c, 0x6f, 1825 0x73, 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 1826 0x0a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x12, 0x37, 0x0a, 0x07, 0x70, 1827 0x6f, 0x69, 0x73, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 1828 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x50, 0x6f, 0x69, 0x73, 1829 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x07, 0x70, 0x6f, 0x69, 1830 0x73, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x7f, 0x0a, 0x0e, 1831 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1e, 1832 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x18, 0x01, 0x20, 1833 0x01, 0x28, 0x08, 0x52, 0x09, 0x75, 0x73, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x12, 0x30, 1834 0x0a, 0x14, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6f, 0x76, 1835 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x65, 1836 0x72, 0x76, 0x65, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 1837 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 1838 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x72, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x67, 0x0a, 1839 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x72, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 1840 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 1841 0x1d, 0x0a, 0x09, 0x73, 0x74, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 1842 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x74, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 1843 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 1844 0x05, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 1845 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf6, 0x07, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 1846 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 1847 0x72, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 1848 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x39, 1849 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 1850 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 1851 0x6e, 0x67, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x63, 1852 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x73, 0x65, 0x63, 1853 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 1854 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 1855 0x67, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 1856 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 1857 0x12, 0x3f, 0x0a, 0x1c, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 1858 0x72, 0x70, 0x63, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 1859 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 1860 0x69, 0x6e, 0x67, 0x52, 0x70, 0x63, 0x73, 0x50, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 1861 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 1862 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 1863 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x73, 1864 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 1865 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x43, 1866 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x08, 1867 0x72, 0x70, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 1868 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x52, 0x70, 1869 0x63, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x72, 0x70, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 1870 0x0a, 0x0b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0a, 0x20, 1871 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 1872 0x6e, 0x67, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0a, 0x6c, 1873 0x6f, 0x61, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x70, 0x61, 0x79, 1874 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 1875 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 1876 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 1877 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x48, 0x0a, 1878 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 1879 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 1880 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 1881 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 1882 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x72, 0x65, 0x5f, 1883 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6f, 0x72, 0x65, 1884 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 1885 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x69, 1886 0x6d, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x69, 1887 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 1888 0x74, 0x68, 0x65, 0x72, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x69, 0x12, 0x3b, 0x0a, 1889 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x10, 0x20, 1890 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 1891 0x6e, 0x67, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x72, 0x67, 0x52, 0x0b, 0x63, 1892 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x72, 0x67, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x68, 1893 0x72, 0x65, 0x61, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x71, 0x18, 0x11, 0x20, 0x01, 1894 0x28, 0x05, 0x52, 0x0c, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x50, 0x65, 0x72, 0x43, 0x71, 1895 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 1896 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6d, 1897 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 1898 0x12, 0x28, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x61, 0x6c, 0x65, 0x73, 0x63, 0x65, 1899 0x5f, 0x61, 0x70, 0x69, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x43, 1900 0x6f, 0x61, 0x6c, 0x65, 0x73, 0x63, 0x65, 0x41, 0x70, 0x69, 0x12, 0x58, 0x0a, 0x29, 0x6d, 0x65, 1901 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x6c, 1902 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 1903 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x25, 0x6d, 1904 0x65, 0x64, 0x69, 0x61, 0x6e, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x6c, 0x6c, 1905 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x4d, 0x69, 1906 0x6c, 0x6c, 0x69, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 1907 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 1908 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 1909 0x3f, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 1910 0x2f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 1911 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x6c, 1912 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 1913 0x22, 0x1c, 0x0a, 0x04, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x73, 0x65, 1914 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x73, 0x65, 0x74, 0x22, 0x75, 1915 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x67, 0x73, 0x12, 0x32, 0x0a, 0x05, 1916 0x73, 0x65, 0x74, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 1917 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 1918 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x05, 0x73, 0x65, 0x74, 0x75, 0x70, 1919 0x12, 0x28, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 1920 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4d, 0x61, 1921 0x72, 0x6b, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x61, 0x72, 1922 0x67, 0x74, 0x79, 0x70, 0x65, 0x22, 0xc0, 0x04, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 1923 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 1924 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x72, 1925 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 1926 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 1927 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x61, 1928 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x70, 1929 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 1930 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 1931 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 1932 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x14, 1933 0x61, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x72, 1934 0x65, 0x61, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x73, 0x79, 0x6e, 1935 0x63, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x1d, 1936 0x0a, 0x0a, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 1937 0x28, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x42, 0x0a, 1938 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 1939 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 1940 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 1941 0x69, 0x67, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 1942 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0a, 1943 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 1944 0x0a, 0x10, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 1945 0x70, 0x69, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x53, 1946 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x70, 0x69, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x65, 1947 0x61, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x71, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 1948 0x52, 0x0c, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x50, 0x65, 0x72, 0x43, 0x71, 0x12, 0x2f, 1949 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 1950 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x65, 1951 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x53, 0x69, 0x7a, 0x65, 0x12, 1952 0x3c, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 1953 0xea, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 1954 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x72, 0x67, 1955 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x72, 0x67, 0x73, 0x12, 0x29, 0x0a, 1956 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 1957 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 1958 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x75, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 1959 0x65, 0x72, 0x41, 0x72, 0x67, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x75, 0x70, 0x18, 1960 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 1961 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 1962 0x67, 0x48, 0x00, 0x52, 0x05, 0x73, 0x65, 0x74, 0x75, 0x70, 0x12, 0x28, 0x0a, 0x04, 0x6d, 0x61, 1963 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 1964 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x48, 0x00, 0x52, 0x04, 1965 0x6d, 0x61, 0x72, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x61, 0x72, 0x67, 0x74, 0x79, 0x70, 0x65, 0x22, 1966 0x69, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 1967 0x2f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 1968 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x65, 1969 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 1970 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 1971 0x70, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 1972 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x22, 0x0d, 0x0a, 0x0b, 0x43, 0x6f, 1973 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x24, 0x0a, 0x0c, 0x43, 0x6f, 0x72, 1974 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x72, 1975 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x22, 1976 0x06, 0x0a, 0x04, 0x56, 0x6f, 0x69, 0x64, 0x22, 0xef, 0x02, 0x0a, 0x08, 0x53, 0x63, 0x65, 0x6e, 1977 0x61, 0x72, 0x69, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 1978 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 1979 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 1980 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 1981 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x63, 0x6c, 0x69, 1982 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 1983 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 1984 0x6e, 0x75, 0x6d, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x73, 0x65, 1985 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 1986 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 1987 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x73, 1988 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 1989 0x75, 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 1990 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 1991 0x77, 0x61, 0x72, 0x6d, 0x75, 0x70, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x06, 1992 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x77, 0x61, 0x72, 0x6d, 0x75, 0x70, 0x53, 0x65, 0x63, 0x6f, 1993 0x6e, 0x64, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 1994 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 1995 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 1996 0x12, 0x37, 0x0a, 0x18, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 1997 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 1998 0x28, 0x05, 0x52, 0x15, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x57, 0x6f, 1999 0x72, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x41, 0x0a, 0x09, 0x53, 0x63, 0x65, 2000 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x73, 0x12, 0x34, 0x0a, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 2001 0x69, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 2002 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 2003 0x6f, 0x52, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x73, 0x22, 0xbb, 0x06, 0x0a, 2004 0x15, 0x53, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 2005 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x71, 0x70, 0x73, 0x18, 0x01, 0x20, 2006 0x01, 0x28, 0x01, 0x52, 0x03, 0x71, 0x70, 0x73, 0x12, 0x2d, 0x0a, 0x13, 0x71, 0x70, 0x73, 0x5f, 2007 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18, 2008 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x71, 0x70, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x72, 2009 0x76, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x65, 0x72, 0x76, 0x65, 2010 0x72, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 2011 0x01, 0x28, 0x01, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 2012 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 2013 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 2014 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 2015 0x2c, 0x0a, 0x12, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 2016 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x63, 0x6c, 0x69, 2017 0x65, 0x6e, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 2018 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 2019 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x55, 2020 0x73, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e, 2021 0x63, 0x79, 0x5f, 0x35, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x61, 0x74, 2022 0x65, 0x6e, 0x63, 0x79, 0x35, 0x30, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 2023 0x79, 0x5f, 0x39, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x65, 2024 0x6e, 0x63, 0x79, 0x39, 0x30, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 2025 0x5f, 0x39, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, 2026 0x63, 0x79, 0x39, 0x35, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 2027 0x39, 0x39, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 2028 0x79, 0x39, 0x39, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x39, 2029 0x39, 0x39, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 2030 0x79, 0x39, 0x39, 0x39, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 2031 0x70, 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 2032 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x43, 2033 0x0a, 0x1e, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x71, 2034 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 2035 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x1b, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 2036 0x75, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 2037 0x6f, 0x6e, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 2038 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 2039 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x17, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 2040 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 2041 0x12, 0x37, 0x0a, 0x18, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x73, 2042 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0f, 0x20, 0x01, 2043 0x28, 0x01, 0x52, 0x15, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x6c, 0x6c, 0x73, 0x50, 2044 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x65, 0x72, 2045 0x76, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x72, 0x65, 2046 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x73, 0x65, 0x72, 2047 0x76, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x6c, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 2048 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x1a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x65, 2049 0x72, 0x69, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x73, 0x65, 0x63, 2050 0x18, 0x11, 0x20, 0x01, 0x28, 0x01, 0x52, 0x16, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x51, 0x75, 2051 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x65, 0x72, 0x43, 0x70, 0x75, 0x53, 0x65, 0x63, 0x12, 0x3a, 2052 0x0a, 0x1a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 2053 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x12, 0x20, 0x01, 2054 0x28, 0x01, 0x52, 0x16, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 2055 0x73, 0x50, 0x65, 0x72, 0x43, 0x70, 0x75, 0x53, 0x65, 0x63, 0x22, 0xf6, 0x03, 0x0a, 0x0e, 0x53, 2056 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x32, 0x0a, 2057 0x08, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 2058 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 2059 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x52, 0x08, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 2060 0x6f, 0x12, 0x39, 0x0a, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 2061 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 2062 0x69, 0x6e, 0x67, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x61, 0x74, 2063 0x61, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 2064 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 2065 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 2066 0x67, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0b, 0x63, 2067 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x73, 0x65, 2068 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 2069 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 2070 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0b, 0x73, 0x65, 0x72, 2071 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 2072 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 2073 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x73, 2074 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 2075 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x63, 0x65, 0x6e, 2076 0x61, 0x72, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 2077 0x79, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6c, 2078 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x03, 2079 0x28, 0x08, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 2080 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x63, 0x63, 2081 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 2082 0x72, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 2083 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 2084 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 2085 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 2086 0x75, 0x6e, 0x74, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 2087 0x6c, 0x74, 0x73, 0x2a, 0x56, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 2088 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 2089 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 2090 0x4e, 0x54, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x43, 0x4c, 2091 0x49, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x41, 0x4c, 0x4c, 0x42, 0x41, 2092 0x43, 0x4b, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x2a, 0x70, 0x0a, 0x0a, 0x53, 2093 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x59, 0x4e, 2094 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x53, 2095 0x59, 0x4e, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 2096 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, 0x5f, 0x53, 0x45, 2097 0x52, 0x56, 0x45, 0x52, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 2098 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x41, 0x4c, 0x4c, 2099 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x04, 0x2a, 0x72, 0x0a, 2100 0x07, 0x52, 0x70, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x41, 0x52, 2101 0x59, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, 2102 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 2103 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x19, 0x0a, 2104 0x15, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 2105 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x52, 0x45, 2106 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x4f, 0x54, 0x48, 0x5f, 0x57, 0x41, 0x59, 0x53, 0x10, 2107 0x04, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 2108 } 2109 2110 var ( 2111 file_grpc_testing_control_proto_rawDescOnce sync.Once 2112 file_grpc_testing_control_proto_rawDescData = file_grpc_testing_control_proto_rawDesc 2113 ) 2114 2115 func file_grpc_testing_control_proto_rawDescGZIP() []byte { 2116 file_grpc_testing_control_proto_rawDescOnce.Do(func() { 2117 file_grpc_testing_control_proto_rawDescData = protoimpl.X.CompressGZIP(file_grpc_testing_control_proto_rawDescData) 2118 }) 2119 return file_grpc_testing_control_proto_rawDescData 2120 } 2121 2122 var file_grpc_testing_control_proto_enumTypes = make([]protoimpl.EnumInfo, 3) 2123 var file_grpc_testing_control_proto_msgTypes = make([]protoimpl.MessageInfo, 19) 2124 var file_grpc_testing_control_proto_goTypes = []interface{}{ 2125 (ClientType)(0), // 0: grpc.testing.ClientType 2126 (ServerType)(0), // 1: grpc.testing.ServerType 2127 (RpcType)(0), // 2: grpc.testing.RpcType 2128 (*PoissonParams)(nil), // 3: grpc.testing.PoissonParams 2129 (*ClosedLoopParams)(nil), // 4: grpc.testing.ClosedLoopParams 2130 (*LoadParams)(nil), // 5: grpc.testing.LoadParams 2131 (*SecurityParams)(nil), // 6: grpc.testing.SecurityParams 2132 (*ChannelArg)(nil), // 7: grpc.testing.ChannelArg 2133 (*ClientConfig)(nil), // 8: grpc.testing.ClientConfig 2134 (*ClientStatus)(nil), // 9: grpc.testing.ClientStatus 2135 (*Mark)(nil), // 10: grpc.testing.Mark 2136 (*ClientArgs)(nil), // 11: grpc.testing.ClientArgs 2137 (*ServerConfig)(nil), // 12: grpc.testing.ServerConfig 2138 (*ServerArgs)(nil), // 13: grpc.testing.ServerArgs 2139 (*ServerStatus)(nil), // 14: grpc.testing.ServerStatus 2140 (*CoreRequest)(nil), // 15: grpc.testing.CoreRequest 2141 (*CoreResponse)(nil), // 16: grpc.testing.CoreResponse 2142 (*Void)(nil), // 17: grpc.testing.Void 2143 (*Scenario)(nil), // 18: grpc.testing.Scenario 2144 (*Scenarios)(nil), // 19: grpc.testing.Scenarios 2145 (*ScenarioResultSummary)(nil), // 20: grpc.testing.ScenarioResultSummary 2146 (*ScenarioResult)(nil), // 21: grpc.testing.ScenarioResult 2147 (*PayloadConfig)(nil), // 22: grpc.testing.PayloadConfig 2148 (*HistogramParams)(nil), // 23: grpc.testing.HistogramParams 2149 (*ClientStats)(nil), // 24: grpc.testing.ClientStats 2150 (*ServerStats)(nil), // 25: grpc.testing.ServerStats 2151 (*HistogramData)(nil), // 26: grpc.testing.HistogramData 2152 (*RequestResultCount)(nil), // 27: grpc.testing.RequestResultCount 2153 } 2154 var file_grpc_testing_control_proto_depIdxs = []int32{ 2155 4, // 0: grpc.testing.LoadParams.closed_loop:type_name -> grpc.testing.ClosedLoopParams 2156 3, // 1: grpc.testing.LoadParams.poisson:type_name -> grpc.testing.PoissonParams 2157 0, // 2: grpc.testing.ClientConfig.client_type:type_name -> grpc.testing.ClientType 2158 6, // 3: grpc.testing.ClientConfig.security_params:type_name -> grpc.testing.SecurityParams 2159 2, // 4: grpc.testing.ClientConfig.rpc_type:type_name -> grpc.testing.RpcType 2160 5, // 5: grpc.testing.ClientConfig.load_params:type_name -> grpc.testing.LoadParams 2161 22, // 6: grpc.testing.ClientConfig.payload_config:type_name -> grpc.testing.PayloadConfig 2162 23, // 7: grpc.testing.ClientConfig.histogram_params:type_name -> grpc.testing.HistogramParams 2163 7, // 8: grpc.testing.ClientConfig.channel_args:type_name -> grpc.testing.ChannelArg 2164 24, // 9: grpc.testing.ClientStatus.stats:type_name -> grpc.testing.ClientStats 2165 8, // 10: grpc.testing.ClientArgs.setup:type_name -> grpc.testing.ClientConfig 2166 10, // 11: grpc.testing.ClientArgs.mark:type_name -> grpc.testing.Mark 2167 1, // 12: grpc.testing.ServerConfig.server_type:type_name -> grpc.testing.ServerType 2168 6, // 13: grpc.testing.ServerConfig.security_params:type_name -> grpc.testing.SecurityParams 2169 22, // 14: grpc.testing.ServerConfig.payload_config:type_name -> grpc.testing.PayloadConfig 2170 7, // 15: grpc.testing.ServerConfig.channel_args:type_name -> grpc.testing.ChannelArg 2171 12, // 16: grpc.testing.ServerArgs.setup:type_name -> grpc.testing.ServerConfig 2172 10, // 17: grpc.testing.ServerArgs.mark:type_name -> grpc.testing.Mark 2173 25, // 18: grpc.testing.ServerStatus.stats:type_name -> grpc.testing.ServerStats 2174 8, // 19: grpc.testing.Scenario.client_config:type_name -> grpc.testing.ClientConfig 2175 12, // 20: grpc.testing.Scenario.server_config:type_name -> grpc.testing.ServerConfig 2176 18, // 21: grpc.testing.Scenarios.scenarios:type_name -> grpc.testing.Scenario 2177 18, // 22: grpc.testing.ScenarioResult.scenario:type_name -> grpc.testing.Scenario 2178 26, // 23: grpc.testing.ScenarioResult.latencies:type_name -> grpc.testing.HistogramData 2179 24, // 24: grpc.testing.ScenarioResult.client_stats:type_name -> grpc.testing.ClientStats 2180 25, // 25: grpc.testing.ScenarioResult.server_stats:type_name -> grpc.testing.ServerStats 2181 20, // 26: grpc.testing.ScenarioResult.summary:type_name -> grpc.testing.ScenarioResultSummary 2182 27, // 27: grpc.testing.ScenarioResult.request_results:type_name -> grpc.testing.RequestResultCount 2183 28, // [28:28] is the sub-list for method output_type 2184 28, // [28:28] is the sub-list for method input_type 2185 28, // [28:28] is the sub-list for extension type_name 2186 28, // [28:28] is the sub-list for extension extendee 2187 0, // [0:28] is the sub-list for field type_name 2188 } 2189 2190 func init() { file_grpc_testing_control_proto_init() } 2191 func file_grpc_testing_control_proto_init() { 2192 if File_grpc_testing_control_proto != nil { 2193 return 2194 } 2195 file_grpc_testing_payloads_proto_init() 2196 file_grpc_testing_stats_proto_init() 2197 if !protoimpl.UnsafeEnabled { 2198 file_grpc_testing_control_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2199 switch v := v.(*PoissonParams); i { 2200 case 0: 2201 return &v.state 2202 case 1: 2203 return &v.sizeCache 2204 case 2: 2205 return &v.unknownFields 2206 default: 2207 return nil 2208 } 2209 } 2210 file_grpc_testing_control_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2211 switch v := v.(*ClosedLoopParams); i { 2212 case 0: 2213 return &v.state 2214 case 1: 2215 return &v.sizeCache 2216 case 2: 2217 return &v.unknownFields 2218 default: 2219 return nil 2220 } 2221 } 2222 file_grpc_testing_control_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 2223 switch v := v.(*LoadParams); i { 2224 case 0: 2225 return &v.state 2226 case 1: 2227 return &v.sizeCache 2228 case 2: 2229 return &v.unknownFields 2230 default: 2231 return nil 2232 } 2233 } 2234 file_grpc_testing_control_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 2235 switch v := v.(*SecurityParams); i { 2236 case 0: 2237 return &v.state 2238 case 1: 2239 return &v.sizeCache 2240 case 2: 2241 return &v.unknownFields 2242 default: 2243 return nil 2244 } 2245 } 2246 file_grpc_testing_control_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 2247 switch v := v.(*ChannelArg); i { 2248 case 0: 2249 return &v.state 2250 case 1: 2251 return &v.sizeCache 2252 case 2: 2253 return &v.unknownFields 2254 default: 2255 return nil 2256 } 2257 } 2258 file_grpc_testing_control_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 2259 switch v := v.(*ClientConfig); i { 2260 case 0: 2261 return &v.state 2262 case 1: 2263 return &v.sizeCache 2264 case 2: 2265 return &v.unknownFields 2266 default: 2267 return nil 2268 } 2269 } 2270 file_grpc_testing_control_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 2271 switch v := v.(*ClientStatus); i { 2272 case 0: 2273 return &v.state 2274 case 1: 2275 return &v.sizeCache 2276 case 2: 2277 return &v.unknownFields 2278 default: 2279 return nil 2280 } 2281 } 2282 file_grpc_testing_control_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 2283 switch v := v.(*Mark); i { 2284 case 0: 2285 return &v.state 2286 case 1: 2287 return &v.sizeCache 2288 case 2: 2289 return &v.unknownFields 2290 default: 2291 return nil 2292 } 2293 } 2294 file_grpc_testing_control_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 2295 switch v := v.(*ClientArgs); i { 2296 case 0: 2297 return &v.state 2298 case 1: 2299 return &v.sizeCache 2300 case 2: 2301 return &v.unknownFields 2302 default: 2303 return nil 2304 } 2305 } 2306 file_grpc_testing_control_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 2307 switch v := v.(*ServerConfig); i { 2308 case 0: 2309 return &v.state 2310 case 1: 2311 return &v.sizeCache 2312 case 2: 2313 return &v.unknownFields 2314 default: 2315 return nil 2316 } 2317 } 2318 file_grpc_testing_control_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 2319 switch v := v.(*ServerArgs); i { 2320 case 0: 2321 return &v.state 2322 case 1: 2323 return &v.sizeCache 2324 case 2: 2325 return &v.unknownFields 2326 default: 2327 return nil 2328 } 2329 } 2330 file_grpc_testing_control_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 2331 switch v := v.(*ServerStatus); i { 2332 case 0: 2333 return &v.state 2334 case 1: 2335 return &v.sizeCache 2336 case 2: 2337 return &v.unknownFields 2338 default: 2339 return nil 2340 } 2341 } 2342 file_grpc_testing_control_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 2343 switch v := v.(*CoreRequest); i { 2344 case 0: 2345 return &v.state 2346 case 1: 2347 return &v.sizeCache 2348 case 2: 2349 return &v.unknownFields 2350 default: 2351 return nil 2352 } 2353 } 2354 file_grpc_testing_control_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 2355 switch v := v.(*CoreResponse); i { 2356 case 0: 2357 return &v.state 2358 case 1: 2359 return &v.sizeCache 2360 case 2: 2361 return &v.unknownFields 2362 default: 2363 return nil 2364 } 2365 } 2366 file_grpc_testing_control_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 2367 switch v := v.(*Void); i { 2368 case 0: 2369 return &v.state 2370 case 1: 2371 return &v.sizeCache 2372 case 2: 2373 return &v.unknownFields 2374 default: 2375 return nil 2376 } 2377 } 2378 file_grpc_testing_control_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 2379 switch v := v.(*Scenario); i { 2380 case 0: 2381 return &v.state 2382 case 1: 2383 return &v.sizeCache 2384 case 2: 2385 return &v.unknownFields 2386 default: 2387 return nil 2388 } 2389 } 2390 file_grpc_testing_control_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 2391 switch v := v.(*Scenarios); i { 2392 case 0: 2393 return &v.state 2394 case 1: 2395 return &v.sizeCache 2396 case 2: 2397 return &v.unknownFields 2398 default: 2399 return nil 2400 } 2401 } 2402 file_grpc_testing_control_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 2403 switch v := v.(*ScenarioResultSummary); i { 2404 case 0: 2405 return &v.state 2406 case 1: 2407 return &v.sizeCache 2408 case 2: 2409 return &v.unknownFields 2410 default: 2411 return nil 2412 } 2413 } 2414 file_grpc_testing_control_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 2415 switch v := v.(*ScenarioResult); i { 2416 case 0: 2417 return &v.state 2418 case 1: 2419 return &v.sizeCache 2420 case 2: 2421 return &v.unknownFields 2422 default: 2423 return nil 2424 } 2425 } 2426 } 2427 file_grpc_testing_control_proto_msgTypes[2].OneofWrappers = []interface{}{ 2428 (*LoadParams_ClosedLoop)(nil), 2429 (*LoadParams_Poisson)(nil), 2430 } 2431 file_grpc_testing_control_proto_msgTypes[4].OneofWrappers = []interface{}{ 2432 (*ChannelArg_StrValue)(nil), 2433 (*ChannelArg_IntValue)(nil), 2434 } 2435 file_grpc_testing_control_proto_msgTypes[8].OneofWrappers = []interface{}{ 2436 (*ClientArgs_Setup)(nil), 2437 (*ClientArgs_Mark)(nil), 2438 } 2439 file_grpc_testing_control_proto_msgTypes[10].OneofWrappers = []interface{}{ 2440 (*ServerArgs_Setup)(nil), 2441 (*ServerArgs_Mark)(nil), 2442 } 2443 type x struct{} 2444 out := protoimpl.TypeBuilder{ 2445 File: protoimpl.DescBuilder{ 2446 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 2447 RawDescriptor: file_grpc_testing_control_proto_rawDesc, 2448 NumEnums: 3, 2449 NumMessages: 19, 2450 NumExtensions: 0, 2451 NumServices: 0, 2452 }, 2453 GoTypes: file_grpc_testing_control_proto_goTypes, 2454 DependencyIndexes: file_grpc_testing_control_proto_depIdxs, 2455 EnumInfos: file_grpc_testing_control_proto_enumTypes, 2456 MessageInfos: file_grpc_testing_control_proto_msgTypes, 2457 }.Build() 2458 File_grpc_testing_control_proto = out.File 2459 file_grpc_testing_control_proto_rawDesc = nil 2460 file_grpc_testing_control_proto_goTypes = nil 2461 file_grpc_testing_control_proto_depIdxs = nil 2462 }