mirror of https://github.com/grpc/grpc-go.git
				
				
				
			
		
			
				
	
	
		
			2494 lines
		
	
	
		
			92 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			2494 lines
		
	
	
		
			92 KiB
		
	
	
	
		
			Go
		
	
	
	
// Copyright 2015 gRPC authors.
 | 
						|
//
 | 
						|
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
// you may not use this file except in compliance with the License.
 | 
						|
// You may obtain a copy of the License at
 | 
						|
//
 | 
						|
//     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
//
 | 
						|
// Unless required by applicable law or agreed to in writing, software
 | 
						|
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
// See the License for the specific language governing permissions and
 | 
						|
// limitations under the License.
 | 
						|
 | 
						|
// Code generated by protoc-gen-go. DO NOT EDIT.
 | 
						|
// versions:
 | 
						|
// 	protoc-gen-go v1.25.0
 | 
						|
// 	protoc        v3.14.0
 | 
						|
// source: grpc/testing/control.proto
 | 
						|
 | 
						|
package grpc_testing
 | 
						|
 | 
						|
import (
 | 
						|
	proto "github.com/golang/protobuf/proto"
 | 
						|
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
 | 
						|
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
 | 
						|
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
 | 
						|
	reflect "reflect"
 | 
						|
	sync "sync"
 | 
						|
)
 | 
						|
 | 
						|
const (
 | 
						|
	// Verify that this generated code is sufficiently up-to-date.
 | 
						|
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
 | 
						|
	// Verify that runtime/protoimpl is sufficiently up-to-date.
 | 
						|
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 | 
						|
)
 | 
						|
 | 
						|
// This is a compile-time assertion that a sufficiently up-to-date version
 | 
						|
// of the legacy proto package is being used.
 | 
						|
const _ = proto.ProtoPackageIsVersion4
 | 
						|
 | 
						|
type ClientType int32
 | 
						|
 | 
						|
const (
 | 
						|
	// Many languages support a basic distinction between using
 | 
						|
	// sync or async client, and this allows the specification
 | 
						|
	ClientType_SYNC_CLIENT     ClientType = 0
 | 
						|
	ClientType_ASYNC_CLIENT    ClientType = 1
 | 
						|
	ClientType_OTHER_CLIENT    ClientType = 2 // used for some language-specific variants
 | 
						|
	ClientType_CALLBACK_CLIENT ClientType = 3
 | 
						|
)
 | 
						|
 | 
						|
// Enum value maps for ClientType.
 | 
						|
var (
 | 
						|
	ClientType_name = map[int32]string{
 | 
						|
		0: "SYNC_CLIENT",
 | 
						|
		1: "ASYNC_CLIENT",
 | 
						|
		2: "OTHER_CLIENT",
 | 
						|
		3: "CALLBACK_CLIENT",
 | 
						|
	}
 | 
						|
	ClientType_value = map[string]int32{
 | 
						|
		"SYNC_CLIENT":     0,
 | 
						|
		"ASYNC_CLIENT":    1,
 | 
						|
		"OTHER_CLIENT":    2,
 | 
						|
		"CALLBACK_CLIENT": 3,
 | 
						|
	}
 | 
						|
)
 | 
						|
 | 
						|
func (x ClientType) Enum() *ClientType {
 | 
						|
	p := new(ClientType)
 | 
						|
	*p = x
 | 
						|
	return p
 | 
						|
}
 | 
						|
 | 
						|
func (x ClientType) String() string {
 | 
						|
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 | 
						|
}
 | 
						|
 | 
						|
func (ClientType) Descriptor() protoreflect.EnumDescriptor {
 | 
						|
	return file_grpc_testing_control_proto_enumTypes[0].Descriptor()
 | 
						|
}
 | 
						|
 | 
						|
func (ClientType) Type() protoreflect.EnumType {
 | 
						|
	return &file_grpc_testing_control_proto_enumTypes[0]
 | 
						|
}
 | 
						|
 | 
						|
func (x ClientType) Number() protoreflect.EnumNumber {
 | 
						|
	return protoreflect.EnumNumber(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use ClientType.Descriptor instead.
 | 
						|
func (ClientType) EnumDescriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{0}
 | 
						|
}
 | 
						|
 | 
						|
type ServerType int32
 | 
						|
 | 
						|
const (
 | 
						|
	ServerType_SYNC_SERVER          ServerType = 0
 | 
						|
	ServerType_ASYNC_SERVER         ServerType = 1
 | 
						|
	ServerType_ASYNC_GENERIC_SERVER ServerType = 2
 | 
						|
	ServerType_OTHER_SERVER         ServerType = 3 // used for some language-specific variants
 | 
						|
	ServerType_CALLBACK_SERVER      ServerType = 4
 | 
						|
)
 | 
						|
 | 
						|
// Enum value maps for ServerType.
 | 
						|
var (
 | 
						|
	ServerType_name = map[int32]string{
 | 
						|
		0: "SYNC_SERVER",
 | 
						|
		1: "ASYNC_SERVER",
 | 
						|
		2: "ASYNC_GENERIC_SERVER",
 | 
						|
		3: "OTHER_SERVER",
 | 
						|
		4: "CALLBACK_SERVER",
 | 
						|
	}
 | 
						|
	ServerType_value = map[string]int32{
 | 
						|
		"SYNC_SERVER":          0,
 | 
						|
		"ASYNC_SERVER":         1,
 | 
						|
		"ASYNC_GENERIC_SERVER": 2,
 | 
						|
		"OTHER_SERVER":         3,
 | 
						|
		"CALLBACK_SERVER":      4,
 | 
						|
	}
 | 
						|
)
 | 
						|
 | 
						|
func (x ServerType) Enum() *ServerType {
 | 
						|
	p := new(ServerType)
 | 
						|
	*p = x
 | 
						|
	return p
 | 
						|
}
 | 
						|
 | 
						|
func (x ServerType) String() string {
 | 
						|
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 | 
						|
}
 | 
						|
 | 
						|
func (ServerType) Descriptor() protoreflect.EnumDescriptor {
 | 
						|
	return file_grpc_testing_control_proto_enumTypes[1].Descriptor()
 | 
						|
}
 | 
						|
 | 
						|
func (ServerType) Type() protoreflect.EnumType {
 | 
						|
	return &file_grpc_testing_control_proto_enumTypes[1]
 | 
						|
}
 | 
						|
 | 
						|
func (x ServerType) Number() protoreflect.EnumNumber {
 | 
						|
	return protoreflect.EnumNumber(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use ServerType.Descriptor instead.
 | 
						|
func (ServerType) EnumDescriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{1}
 | 
						|
}
 | 
						|
 | 
						|
type RpcType int32
 | 
						|
 | 
						|
const (
 | 
						|
	RpcType_UNARY                 RpcType = 0
 | 
						|
	RpcType_STREAMING             RpcType = 1
 | 
						|
	RpcType_STREAMING_FROM_CLIENT RpcType = 2
 | 
						|
	RpcType_STREAMING_FROM_SERVER RpcType = 3
 | 
						|
	RpcType_STREAMING_BOTH_WAYS   RpcType = 4
 | 
						|
)
 | 
						|
 | 
						|
// Enum value maps for RpcType.
 | 
						|
var (
 | 
						|
	RpcType_name = map[int32]string{
 | 
						|
		0: "UNARY",
 | 
						|
		1: "STREAMING",
 | 
						|
		2: "STREAMING_FROM_CLIENT",
 | 
						|
		3: "STREAMING_FROM_SERVER",
 | 
						|
		4: "STREAMING_BOTH_WAYS",
 | 
						|
	}
 | 
						|
	RpcType_value = map[string]int32{
 | 
						|
		"UNARY":                 0,
 | 
						|
		"STREAMING":             1,
 | 
						|
		"STREAMING_FROM_CLIENT": 2,
 | 
						|
		"STREAMING_FROM_SERVER": 3,
 | 
						|
		"STREAMING_BOTH_WAYS":   4,
 | 
						|
	}
 | 
						|
)
 | 
						|
 | 
						|
func (x RpcType) Enum() *RpcType {
 | 
						|
	p := new(RpcType)
 | 
						|
	*p = x
 | 
						|
	return p
 | 
						|
}
 | 
						|
 | 
						|
func (x RpcType) String() string {
 | 
						|
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 | 
						|
}
 | 
						|
 | 
						|
func (RpcType) Descriptor() protoreflect.EnumDescriptor {
 | 
						|
	return file_grpc_testing_control_proto_enumTypes[2].Descriptor()
 | 
						|
}
 | 
						|
 | 
						|
func (RpcType) Type() protoreflect.EnumType {
 | 
						|
	return &file_grpc_testing_control_proto_enumTypes[2]
 | 
						|
}
 | 
						|
 | 
						|
func (x RpcType) Number() protoreflect.EnumNumber {
 | 
						|
	return protoreflect.EnumNumber(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use RpcType.Descriptor instead.
 | 
						|
func (RpcType) EnumDescriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{2}
 | 
						|
}
 | 
						|
 | 
						|
// Parameters of poisson process distribution, which is a good representation
 | 
						|
// of activity coming in from independent identical stationary sources.
 | 
						|
type PoissonParams struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
 | 
						|
	// The rate of arrivals (a.k.a. lambda parameter of the exp distribution).
 | 
						|
	OfferedLoad float64 `protobuf:"fixed64,1,opt,name=offered_load,json=offeredLoad,proto3" json:"offered_load,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
func (x *PoissonParams) Reset() {
 | 
						|
	*x = PoissonParams{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[0]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *PoissonParams) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*PoissonParams) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *PoissonParams) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[0]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use PoissonParams.ProtoReflect.Descriptor instead.
 | 
						|
func (*PoissonParams) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{0}
 | 
						|
}
 | 
						|
 | 
						|
func (x *PoissonParams) GetOfferedLoad() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.OfferedLoad
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
// Once an RPC finishes, immediately start a new one.
 | 
						|
// No configuration parameters needed.
 | 
						|
type ClosedLoopParams struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClosedLoopParams) Reset() {
 | 
						|
	*x = ClosedLoopParams{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[1]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClosedLoopParams) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*ClosedLoopParams) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *ClosedLoopParams) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[1]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use ClosedLoopParams.ProtoReflect.Descriptor instead.
 | 
						|
func (*ClosedLoopParams) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{1}
 | 
						|
}
 | 
						|
 | 
						|
type LoadParams struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
 | 
						|
	// Types that are assignable to Load:
 | 
						|
	//	*LoadParams_ClosedLoop
 | 
						|
	//	*LoadParams_Poisson
 | 
						|
	Load isLoadParams_Load `protobuf_oneof:"load"`
 | 
						|
}
 | 
						|
 | 
						|
func (x *LoadParams) Reset() {
 | 
						|
	*x = LoadParams{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[2]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *LoadParams) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*LoadParams) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *LoadParams) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[2]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use LoadParams.ProtoReflect.Descriptor instead.
 | 
						|
func (*LoadParams) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{2}
 | 
						|
}
 | 
						|
 | 
						|
func (m *LoadParams) GetLoad() isLoadParams_Load {
 | 
						|
	if m != nil {
 | 
						|
		return m.Load
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *LoadParams) GetClosedLoop() *ClosedLoopParams {
 | 
						|
	if x, ok := x.GetLoad().(*LoadParams_ClosedLoop); ok {
 | 
						|
		return x.ClosedLoop
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *LoadParams) GetPoisson() *PoissonParams {
 | 
						|
	if x, ok := x.GetLoad().(*LoadParams_Poisson); ok {
 | 
						|
		return x.Poisson
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
type isLoadParams_Load interface {
 | 
						|
	isLoadParams_Load()
 | 
						|
}
 | 
						|
 | 
						|
type LoadParams_ClosedLoop struct {
 | 
						|
	ClosedLoop *ClosedLoopParams `protobuf:"bytes,1,opt,name=closed_loop,json=closedLoop,proto3,oneof"`
 | 
						|
}
 | 
						|
 | 
						|
type LoadParams_Poisson struct {
 | 
						|
	Poisson *PoissonParams `protobuf:"bytes,2,opt,name=poisson,proto3,oneof"`
 | 
						|
}
 | 
						|
 | 
						|
func (*LoadParams_ClosedLoop) isLoadParams_Load() {}
 | 
						|
 | 
						|
func (*LoadParams_Poisson) isLoadParams_Load() {}
 | 
						|
 | 
						|
// presence of SecurityParams implies use of TLS
 | 
						|
type SecurityParams struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
 | 
						|
	UseTestCa          bool   `protobuf:"varint,1,opt,name=use_test_ca,json=useTestCa,proto3" json:"use_test_ca,omitempty"`
 | 
						|
	ServerHostOverride string `protobuf:"bytes,2,opt,name=server_host_override,json=serverHostOverride,proto3" json:"server_host_override,omitempty"`
 | 
						|
	CredType           string `protobuf:"bytes,3,opt,name=cred_type,json=credType,proto3" json:"cred_type,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
func (x *SecurityParams) Reset() {
 | 
						|
	*x = SecurityParams{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[3]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *SecurityParams) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*SecurityParams) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *SecurityParams) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[3]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use SecurityParams.ProtoReflect.Descriptor instead.
 | 
						|
func (*SecurityParams) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{3}
 | 
						|
}
 | 
						|
 | 
						|
func (x *SecurityParams) GetUseTestCa() bool {
 | 
						|
	if x != nil {
 | 
						|
		return x.UseTestCa
 | 
						|
	}
 | 
						|
	return false
 | 
						|
}
 | 
						|
 | 
						|
func (x *SecurityParams) GetServerHostOverride() string {
 | 
						|
	if x != nil {
 | 
						|
		return x.ServerHostOverride
 | 
						|
	}
 | 
						|
	return ""
 | 
						|
}
 | 
						|
 | 
						|
func (x *SecurityParams) GetCredType() string {
 | 
						|
	if x != nil {
 | 
						|
		return x.CredType
 | 
						|
	}
 | 
						|
	return ""
 | 
						|
}
 | 
						|
 | 
						|
type ChannelArg struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
 | 
						|
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 | 
						|
	// Types that are assignable to Value:
 | 
						|
	//	*ChannelArg_StrValue
 | 
						|
	//	*ChannelArg_IntValue
 | 
						|
	Value isChannelArg_Value `protobuf_oneof:"value"`
 | 
						|
}
 | 
						|
 | 
						|
func (x *ChannelArg) Reset() {
 | 
						|
	*x = ChannelArg{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[4]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *ChannelArg) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*ChannelArg) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *ChannelArg) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[4]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use ChannelArg.ProtoReflect.Descriptor instead.
 | 
						|
func (*ChannelArg) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{4}
 | 
						|
}
 | 
						|
 | 
						|
func (x *ChannelArg) GetName() string {
 | 
						|
	if x != nil {
 | 
						|
		return x.Name
 | 
						|
	}
 | 
						|
	return ""
 | 
						|
}
 | 
						|
 | 
						|
func (m *ChannelArg) GetValue() isChannelArg_Value {
 | 
						|
	if m != nil {
 | 
						|
		return m.Value
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ChannelArg) GetStrValue() string {
 | 
						|
	if x, ok := x.GetValue().(*ChannelArg_StrValue); ok {
 | 
						|
		return x.StrValue
 | 
						|
	}
 | 
						|
	return ""
 | 
						|
}
 | 
						|
 | 
						|
func (x *ChannelArg) GetIntValue() int32 {
 | 
						|
	if x, ok := x.GetValue().(*ChannelArg_IntValue); ok {
 | 
						|
		return x.IntValue
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
type isChannelArg_Value interface {
 | 
						|
	isChannelArg_Value()
 | 
						|
}
 | 
						|
 | 
						|
type ChannelArg_StrValue struct {
 | 
						|
	StrValue string `protobuf:"bytes,2,opt,name=str_value,json=strValue,proto3,oneof"`
 | 
						|
}
 | 
						|
 | 
						|
type ChannelArg_IntValue struct {
 | 
						|
	IntValue int32 `protobuf:"varint,3,opt,name=int_value,json=intValue,proto3,oneof"`
 | 
						|
}
 | 
						|
 | 
						|
func (*ChannelArg_StrValue) isChannelArg_Value() {}
 | 
						|
 | 
						|
func (*ChannelArg_IntValue) isChannelArg_Value() {}
 | 
						|
 | 
						|
type ClientConfig struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
 | 
						|
	// List of targets to connect to. At least one target needs to be specified.
 | 
						|
	ServerTargets  []string        `protobuf:"bytes,1,rep,name=server_targets,json=serverTargets,proto3" json:"server_targets,omitempty"`
 | 
						|
	ClientType     ClientType      `protobuf:"varint,2,opt,name=client_type,json=clientType,proto3,enum=grpc.testing.ClientType" json:"client_type,omitempty"`
 | 
						|
	SecurityParams *SecurityParams `protobuf:"bytes,3,opt,name=security_params,json=securityParams,proto3" json:"security_params,omitempty"`
 | 
						|
	// How many concurrent RPCs to start for each channel.
 | 
						|
	// For synchronous client, use a separate thread for each outstanding RPC.
 | 
						|
	OutstandingRpcsPerChannel int32 `protobuf:"varint,4,opt,name=outstanding_rpcs_per_channel,json=outstandingRpcsPerChannel,proto3" json:"outstanding_rpcs_per_channel,omitempty"`
 | 
						|
	// Number of independent client channels to create.
 | 
						|
	// i-th channel will connect to server_target[i % server_targets.size()]
 | 
						|
	ClientChannels int32 `protobuf:"varint,5,opt,name=client_channels,json=clientChannels,proto3" json:"client_channels,omitempty"`
 | 
						|
	// Only for async client. Number of threads to use to start/manage RPCs.
 | 
						|
	AsyncClientThreads int32   `protobuf:"varint,7,opt,name=async_client_threads,json=asyncClientThreads,proto3" json:"async_client_threads,omitempty"`
 | 
						|
	RpcType            RpcType `protobuf:"varint,8,opt,name=rpc_type,json=rpcType,proto3,enum=grpc.testing.RpcType" json:"rpc_type,omitempty"`
 | 
						|
	// The requested load for the entire client (aggregated over all the threads).
 | 
						|
	LoadParams      *LoadParams      `protobuf:"bytes,10,opt,name=load_params,json=loadParams,proto3" json:"load_params,omitempty"`
 | 
						|
	PayloadConfig   *PayloadConfig   `protobuf:"bytes,11,opt,name=payload_config,json=payloadConfig,proto3" json:"payload_config,omitempty"`
 | 
						|
	HistogramParams *HistogramParams `protobuf:"bytes,12,opt,name=histogram_params,json=histogramParams,proto3" json:"histogram_params,omitempty"`
 | 
						|
	// Specify the cores we should run the client on, if desired
 | 
						|
	CoreList  []int32 `protobuf:"varint,13,rep,packed,name=core_list,json=coreList,proto3" json:"core_list,omitempty"`
 | 
						|
	CoreLimit int32   `protobuf:"varint,14,opt,name=core_limit,json=coreLimit,proto3" json:"core_limit,omitempty"`
 | 
						|
	// If we use an OTHER_CLIENT client_type, this string gives more detail
 | 
						|
	OtherClientApi string        `protobuf:"bytes,15,opt,name=other_client_api,json=otherClientApi,proto3" json:"other_client_api,omitempty"`
 | 
						|
	ChannelArgs    []*ChannelArg `protobuf:"bytes,16,rep,name=channel_args,json=channelArgs,proto3" json:"channel_args,omitempty"`
 | 
						|
	// Number of threads that share each completion queue
 | 
						|
	ThreadsPerCq int32 `protobuf:"varint,17,opt,name=threads_per_cq,json=threadsPerCq,proto3" json:"threads_per_cq,omitempty"`
 | 
						|
	// Number of messages on a stream before it gets finished/restarted
 | 
						|
	MessagesPerStream int32 `protobuf:"varint,18,opt,name=messages_per_stream,json=messagesPerStream,proto3" json:"messages_per_stream,omitempty"`
 | 
						|
	// Use coalescing API when possible.
 | 
						|
	UseCoalesceApi bool `protobuf:"varint,19,opt,name=use_coalesce_api,json=useCoalesceApi,proto3" json:"use_coalesce_api,omitempty"`
 | 
						|
	// If 0, disabled. Else, specifies the period between gathering latency
 | 
						|
	// medians in milliseconds.
 | 
						|
	MedianLatencyCollectionIntervalMillis int32 `protobuf:"varint,20,opt,name=median_latency_collection_interval_millis,json=medianLatencyCollectionIntervalMillis,proto3" json:"median_latency_collection_interval_millis,omitempty"`
 | 
						|
	// Number of client processes. 0 indicates no restriction.
 | 
						|
	ClientProcesses int32 `protobuf:"varint,21,opt,name=client_processes,json=clientProcesses,proto3" json:"client_processes,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) Reset() {
 | 
						|
	*x = ClientConfig{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[5]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*ClientConfig) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *ClientConfig) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[5]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use ClientConfig.ProtoReflect.Descriptor instead.
 | 
						|
func (*ClientConfig) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{5}
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetServerTargets() []string {
 | 
						|
	if x != nil {
 | 
						|
		return x.ServerTargets
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetClientType() ClientType {
 | 
						|
	if x != nil {
 | 
						|
		return x.ClientType
 | 
						|
	}
 | 
						|
	return ClientType_SYNC_CLIENT
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetSecurityParams() *SecurityParams {
 | 
						|
	if x != nil {
 | 
						|
		return x.SecurityParams
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetOutstandingRpcsPerChannel() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.OutstandingRpcsPerChannel
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetClientChannels() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.ClientChannels
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetAsyncClientThreads() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.AsyncClientThreads
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetRpcType() RpcType {
 | 
						|
	if x != nil {
 | 
						|
		return x.RpcType
 | 
						|
	}
 | 
						|
	return RpcType_UNARY
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetLoadParams() *LoadParams {
 | 
						|
	if x != nil {
 | 
						|
		return x.LoadParams
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetPayloadConfig() *PayloadConfig {
 | 
						|
	if x != nil {
 | 
						|
		return x.PayloadConfig
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetHistogramParams() *HistogramParams {
 | 
						|
	if x != nil {
 | 
						|
		return x.HistogramParams
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetCoreList() []int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.CoreList
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetCoreLimit() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.CoreLimit
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetOtherClientApi() string {
 | 
						|
	if x != nil {
 | 
						|
		return x.OtherClientApi
 | 
						|
	}
 | 
						|
	return ""
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetChannelArgs() []*ChannelArg {
 | 
						|
	if x != nil {
 | 
						|
		return x.ChannelArgs
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetThreadsPerCq() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.ThreadsPerCq
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetMessagesPerStream() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.MessagesPerStream
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetUseCoalesceApi() bool {
 | 
						|
	if x != nil {
 | 
						|
		return x.UseCoalesceApi
 | 
						|
	}
 | 
						|
	return false
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetMedianLatencyCollectionIntervalMillis() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.MedianLatencyCollectionIntervalMillis
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientConfig) GetClientProcesses() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.ClientProcesses
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
type ClientStatus struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
 | 
						|
	Stats *ClientStats `protobuf:"bytes,1,opt,name=stats,proto3" json:"stats,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientStatus) Reset() {
 | 
						|
	*x = ClientStatus{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[6]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientStatus) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*ClientStatus) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *ClientStatus) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[6]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use ClientStatus.ProtoReflect.Descriptor instead.
 | 
						|
func (*ClientStatus) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{6}
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientStatus) GetStats() *ClientStats {
 | 
						|
	if x != nil {
 | 
						|
		return x.Stats
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
// Request current stats
 | 
						|
type Mark struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
 | 
						|
	// if true, the stats will be reset after taking their snapshot.
 | 
						|
	Reset_ bool `protobuf:"varint,1,opt,name=reset,proto3" json:"reset,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
func (x *Mark) Reset() {
 | 
						|
	*x = Mark{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[7]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *Mark) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*Mark) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *Mark) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[7]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use Mark.ProtoReflect.Descriptor instead.
 | 
						|
func (*Mark) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{7}
 | 
						|
}
 | 
						|
 | 
						|
func (x *Mark) GetReset_() bool {
 | 
						|
	if x != nil {
 | 
						|
		return x.Reset_
 | 
						|
	}
 | 
						|
	return false
 | 
						|
}
 | 
						|
 | 
						|
type ClientArgs struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
 | 
						|
	// Types that are assignable to Argtype:
 | 
						|
	//	*ClientArgs_Setup
 | 
						|
	//	*ClientArgs_Mark
 | 
						|
	Argtype isClientArgs_Argtype `protobuf_oneof:"argtype"`
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientArgs) Reset() {
 | 
						|
	*x = ClientArgs{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[8]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientArgs) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*ClientArgs) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *ClientArgs) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[8]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use ClientArgs.ProtoReflect.Descriptor instead.
 | 
						|
func (*ClientArgs) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{8}
 | 
						|
}
 | 
						|
 | 
						|
func (m *ClientArgs) GetArgtype() isClientArgs_Argtype {
 | 
						|
	if m != nil {
 | 
						|
		return m.Argtype
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientArgs) GetSetup() *ClientConfig {
 | 
						|
	if x, ok := x.GetArgtype().(*ClientArgs_Setup); ok {
 | 
						|
		return x.Setup
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ClientArgs) GetMark() *Mark {
 | 
						|
	if x, ok := x.GetArgtype().(*ClientArgs_Mark); ok {
 | 
						|
		return x.Mark
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
type isClientArgs_Argtype interface {
 | 
						|
	isClientArgs_Argtype()
 | 
						|
}
 | 
						|
 | 
						|
type ClientArgs_Setup struct {
 | 
						|
	Setup *ClientConfig `protobuf:"bytes,1,opt,name=setup,proto3,oneof"`
 | 
						|
}
 | 
						|
 | 
						|
type ClientArgs_Mark struct {
 | 
						|
	Mark *Mark `protobuf:"bytes,2,opt,name=mark,proto3,oneof"`
 | 
						|
}
 | 
						|
 | 
						|
func (*ClientArgs_Setup) isClientArgs_Argtype() {}
 | 
						|
 | 
						|
func (*ClientArgs_Mark) isClientArgs_Argtype() {}
 | 
						|
 | 
						|
type ServerConfig struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
 | 
						|
	ServerType     ServerType      `protobuf:"varint,1,opt,name=server_type,json=serverType,proto3,enum=grpc.testing.ServerType" json:"server_type,omitempty"`
 | 
						|
	SecurityParams *SecurityParams `protobuf:"bytes,2,opt,name=security_params,json=securityParams,proto3" json:"security_params,omitempty"`
 | 
						|
	// Port on which to listen. Zero means pick unused port.
 | 
						|
	Port int32 `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"`
 | 
						|
	// Only for async server. Number of threads used to serve the requests.
 | 
						|
	AsyncServerThreads int32 `protobuf:"varint,7,opt,name=async_server_threads,json=asyncServerThreads,proto3" json:"async_server_threads,omitempty"`
 | 
						|
	// Specify the number of cores to limit server to, if desired
 | 
						|
	CoreLimit int32 `protobuf:"varint,8,opt,name=core_limit,json=coreLimit,proto3" json:"core_limit,omitempty"`
 | 
						|
	// payload config, used in generic server.
 | 
						|
	// Note this must NOT be used in proto (non-generic) servers. For proto servers,
 | 
						|
	// 'response sizes' must be configured from the 'response_size' field of the
 | 
						|
	// 'SimpleRequest' objects in RPC requests.
 | 
						|
	PayloadConfig *PayloadConfig `protobuf:"bytes,9,opt,name=payload_config,json=payloadConfig,proto3" json:"payload_config,omitempty"`
 | 
						|
	// Specify the cores we should run the server on, if desired
 | 
						|
	CoreList []int32 `protobuf:"varint,10,rep,packed,name=core_list,json=coreList,proto3" json:"core_list,omitempty"`
 | 
						|
	// If we use an OTHER_SERVER client_type, this string gives more detail
 | 
						|
	OtherServerApi string `protobuf:"bytes,11,opt,name=other_server_api,json=otherServerApi,proto3" json:"other_server_api,omitempty"`
 | 
						|
	// Number of threads that share each completion queue
 | 
						|
	ThreadsPerCq int32 `protobuf:"varint,12,opt,name=threads_per_cq,json=threadsPerCq,proto3" json:"threads_per_cq,omitempty"`
 | 
						|
	// Buffer pool size (no buffer pool specified if unset)
 | 
						|
	ResourceQuotaSize int32         `protobuf:"varint,1001,opt,name=resource_quota_size,json=resourceQuotaSize,proto3" json:"resource_quota_size,omitempty"`
 | 
						|
	ChannelArgs       []*ChannelArg `protobuf:"bytes,1002,rep,name=channel_args,json=channelArgs,proto3" json:"channel_args,omitempty"`
 | 
						|
	// Number of server processes. 0 indicates no restriction.
 | 
						|
	ServerProcesses int32 `protobuf:"varint,21,opt,name=server_processes,json=serverProcesses,proto3" json:"server_processes,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerConfig) Reset() {
 | 
						|
	*x = ServerConfig{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[9]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerConfig) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*ServerConfig) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *ServerConfig) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[9]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use ServerConfig.ProtoReflect.Descriptor instead.
 | 
						|
func (*ServerConfig) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{9}
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerConfig) GetServerType() ServerType {
 | 
						|
	if x != nil {
 | 
						|
		return x.ServerType
 | 
						|
	}
 | 
						|
	return ServerType_SYNC_SERVER
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerConfig) GetSecurityParams() *SecurityParams {
 | 
						|
	if x != nil {
 | 
						|
		return x.SecurityParams
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerConfig) GetPort() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.Port
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerConfig) GetAsyncServerThreads() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.AsyncServerThreads
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerConfig) GetCoreLimit() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.CoreLimit
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerConfig) GetPayloadConfig() *PayloadConfig {
 | 
						|
	if x != nil {
 | 
						|
		return x.PayloadConfig
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerConfig) GetCoreList() []int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.CoreList
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerConfig) GetOtherServerApi() string {
 | 
						|
	if x != nil {
 | 
						|
		return x.OtherServerApi
 | 
						|
	}
 | 
						|
	return ""
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerConfig) GetThreadsPerCq() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.ThreadsPerCq
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerConfig) GetResourceQuotaSize() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.ResourceQuotaSize
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerConfig) GetChannelArgs() []*ChannelArg {
 | 
						|
	if x != nil {
 | 
						|
		return x.ChannelArgs
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerConfig) GetServerProcesses() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.ServerProcesses
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
type ServerArgs struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
 | 
						|
	// Types that are assignable to Argtype:
 | 
						|
	//	*ServerArgs_Setup
 | 
						|
	//	*ServerArgs_Mark
 | 
						|
	Argtype isServerArgs_Argtype `protobuf_oneof:"argtype"`
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerArgs) Reset() {
 | 
						|
	*x = ServerArgs{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[10]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerArgs) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*ServerArgs) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *ServerArgs) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[10]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use ServerArgs.ProtoReflect.Descriptor instead.
 | 
						|
func (*ServerArgs) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{10}
 | 
						|
}
 | 
						|
 | 
						|
func (m *ServerArgs) GetArgtype() isServerArgs_Argtype {
 | 
						|
	if m != nil {
 | 
						|
		return m.Argtype
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerArgs) GetSetup() *ServerConfig {
 | 
						|
	if x, ok := x.GetArgtype().(*ServerArgs_Setup); ok {
 | 
						|
		return x.Setup
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerArgs) GetMark() *Mark {
 | 
						|
	if x, ok := x.GetArgtype().(*ServerArgs_Mark); ok {
 | 
						|
		return x.Mark
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
type isServerArgs_Argtype interface {
 | 
						|
	isServerArgs_Argtype()
 | 
						|
}
 | 
						|
 | 
						|
type ServerArgs_Setup struct {
 | 
						|
	Setup *ServerConfig `protobuf:"bytes,1,opt,name=setup,proto3,oneof"`
 | 
						|
}
 | 
						|
 | 
						|
type ServerArgs_Mark struct {
 | 
						|
	Mark *Mark `protobuf:"bytes,2,opt,name=mark,proto3,oneof"`
 | 
						|
}
 | 
						|
 | 
						|
func (*ServerArgs_Setup) isServerArgs_Argtype() {}
 | 
						|
 | 
						|
func (*ServerArgs_Mark) isServerArgs_Argtype() {}
 | 
						|
 | 
						|
type ServerStatus struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
 | 
						|
	Stats *ServerStats `protobuf:"bytes,1,opt,name=stats,proto3" json:"stats,omitempty"`
 | 
						|
	// the port bound by the server
 | 
						|
	Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
 | 
						|
	// Number of cores available to the server
 | 
						|
	Cores int32 `protobuf:"varint,3,opt,name=cores,proto3" json:"cores,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerStatus) Reset() {
 | 
						|
	*x = ServerStatus{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[11]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerStatus) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*ServerStatus) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *ServerStatus) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[11]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use ServerStatus.ProtoReflect.Descriptor instead.
 | 
						|
func (*ServerStatus) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{11}
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerStatus) GetStats() *ServerStats {
 | 
						|
	if x != nil {
 | 
						|
		return x.Stats
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerStatus) GetPort() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.Port
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ServerStatus) GetCores() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.Cores
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
type CoreRequest struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
}
 | 
						|
 | 
						|
func (x *CoreRequest) Reset() {
 | 
						|
	*x = CoreRequest{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[12]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *CoreRequest) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*CoreRequest) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *CoreRequest) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[12]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use CoreRequest.ProtoReflect.Descriptor instead.
 | 
						|
func (*CoreRequest) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{12}
 | 
						|
}
 | 
						|
 | 
						|
type CoreResponse struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
 | 
						|
	// Number of cores available on the server
 | 
						|
	Cores int32 `protobuf:"varint,1,opt,name=cores,proto3" json:"cores,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
func (x *CoreResponse) Reset() {
 | 
						|
	*x = CoreResponse{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[13]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *CoreResponse) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*CoreResponse) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *CoreResponse) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[13]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use CoreResponse.ProtoReflect.Descriptor instead.
 | 
						|
func (*CoreResponse) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{13}
 | 
						|
}
 | 
						|
 | 
						|
func (x *CoreResponse) GetCores() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.Cores
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
type Void struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
}
 | 
						|
 | 
						|
func (x *Void) Reset() {
 | 
						|
	*x = Void{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[14]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *Void) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*Void) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *Void) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[14]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use Void.ProtoReflect.Descriptor instead.
 | 
						|
func (*Void) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{14}
 | 
						|
}
 | 
						|
 | 
						|
// A single performance scenario: input to qps_json_driver
 | 
						|
type Scenario struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
 | 
						|
	// Human readable name for this scenario
 | 
						|
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 | 
						|
	// Client configuration
 | 
						|
	ClientConfig *ClientConfig `protobuf:"bytes,2,opt,name=client_config,json=clientConfig,proto3" json:"client_config,omitempty"`
 | 
						|
	// Number of clients to start for the test
 | 
						|
	NumClients int32 `protobuf:"varint,3,opt,name=num_clients,json=numClients,proto3" json:"num_clients,omitempty"`
 | 
						|
	// Server configuration
 | 
						|
	ServerConfig *ServerConfig `protobuf:"bytes,4,opt,name=server_config,json=serverConfig,proto3" json:"server_config,omitempty"`
 | 
						|
	// Number of servers to start for the test
 | 
						|
	NumServers int32 `protobuf:"varint,5,opt,name=num_servers,json=numServers,proto3" json:"num_servers,omitempty"`
 | 
						|
	// Warmup period, in seconds
 | 
						|
	WarmupSeconds int32 `protobuf:"varint,6,opt,name=warmup_seconds,json=warmupSeconds,proto3" json:"warmup_seconds,omitempty"`
 | 
						|
	// Benchmark time, in seconds
 | 
						|
	BenchmarkSeconds int32 `protobuf:"varint,7,opt,name=benchmark_seconds,json=benchmarkSeconds,proto3" json:"benchmark_seconds,omitempty"`
 | 
						|
	// Number of workers to spawn locally (usually zero)
 | 
						|
	SpawnLocalWorkerCount int32 `protobuf:"varint,8,opt,name=spawn_local_worker_count,json=spawnLocalWorkerCount,proto3" json:"spawn_local_worker_count,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
func (x *Scenario) Reset() {
 | 
						|
	*x = Scenario{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[15]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *Scenario) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*Scenario) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *Scenario) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[15]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use Scenario.ProtoReflect.Descriptor instead.
 | 
						|
func (*Scenario) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{15}
 | 
						|
}
 | 
						|
 | 
						|
func (x *Scenario) GetName() string {
 | 
						|
	if x != nil {
 | 
						|
		return x.Name
 | 
						|
	}
 | 
						|
	return ""
 | 
						|
}
 | 
						|
 | 
						|
func (x *Scenario) GetClientConfig() *ClientConfig {
 | 
						|
	if x != nil {
 | 
						|
		return x.ClientConfig
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *Scenario) GetNumClients() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.NumClients
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *Scenario) GetServerConfig() *ServerConfig {
 | 
						|
	if x != nil {
 | 
						|
		return x.ServerConfig
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *Scenario) GetNumServers() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.NumServers
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *Scenario) GetWarmupSeconds() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.WarmupSeconds
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *Scenario) GetBenchmarkSeconds() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.BenchmarkSeconds
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *Scenario) GetSpawnLocalWorkerCount() int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.SpawnLocalWorkerCount
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
// A set of scenarios to be run with qps_json_driver
 | 
						|
type Scenarios struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
 | 
						|
	Scenarios []*Scenario `protobuf:"bytes,1,rep,name=scenarios,proto3" json:"scenarios,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
func (x *Scenarios) Reset() {
 | 
						|
	*x = Scenarios{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[16]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *Scenarios) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*Scenarios) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *Scenarios) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[16]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use Scenarios.ProtoReflect.Descriptor instead.
 | 
						|
func (*Scenarios) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{16}
 | 
						|
}
 | 
						|
 | 
						|
func (x *Scenarios) GetScenarios() []*Scenario {
 | 
						|
	if x != nil {
 | 
						|
		return x.Scenarios
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
// Basic summary that can be computed from ClientStats and ServerStats
 | 
						|
// once the scenario has finished.
 | 
						|
type ScenarioResultSummary struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
 | 
						|
	// Total number of operations per second over all clients. What is counted as 1 'operation' depends on the benchmark scenarios:
 | 
						|
	// For unary benchmarks, an operation is processing of a single unary RPC.
 | 
						|
	// For streaming benchmarks, an operation is processing of a single ping pong of request and response.
 | 
						|
	Qps float64 `protobuf:"fixed64,1,opt,name=qps,proto3" json:"qps,omitempty"`
 | 
						|
	// QPS per server core.
 | 
						|
	QpsPerServerCore float64 `protobuf:"fixed64,2,opt,name=qps_per_server_core,json=qpsPerServerCore,proto3" json:"qps_per_server_core,omitempty"`
 | 
						|
	// The total server cpu load based on system time across all server processes, expressed as percentage of a single cpu core.
 | 
						|
	// 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
 | 
						|
	// processes, the value could > 100 when there are multiple servers or a single server using multiple threads and cores.
 | 
						|
	// Same explanation for the total client cpu load below.
 | 
						|
	ServerSystemTime float64 `protobuf:"fixed64,3,opt,name=server_system_time,json=serverSystemTime,proto3" json:"server_system_time,omitempty"`
 | 
						|
	// 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%)
 | 
						|
	ServerUserTime float64 `protobuf:"fixed64,4,opt,name=server_user_time,json=serverUserTime,proto3" json:"server_user_time,omitempty"`
 | 
						|
	// 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%)
 | 
						|
	ClientSystemTime float64 `protobuf:"fixed64,5,opt,name=client_system_time,json=clientSystemTime,proto3" json:"client_system_time,omitempty"`
 | 
						|
	// 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%)
 | 
						|
	ClientUserTime float64 `protobuf:"fixed64,6,opt,name=client_user_time,json=clientUserTime,proto3" json:"client_user_time,omitempty"`
 | 
						|
	// X% latency percentiles (in nanoseconds)
 | 
						|
	Latency_50  float64 `protobuf:"fixed64,7,opt,name=latency_50,json=latency50,proto3" json:"latency_50,omitempty"`
 | 
						|
	Latency_90  float64 `protobuf:"fixed64,8,opt,name=latency_90,json=latency90,proto3" json:"latency_90,omitempty"`
 | 
						|
	Latency_95  float64 `protobuf:"fixed64,9,opt,name=latency_95,json=latency95,proto3" json:"latency_95,omitempty"`
 | 
						|
	Latency_99  float64 `protobuf:"fixed64,10,opt,name=latency_99,json=latency99,proto3" json:"latency_99,omitempty"`
 | 
						|
	Latency_999 float64 `protobuf:"fixed64,11,opt,name=latency_999,json=latency999,proto3" json:"latency_999,omitempty"`
 | 
						|
	// server cpu usage percentage
 | 
						|
	ServerCpuUsage float64 `protobuf:"fixed64,12,opt,name=server_cpu_usage,json=serverCpuUsage,proto3" json:"server_cpu_usage,omitempty"`
 | 
						|
	// Number of requests that succeeded/failed
 | 
						|
	SuccessfulRequestsPerSecond float64 `protobuf:"fixed64,13,opt,name=successful_requests_per_second,json=successfulRequestsPerSecond,proto3" json:"successful_requests_per_second,omitempty"`
 | 
						|
	FailedRequestsPerSecond     float64 `protobuf:"fixed64,14,opt,name=failed_requests_per_second,json=failedRequestsPerSecond,proto3" json:"failed_requests_per_second,omitempty"`
 | 
						|
	// Number of polls called inside completion queue per request
 | 
						|
	ClientPollsPerRequest float64 `protobuf:"fixed64,15,opt,name=client_polls_per_request,json=clientPollsPerRequest,proto3" json:"client_polls_per_request,omitempty"`
 | 
						|
	ServerPollsPerRequest float64 `protobuf:"fixed64,16,opt,name=server_polls_per_request,json=serverPollsPerRequest,proto3" json:"server_polls_per_request,omitempty"`
 | 
						|
	// Queries per CPU-sec over all servers or clients
 | 
						|
	ServerQueriesPerCpuSec float64 `protobuf:"fixed64,17,opt,name=server_queries_per_cpu_sec,json=serverQueriesPerCpuSec,proto3" json:"server_queries_per_cpu_sec,omitempty"`
 | 
						|
	ClientQueriesPerCpuSec float64 `protobuf:"fixed64,18,opt,name=client_queries_per_cpu_sec,json=clientQueriesPerCpuSec,proto3" json:"client_queries_per_cpu_sec,omitempty"`
 | 
						|
	// Start and end time for the test scenario
 | 
						|
	StartTime *timestamppb.Timestamp `protobuf:"bytes,19,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 | 
						|
	EndTime   *timestamppb.Timestamp `protobuf:"bytes,20,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) Reset() {
 | 
						|
	*x = ScenarioResultSummary{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[17]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*ScenarioResultSummary) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[17]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use ScenarioResultSummary.ProtoReflect.Descriptor instead.
 | 
						|
func (*ScenarioResultSummary) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{17}
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetQps() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.Qps
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetQpsPerServerCore() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.QpsPerServerCore
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetServerSystemTime() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.ServerSystemTime
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetServerUserTime() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.ServerUserTime
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetClientSystemTime() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.ClientSystemTime
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetClientUserTime() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.ClientUserTime
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetLatency_50() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.Latency_50
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetLatency_90() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.Latency_90
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetLatency_95() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.Latency_95
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetLatency_99() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.Latency_99
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetLatency_999() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.Latency_999
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetServerCpuUsage() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.ServerCpuUsage
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetSuccessfulRequestsPerSecond() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.SuccessfulRequestsPerSecond
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetFailedRequestsPerSecond() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.FailedRequestsPerSecond
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetClientPollsPerRequest() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.ClientPollsPerRequest
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetServerPollsPerRequest() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.ServerPollsPerRequest
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetServerQueriesPerCpuSec() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.ServerQueriesPerCpuSec
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetClientQueriesPerCpuSec() float64 {
 | 
						|
	if x != nil {
 | 
						|
		return x.ClientQueriesPerCpuSec
 | 
						|
	}
 | 
						|
	return 0
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetStartTime() *timestamppb.Timestamp {
 | 
						|
	if x != nil {
 | 
						|
		return x.StartTime
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResultSummary) GetEndTime() *timestamppb.Timestamp {
 | 
						|
	if x != nil {
 | 
						|
		return x.EndTime
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
// Results of a single benchmark scenario.
 | 
						|
type ScenarioResult struct {
 | 
						|
	state         protoimpl.MessageState
 | 
						|
	sizeCache     protoimpl.SizeCache
 | 
						|
	unknownFields protoimpl.UnknownFields
 | 
						|
 | 
						|
	// Inputs used to run the scenario.
 | 
						|
	Scenario *Scenario `protobuf:"bytes,1,opt,name=scenario,proto3" json:"scenario,omitempty"`
 | 
						|
	// Histograms from all clients merged into one histogram.
 | 
						|
	Latencies *HistogramData `protobuf:"bytes,2,opt,name=latencies,proto3" json:"latencies,omitempty"`
 | 
						|
	// Client stats for each client
 | 
						|
	ClientStats []*ClientStats `protobuf:"bytes,3,rep,name=client_stats,json=clientStats,proto3" json:"client_stats,omitempty"`
 | 
						|
	// Server stats for each server
 | 
						|
	ServerStats []*ServerStats `protobuf:"bytes,4,rep,name=server_stats,json=serverStats,proto3" json:"server_stats,omitempty"`
 | 
						|
	// Number of cores available to each server
 | 
						|
	ServerCores []int32 `protobuf:"varint,5,rep,packed,name=server_cores,json=serverCores,proto3" json:"server_cores,omitempty"`
 | 
						|
	// An after-the-fact computed summary
 | 
						|
	Summary *ScenarioResultSummary `protobuf:"bytes,6,opt,name=summary,proto3" json:"summary,omitempty"`
 | 
						|
	// Information on success or failure of each worker
 | 
						|
	ClientSuccess []bool `protobuf:"varint,7,rep,packed,name=client_success,json=clientSuccess,proto3" json:"client_success,omitempty"`
 | 
						|
	ServerSuccess []bool `protobuf:"varint,8,rep,packed,name=server_success,json=serverSuccess,proto3" json:"server_success,omitempty"`
 | 
						|
	// Number of failed requests (one row per status code seen)
 | 
						|
	RequestResults []*RequestResultCount `protobuf:"bytes,9,rep,name=request_results,json=requestResults,proto3" json:"request_results,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResult) Reset() {
 | 
						|
	*x = ScenarioResult{}
 | 
						|
	if protoimpl.UnsafeEnabled {
 | 
						|
		mi := &file_grpc_testing_control_proto_msgTypes[18]
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		ms.StoreMessageInfo(mi)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResult) String() string {
 | 
						|
	return protoimpl.X.MessageStringOf(x)
 | 
						|
}
 | 
						|
 | 
						|
func (*ScenarioResult) ProtoMessage() {}
 | 
						|
 | 
						|
func (x *ScenarioResult) ProtoReflect() protoreflect.Message {
 | 
						|
	mi := &file_grpc_testing_control_proto_msgTypes[18]
 | 
						|
	if protoimpl.UnsafeEnabled && x != nil {
 | 
						|
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
						|
		if ms.LoadMessageInfo() == nil {
 | 
						|
			ms.StoreMessageInfo(mi)
 | 
						|
		}
 | 
						|
		return ms
 | 
						|
	}
 | 
						|
	return mi.MessageOf(x)
 | 
						|
}
 | 
						|
 | 
						|
// Deprecated: Use ScenarioResult.ProtoReflect.Descriptor instead.
 | 
						|
func (*ScenarioResult) Descriptor() ([]byte, []int) {
 | 
						|
	return file_grpc_testing_control_proto_rawDescGZIP(), []int{18}
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResult) GetScenario() *Scenario {
 | 
						|
	if x != nil {
 | 
						|
		return x.Scenario
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResult) GetLatencies() *HistogramData {
 | 
						|
	if x != nil {
 | 
						|
		return x.Latencies
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResult) GetClientStats() []*ClientStats {
 | 
						|
	if x != nil {
 | 
						|
		return x.ClientStats
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResult) GetServerStats() []*ServerStats {
 | 
						|
	if x != nil {
 | 
						|
		return x.ServerStats
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResult) GetServerCores() []int32 {
 | 
						|
	if x != nil {
 | 
						|
		return x.ServerCores
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResult) GetSummary() *ScenarioResultSummary {
 | 
						|
	if x != nil {
 | 
						|
		return x.Summary
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResult) GetClientSuccess() []bool {
 | 
						|
	if x != nil {
 | 
						|
		return x.ClientSuccess
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResult) GetServerSuccess() []bool {
 | 
						|
	if x != nil {
 | 
						|
		return x.ServerSuccess
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func (x *ScenarioResult) GetRequestResults() []*RequestResultCount {
 | 
						|
	if x != nil {
 | 
						|
		return x.RequestResults
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
var File_grpc_testing_control_proto protoreflect.FileDescriptor
 | 
						|
 | 
						|
var file_grpc_testing_control_proto_rawDesc = []byte{
 | 
						|
	0x0a, 0x1a, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x63,
 | 
						|
	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x67, 0x72,
 | 
						|
	0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x1a, 0x1b, 0x67, 0x72, 0x70, 0x63,
 | 
						|
	0x2f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64,
 | 
						|
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x65,
 | 
						|
	0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
 | 
						|
	0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
 | 
						|
	0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f,
 | 
						|
	0x74, 0x6f, 0x22, 0x32, 0x0a, 0x0d, 0x50, 0x6f, 0x69, 0x73, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72,
 | 
						|
	0x61, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x6c,
 | 
						|
	0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x65, 0x72,
 | 
						|
	0x65, 0x64, 0x4c, 0x6f, 0x61, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64,
 | 
						|
	0x4c, 0x6f, 0x6f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x0a, 0x4c,
 | 
						|
	0x6f, 0x61, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x41, 0x0a, 0x0b, 0x63, 0x6c, 0x6f,
 | 
						|
	0x73, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e,
 | 
						|
	0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x6c,
 | 
						|
	0x6f, 0x73, 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00,
 | 
						|
	0x52, 0x0a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x12, 0x37, 0x0a, 0x07,
 | 
						|
	0x70, 0x6f, 0x69, 0x73, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
 | 
						|
	0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x50, 0x6f, 0x69,
 | 
						|
	0x73, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x07, 0x70, 0x6f,
 | 
						|
	0x69, 0x73, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x7f, 0x0a,
 | 
						|
	0x0e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12,
 | 
						|
	0x1e, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x18, 0x01,
 | 
						|
	0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x75, 0x73, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x12,
 | 
						|
	0x30, 0x0a, 0x14, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6f,
 | 
						|
	0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73,
 | 
						|
	0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
 | 
						|
	0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03,
 | 
						|
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x72, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x67,
 | 
						|
	0x0a, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x72, 0x67, 0x12, 0x12, 0x0a, 0x04,
 | 
						|
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
 | 
						|
	0x12, 0x1d, 0x0a, 0x09, 0x73, 0x74, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
 | 
						|
	0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x74, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12,
 | 
						|
	0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01,
 | 
						|
	0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07,
 | 
						|
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf6, 0x07, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65,
 | 
						|
	0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76,
 | 
						|
	0x65, 0x72, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09,
 | 
						|
	0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12,
 | 
						|
	0x39, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02,
 | 
						|
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74,
 | 
						|
	0x69, 0x6e, 0x67, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a,
 | 
						|
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x73, 0x65,
 | 
						|
	0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20,
 | 
						|
	0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
 | 
						|
	0x6e, 0x67, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d,
 | 
						|
	0x73, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d,
 | 
						|
	0x73, 0x12, 0x3f, 0x0a, 0x1c, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67,
 | 
						|
	0x5f, 0x72, 0x70, 0x63, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
 | 
						|
	0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e,
 | 
						|
	0x64, 0x69, 0x6e, 0x67, 0x52, 0x70, 0x63, 0x73, 0x50, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e,
 | 
						|
	0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61,
 | 
						|
	0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x6c, 0x69,
 | 
						|
	0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x61,
 | 
						|
	0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65,
 | 
						|
	0x61, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x73, 0x79, 0x6e, 0x63,
 | 
						|
	0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x30, 0x0a,
 | 
						|
	0x08, 0x72, 0x70, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32,
 | 
						|
	0x15, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x52,
 | 
						|
	0x70, 0x63, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x72, 0x70, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12,
 | 
						|
	0x39, 0x0a, 0x0b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0a,
 | 
						|
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74,
 | 
						|
	0x69, 0x6e, 0x67, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0a,
 | 
						|
	0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x70, 0x61,
 | 
						|
	0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, 0x20, 0x01,
 | 
						|
	0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e,
 | 
						|
	0x67, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
 | 
						|
	0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x48,
 | 
						|
	0x0a, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x70, 0x61, 0x72, 0x61,
 | 
						|
	0x6d, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e,
 | 
						|
	0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61,
 | 
						|
	0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72,
 | 
						|
	0x61, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x72, 0x65,
 | 
						|
	0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6f, 0x72,
 | 
						|
	0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6c, 0x69,
 | 
						|
	0x6d, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x72, 0x65, 0x4c,
 | 
						|
	0x69, 0x6d, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6c,
 | 
						|
	0x69, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
 | 
						|
	0x6f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x69, 0x12, 0x3b,
 | 
						|
	0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x10,
 | 
						|
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74,
 | 
						|
	0x69, 0x6e, 0x67, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x72, 0x67, 0x52, 0x0b,
 | 
						|
	0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x72, 0x67, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x74,
 | 
						|
	0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x71, 0x18, 0x11, 0x20,
 | 
						|
	0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x50, 0x65, 0x72, 0x43,
 | 
						|
	0x71, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x70, 0x65,
 | 
						|
	0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11,
 | 
						|
	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61,
 | 
						|
	0x6d, 0x12, 0x28, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x61, 0x6c, 0x65, 0x73, 0x63,
 | 
						|
	0x65, 0x5f, 0x61, 0x70, 0x69, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x73, 0x65,
 | 
						|
	0x43, 0x6f, 0x61, 0x6c, 0x65, 0x73, 0x63, 0x65, 0x41, 0x70, 0x69, 0x12, 0x58, 0x0a, 0x29, 0x6d,
 | 
						|
	0x65, 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x63, 0x6f,
 | 
						|
	0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61,
 | 
						|
	0x6c, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x25,
 | 
						|
	0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x6c,
 | 
						|
	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x4d,
 | 
						|
	0x69, 0x6c, 0x6c, 0x69, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f,
 | 
						|
	0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52,
 | 
						|
	0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73,
 | 
						|
	0x22, 0x3f, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
 | 
						|
	0x12, 0x2f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
 | 
						|
	0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43,
 | 
						|
	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
 | 
						|
	0x73, 0x22, 0x1c, 0x0a, 0x04, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x73,
 | 
						|
	0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x73, 0x65, 0x74, 0x22,
 | 
						|
	0x75, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x67, 0x73, 0x12, 0x32, 0x0a,
 | 
						|
	0x05, 0x73, 0x65, 0x74, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
 | 
						|
	0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x6c, 0x69, 0x65,
 | 
						|
	0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x05, 0x73, 0x65, 0x74, 0x75,
 | 
						|
	0x70, 0x12, 0x28, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
 | 
						|
	0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4d,
 | 
						|
	0x61, 0x72, 0x6b, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x61,
 | 
						|
	0x72, 0x67, 0x74, 0x79, 0x70, 0x65, 0x22, 0xc0, 0x04, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65,
 | 
						|
	0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65,
 | 
						|
	0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67,
 | 
						|
	0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x76,
 | 
						|
	0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79,
 | 
						|
	0x70, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x70,
 | 
						|
	0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72,
 | 
						|
	0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72,
 | 
						|
	0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72,
 | 
						|
	0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72,
 | 
						|
	0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x30, 0x0a,
 | 
						|
	0x14, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x68,
 | 
						|
	0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x73, 0x79,
 | 
						|
	0x6e, 0x63, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12,
 | 
						|
	0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20,
 | 
						|
	0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x42,
 | 
						|
	0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
 | 
						|
	0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65,
 | 
						|
	0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e,
 | 
						|
	0x66, 0x69, 0x67, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66,
 | 
						|
	0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18,
 | 
						|
	0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12,
 | 
						|
	0x28, 0x0a, 0x10, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f,
 | 
						|
	0x61, 0x70, 0x69, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x74, 0x68, 0x65, 0x72,
 | 
						|
	0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x70, 0x69, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x68, 0x72,
 | 
						|
	0x65, 0x61, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x71, 0x18, 0x0c, 0x20, 0x01, 0x28,
 | 
						|
	0x05, 0x52, 0x0c, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x50, 0x65, 0x72, 0x43, 0x71, 0x12,
 | 
						|
	0x2f, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x71, 0x75, 0x6f, 0x74,
 | 
						|
	0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72,
 | 
						|
	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x53, 0x69, 0x7a, 0x65,
 | 
						|
	0x12, 0x3c, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x61, 0x72, 0x67, 0x73,
 | 
						|
	0x18, 0xea, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74,
 | 
						|
	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x72,
 | 
						|
	0x67, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x72, 0x67, 0x73, 0x12, 0x29,
 | 
						|
	0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
 | 
						|
	0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
 | 
						|
	0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x75, 0x0a, 0x0a, 0x53, 0x65, 0x72,
 | 
						|
	0x76, 0x65, 0x72, 0x41, 0x72, 0x67, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x75, 0x70,
 | 
						|
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65,
 | 
						|
	0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66,
 | 
						|
	0x69, 0x67, 0x48, 0x00, 0x52, 0x05, 0x73, 0x65, 0x74, 0x75, 0x70, 0x12, 0x28, 0x0a, 0x04, 0x6d,
 | 
						|
	0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63,
 | 
						|
	0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x48, 0x00, 0x52,
 | 
						|
	0x04, 0x6d, 0x61, 0x72, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x61, 0x72, 0x67, 0x74, 0x79, 0x70, 0x65,
 | 
						|
	0x22, 0x69, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
 | 
						|
	0x12, 0x2f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
 | 
						|
	0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53,
 | 
						|
	0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
 | 
						|
	0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
 | 
						|
	0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x03,
 | 
						|
	0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x22, 0x0d, 0x0a, 0x0b, 0x43,
 | 
						|
	0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x24, 0x0a, 0x0c, 0x43, 0x6f,
 | 
						|
	0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f,
 | 
						|
	0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x72, 0x65, 0x73,
 | 
						|
	0x22, 0x06, 0x0a, 0x04, 0x56, 0x6f, 0x69, 0x64, 0x22, 0xef, 0x02, 0x0a, 0x08, 0x53, 0x63, 0x65,
 | 
						|
	0x6e, 0x61, 0x72, 0x69, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
 | 
						|
	0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x6c, 0x69,
 | 
						|
	0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
 | 
						|
	0x32, 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e,
 | 
						|
	0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x63, 0x6c,
 | 
						|
	0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x75,
 | 
						|
	0x6d, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
 | 
						|
	0x0a, 0x6e, 0x75, 0x6d, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x73,
 | 
						|
	0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01,
 | 
						|
	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e,
 | 
						|
	0x67, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c,
 | 
						|
	0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x0b,
 | 
						|
	0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
 | 
						|
	0x05, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a,
 | 
						|
	0x0e, 0x77, 0x61, 0x72, 0x6d, 0x75, 0x70, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18,
 | 
						|
	0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x77, 0x61, 0x72, 0x6d, 0x75, 0x70, 0x53, 0x65, 0x63,
 | 
						|
	0x6f, 0x6e, 0x64, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72,
 | 
						|
	0x6b, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52,
 | 
						|
	0x10, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64,
 | 
						|
	0x73, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
 | 
						|
	0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20,
 | 
						|
	0x01, 0x28, 0x05, 0x52, 0x15, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x57,
 | 
						|
	0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x41, 0x0a, 0x09, 0x53, 0x63,
 | 
						|
	0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x73, 0x12, 0x34, 0x0a, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x61,
 | 
						|
	0x72, 0x69, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x70,
 | 
						|
	0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x63, 0x65, 0x6e, 0x61, 0x72,
 | 
						|
	0x69, 0x6f, 0x52, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x73, 0x22, 0xad, 0x07,
 | 
						|
	0x0a, 0x15, 0x53, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
 | 
						|
	0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x71, 0x70, 0x73, 0x18, 0x01,
 | 
						|
	0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x71, 0x70, 0x73, 0x12, 0x2d, 0x0a, 0x13, 0x71, 0x70, 0x73,
 | 
						|
	0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65,
 | 
						|
	0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x71, 0x70, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65,
 | 
						|
	0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x65, 0x72, 0x76,
 | 
						|
	0x65, 0x72, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03,
 | 
						|
	0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74,
 | 
						|
	0x65, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
 | 
						|
	0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01,
 | 
						|
	0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65,
 | 
						|
	0x12, 0x2c, 0x0a, 0x12, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65,
 | 
						|
	0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x63, 0x6c,
 | 
						|
	0x69, 0x65, 0x6e, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28,
 | 
						|
	0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x69,
 | 
						|
	0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
 | 
						|
	0x55, 0x73, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65,
 | 
						|
	0x6e, 0x63, 0x79, 0x5f, 0x35, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x61,
 | 
						|
	0x74, 0x65, 0x6e, 0x63, 0x79, 0x35, 0x30, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e,
 | 
						|
	0x63, 0x79, 0x5f, 0x39, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x61, 0x74,
 | 
						|
	0x65, 0x6e, 0x63, 0x79, 0x39, 0x30, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63,
 | 
						|
	0x79, 0x5f, 0x39, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x65,
 | 
						|
	0x6e, 0x63, 0x79, 0x39, 0x35, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79,
 | 
						|
	0x5f, 0x39, 0x39, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e,
 | 
						|
	0x63, 0x79, 0x39, 0x39, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f,
 | 
						|
	0x39, 0x39, 0x39, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e,
 | 
						|
	0x63, 0x79, 0x39, 0x39, 0x39, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f,
 | 
						|
	0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52,
 | 
						|
	0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12,
 | 
						|
	0x43, 0x0a, 0x1e, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65,
 | 
						|
	0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e,
 | 
						|
	0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x1b, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73,
 | 
						|
	0x66, 0x75, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65,
 | 
						|
	0x63, 0x6f, 0x6e, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72,
 | 
						|
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f,
 | 
						|
	0x6e, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x17, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64,
 | 
						|
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e,
 | 
						|
	0x64, 0x12, 0x37, 0x0a, 0x18, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x6c,
 | 
						|
	0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0f, 0x20,
 | 
						|
	0x01, 0x28, 0x01, 0x52, 0x15, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x6c, 0x6c, 0x73,
 | 
						|
	0x50, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x65,
 | 
						|
	0x72, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x72,
 | 
						|
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x73, 0x65,
 | 
						|
	0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x6c, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
 | 
						|
	0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x1a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x71, 0x75,
 | 
						|
	0x65, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x73, 0x65,
 | 
						|
	0x63, 0x18, 0x11, 0x20, 0x01, 0x28, 0x01, 0x52, 0x16, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x51,
 | 
						|
	0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x65, 0x72, 0x43, 0x70, 0x75, 0x53, 0x65, 0x63, 0x12,
 | 
						|
	0x3a, 0x0a, 0x1a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65,
 | 
						|
	0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x12, 0x20,
 | 
						|
	0x01, 0x28, 0x01, 0x52, 0x16, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x69,
 | 
						|
	0x65, 0x73, 0x50, 0x65, 0x72, 0x43, 0x70, 0x75, 0x53, 0x65, 0x63, 0x12, 0x39, 0x0a, 0x0a, 0x73,
 | 
						|
	0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32,
 | 
						|
	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
 | 
						|
	0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61,
 | 
						|
	0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69,
 | 
						|
	0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
 | 
						|
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
 | 
						|
	0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xf6, 0x03,
 | 
						|
	0x0a, 0x0e, 0x53, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
 | 
						|
	0x12, 0x32, 0x0a, 0x08, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01,
 | 
						|
	0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e,
 | 
						|
	0x67, 0x2e, 0x53, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x52, 0x08, 0x73, 0x63, 0x65, 0x6e,
 | 
						|
	0x61, 0x72, 0x69, 0x6f, 0x12, 0x39, 0x0a, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x69, 0x65,
 | 
						|
	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74,
 | 
						|
	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d,
 | 
						|
	0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12,
 | 
						|
	0x3c, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18,
 | 
						|
	0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73,
 | 
						|
	0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73,
 | 
						|
	0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3c, 0x0a,
 | 
						|
	0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x04, 0x20,
 | 
						|
	0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
 | 
						|
	0x6e, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0b,
 | 
						|
	0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73,
 | 
						|
	0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
 | 
						|
	0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x3d,
 | 
						|
	0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32,
 | 
						|
	0x23, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53,
 | 
						|
	0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x75, 0x6d,
 | 
						|
	0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x25, 0x0a,
 | 
						|
	0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18,
 | 
						|
	0x07, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x75, 0x63,
 | 
						|
	0x63, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73,
 | 
						|
	0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x65,
 | 
						|
	0x72, 0x76, 0x65, 0x72, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x0f, 0x72,
 | 
						|
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x09,
 | 
						|
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x74, 0x65, 0x73, 0x74,
 | 
						|
	0x69, 0x6e, 0x67, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c,
 | 
						|
	0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52,
 | 
						|
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2a, 0x56, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74,
 | 
						|
	0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4c, 0x49,
 | 
						|
	0x45, 0x4e, 0x54, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43,
 | 
						|
	0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x54, 0x48, 0x45, 0x52,
 | 
						|
	0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x41, 0x4c,
 | 
						|
	0x4c, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x2a, 0x70,
 | 
						|
	0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b,
 | 
						|
	0x53, 0x59, 0x4e, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x00, 0x12, 0x10, 0x0a,
 | 
						|
	0x0c, 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x01, 0x12,
 | 
						|
	0x18, 0x0a, 0x14, 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43,
 | 
						|
	0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x54, 0x48,
 | 
						|
	0x45, 0x52, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x43,
 | 
						|
	0x41, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x04,
 | 
						|
	0x2a, 0x72, 0x0a, 0x07, 0x52, 0x70, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x55,
 | 
						|
	0x4e, 0x41, 0x52, 0x59, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d,
 | 
						|
	0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49,
 | 
						|
	0x4e, 0x47, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x02,
 | 
						|
	0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x52,
 | 
						|
	0x4f, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x53,
 | 
						|
	0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x4f, 0x54, 0x48, 0x5f, 0x57, 0x41,
 | 
						|
	0x59, 0x53, 0x10, 0x04, 0x42, 0x21, 0x0a, 0x0f, 0x69, 0x6f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e,
 | 
						|
	0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c,
 | 
						|
	0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
						|
}
 | 
						|
 | 
						|
var (
 | 
						|
	file_grpc_testing_control_proto_rawDescOnce sync.Once
 | 
						|
	file_grpc_testing_control_proto_rawDescData = file_grpc_testing_control_proto_rawDesc
 | 
						|
)
 | 
						|
 | 
						|
func file_grpc_testing_control_proto_rawDescGZIP() []byte {
 | 
						|
	file_grpc_testing_control_proto_rawDescOnce.Do(func() {
 | 
						|
		file_grpc_testing_control_proto_rawDescData = protoimpl.X.CompressGZIP(file_grpc_testing_control_proto_rawDescData)
 | 
						|
	})
 | 
						|
	return file_grpc_testing_control_proto_rawDescData
 | 
						|
}
 | 
						|
 | 
						|
var file_grpc_testing_control_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
 | 
						|
var file_grpc_testing_control_proto_msgTypes = make([]protoimpl.MessageInfo, 19)
 | 
						|
var file_grpc_testing_control_proto_goTypes = []interface{}{
 | 
						|
	(ClientType)(0),               // 0: grpc.testing.ClientType
 | 
						|
	(ServerType)(0),               // 1: grpc.testing.ServerType
 | 
						|
	(RpcType)(0),                  // 2: grpc.testing.RpcType
 | 
						|
	(*PoissonParams)(nil),         // 3: grpc.testing.PoissonParams
 | 
						|
	(*ClosedLoopParams)(nil),      // 4: grpc.testing.ClosedLoopParams
 | 
						|
	(*LoadParams)(nil),            // 5: grpc.testing.LoadParams
 | 
						|
	(*SecurityParams)(nil),        // 6: grpc.testing.SecurityParams
 | 
						|
	(*ChannelArg)(nil),            // 7: grpc.testing.ChannelArg
 | 
						|
	(*ClientConfig)(nil),          // 8: grpc.testing.ClientConfig
 | 
						|
	(*ClientStatus)(nil),          // 9: grpc.testing.ClientStatus
 | 
						|
	(*Mark)(nil),                  // 10: grpc.testing.Mark
 | 
						|
	(*ClientArgs)(nil),            // 11: grpc.testing.ClientArgs
 | 
						|
	(*ServerConfig)(nil),          // 12: grpc.testing.ServerConfig
 | 
						|
	(*ServerArgs)(nil),            // 13: grpc.testing.ServerArgs
 | 
						|
	(*ServerStatus)(nil),          // 14: grpc.testing.ServerStatus
 | 
						|
	(*CoreRequest)(nil),           // 15: grpc.testing.CoreRequest
 | 
						|
	(*CoreResponse)(nil),          // 16: grpc.testing.CoreResponse
 | 
						|
	(*Void)(nil),                  // 17: grpc.testing.Void
 | 
						|
	(*Scenario)(nil),              // 18: grpc.testing.Scenario
 | 
						|
	(*Scenarios)(nil),             // 19: grpc.testing.Scenarios
 | 
						|
	(*ScenarioResultSummary)(nil), // 20: grpc.testing.ScenarioResultSummary
 | 
						|
	(*ScenarioResult)(nil),        // 21: grpc.testing.ScenarioResult
 | 
						|
	(*PayloadConfig)(nil),         // 22: grpc.testing.PayloadConfig
 | 
						|
	(*HistogramParams)(nil),       // 23: grpc.testing.HistogramParams
 | 
						|
	(*ClientStats)(nil),           // 24: grpc.testing.ClientStats
 | 
						|
	(*ServerStats)(nil),           // 25: grpc.testing.ServerStats
 | 
						|
	(*timestamppb.Timestamp)(nil), // 26: google.protobuf.Timestamp
 | 
						|
	(*HistogramData)(nil),         // 27: grpc.testing.HistogramData
 | 
						|
	(*RequestResultCount)(nil),    // 28: grpc.testing.RequestResultCount
 | 
						|
}
 | 
						|
var file_grpc_testing_control_proto_depIdxs = []int32{
 | 
						|
	4,  // 0: grpc.testing.LoadParams.closed_loop:type_name -> grpc.testing.ClosedLoopParams
 | 
						|
	3,  // 1: grpc.testing.LoadParams.poisson:type_name -> grpc.testing.PoissonParams
 | 
						|
	0,  // 2: grpc.testing.ClientConfig.client_type:type_name -> grpc.testing.ClientType
 | 
						|
	6,  // 3: grpc.testing.ClientConfig.security_params:type_name -> grpc.testing.SecurityParams
 | 
						|
	2,  // 4: grpc.testing.ClientConfig.rpc_type:type_name -> grpc.testing.RpcType
 | 
						|
	5,  // 5: grpc.testing.ClientConfig.load_params:type_name -> grpc.testing.LoadParams
 | 
						|
	22, // 6: grpc.testing.ClientConfig.payload_config:type_name -> grpc.testing.PayloadConfig
 | 
						|
	23, // 7: grpc.testing.ClientConfig.histogram_params:type_name -> grpc.testing.HistogramParams
 | 
						|
	7,  // 8: grpc.testing.ClientConfig.channel_args:type_name -> grpc.testing.ChannelArg
 | 
						|
	24, // 9: grpc.testing.ClientStatus.stats:type_name -> grpc.testing.ClientStats
 | 
						|
	8,  // 10: grpc.testing.ClientArgs.setup:type_name -> grpc.testing.ClientConfig
 | 
						|
	10, // 11: grpc.testing.ClientArgs.mark:type_name -> grpc.testing.Mark
 | 
						|
	1,  // 12: grpc.testing.ServerConfig.server_type:type_name -> grpc.testing.ServerType
 | 
						|
	6,  // 13: grpc.testing.ServerConfig.security_params:type_name -> grpc.testing.SecurityParams
 | 
						|
	22, // 14: grpc.testing.ServerConfig.payload_config:type_name -> grpc.testing.PayloadConfig
 | 
						|
	7,  // 15: grpc.testing.ServerConfig.channel_args:type_name -> grpc.testing.ChannelArg
 | 
						|
	12, // 16: grpc.testing.ServerArgs.setup:type_name -> grpc.testing.ServerConfig
 | 
						|
	10, // 17: grpc.testing.ServerArgs.mark:type_name -> grpc.testing.Mark
 | 
						|
	25, // 18: grpc.testing.ServerStatus.stats:type_name -> grpc.testing.ServerStats
 | 
						|
	8,  // 19: grpc.testing.Scenario.client_config:type_name -> grpc.testing.ClientConfig
 | 
						|
	12, // 20: grpc.testing.Scenario.server_config:type_name -> grpc.testing.ServerConfig
 | 
						|
	18, // 21: grpc.testing.Scenarios.scenarios:type_name -> grpc.testing.Scenario
 | 
						|
	26, // 22: grpc.testing.ScenarioResultSummary.start_time:type_name -> google.protobuf.Timestamp
 | 
						|
	26, // 23: grpc.testing.ScenarioResultSummary.end_time:type_name -> google.protobuf.Timestamp
 | 
						|
	18, // 24: grpc.testing.ScenarioResult.scenario:type_name -> grpc.testing.Scenario
 | 
						|
	27, // 25: grpc.testing.ScenarioResult.latencies:type_name -> grpc.testing.HistogramData
 | 
						|
	24, // 26: grpc.testing.ScenarioResult.client_stats:type_name -> grpc.testing.ClientStats
 | 
						|
	25, // 27: grpc.testing.ScenarioResult.server_stats:type_name -> grpc.testing.ServerStats
 | 
						|
	20, // 28: grpc.testing.ScenarioResult.summary:type_name -> grpc.testing.ScenarioResultSummary
 | 
						|
	28, // 29: grpc.testing.ScenarioResult.request_results:type_name -> grpc.testing.RequestResultCount
 | 
						|
	30, // [30:30] is the sub-list for method output_type
 | 
						|
	30, // [30:30] is the sub-list for method input_type
 | 
						|
	30, // [30:30] is the sub-list for extension type_name
 | 
						|
	30, // [30:30] is the sub-list for extension extendee
 | 
						|
	0,  // [0:30] is the sub-list for field type_name
 | 
						|
}
 | 
						|
 | 
						|
func init() { file_grpc_testing_control_proto_init() }
 | 
						|
func file_grpc_testing_control_proto_init() {
 | 
						|
	if File_grpc_testing_control_proto != nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	file_grpc_testing_payloads_proto_init()
 | 
						|
	file_grpc_testing_stats_proto_init()
 | 
						|
	if !protoimpl.UnsafeEnabled {
 | 
						|
		file_grpc_testing_control_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*PoissonParams); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*ClosedLoopParams); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*LoadParams); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*SecurityParams); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*ChannelArg); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*ClientConfig); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*ClientStatus); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*Mark); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*ClientArgs); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*ServerConfig); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*ServerArgs); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*ServerStatus); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*CoreRequest); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*CoreResponse); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*Void); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*Scenario); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*Scenarios); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*ScenarioResultSummary); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
		file_grpc_testing_control_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
 | 
						|
			switch v := v.(*ScenarioResult); i {
 | 
						|
			case 0:
 | 
						|
				return &v.state
 | 
						|
			case 1:
 | 
						|
				return &v.sizeCache
 | 
						|
			case 2:
 | 
						|
				return &v.unknownFields
 | 
						|
			default:
 | 
						|
				return nil
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
	file_grpc_testing_control_proto_msgTypes[2].OneofWrappers = []interface{}{
 | 
						|
		(*LoadParams_ClosedLoop)(nil),
 | 
						|
		(*LoadParams_Poisson)(nil),
 | 
						|
	}
 | 
						|
	file_grpc_testing_control_proto_msgTypes[4].OneofWrappers = []interface{}{
 | 
						|
		(*ChannelArg_StrValue)(nil),
 | 
						|
		(*ChannelArg_IntValue)(nil),
 | 
						|
	}
 | 
						|
	file_grpc_testing_control_proto_msgTypes[8].OneofWrappers = []interface{}{
 | 
						|
		(*ClientArgs_Setup)(nil),
 | 
						|
		(*ClientArgs_Mark)(nil),
 | 
						|
	}
 | 
						|
	file_grpc_testing_control_proto_msgTypes[10].OneofWrappers = []interface{}{
 | 
						|
		(*ServerArgs_Setup)(nil),
 | 
						|
		(*ServerArgs_Mark)(nil),
 | 
						|
	}
 | 
						|
	type x struct{}
 | 
						|
	out := protoimpl.TypeBuilder{
 | 
						|
		File: protoimpl.DescBuilder{
 | 
						|
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 | 
						|
			RawDescriptor: file_grpc_testing_control_proto_rawDesc,
 | 
						|
			NumEnums:      3,
 | 
						|
			NumMessages:   19,
 | 
						|
			NumExtensions: 0,
 | 
						|
			NumServices:   0,
 | 
						|
		},
 | 
						|
		GoTypes:           file_grpc_testing_control_proto_goTypes,
 | 
						|
		DependencyIndexes: file_grpc_testing_control_proto_depIdxs,
 | 
						|
		EnumInfos:         file_grpc_testing_control_proto_enumTypes,
 | 
						|
		MessageInfos:      file_grpc_testing_control_proto_msgTypes,
 | 
						|
	}.Build()
 | 
						|
	File_grpc_testing_control_proto = out.File
 | 
						|
	file_grpc_testing_control_proto_rawDesc = nil
 | 
						|
	file_grpc_testing_control_proto_goTypes = nil
 | 
						|
	file_grpc_testing_control_proto_depIdxs = nil
 | 
						|
}
 |