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