diff --git a/cmd/server.go b/cmd/server.go index fae78c24..0fae6e6d 100644 --- a/cmd/server.go +++ b/cmd/server.go @@ -304,7 +304,8 @@ func (o *serverOption) runE(cmd *cobra.Command, args []string) (err error) { go func() { <-clean serverLogger.Info("stopping the extensions") - storeExtMgr.StopAll() + storeExtMgr.StopAll() // This will stop all plugins including AI plugin + serverLogger.Info("stopping the server") _ = lis.Close() _ = o.httpServer.Shutdown(ctx) diff --git a/console/atest-ui/src/App.vue b/console/atest-ui/src/App.vue index 33eddafa..f982efa8 100644 --- a/console/atest-ui/src/App.vue +++ b/console/atest-ui/src/App.vue @@ -17,6 +17,7 @@ import TestingHistoryPanel from './views/TestingHistoryPanel.vue' import MockManager from './views/MockManager.vue' import StoreManager from './views/StoreManager.vue' import WelcomePage from './views/WelcomePage.vue' +import AIAssistant from './views/AIAssistant.vue' import MagicKey from './components/MagicKey.vue' import Extension from './views/Extension.vue' import { useI18n } from 'vue-i18n' @@ -175,6 +176,7 @@ API.GetMenus((menus) => { + diff --git a/pkg/mock/types.go b/pkg/mock/types.go index 06b490bb..b3791175 100644 --- a/pkg/mock/types.go +++ b/pkg/mock/types.go @@ -16,65 +16,65 @@ limitations under the License. package mock type Object struct { - Name string `yaml:"name" json:"name"` - InitCount *int `yaml:"initCount" json:"initCount"` - Sample string `yaml:"sample" json:"sample"` + Name string `yaml:"name" json:"name"` + InitCount *int `yaml:"initCount" json:"initCount"` + Sample string `yaml:"sample" json:"sample"` } type Item struct { - Name string `yaml:"name" json:"name"` - Request Request `yaml:"request" json:"request"` - Response Response `yaml:"response" json:"response"` - Param map[string]interface{} + Name string `yaml:"name" json:"name"` + Request Request `yaml:"request" json:"request"` + Response Response `yaml:"response" json:"response"` + Param map[string]interface{} } type Request struct { - Protocol string `yaml:"protocol" json:"protocol"` - Path string `yaml:"path" json:"path"` - Method string `yaml:"method" json:"method"` - Header map[string]string `yaml:"header" json:"header"` - Body string `yaml:"body" json:"body"` + Protocol string `yaml:"protocol" json:"protocol"` + Path string `yaml:"path" json:"path"` + Method string `yaml:"method" json:"method"` + Header map[string]string `yaml:"header" json:"header"` + Body string `yaml:"body" json:"body"` } type RequestWithAuth struct { - Request `yaml:",inline"` - BearerAPI string `yaml:"bearerAPI" json:"bearerAPI"` - Username string `yaml:"username" json:"username"` - Password string `yaml:"password" json:"password"` + Request `yaml:",inline"` + BearerAPI string `yaml:"bearerAPI" json:"bearerAPI"` + Username string `yaml:"username" json:"username"` + Password string `yaml:"password" json:"password"` } type Response struct { - Encoder string `yaml:"encoder" json:"encoder"` - Body string `yaml:"body" json:"body"` - BodyFromFile string `yaml:"bodyFromFile" json:"bodyFromFile"` - Header map[string]string `yaml:"header" json:"header"` - StatusCode int `yaml:"statusCode" json:"statusCode"` - BodyData []byte + Encoder string `yaml:"encoder" json:"encoder"` + Body string `yaml:"body" json:"body"` + BodyFromFile string `yaml:"bodyFromFile" json:"bodyFromFile"` + Header map[string]string `yaml:"header" json:"header"` + StatusCode int `yaml:"statusCode" json:"statusCode"` + BodyData []byte } type Webhook struct { - Name string `yaml:"name" json:"name"` - Timer string `yaml:"timer" json:"timer"` - Param map[string]string `yaml:"param" json:"param"` - Request RequestWithAuth `yaml:"request" json:"request"` + Name string `yaml:"name" json:"name"` + Timer string `yaml:"timer" json:"timer"` + Param map[string]string `yaml:"param" json:"param"` + Request RequestWithAuth `yaml:"request" json:"request"` } type Proxy struct { - Prefix string `yaml:"prefix" json:"prefix"` - Port int `yaml:"port" json:"port"` - Path string `yaml:"path" json:"path"` - Target string `yaml:"target" json:"target"` - RequestAmend RequestAmend `yaml:"requestAmend" json:"requestAmend"` - Protocol string `yaml:"protocol" json:"protocol"` + Prefix string `yaml:"prefix" json:"prefix"` + Port int `yaml:"port" json:"port"` + Path string `yaml:"path" json:"path"` + Target string `yaml:"target" json:"target"` + RequestAmend RequestAmend `yaml:"requestAmend" json:"requestAmend"` + Protocol string `yaml:"protocol" json:"protocol"` } type RequestAmend struct { - BodyPatch string `yaml:"bodyPatch" json:"bodyPatch"` + BodyPatch string `yaml:"bodyPatch" json:"bodyPatch"` } type Server struct { - Objects []Object `yaml:"objects" json:"objects"` - Items []Item `yaml:"items" json:"items"` - Proxies []Proxy `yaml:"proxies" json:"proxies"` - Webhooks []Webhook `yaml:"webhooks" json:"webhooks"` + Objects []Object `yaml:"objects" json:"objects"` + Items []Item `yaml:"items" json:"items"` + Proxies []Proxy `yaml:"proxies" json:"proxies"` + Webhooks []Webhook `yaml:"webhooks" json:"webhooks"` } diff --git a/pkg/runner/monitor/monitor.pb.go b/pkg/runner/monitor/monitor.pb.go index 0d08cb62..37de6e76 100644 --- a/pkg/runner/monitor/monitor.pb.go +++ b/pkg/runner/monitor/monitor.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v4.22.2 +// protoc-gen-go v1.36.8 +// protoc v5.29.3 // source: pkg/runner/monitor/monitor.proto package monitor @@ -11,6 +11,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -21,21 +22,18 @@ const ( ) type ResourceUsage struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Memory uint64 `protobuf:"varint,1,opt,name=memory,proto3" json:"memory,omitempty"` + Cpu uint64 `protobuf:"varint,2,opt,name=cpu,proto3" json:"cpu,omitempty"` unknownFields protoimpl.UnknownFields - - Memory uint64 `protobuf:"varint,1,opt,name=memory,proto3" json:"memory,omitempty"` - Cpu uint64 `protobuf:"varint,2,opt,name=cpu,proto3" json:"cpu,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResourceUsage) Reset() { *x = ResourceUsage{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_runner_monitor_monitor_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_runner_monitor_monitor_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResourceUsage) String() string { @@ -46,7 +44,7 @@ func (*ResourceUsage) ProtoMessage() {} func (x *ResourceUsage) ProtoReflect() protoreflect.Message { mi := &file_pkg_runner_monitor_monitor_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -76,20 +74,17 @@ func (x *ResourceUsage) GetCpu() uint64 { } type Target struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Target) Reset() { *x = Target{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_runner_monitor_monitor_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_runner_monitor_monitor_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Target) String() string { @@ -100,7 +95,7 @@ func (*Target) ProtoMessage() {} func (x *Target) ProtoReflect() protoreflect.Message { mi := &file_pkg_runner_monitor_monitor_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -124,40 +119,31 @@ func (x *Target) GetName() string { var File_pkg_runner_monitor_monitor_proto protoreflect.FileDescriptor -var file_pkg_runner_monitor_monitor_proto_rawDesc = []byte{ - 0x0a, 0x20, 0x70, 0x6b, 0x67, 0x2f, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x2f, 0x6d, 0x6f, 0x6e, - 0x69, 0x74, 0x6f, 0x72, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x22, 0x39, 0x0a, 0x0d, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x65, - 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x63, 0x70, 0x75, 0x22, 0x1c, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x32, 0x48, 0x0a, 0x07, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x12, - 0x3d, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x0f, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x1a, 0x16, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x42, 0x36, - 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x6e, - 0x75, 0x78, 0x73, 0x75, 0x72, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x74, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x2f, 0x6d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_pkg_runner_monitor_monitor_proto_rawDesc = "" + + "\n" + + " pkg/runner/monitor/monitor.proto\x12\amonitor\"9\n" + + "\rResourceUsage\x12\x16\n" + + "\x06memory\x18\x01 \x01(\x04R\x06memory\x12\x10\n" + + "\x03cpu\x18\x02 \x01(\x04R\x03cpu\"\x1c\n" + + "\x06Target\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name2H\n" + + "\aMonitor\x12=\n" + + "\x10GetResourceUsage\x12\x0f.monitor.Target\x1a\x16.monitor.ResourceUsage\"\x00B6Z4github.com/linuxsuren/api-testing/pkg/runner/monitorb\x06proto3" var ( file_pkg_runner_monitor_monitor_proto_rawDescOnce sync.Once - file_pkg_runner_monitor_monitor_proto_rawDescData = file_pkg_runner_monitor_monitor_proto_rawDesc + file_pkg_runner_monitor_monitor_proto_rawDescData []byte ) func file_pkg_runner_monitor_monitor_proto_rawDescGZIP() []byte { file_pkg_runner_monitor_monitor_proto_rawDescOnce.Do(func() { - file_pkg_runner_monitor_monitor_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_runner_monitor_monitor_proto_rawDescData) + file_pkg_runner_monitor_monitor_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_pkg_runner_monitor_monitor_proto_rawDesc), len(file_pkg_runner_monitor_monitor_proto_rawDesc))) }) return file_pkg_runner_monitor_monitor_proto_rawDescData } var file_pkg_runner_monitor_monitor_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_pkg_runner_monitor_monitor_proto_goTypes = []interface{}{ +var file_pkg_runner_monitor_monitor_proto_goTypes = []any{ (*ResourceUsage)(nil), // 0: monitor.ResourceUsage (*Target)(nil), // 1: monitor.Target } @@ -176,37 +162,11 @@ func file_pkg_runner_monitor_monitor_proto_init() { if File_pkg_runner_monitor_monitor_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_pkg_runner_monitor_monitor_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResourceUsage); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_runner_monitor_monitor_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Target); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_pkg_runner_monitor_monitor_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_pkg_runner_monitor_monitor_proto_rawDesc), len(file_pkg_runner_monitor_monitor_proto_rawDesc)), NumEnums: 0, NumMessages: 2, NumExtensions: 0, @@ -217,7 +177,6 @@ func file_pkg_runner_monitor_monitor_proto_init() { MessageInfos: file_pkg_runner_monitor_monitor_proto_msgTypes, }.Build() File_pkg_runner_monitor_monitor_proto = out.File - file_pkg_runner_monitor_monitor_proto_rawDesc = nil file_pkg_runner_monitor_monitor_proto_goTypes = nil file_pkg_runner_monitor_monitor_proto_depIdxs = nil } diff --git a/pkg/runner/monitor/monitor_grpc.pb.go b/pkg/runner/monitor/monitor_grpc.pb.go index 662f57d7..2b030008 100644 --- a/pkg/runner/monitor/monitor_grpc.pb.go +++ b/pkg/runner/monitor/monitor_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v4.22.2 +// - protoc-gen-go-grpc v1.5.1 +// - protoc v5.29.3 // source: pkg/runner/monitor/monitor.proto package monitor @@ -15,8 +15,12 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + Monitor_GetResourceUsage_FullMethodName = "/monitor.Monitor/GetResourceUsage" +) // MonitorClient is the client API for Monitor service. // @@ -34,8 +38,9 @@ func NewMonitorClient(cc grpc.ClientConnInterface) MonitorClient { } func (c *monitorClient) GetResourceUsage(ctx context.Context, in *Target, opts ...grpc.CallOption) (*ResourceUsage, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ResourceUsage) - err := c.cc.Invoke(ctx, "/monitor.Monitor/GetResourceUsage", in, out, opts...) + err := c.cc.Invoke(ctx, Monitor_GetResourceUsage_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -44,20 +49,24 @@ func (c *monitorClient) GetResourceUsage(ctx context.Context, in *Target, opts . // MonitorServer is the server API for Monitor service. // All implementations must embed UnimplementedMonitorServer -// for forward compatibility +// for forward compatibility. type MonitorServer interface { GetResourceUsage(context.Context, *Target) (*ResourceUsage, error) mustEmbedUnimplementedMonitorServer() } -// UnimplementedMonitorServer must be embedded to have forward compatible implementations. -type UnimplementedMonitorServer struct { -} +// UnimplementedMonitorServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedMonitorServer struct{} func (UnimplementedMonitorServer) GetResourceUsage(context.Context, *Target) (*ResourceUsage, error) { return nil, status.Errorf(codes.Unimplemented, "method GetResourceUsage not implemented") } func (UnimplementedMonitorServer) mustEmbedUnimplementedMonitorServer() {} +func (UnimplementedMonitorServer) testEmbeddedByValue() {} // UnsafeMonitorServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to MonitorServer will @@ -67,6 +76,13 @@ type UnsafeMonitorServer interface { } func RegisterMonitorServer(s grpc.ServiceRegistrar, srv MonitorServer) { + // If the following call pancis, it indicates UnimplementedMonitorServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&Monitor_ServiceDesc, srv) } @@ -80,7 +96,7 @@ func _Monitor_GetResourceUsage_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/monitor.Monitor/GetResourceUsage", + FullMethod: Monitor_GetResourceUsage_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(MonitorServer).GetResourceUsage(ctx, req.(*Target)) diff --git a/pkg/server/ai_client.go b/pkg/server/ai_client.go new file mode 100644 index 00000000..5d7ff925 --- /dev/null +++ b/pkg/server/ai_client.go @@ -0,0 +1,203 @@ +package server + +import ( + "context" + "encoding/json" + "fmt" + "log" + "time" + + "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" +) + +// AIClient wraps the gRPC client for AI plugin communication +type AIClient struct { + client RunnerExtensionClient + conn *grpc.ClientConn +} + +// Note: AIRequest and AIResponse types are now defined in server.pb.go +// We use the protobuf-generated types instead of custom definitions + +// NewAIClient creates a new AI plugin client +func NewAIClient(address string) (*AIClient, error) { + // Create gRPC connection with insecure credentials for local communication + conn, err := grpc.Dial(address, grpc.WithTransportCredentials(insecure.NewCredentials())) + if err != nil { + return nil, fmt.Errorf("failed to connect to AI plugin at %s: %w", address, err) + } + + // Create the gRPC client + client := NewRunnerExtensionClient(conn) + + return &AIClient{ + client: client, + conn: conn, + }, nil +} + +// Close closes the gRPC connection +func (c *AIClient) Close() error { + if c.conn != nil { + return c.conn.Close() + } + return nil +} + +// ConvertNLToSQL converts natural language to SQL using the AI plugin +func (c *AIClient) ConvertNLToSQL(ctx context.Context, naturalLanguage string, schema map[string]interface{}) (*AIResponse, error) { + // Serialize schema to JSON string for protobuf Context field + schemaJSON, err := json.Marshal(map[string]interface{}{ + "type": "nl_to_sql", + "schema": schema, + }) + if err != nil { + return nil, fmt.Errorf("failed to marshal schema: %w", err) + } + + // Prepare AI request using protobuf types + request := &AIRequest{ + Input: naturalLanguage, + Context: string(schemaJSON), + } + + return c.executeAIRequest(ctx, request) +} + +// GenerateTestCase generates test cases using the AI plugin +func (c *AIClient) GenerateTestCase(ctx context.Context, apiSpec string, requirements string) (*AIResponse, error) { + // Serialize context to JSON string for protobuf Context field + contextJSON, err := json.Marshal(map[string]interface{}{ + "type": "generate_test_case", + "api_spec": apiSpec, + }) + if err != nil { + return nil, fmt.Errorf("failed to marshal context: %w", err) + } + + // Prepare AI request using protobuf types + request := &AIRequest{ + Input: requirements, + Context: string(contextJSON), + } + + return c.executeAIRequest(ctx, request) +} + +// OptimizeQuery optimizes SQL queries using the AI plugin +func (c *AIClient) OptimizeQuery(ctx context.Context, sqlQuery string, performance map[string]interface{}) (*AIResponse, error) { + // Serialize context to JSON string for protobuf Context field + contextJSON, err := json.Marshal(map[string]interface{}{ + "type": "optimize_query", + "performance_data": performance, + }) + if err != nil { + return nil, fmt.Errorf("failed to marshal context: %w", err) + } + + // Prepare AI request using protobuf types + request := &AIRequest{ + Input: sqlQuery, + Context: string(contextJSON), + } + + return c.executeAIRequest(ctx, request) +} + +// executeAIRequest executes an AI request through the gRPC client +func (c *AIClient) executeAIRequest(ctx context.Context, request *AIRequest) (*AIResponse, error) { + // Serialize the AI request to JSON + requestData, err := json.Marshal(request) + if err != nil { + return nil, fmt.Errorf("failed to marshal AI request: %w", err) + } + + // Parse the context to get the request type + var contextData map[string]interface{} + if err := json.Unmarshal([]byte(request.Context), &contextData); err != nil { + return nil, fmt.Errorf("failed to parse request context: %w", err) + } + requestType, _ := contextData["type"].(string) + if requestType == "" { + requestType = "ai-request" + } + + // Create the TestSuiteWithCase structure for gRPC communication + // Using the existing protobuf structure to carry JSON data + testSuite := &TestSuiteWithCase{ + Suite: &TestSuite{ + Name: "ai-plugin-request", + Spec: &APISpec{ + Kind: "ai", + Url: string(requestData), // Embed JSON data in URL field + }, + }, + Case: &TestCase{ + Name: requestType, + }, + } + + // Set timeout for the request + ctxWithTimeout, cancel := context.WithTimeout(ctx, 30*time.Second) + defer cancel() + + // Execute the gRPC call + result, err := c.client.Run(ctxWithTimeout, testSuite) + if err != nil { + return nil, fmt.Errorf("AI plugin gRPC call failed: %w", err) + } + + // Parse the response + if result == nil { + return &AIResponse{ + Success: false, + Error: "AI plugin returned nil result", + }, nil + } + + // Try to parse the message as JSON (AI response) + var aiResponse AIResponse + if err := json.Unmarshal([]byte(result.Message), &aiResponse); err != nil { + // If JSON parsing fails, treat as plain text response + log.Printf("Failed to parse AI response as JSON, treating as plain text: %v", err) + aiResponse = AIResponse{ + Success: result.Success, + Result: result.Message, + Error: "", + } + if !result.Success { + aiResponse.Error = result.Message + aiResponse.Result = "" + } + } + + return &aiResponse, nil +} + +// HealthCheck checks if the AI plugin is healthy and responsive +func (c *AIClient) HealthCheck(ctx context.Context) error { + // Create a simple health check request + contextJSON, err := json.Marshal(map[string]interface{}{ + "type": "health_check", + }) + if err != nil { + return fmt.Errorf("failed to marshal health check context: %w", err) + } + + request := &AIRequest{ + Input: "ping", + Context: string(contextJSON), + } + + response, err := c.executeAIRequest(ctx, request) + if err != nil { + return fmt.Errorf("health check failed: %w", err) + } + + if !response.Success { + return fmt.Errorf("AI plugin health check failed: %s", response.Error) + } + + return nil +} diff --git a/pkg/server/ai_manager.go b/pkg/server/ai_manager.go new file mode 100644 index 00000000..f50b2c1b --- /dev/null +++ b/pkg/server/ai_manager.go @@ -0,0 +1,217 @@ +package server + +import ( + "context" + "fmt" + "log" + "sync" + "time" +) + +// AIManager manages AI plugin connections and operations +type AIManager struct { + client *AIClient + connected bool + mutex sync.RWMutex + address string + retryCount int + maxRetries int +} + +// NewAIManager creates a new AI manager instance +func NewAIManager() *AIManager { + return &AIManager{ + address: "localhost:50052", // Default AI plugin address + maxRetries: 3, + retryCount: 0, + } +} + +// Initialize initializes the AI manager and establishes connection to AI plugin +func (m *AIManager) Initialize() error { + m.mutex.Lock() + defer m.mutex.Unlock() + + // Try to connect to AI plugin + client, err := NewAIClient(m.address) + if err != nil { + log.Printf("Failed to connect to AI plugin at %s: %v", m.address, err) + m.connected = false + return err + } + + m.client = client + m.connected = true + m.retryCount = 0 + log.Printf("Successfully connected to AI plugin at %s", m.address) + return nil +} + +// IsConnected returns whether the AI plugin is connected +func (m *AIManager) IsConnected() bool { + m.mutex.RLock() + defer m.mutex.RUnlock() + return m.connected +} + +// ConvertNLToSQL converts natural language to SQL using the AI plugin +func (m *AIManager) ConvertNLToSQL(ctx context.Context, input string, context map[string]interface{}) (*AIResponse, error) { + m.mutex.RLock() + if !m.connected || m.client == nil { + m.mutex.RUnlock() + return m.getFallbackResponse("convert_nl_to_sql", input), nil + } + client := m.client + m.mutex.RUnlock() + + return client.ConvertNLToSQL(ctx, input, context) +} + +// GenerateTestCase generates test cases using the AI plugin +func (m *AIManager) GenerateTestCase(ctx context.Context, apiSpec string, requirements string) (*AIResponse, error) { + m.mutex.RLock() + if !m.connected || m.client == nil { + m.mutex.RUnlock() + return m.getFallbackResponse("generate_test_case", requirements), nil + } + client := m.client + m.mutex.RUnlock() + + return client.GenerateTestCase(ctx, apiSpec, requirements) +} + +// OptimizeQuery optimizes SQL queries using the AI plugin +func (m *AIManager) OptimizeQuery(ctx context.Context, sqlQuery string, performance map[string]interface{}) (*AIResponse, error) { + m.mutex.RLock() + if !m.connected || m.client == nil { + m.mutex.RUnlock() + return m.getFallbackResponse("optimize_query", sqlQuery), nil + } + client := m.client + m.mutex.RUnlock() + + return client.OptimizeQuery(ctx, sqlQuery, performance) +} + +// HealthCheck checks the health of the AI plugin +func (m *AIManager) HealthCheck(ctx context.Context) error { + m.mutex.RLock() + if !m.connected || m.client == nil { + m.mutex.RUnlock() + return fmt.Errorf("AI plugin not connected") + } + client := m.client + m.mutex.RUnlock() + + return client.HealthCheck(ctx) +} + +// Reconnect attempts to reconnect to the AI plugin +func (m *AIManager) Reconnect() error { + m.mutex.Lock() + defer m.mutex.Unlock() + + if m.retryCount >= m.maxRetries { + return fmt.Errorf("max retry attempts (%d) exceeded", m.maxRetries) + } + + // Close existing connection if any + if m.client != nil { + m.client.Close() + } + + // Wait before retry + time.Sleep(time.Duration(m.retryCount+1) * time.Second) + + // Try to reconnect + client, err := NewAIClient(m.address) + if err != nil { + m.retryCount++ + m.connected = false + return fmt.Errorf("reconnection attempt %d failed: %w", m.retryCount, err) + } + + m.client = client + m.connected = true + m.retryCount = 0 + log.Printf("Successfully reconnected to AI plugin at %s", m.address) + return nil +} + +// Close closes the AI manager and its connections +func (m *AIManager) Close() error { + m.mutex.Lock() + defer m.mutex.Unlock() + + if m.client != nil { + err := m.client.Close() + m.client = nil + m.connected = false + return err + } + return nil +} + +// SetAddress sets the AI plugin address +func (m *AIManager) SetAddress(address string) { + m.mutex.Lock() + defer m.mutex.Unlock() + m.address = address +} + +// GetAddress returns the current AI plugin address +func (m *AIManager) GetAddress() string { + m.mutex.RLock() + defer m.mutex.RUnlock() + return m.address +} + +// getFallbackResponse returns a fallback response when AI plugin is not available +func (m *AIManager) getFallbackResponse(requestType, input string) *AIResponse { + switch requestType { + case "convert_nl_to_sql": + return &AIResponse{ + Success: true, + Result: "SELECT * FROM users WHERE status = 'active' ORDER BY created_at DESC LIMIT 10; -- Fallback response", + Error: "", + Metadata: []*Pair{ + {Key: "fallback", Value: "true"}, + {Key: "reason", Value: "AI plugin not available"}, + {Key: "input", Value: input}, + }, + } + case "generate_test_case": + return &AIResponse{ + Success: true, + Result: `{"name": "Test API Endpoint", "method": "GET", "url": "/api/test", "expected_status": 200}`, + Error: "", + Metadata: []*Pair{ + {Key: "fallback", Value: "true"}, + {Key: "reason", Value: "AI plugin not available"}, + {Key: "input", Value: input}, + }, + } + case "optimize_query": + return &AIResponse{ + Success: true, + Result: input + " -- Query optimization not available (fallback mode)", + Error: "", + Metadata: []*Pair{ + {Key: "fallback", Value: "true"}, + {Key: "reason", Value: "AI plugin not available"}, + {Key: "input", Value: input}, + }, + } + default: + return &AIResponse{ + Success: false, + Result: "", + Error: "Unknown request type", + Metadata: []*Pair{ + {Key: "fallback", Value: "true"}, + {Key: "reason", Value: "Unknown request type"}, + {Key: "input", Value: input}, + }, + } + } +} diff --git a/pkg/server/remote_server.go b/pkg/server/remote_server.go index c88017ee..cc5850e7 100644 --- a/pkg/server/remote_server.go +++ b/pkg/server/remote_server.go @@ -76,6 +76,7 @@ type server struct { storeWriterFactory testing.StoreWriterFactory configDir string storeExtMgr ExtManager + aiManager *AIManager secretServer SecretServiceServer @@ -124,16 +125,26 @@ func NewRemoteServer(loader testing.Writer, storeWriterFactory testing.StoreWrit } loader.WithUserConfigDir(configDir) GrpcMaxRecvMsgSize = grpcMaxRecvMsgSize + + // Initialize AI Manager + aiManager := NewAIManager() + return &server{ loader: loader, storeWriterFactory: storeWriterFactory, configDir: configDir, secretServer: secretServer, storeExtMgr: storeExtMgr, + aiManager: aiManager, grpcMaxRecvMsgSize: grpcMaxRecvMsgSize, } } +// GetAIManager returns the AI manager instance +func (s *server) GetAIManager() *AIManager { + return s.aiManager +} + func withDefaultValue(old, defVal any) any { if old == "" || old == nil { old = defVal @@ -1455,12 +1466,23 @@ func (s *server) GetMenus(ctx context.Context, _ *Empty) (result *MenuList, err defer loader.Close() result = &MenuList{} + + // Add AI Assistant system menu + result.Data = append(result.Data, &Menu{ + Name: "AI Assistant", + Icon: "ChatDotRound", + Index: "ai-assistant", + }) + var loaders []testing.Writer if loaders, err = s.getLoaders(); err != nil { return } duplicatedMenus := make(map[string]int) // index is key, value is the slice index + // Initialize with AI Assistant menu + duplicatedMenus["ai-assistant"] = 0 + for _, loader := range loaders { if menus, mErr := loader.GetMenus(); mErr == nil { for _, menu := range menus { @@ -1501,7 +1523,7 @@ func (s *server) GetMenus(ctx context.Context, _ *Empty) (result *MenuList, err func isSystemMenu(index string) bool { switch index { - case "testing", "history", "mock", "store", "welcome", "": + case "testing", "history", "mock", "store", "welcome", "ai-assistant", "": return true } return false diff --git a/pkg/server/server.pb.go b/pkg/server/server.pb.go index 496dd8ba..3f1d50ff 100644 --- a/pkg/server/server.pb.go +++ b/pkg/server/server.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v4.22.2 +// protoc-gen-go v1.36.8 +// protoc v5.29.3 // source: pkg/server/server.proto package server @@ -13,6 +13,7 @@ import ( timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -23,23 +24,20 @@ const ( ) type Menu struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Index string `protobuf:"bytes,2,opt,name=index,proto3" json:"index,omitempty"` + Icon string `protobuf:"bytes,3,opt,name=icon,proto3" json:"icon,omitempty"` + Version int32 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Index string `protobuf:"bytes,2,opt,name=index,proto3" json:"index,omitempty"` - Icon string `protobuf:"bytes,3,opt,name=icon,proto3" json:"icon,omitempty"` - Version int32 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Menu) Reset() { *x = Menu{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Menu) String() string { @@ -50,7 +48,7 @@ func (*Menu) ProtoMessage() {} func (x *Menu) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -94,20 +92,17 @@ func (x *Menu) GetVersion() int32 { } type MenuList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []*Menu `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Data []*Menu `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *MenuList) Reset() { *x = MenuList{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MenuList) String() string { @@ -118,7 +113,7 @@ func (*MenuList) ProtoMessage() {} func (x *MenuList) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -141,20 +136,17 @@ func (x *MenuList) GetData() []*Menu { } type Suites struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data map[string]*Items `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - Data map[string]*Items `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *Suites) Reset() { *x = Suites{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Suites) String() string { @@ -165,7 +157,7 @@ func (*Suites) ProtoMessage() {} func (x *Suites) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -188,21 +180,18 @@ func (x *Suites) GetData() map[string]*Items { } type Items struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []string `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` unknownFields protoimpl.UnknownFields - - Data []string `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` - Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Items) Reset() { *x = Items{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Items) String() string { @@ -213,7 +202,7 @@ func (*Items) ProtoMessage() {} func (x *Items) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -243,20 +232,17 @@ func (x *Items) GetKind() string { } type HistorySuites struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data map[string]*HistoryItems `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - Data map[string]*HistoryItems `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *HistorySuites) Reset() { *x = HistorySuites{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HistorySuites) String() string { @@ -267,7 +253,7 @@ func (*HistorySuites) ProtoMessage() {} func (x *HistorySuites) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -290,20 +276,17 @@ func (x *HistorySuites) GetData() map[string]*HistoryItems { } type HistoryItems struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []*HistoryCaseIdentity `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Data []*HistoryCaseIdentity `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HistoryItems) Reset() { *x = HistoryItems{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HistoryItems) String() string { @@ -314,7 +297,7 @@ func (*HistoryItems) ProtoMessage() {} func (x *HistoryItems) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -337,24 +320,21 @@ func (x *HistoryItems) GetData() []*HistoryCaseIdentity { } type HistoryCaseIdentity struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Suite string `protobuf:"bytes,1,opt,name=suite,proto3" json:"suite,omitempty"` - Testcase string `protobuf:"bytes,2,opt,name=testcase,proto3" json:"testcase,omitempty"` - HistorySuiteName string `protobuf:"bytes,3,opt,name=historySuiteName,proto3" json:"historySuiteName,omitempty"` - Kind string `protobuf:"bytes,4,opt,name=kind,proto3" json:"kind,omitempty"` - ID string `protobuf:"bytes,5,opt,name=ID,proto3" json:"ID,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Suite string `protobuf:"bytes,1,opt,name=suite,proto3" json:"suite,omitempty"` + Testcase string `protobuf:"bytes,2,opt,name=testcase,proto3" json:"testcase,omitempty"` + HistorySuiteName string `protobuf:"bytes,3,opt,name=historySuiteName,proto3" json:"historySuiteName,omitempty"` + Kind string `protobuf:"bytes,4,opt,name=kind,proto3" json:"kind,omitempty"` + ID string `protobuf:"bytes,5,opt,name=ID,proto3" json:"ID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *HistoryCaseIdentity) Reset() { *x = HistoryCaseIdentity{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HistoryCaseIdentity) String() string { @@ -365,7 +345,7 @@ func (*HistoryCaseIdentity) ProtoMessage() {} func (x *HistoryCaseIdentity) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -416,22 +396,19 @@ func (x *HistoryCaseIdentity) GetID() string { } type TestCaseIdentity struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Suite string `protobuf:"bytes,1,opt,name=suite,proto3" json:"suite,omitempty"` + Testcase string `protobuf:"bytes,2,opt,name=testcase,proto3" json:"testcase,omitempty"` + Parameters []*Pair `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty"` unknownFields protoimpl.UnknownFields - - Suite string `protobuf:"bytes,1,opt,name=suite,proto3" json:"suite,omitempty"` - Testcase string `protobuf:"bytes,2,opt,name=testcase,proto3" json:"testcase,omitempty"` - Parameters []*Pair `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty"` + sizeCache protoimpl.SizeCache } func (x *TestCaseIdentity) Reset() { *x = TestCaseIdentity{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TestCaseIdentity) String() string { @@ -442,7 +419,7 @@ func (*TestCaseIdentity) ProtoMessage() {} func (x *TestCaseIdentity) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -479,22 +456,19 @@ func (x *TestCaseIdentity) GetParameters() []*Pair { } type TestSuiteSource struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + Data string `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"` - Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` - Data string `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *TestSuiteSource) Reset() { *x = TestSuiteSource{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TestSuiteSource) String() string { @@ -505,7 +479,7 @@ func (*TestSuiteSource) ProtoMessage() {} func (x *TestSuiteSource) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -542,24 +516,21 @@ func (x *TestSuiteSource) GetData() string { } type TestSuite struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Api string `protobuf:"bytes,2,opt,name=api,proto3" json:"api,omitempty"` + Param []*Pair `protobuf:"bytes,3,rep,name=param,proto3" json:"param,omitempty"` + Spec *APISpec `protobuf:"bytes,4,opt,name=spec,proto3" json:"spec,omitempty"` + Proxy *ProxyConfig `protobuf:"bytes,5,opt,name=proxy,proto3" json:"proxy,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Api string `protobuf:"bytes,2,opt,name=api,proto3" json:"api,omitempty"` - Param []*Pair `protobuf:"bytes,3,rep,name=param,proto3" json:"param,omitempty"` - Spec *APISpec `protobuf:"bytes,4,opt,name=spec,proto3" json:"spec,omitempty"` - Proxy *ProxyConfig `protobuf:"bytes,5,opt,name=proxy,proto3" json:"proxy,omitempty"` + sizeCache protoimpl.SizeCache } func (x *TestSuite) Reset() { *x = TestSuite{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TestSuite) String() string { @@ -570,7 +541,7 @@ func (*TestSuite) ProtoMessage() {} func (x *TestSuite) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -621,21 +592,18 @@ func (x *TestSuite) GetProxy() *ProxyConfig { } type TestSuiteWithCase struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Suite *TestSuite `protobuf:"bytes,1,opt,name=suite,proto3" json:"suite,omitempty"` + Case *TestCase `protobuf:"bytes,2,opt,name=case,proto3" json:"case,omitempty"` unknownFields protoimpl.UnknownFields - - Suite *TestSuite `protobuf:"bytes,1,opt,name=suite,proto3" json:"suite,omitempty"` - Case *TestCase `protobuf:"bytes,2,opt,name=case,proto3" json:"case,omitempty"` + sizeCache protoimpl.SizeCache } func (x *TestSuiteWithCase) Reset() { *x = TestSuiteWithCase{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TestSuiteWithCase) String() string { @@ -646,7 +614,7 @@ func (*TestSuiteWithCase) ProtoMessage() {} func (x *TestSuiteWithCase) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -676,23 +644,20 @@ func (x *TestSuiteWithCase) GetCase() *TestCase { } type APISpec struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + Rpc *RPC `protobuf:"bytes,3,opt,name=rpc,proto3" json:"rpc,omitempty"` + Secure *Secure `protobuf:"bytes,4,opt,name=secure,proto3" json:"secure,omitempty"` unknownFields protoimpl.UnknownFields - - Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"` - Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` - Rpc *RPC `protobuf:"bytes,3,opt,name=rpc,proto3" json:"rpc,omitempty"` - Secure *Secure `protobuf:"bytes,4,opt,name=secure,proto3" json:"secure,omitempty"` + sizeCache protoimpl.SizeCache } func (x *APISpec) Reset() { *x = APISpec{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *APISpec) String() string { @@ -703,7 +668,7 @@ func (*APISpec) ProtoMessage() {} func (x *APISpec) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -747,24 +712,21 @@ func (x *APISpec) GetSecure() *Secure { } type Secure struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Insecure bool `protobuf:"varint,1,opt,name=insecure,proto3" json:"insecure,omitempty"` + Cert string `protobuf:"bytes,2,opt,name=cert,proto3" json:"cert,omitempty"` + Ca string `protobuf:"bytes,3,opt,name=ca,proto3" json:"ca,omitempty"` + ServerName string `protobuf:"bytes,4,opt,name=serverName,proto3" json:"serverName,omitempty"` + Key string `protobuf:"bytes,5,opt,name=key,proto3" json:"key,omitempty"` unknownFields protoimpl.UnknownFields - - Insecure bool `protobuf:"varint,1,opt,name=insecure,proto3" json:"insecure,omitempty"` - Cert string `protobuf:"bytes,2,opt,name=cert,proto3" json:"cert,omitempty"` - Ca string `protobuf:"bytes,3,opt,name=ca,proto3" json:"ca,omitempty"` - ServerName string `protobuf:"bytes,4,opt,name=serverName,proto3" json:"serverName,omitempty"` - Key string `protobuf:"bytes,5,opt,name=key,proto3" json:"key,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Secure) Reset() { *x = Secure{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Secure) String() string { @@ -775,7 +737,7 @@ func (*Secure) ProtoMessage() {} func (x *Secure) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -826,24 +788,21 @@ func (x *Secure) GetKey() string { } type RPC struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Import []string `protobuf:"bytes,1,rep,name=import,proto3" json:"import,omitempty"` - ServerReflection bool `protobuf:"varint,2,opt,name=serverReflection,proto3" json:"serverReflection,omitempty"` - Protofile string `protobuf:"bytes,3,opt,name=protofile,proto3" json:"protofile,omitempty"` - Protoset string `protobuf:"bytes,4,opt,name=protoset,proto3" json:"protoset,omitempty"` - Raw string `protobuf:"bytes,5,opt,name=raw,proto3" json:"raw,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Import []string `protobuf:"bytes,1,rep,name=import,proto3" json:"import,omitempty"` + ServerReflection bool `protobuf:"varint,2,opt,name=serverReflection,proto3" json:"serverReflection,omitempty"` + Protofile string `protobuf:"bytes,3,opt,name=protofile,proto3" json:"protofile,omitempty"` + Protoset string `protobuf:"bytes,4,opt,name=protoset,proto3" json:"protoset,omitempty"` + Raw string `protobuf:"bytes,5,opt,name=raw,proto3" json:"raw,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RPC) Reset() { *x = RPC{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RPC) String() string { @@ -854,7 +813,7 @@ func (*RPC) ProtoMessage() {} func (x *RPC) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -905,22 +864,19 @@ func (x *RPC) GetRaw() string { } type TestSuiteIdentity struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Api string `protobuf:"bytes,2,opt,name=api,proto3" json:"api,omitempty"` + Kind string `protobuf:"bytes,3,opt,name=kind,proto3" json:"kind,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Api string `protobuf:"bytes,2,opt,name=api,proto3" json:"api,omitempty"` - Kind string `protobuf:"bytes,3,opt,name=kind,proto3" json:"kind,omitempty"` + sizeCache protoimpl.SizeCache } func (x *TestSuiteIdentity) Reset() { *x = TestSuiteIdentity{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TestSuiteIdentity) String() string { @@ -931,7 +887,7 @@ func (*TestSuiteIdentity) ProtoMessage() {} func (x *TestSuiteIdentity) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -968,21 +924,18 @@ func (x *TestSuiteIdentity) GetKind() string { } type TestSuiteDuplicate struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SourceSuiteName string `protobuf:"bytes,1,opt,name=sourceSuiteName,proto3" json:"sourceSuiteName,omitempty"` - TargetSuiteName string `protobuf:"bytes,2,opt,name=targetSuiteName,proto3" json:"targetSuiteName,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + SourceSuiteName string `protobuf:"bytes,1,opt,name=sourceSuiteName,proto3" json:"sourceSuiteName,omitempty"` + TargetSuiteName string `protobuf:"bytes,2,opt,name=targetSuiteName,proto3" json:"targetSuiteName,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *TestSuiteDuplicate) Reset() { *x = TestSuiteDuplicate{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TestSuiteDuplicate) String() string { @@ -993,7 +946,7 @@ func (*TestSuiteDuplicate) ProtoMessage() {} func (x *TestSuiteDuplicate) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1023,23 +976,20 @@ func (x *TestSuiteDuplicate) GetTargetSuiteName() string { } type TestCaseDuplicate struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SourceSuiteName string `protobuf:"bytes,1,opt,name=sourceSuiteName,proto3" json:"sourceSuiteName,omitempty"` - SourceCaseName string `protobuf:"bytes,2,opt,name=sourceCaseName,proto3" json:"sourceCaseName,omitempty"` - TargetSuiteName string `protobuf:"bytes,3,opt,name=targetSuiteName,proto3" json:"targetSuiteName,omitempty"` - TargetCaseName string `protobuf:"bytes,4,opt,name=targetCaseName,proto3" json:"targetCaseName,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + SourceSuiteName string `protobuf:"bytes,1,opt,name=sourceSuiteName,proto3" json:"sourceSuiteName,omitempty"` + SourceCaseName string `protobuf:"bytes,2,opt,name=sourceCaseName,proto3" json:"sourceCaseName,omitempty"` + TargetSuiteName string `protobuf:"bytes,3,opt,name=targetSuiteName,proto3" json:"targetSuiteName,omitempty"` + TargetCaseName string `protobuf:"bytes,4,opt,name=targetCaseName,proto3" json:"targetCaseName,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *TestCaseDuplicate) Reset() { *x = TestCaseDuplicate{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TestCaseDuplicate) String() string { @@ -1050,7 +1000,7 @@ func (*TestCaseDuplicate) ProtoMessage() {} func (x *TestCaseDuplicate) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1094,25 +1044,22 @@ func (x *TestCaseDuplicate) GetTargetCaseName() string { } type TestTask struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` + CaseName string `protobuf:"bytes,3,opt,name=caseName,proto3" json:"caseName,omitempty"` + Level string `protobuf:"bytes,4,opt,name=level,proto3" json:"level,omitempty"` + Env map[string]string `protobuf:"bytes,5,rep,name=env,proto3" json:"env,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Parameters []*Pair `protobuf:"bytes,6,rep,name=parameters,proto3" json:"parameters,omitempty"` unknownFields protoimpl.UnknownFields - - Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` - Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` - CaseName string `protobuf:"bytes,3,opt,name=caseName,proto3" json:"caseName,omitempty"` - Level string `protobuf:"bytes,4,opt,name=level,proto3" json:"level,omitempty"` - Env map[string]string `protobuf:"bytes,5,rep,name=env,proto3" json:"env,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Parameters []*Pair `protobuf:"bytes,6,rep,name=parameters,proto3" json:"parameters,omitempty"` + sizeCache protoimpl.SizeCache } func (x *TestTask) Reset() { *x = TestTask{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TestTask) String() string { @@ -1123,7 +1070,7 @@ func (*TestTask) ProtoMessage() {} func (x *TestTask) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1181,24 +1128,21 @@ func (x *TestTask) GetParameters() []*Pair { } type BatchTestTask struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + SuiteName string `protobuf:"bytes,1,opt,name=suiteName,proto3" json:"suiteName,omitempty"` + CaseName string `protobuf:"bytes,2,opt,name=caseName,proto3" json:"caseName,omitempty"` + Parameters []*Pair `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty"` + Count int32 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"` + Interval string `protobuf:"bytes,5,opt,name=interval,proto3" json:"interval,omitempty"` unknownFields protoimpl.UnknownFields - - SuiteName string `protobuf:"bytes,1,opt,name=suiteName,proto3" json:"suiteName,omitempty"` - CaseName string `protobuf:"bytes,2,opt,name=caseName,proto3" json:"caseName,omitempty"` - Parameters []*Pair `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty"` - Count int32 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"` - Interval string `protobuf:"bytes,5,opt,name=interval,proto3" json:"interval,omitempty"` + sizeCache protoimpl.SizeCache } func (x *BatchTestTask) Reset() { *x = BatchTestTask{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BatchTestTask) String() string { @@ -1209,7 +1153,7 @@ func (*BatchTestTask) ProtoMessage() {} func (x *BatchTestTask) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1260,22 +1204,19 @@ func (x *BatchTestTask) GetInterval() string { } type TestResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` - Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` - TestCaseResult []*TestCaseResult `protobuf:"bytes,3,rep,name=testCaseResult,proto3" json:"testCaseResult,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` + TestCaseResult []*TestCaseResult `protobuf:"bytes,3,rep,name=testCaseResult,proto3" json:"testCaseResult,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *TestResult) Reset() { *x = TestResult{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TestResult) String() string { @@ -1286,7 +1227,7 @@ func (*TestResult) ProtoMessage() {} func (x *TestResult) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1323,24 +1264,21 @@ func (x *TestResult) GetTestCaseResult() []*TestCaseResult { } type HistoryTestResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` TestCaseResult []*TestCaseResult `protobuf:"bytes,3,rep,name=testCaseResult,proto3" json:"testCaseResult,omitempty"` Data *HistoryTestCase `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` CreateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=createTime,proto3" json:"createTime,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *HistoryTestResult) Reset() { *x = HistoryTestResult{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HistoryTestResult) String() string { @@ -1351,7 +1289,7 @@ func (*HistoryTestResult) ProtoMessage() {} func (x *HistoryTestResult) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1402,21 +1340,18 @@ func (x *HistoryTestResult) GetCreateTime() *timestamppb.Timestamp { } type HelloReply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` - Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HelloReply) Reset() { *x = HelloReply{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HelloReply) String() string { @@ -1427,7 +1362,7 @@ func (*HelloReply) ProtoMessage() {} func (x *HelloReply) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1457,20 +1392,17 @@ func (x *HelloReply) GetError() string { } type YamlData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *YamlData) Reset() { *x = YamlData{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *YamlData) String() string { @@ -1481,7 +1413,7 @@ func (*YamlData) ProtoMessage() {} func (x *YamlData) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1504,22 +1436,19 @@ func (x *YamlData) GetData() []byte { } type Suite struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Api string `protobuf:"bytes,2,opt,name=api,proto3" json:"api,omitempty"` + Items []*TestCase `protobuf:"bytes,3,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Api string `protobuf:"bytes,2,opt,name=api,proto3" json:"api,omitempty"` - Items []*TestCase `protobuf:"bytes,3,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Suite) Reset() { *x = Suite{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Suite) String() string { @@ -1530,7 +1459,7 @@ func (*Suite) ProtoMessage() {} func (x *Suite) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1567,21 +1496,18 @@ func (x *Suite) GetItems() []*TestCase { } type TestCaseWithSuite struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + SuiteName string `protobuf:"bytes,1,opt,name=suiteName,proto3" json:"suiteName,omitempty"` + Data *TestCase `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - SuiteName string `protobuf:"bytes,1,opt,name=suiteName,proto3" json:"suiteName,omitempty"` - Data *TestCase `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *TestCaseWithSuite) Reset() { *x = TestCaseWithSuite{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TestCaseWithSuite) String() string { @@ -1592,7 +1518,7 @@ func (*TestCaseWithSuite) ProtoMessage() {} func (x *TestCaseWithSuite) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1622,20 +1548,17 @@ func (x *TestCaseWithSuite) GetData() *TestCase { } type TestCases struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []*TestCase `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Data []*TestCase `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *TestCases) Reset() { *x = TestCases{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TestCases) String() string { @@ -1646,7 +1569,7 @@ func (*TestCases) ProtoMessage() {} func (x *TestCases) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1669,24 +1592,21 @@ func (x *TestCases) GetData() []*TestCase { } type TestCase struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + SuiteName string `protobuf:"bytes,2,opt,name=suiteName,proto3" json:"suiteName,omitempty"` + Request *Request `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"` + Response *Response `protobuf:"bytes,4,opt,name=response,proto3" json:"response,omitempty"` + Server string `protobuf:"bytes,5,opt,name=server,proto3" json:"server,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - SuiteName string `protobuf:"bytes,2,opt,name=suiteName,proto3" json:"suiteName,omitempty"` - Request *Request `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"` - Response *Response `protobuf:"bytes,4,opt,name=response,proto3" json:"response,omitempty"` - Server string `protobuf:"bytes,5,opt,name=server,proto3" json:"server,omitempty"` + sizeCache protoimpl.SizeCache } func (x *TestCase) Reset() { *x = TestCase{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TestCase) String() string { @@ -1697,7 +1617,7 @@ func (*TestCase) ProtoMessage() {} func (x *TestCase) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1748,10 +1668,7 @@ func (x *TestCase) GetServer() string { } type HistoryTestCase struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` CaseName string `protobuf:"bytes,1,opt,name=caseName,proto3" json:"caseName,omitempty"` SuiteName string `protobuf:"bytes,2,opt,name=suiteName,proto3" json:"suiteName,omitempty"` HistorySuiteName string `protobuf:"bytes,3,opt,name=historySuiteName,proto3" json:"historySuiteName,omitempty"` @@ -1763,15 +1680,15 @@ type HistoryTestCase struct { Response *Response `protobuf:"bytes,9,opt,name=response,proto3" json:"response,omitempty"` ID string `protobuf:"bytes,10,opt,name=ID,proto3" json:"ID,omitempty"` HistoryHeader []*Pair `protobuf:"bytes,11,rep,name=historyHeader,proto3" json:"historyHeader,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *HistoryTestCase) Reset() { *x = HistoryTestCase{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HistoryTestCase) String() string { @@ -1782,7 +1699,7 @@ func (*HistoryTestCase) ProtoMessage() {} func (x *HistoryTestCase) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1875,20 +1792,17 @@ func (x *HistoryTestCase) GetHistoryHeader() []*Pair { } type HistoryTestCases struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []*HistoryTestCase `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Data []*HistoryTestCase `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HistoryTestCases) Reset() { *x = HistoryTestCases{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HistoryTestCases) String() string { @@ -1899,7 +1813,7 @@ func (*HistoryTestCases) ProtoMessage() {} func (x *HistoryTestCases) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1922,26 +1836,23 @@ func (x *HistoryTestCases) GetData() []*HistoryTestCase { } type Request struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"` + Header []*Pair `protobuf:"bytes,3,rep,name=header,proto3" json:"header,omitempty"` + Query []*Pair `protobuf:"bytes,4,rep,name=query,proto3" json:"query,omitempty"` + Cookie []*Pair `protobuf:"bytes,5,rep,name=cookie,proto3" json:"cookie,omitempty"` + Form []*Pair `protobuf:"bytes,6,rep,name=form,proto3" json:"form,omitempty"` + Body string `protobuf:"bytes,7,opt,name=body,proto3" json:"body,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"` - Header []*Pair `protobuf:"bytes,3,rep,name=header,proto3" json:"header,omitempty"` - Query []*Pair `protobuf:"bytes,4,rep,name=query,proto3" json:"query,omitempty"` - Cookie []*Pair `protobuf:"bytes,5,rep,name=cookie,proto3" json:"cookie,omitempty"` - Form []*Pair `protobuf:"bytes,6,rep,name=form,proto3" json:"form,omitempty"` - Body string `protobuf:"bytes,7,opt,name=body,proto3" json:"body,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Request) Reset() { *x = Request{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Request) String() string { @@ -1952,7 +1863,7 @@ func (*Request) ProtoMessage() {} func (x *Request) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2017,26 +1928,23 @@ func (x *Request) GetBody() string { } type Response struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - StatusCode int32 `protobuf:"varint,1,opt,name=statusCode,proto3" json:"statusCode,omitempty"` - Body string `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"` - Header []*Pair `protobuf:"bytes,3,rep,name=header,proto3" json:"header,omitempty"` - BodyFieldsExpect []*Pair `protobuf:"bytes,4,rep,name=bodyFieldsExpect,proto3" json:"bodyFieldsExpect,omitempty"` - Verify []string `protobuf:"bytes,5,rep,name=verify,proto3" json:"verify,omitempty"` - ConditionalVerify []*ConditionalVerify `protobuf:"bytes,6,rep,name=ConditionalVerify,proto3" json:"ConditionalVerify,omitempty"` - Schema string `protobuf:"bytes,7,opt,name=schema,proto3" json:"schema,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + StatusCode int32 `protobuf:"varint,1,opt,name=statusCode,proto3" json:"statusCode,omitempty"` + Body string `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"` + Header []*Pair `protobuf:"bytes,3,rep,name=header,proto3" json:"header,omitempty"` + BodyFieldsExpect []*Pair `protobuf:"bytes,4,rep,name=bodyFieldsExpect,proto3" json:"bodyFieldsExpect,omitempty"` + Verify []string `protobuf:"bytes,5,rep,name=verify,proto3" json:"verify,omitempty"` + ConditionalVerify []*ConditionalVerify `protobuf:"bytes,6,rep,name=ConditionalVerify,proto3" json:"ConditionalVerify,omitempty"` + Schema string `protobuf:"bytes,7,opt,name=schema,proto3" json:"schema,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Response) Reset() { *x = Response{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Response) String() string { @@ -2047,7 +1955,7 @@ func (*Response) ProtoMessage() {} func (x *Response) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2112,21 +2020,18 @@ func (x *Response) GetSchema() string { } type ConditionalVerify struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Condition []string `protobuf:"bytes,1,rep,name=condition,proto3" json:"condition,omitempty"` + Verify []string `protobuf:"bytes,2,rep,name=verify,proto3" json:"verify,omitempty"` unknownFields protoimpl.UnknownFields - - Condition []string `protobuf:"bytes,1,rep,name=condition,proto3" json:"condition,omitempty"` - Verify []string `protobuf:"bytes,2,rep,name=verify,proto3" json:"verify,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ConditionalVerify) Reset() { *x = ConditionalVerify{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ConditionalVerify) String() string { @@ -2137,7 +2042,7 @@ func (*ConditionalVerify) ProtoMessage() {} func (x *ConditionalVerify) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2167,25 +2072,22 @@ func (x *ConditionalVerify) GetVerify() []string { } type TestCaseResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + StatusCode int32 `protobuf:"varint,1,opt,name=statusCode,proto3" json:"statusCode,omitempty"` + Body string `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"` + Header []*Pair `protobuf:"bytes,3,rep,name=header,proto3" json:"header,omitempty"` + Error string `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"` + Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id,omitempty"` + Output string `protobuf:"bytes,6,opt,name=output,proto3" json:"output,omitempty"` unknownFields protoimpl.UnknownFields - - StatusCode int32 `protobuf:"varint,1,opt,name=statusCode,proto3" json:"statusCode,omitempty"` - Body string `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"` - Header []*Pair `protobuf:"bytes,3,rep,name=header,proto3" json:"header,omitempty"` - Error string `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"` - Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id,omitempty"` - Output string `protobuf:"bytes,6,opt,name=output,proto3" json:"output,omitempty"` + sizeCache protoimpl.SizeCache } func (x *TestCaseResult) Reset() { *x = TestCaseResult{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TestCaseResult) String() string { @@ -2196,7 +2098,7 @@ func (*TestCaseResult) ProtoMessage() {} func (x *TestCaseResult) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2254,22 +2156,19 @@ func (x *TestCaseResult) GetOutput() string { } type Pair struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` unknownFields protoimpl.UnknownFields - - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Pair) Reset() { *x = Pair{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Pair) String() string { @@ -2280,7 +2179,7 @@ func (*Pair) ProtoMessage() {} func (x *Pair) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2317,20 +2216,17 @@ func (x *Pair) GetDescription() string { } type Pairs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []*Pair `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Data []*Pair `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Pairs) Reset() { *x = Pairs{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Pairs) String() string { @@ -2341,7 +2237,7 @@ func (*Pairs) ProtoMessage() {} func (x *Pairs) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2364,21 +2260,18 @@ func (x *Pairs) GetData() []*Pair { } type SimpleQuery struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SimpleQuery) Reset() { *x = SimpleQuery{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SimpleQuery) String() string { @@ -2389,7 +2282,7 @@ func (*SimpleQuery) ProtoMessage() {} func (x *SimpleQuery) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2419,20 +2312,17 @@ func (x *SimpleQuery) GetKind() string { } type Stores struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []*Store `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Data []*Store `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Stores) Reset() { *x = Stores{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Stores) String() string { @@ -2443,7 +2333,7 @@ func (*Stores) ProtoMessage() {} func (x *Stores) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2466,30 +2356,27 @@ func (x *Stores) GetData() []*Store { } type Store struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Owner string `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"` + Username string `protobuf:"bytes,5,opt,name=username,proto3" json:"username,omitempty"` + Password string `protobuf:"bytes,6,opt,name=password,proto3" json:"password,omitempty"` + Properties []*Pair `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty"` + Kind *StoreKind `protobuf:"bytes,8,opt,name=kind,proto3" json:"kind,omitempty"` + Ready bool `protobuf:"varint,9,opt,name=ready,proto3" json:"ready,omitempty"` + ReadOnly bool `protobuf:"varint,10,opt,name=readOnly,proto3" json:"readOnly,omitempty"` + Disabled bool `protobuf:"varint,11,opt,name=disabled,proto3" json:"disabled,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Owner string `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` - Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"` - Username string `protobuf:"bytes,5,opt,name=username,proto3" json:"username,omitempty"` - Password string `protobuf:"bytes,6,opt,name=password,proto3" json:"password,omitempty"` - Properties []*Pair `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty"` - Kind *StoreKind `protobuf:"bytes,8,opt,name=kind,proto3" json:"kind,omitempty"` - Ready bool `protobuf:"varint,9,opt,name=ready,proto3" json:"ready,omitempty"` - ReadOnly bool `protobuf:"varint,10,opt,name=readOnly,proto3" json:"readOnly,omitempty"` - Disabled bool `protobuf:"varint,11,opt,name=disabled,proto3" json:"disabled,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Store) Reset() { *x = Store{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Store) String() string { @@ -2500,7 +2387,7 @@ func (*Store) ProtoMessage() {} func (x *Store) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2593,20 +2480,17 @@ func (x *Store) GetDisabled() bool { } type StoreKinds struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []*StoreKind `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Data []*StoreKind `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *StoreKinds) Reset() { *x = StoreKinds{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StoreKinds) String() string { @@ -2617,7 +2501,7 @@ func (*StoreKinds) ProtoMessage() {} func (x *StoreKinds) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2640,26 +2524,23 @@ func (x *StoreKinds) GetData() []*StoreKind { } type StoreKind struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"` + Dependencies []*StoreKindDependency `protobuf:"bytes,4,rep,name=dependencies,proto3" json:"dependencies,omitempty"` + Link string `protobuf:"bytes,5,opt,name=link,proto3" json:"link,omitempty"` + Params []*StoreKindParam `protobuf:"bytes,6,rep,name=params,proto3" json:"params,omitempty"` + Categories []string `protobuf:"bytes,7,rep,name=categories,proto3" json:"categories,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` - Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"` - Dependencies []*StoreKindDependency `protobuf:"bytes,4,rep,name=dependencies,proto3" json:"dependencies,omitempty"` - Link string `protobuf:"bytes,5,opt,name=link,proto3" json:"link,omitempty"` - Params []*StoreKindParam `protobuf:"bytes,6,rep,name=params,proto3" json:"params,omitempty"` - Categories []string `protobuf:"bytes,7,rep,name=categories,proto3" json:"categories,omitempty"` + sizeCache protoimpl.SizeCache } func (x *StoreKind) Reset() { *x = StoreKind{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StoreKind) String() string { @@ -2670,7 +2551,7 @@ func (*StoreKind) ProtoMessage() {} func (x *StoreKind) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2735,20 +2616,17 @@ func (x *StoreKind) GetCategories() []string { } type StoreKindDependency struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + sizeCache protoimpl.SizeCache } func (x *StoreKindDependency) Reset() { *x = StoreKindDependency{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StoreKindDependency) String() string { @@ -2759,7 +2637,7 @@ func (*StoreKindDependency) ProtoMessage() {} func (x *StoreKindDependency) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2782,23 +2660,20 @@ func (x *StoreKindDependency) GetName() string { } type StoreKindParam struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + DefaultValue string `protobuf:"bytes,3,opt,name=defaultValue,proto3" json:"defaultValue,omitempty"` + Enum []string `protobuf:"bytes,4,rep,name=enum,proto3" json:"enum,omitempty"` unknownFields protoimpl.UnknownFields - - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - DefaultValue string `protobuf:"bytes,3,opt,name=defaultValue,proto3" json:"defaultValue,omitempty"` - Enum []string `protobuf:"bytes,4,rep,name=enum,proto3" json:"enum,omitempty"` + sizeCache protoimpl.SizeCache } func (x *StoreKindParam) Reset() { *x = StoreKindParam{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StoreKindParam) String() string { @@ -2809,7 +2684,7 @@ func (*StoreKindParam) ProtoMessage() {} func (x *StoreKindParam) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[41] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2853,21 +2728,18 @@ func (x *StoreKindParam) GetEnum() []string { } type CommonResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` unknownFields protoimpl.UnknownFields - - Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` - Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CommonResult) Reset() { *x = CommonResult{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CommonResult) String() string { @@ -2878,7 +2750,7 @@ func (*CommonResult) ProtoMessage() {} func (x *CommonResult) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2908,20 +2780,17 @@ func (x *CommonResult) GetMessage() string { } type SimpleList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []*Pair `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Data []*Pair `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SimpleList) Reset() { *x = SimpleList{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SimpleList) String() string { @@ -2932,7 +2801,7 @@ func (*SimpleList) ProtoMessage() {} func (x *SimpleList) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[43] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2955,20 +2824,17 @@ func (x *SimpleList) GetData() []*Pair { } type SimpleName struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SimpleName) Reset() { *x = SimpleName{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SimpleName) String() string { @@ -2979,7 +2845,7 @@ func (*SimpleName) ProtoMessage() {} func (x *SimpleName) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[44] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3002,23 +2868,20 @@ func (x *SimpleName) GetName() string { } type CodeGenerateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + TestSuite string `protobuf:"bytes,1,opt,name=TestSuite,proto3" json:"TestSuite,omitempty"` + TestCase string `protobuf:"bytes,2,opt,name=TestCase,proto3" json:"TestCase,omitempty"` + Generator string `protobuf:"bytes,3,opt,name=Generator,proto3" json:"Generator,omitempty"` + ID string `protobuf:"bytes,4,opt,name=ID,proto3" json:"ID,omitempty"` unknownFields protoimpl.UnknownFields - - TestSuite string `protobuf:"bytes,1,opt,name=TestSuite,proto3" json:"TestSuite,omitempty"` - TestCase string `protobuf:"bytes,2,opt,name=TestCase,proto3" json:"TestCase,omitempty"` - Generator string `protobuf:"bytes,3,opt,name=Generator,proto3" json:"Generator,omitempty"` - ID string `protobuf:"bytes,4,opt,name=ID,proto3" json:"ID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CodeGenerateRequest) Reset() { *x = CodeGenerateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CodeGenerateRequest) String() string { @@ -3029,7 +2892,7 @@ func (*CodeGenerateRequest) ProtoMessage() {} func (x *CodeGenerateRequest) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[45] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3073,20 +2936,17 @@ func (x *CodeGenerateRequest) GetID() string { } type Secrets struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []*Secret `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Data []*Secret `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Secrets) Reset() { *x = Secrets{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[46] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Secrets) String() string { @@ -3097,7 +2957,7 @@ func (*Secrets) ProtoMessage() {} func (x *Secrets) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[46] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3120,22 +2980,19 @@ func (x *Secrets) GetData() []*Secret { } type Secret struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` + Value string `protobuf:"bytes,2,opt,name=Value,proto3" json:"Value,omitempty"` + Description string `protobuf:"bytes,3,opt,name=Description,proto3" json:"Description,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` - Value string `protobuf:"bytes,2,opt,name=Value,proto3" json:"Value,omitempty"` - Description string `protobuf:"bytes,3,opt,name=Description,proto3" json:"Description,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Secret) Reset() { *x = Secret{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Secret) String() string { @@ -3146,7 +3003,7 @@ func (*Secret) ProtoMessage() {} func (x *Secret) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[47] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3183,23 +3040,20 @@ func (x *Secret) GetDescription() string { } type ExtensionStatus struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Ready bool `protobuf:"varint,1,opt,name=ready,proto3" json:"ready,omitempty"` + ReadOnly bool `protobuf:"varint,2,opt,name=readOnly,proto3" json:"readOnly,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"` unknownFields protoimpl.UnknownFields - - Ready bool `protobuf:"varint,1,opt,name=ready,proto3" json:"ready,omitempty"` - ReadOnly bool `protobuf:"varint,2,opt,name=readOnly,proto3" json:"readOnly,omitempty"` - Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` - Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ExtensionStatus) Reset() { *x = ExtensionStatus{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExtensionStatus) String() string { @@ -3210,7 +3064,7 @@ func (*ExtensionStatus) ProtoMessage() {} func (x *ExtensionStatus) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[48] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3254,20 +3108,17 @@ func (x *ExtensionStatus) GetMessage() string { } type PProfRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + sizeCache protoimpl.SizeCache } func (x *PProfRequest) Reset() { *x = PProfRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[49] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PProfRequest) String() string { @@ -3278,7 +3129,7 @@ func (*PProfRequest) ProtoMessage() {} func (x *PProfRequest) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[49] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3301,20 +3152,17 @@ func (x *PProfRequest) GetName() string { } type PProfData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *PProfData) Reset() { *x = PProfData{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[50] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PProfData) String() string { @@ -3325,7 +3173,7 @@ func (*PProfData) ProtoMessage() {} func (x *PProfData) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[50] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3348,22 +3196,19 @@ func (x *PProfData) GetData() []byte { } type FileData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + ContentType string `protobuf:"bytes,2,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` + Filename string `protobuf:"bytes,3,opt,name=filename,proto3" json:"filename,omitempty"` unknownFields protoimpl.UnknownFields - - Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` - ContentType string `protobuf:"bytes,2,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` - Filename string `protobuf:"bytes,3,opt,name=filename,proto3" json:"filename,omitempty"` + sizeCache protoimpl.SizeCache } func (x *FileData) Reset() { *x = FileData{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[51] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FileData) String() string { @@ -3374,7 +3219,7 @@ func (*FileData) ProtoMessage() {} func (x *FileData) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[51] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3411,18 +3256,16 @@ func (x *FileData) GetFilename() string { } type Empty struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Empty) Reset() { *x = Empty{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[52] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Empty) String() string { @@ -3433,7 +3276,7 @@ func (*Empty) ProtoMessage() {} func (x *Empty) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[52] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3449,26 +3292,23 @@ func (*Empty) Descriptor() ([]byte, []int) { } type MockConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Prefix string `protobuf:"bytes,1,opt,name=Prefix,proto3" json:"Prefix,omitempty"` - Config string `protobuf:"bytes,2,opt,name=Config,proto3" json:"Config,omitempty"` - Port int32 `protobuf:"varint,3,opt,name=Port,proto3" json:"Port,omitempty"` - StoreKind string `protobuf:"bytes,4,opt,name=storeKind,proto3" json:"storeKind,omitempty"` - StoreLocalFile string `protobuf:"bytes,5,opt,name=storeLocalFile,proto3" json:"storeLocalFile,omitempty"` - StoreURL string `protobuf:"bytes,6,opt,name=storeURL,proto3" json:"storeURL,omitempty"` - StoreRemote string `protobuf:"bytes,7,opt,name=storeRemote,proto3" json:"storeRemote,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Prefix string `protobuf:"bytes,1,opt,name=Prefix,proto3" json:"Prefix,omitempty"` + Config string `protobuf:"bytes,2,opt,name=Config,proto3" json:"Config,omitempty"` + Port int32 `protobuf:"varint,3,opt,name=Port,proto3" json:"Port,omitempty"` + StoreKind string `protobuf:"bytes,4,opt,name=storeKind,proto3" json:"storeKind,omitempty"` + StoreLocalFile string `protobuf:"bytes,5,opt,name=storeLocalFile,proto3" json:"storeLocalFile,omitempty"` + StoreURL string `protobuf:"bytes,6,opt,name=storeURL,proto3" json:"storeURL,omitempty"` + StoreRemote string `protobuf:"bytes,7,opt,name=storeRemote,proto3" json:"storeRemote,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *MockConfig) Reset() { *x = MockConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[53] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MockConfig) String() string { @@ -3479,7 +3319,7 @@ func (*MockConfig) ProtoMessage() {} func (x *MockConfig) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[53] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3544,22 +3384,19 @@ func (x *MockConfig) GetStoreRemote() string { } type Version struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + Commit string `protobuf:"bytes,2,opt,name=commit,proto3" json:"commit,omitempty"` + Date string `protobuf:"bytes,3,opt,name=date,proto3" json:"date,omitempty"` unknownFields protoimpl.UnknownFields - - Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` - Commit string `protobuf:"bytes,2,opt,name=commit,proto3" json:"commit,omitempty"` - Date string `protobuf:"bytes,3,opt,name=date,proto3" json:"date,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Version) Reset() { *x = Version{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[54] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Version) String() string { @@ -3570,7 +3407,7 @@ func (*Version) ProtoMessage() {} func (x *Version) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[54] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3607,22 +3444,19 @@ func (x *Version) GetDate() string { } type ProxyConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Http string `protobuf:"bytes,1,opt,name=http,proto3" json:"http,omitempty"` // HTTP proxy URL + Https string `protobuf:"bytes,2,opt,name=https,proto3" json:"https,omitempty"` // HTTPS proxy URL + No string `protobuf:"bytes,3,opt,name=no,proto3" json:"no,omitempty"` // Comma-separated list of hosts to exclude from proxying unknownFields protoimpl.UnknownFields - - Http string `protobuf:"bytes,1,opt,name=http,proto3" json:"http,omitempty"` // HTTP proxy URL - Https string `protobuf:"bytes,2,opt,name=https,proto3" json:"https,omitempty"` // HTTPS proxy URL - No string `protobuf:"bytes,3,opt,name=no,proto3" json:"no,omitempty"` // Comma-separated list of hosts to exclude from proxying + sizeCache protoimpl.SizeCache } func (x *ProxyConfig) Reset() { *x = ProxyConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[55] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProxyConfig) String() string { @@ -3633,7 +3467,7 @@ func (*ProxyConfig) ProtoMessage() {} func (x *ProxyConfig) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[55] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3670,24 +3504,21 @@ func (x *ProxyConfig) GetNo() string { } type DataQuery struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` + Sql string `protobuf:"bytes,3,opt,name=sql,proto3" json:"sql,omitempty"` + Offset int64 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"` + Limit int64 `protobuf:"varint,5,opt,name=limit,proto3" json:"limit,omitempty"` unknownFields protoimpl.UnknownFields - - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` - Sql string `protobuf:"bytes,3,opt,name=sql,proto3" json:"sql,omitempty"` - Offset int64 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"` - Limit int64 `protobuf:"varint,5,opt,name=limit,proto3" json:"limit,omitempty"` + sizeCache protoimpl.SizeCache } func (x *DataQuery) Reset() { *x = DataQuery{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[56] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DataQuery) String() string { @@ -3698,7 +3529,7 @@ func (*DataQuery) ProtoMessage() {} func (x *DataQuery) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[56] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3749,22 +3580,19 @@ func (x *DataQuery) GetLimit() int64 { } type DataQueryResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []*Pair `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + Items []*Pairs `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` + Meta *DataMeta `protobuf:"bytes,3,opt,name=meta,proto3" json:"meta,omitempty"` unknownFields protoimpl.UnknownFields - - Data []*Pair `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` - Items []*Pairs `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` - Meta *DataMeta `protobuf:"bytes,3,opt,name=meta,proto3" json:"meta,omitempty"` + sizeCache protoimpl.SizeCache } func (x *DataQueryResult) Reset() { *x = DataQueryResult{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[57] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DataQueryResult) String() string { @@ -3775,7 +3603,7 @@ func (*DataQueryResult) ProtoMessage() {} func (x *DataQueryResult) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[57] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3812,24 +3640,21 @@ func (x *DataQueryResult) GetMeta() *DataMeta { } type DataMeta struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Databases []string `protobuf:"bytes,1,rep,name=databases,proto3" json:"databases,omitempty"` - Tables []string `protobuf:"bytes,2,rep,name=tables,proto3" json:"tables,omitempty"` - CurrentDatabase string `protobuf:"bytes,3,opt,name=currentDatabase,proto3" json:"currentDatabase,omitempty"` - Duration string `protobuf:"bytes,4,opt,name=duration,proto3" json:"duration,omitempty"` - Labels []*Pair `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Databases []string `protobuf:"bytes,1,rep,name=databases,proto3" json:"databases,omitempty"` + Tables []string `protobuf:"bytes,2,rep,name=tables,proto3" json:"tables,omitempty"` + CurrentDatabase string `protobuf:"bytes,3,opt,name=currentDatabase,proto3" json:"currentDatabase,omitempty"` + Duration string `protobuf:"bytes,4,opt,name=duration,proto3" json:"duration,omitempty"` + Labels []*Pair `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DataMeta) Reset() { *x = DataMeta{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_server_server_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_server_server_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DataMeta) String() string { @@ -3840,7 +3665,7 @@ func (*DataMeta) ProtoMessage() {} func (x *DataMeta) ProtoReflect() protoreflect.Message { mi := &file_pkg_server_server_proto_msgTypes[58] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3890,849 +3715,602 @@ func (x *DataMeta) GetLabels() []*Pair { return nil } -var File_pkg_server_server_proto protoreflect.FileDescriptor +type AIRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Input string `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + Context string `protobuf:"bytes,2,opt,name=context,proto3" json:"context,omitempty"` + Parameters []*Pair `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AIRequest) Reset() { + *x = AIRequest{} + mi := &file_pkg_server_server_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} -var file_pkg_server_server_proto_rawDesc = []byte{ - 0x0a, 0x17, 0x70, 0x6b, 0x67, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 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, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0x5e, 0x0a, 0x04, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x22, 0x2c, 0x0a, 0x08, 0x4d, 0x65, 0x6e, 0x75, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x7e, - 0x0a, 0x06, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x46, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x49, 0x74, - 0x65, 0x6d, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, - 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6b, - 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, - 0x93, 0x01, 0x0a, 0x0d, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, - 0x73, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x4d, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3f, 0x0a, 0x0c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x43, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x97, 0x01, 0x0a, 0x13, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x43, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x73, 0x75, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, - 0x75, 0x69, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x73, 0x74, 0x63, 0x61, 0x73, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x63, 0x61, 0x73, 0x65, - 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x68, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x44, - 0x22, 0x72, 0x0a, 0x10, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x75, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x75, 0x69, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, - 0x73, 0x74, 0x63, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, - 0x73, 0x74, 0x63, 0x61, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x73, 0x22, 0x4b, 0x0a, 0x0f, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, - 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, - 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x12, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0xa5, 0x01, 0x0a, 0x09, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x22, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, - 0x69, 0x72, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x23, 0x0a, 0x04, 0x73, 0x70, 0x65, - 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x41, 0x50, 0x49, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x29, - 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x22, 0x62, 0x0a, 0x11, 0x54, 0x65, 0x73, - 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x43, 0x61, 0x73, 0x65, 0x12, 0x27, - 0x0a, 0x05, 0x73, 0x75, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, - 0x52, 0x05, 0x73, 0x75, 0x69, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x04, 0x63, 0x61, 0x73, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, - 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x04, 0x63, 0x61, 0x73, 0x65, 0x22, 0x76, 0x0a, - 0x07, 0x41, 0x50, 0x49, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, - 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1d, - 0x0a, 0x03, 0x72, 0x70, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x50, 0x43, 0x52, 0x03, 0x72, 0x70, 0x63, 0x12, 0x26, 0x0a, - 0x06, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x52, 0x06, 0x73, - 0x65, 0x63, 0x75, 0x72, 0x65, 0x22, 0x7a, 0x0a, 0x06, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x65, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x65, 0x72, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x63, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x63, 0x61, 0x12, - 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x22, 0x95, 0x01, 0x0a, 0x03, 0x52, 0x50, 0x43, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6d, 0x70, - 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x69, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x66, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, - 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x61, 0x77, 0x22, 0x4d, 0x0a, 0x11, 0x54, 0x65, 0x73, - 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x68, 0x0a, 0x12, 0x54, 0x65, 0x73, 0x74, - 0x53, 0x75, 0x69, 0x74, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x28, - 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, - 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x44, - 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x61, 0x73, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x43, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x61, - 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x43, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xf7, 0x01, 0x0a, - 0x08, 0x54, 0x65, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, - 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, - 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x12, 0x2b, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x54, 0x61, - 0x73, 0x6b, 0x2e, 0x45, 0x6e, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x65, 0x6e, 0x76, - 0x12, 0x2c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, - 0x69, 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x36, - 0x0a, 0x08, 0x45, 0x6e, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa9, 0x01, 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x54, 0x65, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x69, 0x74, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x75, 0x69, - 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x73, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x73, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, - 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, - 0x61, 0x6c, 0x22, 0x7c, 0x0a, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x3e, 0x0a, 0x0e, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x52, 0x0e, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x22, 0xec, 0x01, 0x0a, 0x11, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x3e, 0x0a, 0x0e, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, - 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0e, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x3a, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x05, 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, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, - 0x3c, 0x0a, 0x0a, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x1e, 0x0a, - 0x08, 0x59, 0x61, 0x6d, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x55, 0x0a, - 0x05, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x26, 0x0a, 0x05, - 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x22, 0x57, 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, - 0x57, 0x69, 0x74, 0x68, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x69, - 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x75, - 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, - 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x31, 0x0a, - 0x09, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x22, 0xad, 0x01, 0x0a, 0x08, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x29, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x22, 0xc9, 0x03, 0x0a, 0x0f, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, - 0x43, 0x61, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, - 0x0a, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 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, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x0a, 0x73, 0x75, 0x69, 0x74, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x73, 0x75, 0x69, 0x74, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x12, 0x2d, 0x0a, 0x09, 0x73, 0x75, 0x69, 0x74, 0x65, 0x53, 0x70, 0x65, - 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x41, 0x50, 0x49, 0x53, 0x70, 0x65, 0x63, 0x52, 0x09, 0x73, 0x75, 0x69, 0x74, 0x65, 0x53, - 0x70, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x69, 0x74, 0x65, 0x41, 0x70, 0x69, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x75, 0x69, 0x74, 0x65, 0x41, 0x70, 0x69, 0x12, - 0x29, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x44, 0x12, 0x32, 0x0a, 0x0d, 0x68, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0d, 0x68, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x3f, 0x0a, 0x10, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, - 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, - 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xd9, 0x01, - 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x6d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x12, 0x24, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, - 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x05, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x24, 0x0a, - 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x52, 0x06, 0x63, 0x6f, 0x6f, - 0x6b, 0x69, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x52, - 0x04, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x97, 0x02, 0x0a, 0x08, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x24, 0x0a, 0x06, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x12, 0x38, 0x0a, 0x10, 0x62, 0x6f, 0x64, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x78, - 0x70, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x52, 0x10, 0x62, 0x6f, 0x64, 0x79, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x73, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x12, 0x47, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x11, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x22, 0x49, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x22, 0xa8, - 0x01, 0x0a, 0x0e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x24, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, - 0x61, 0x69, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x50, 0x0a, 0x04, 0x50, 0x61, 0x69, - 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x29, 0x0a, 0x05, 0x50, - 0x61, 0x69, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x35, 0x0a, 0x0b, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x2b, 0x0a, - 0x06, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, - 0x74, 0x6f, 0x72, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc0, 0x02, 0x0a, 0x05, 0x53, - 0x74, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x20, - 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, - 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x2c, 0x0a, 0x0a, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, - 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, - 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x33, 0x0a, - 0x0a, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0xf0, 0x01, 0x0a, 0x09, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x12, 0x3f, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, - 0x6e, 0x63, 0x79, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x2e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, - 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, - 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x29, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, - 0x6e, 0x64, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x7c, 0x0a, 0x0e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x6e, - 0x75, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x22, 0x42, - 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x22, 0x2e, 0x0a, 0x0a, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x20, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x20, 0x0a, 0x0a, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x7d, 0x0a, 0x13, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x54, - 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x65, 0x73, - 0x74, 0x43, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x54, 0x65, 0x73, - 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x49, 0x44, 0x22, 0x2d, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x22, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x54, 0x0a, 0x06, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x77, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, - 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x61, 0x64, - 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x18, 0x0a, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x22, 0x22, 0x0a, 0x0c, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x1f, 0x0a, 0x09, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5d, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, - 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, - 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xd4, - 0x01, 0x0a, 0x0a, 0x4d, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, - 0x06, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x50, 0x6f, 0x72, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x12, - 0x26, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4c, 0x6f, - 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x22, 0x4f, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x22, 0x47, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x74, 0x74, - 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x74, 0x74, 0x70, 0x73, 0x12, - 0x0e, 0x0a, 0x02, 0x6e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x6e, 0x6f, 0x22, - 0x71, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x71, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x73, 0x71, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x22, 0x7e, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, - 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x24, 0x0a, 0x04, - 0x6d, 0x65, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, - 0x74, 0x61, 0x22, 0xac, 0x01, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x4d, 0x65, 0x74, 0x61, 0x12, - 0x1c, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x06, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x32, 0xfc, 0x25, 0x0a, 0x06, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x03, - 0x52, 0x75, 0x6e, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, - 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x10, 0x22, 0x0b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6e, 0x3a, 0x01, - 0x2a, 0x12, 0x5f, 0x0a, 0x0c, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, - 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, - 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x72, 0x75, 0x6e, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x28, 0x01, - 0x30, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, - 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0e, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x22, 0x16, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x5b, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, - 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, - 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, - 0x3a, 0x01, 0x2a, 0x12, 0x62, 0x0a, 0x0f, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, - 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, - 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x69, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x5b, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54, 0x65, - 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, - 0x53, 0x75, 0x69, 0x74, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x5a, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, - 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x20, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x1a, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, - 0x12, 0x5f, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, - 0x69, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, - 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x12, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x2a, 0x15, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x7d, 0x12, 0x7b, 0x0a, 0x12, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x65, - 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, - 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x22, - 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, - 0x7b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x7d, 0x2f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x75, - 0x0a, 0x0f, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, - 0x65, 0x12, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, - 0x75, 0x69, 0x74, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x1a, 0x12, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x22, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x6e, 0x61, - 0x6d, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x63, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, - 0x53, 0x75, 0x69, 0x74, 0x65, 0x59, 0x61, 0x6d, 0x6c, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x1a, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x59, 0x61, - 0x6d, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x79, 0x61, 0x6d, 0x6c, 0x12, 0x5d, 0x0a, 0x0c, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, - 0x75, 0x69, 0x74, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, - 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x12, 0x77, 0x0a, 0x0b, 0x52, 0x75, 0x6e, - 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, - 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x30, 0x22, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, - 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x75, 0x69, 0x74, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73, - 0x2f, 0x7b, 0x74, 0x65, 0x73, 0x74, 0x63, 0x61, 0x73, 0x65, 0x7d, 0x2f, 0x72, 0x75, 0x6e, 0x3a, - 0x01, 0x2a, 0x12, 0x56, 0x0a, 0x08, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x12, 0x15, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x54, 0x65, 0x73, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, - 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x15, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x75, 0x6e, 0x3a, 0x01, 0x2a, 0x28, 0x01, 0x30, 0x01, 0x12, 0x6a, 0x0a, 0x0b, 0x47, 0x65, - 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x1a, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, - 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73, - 0x75, 0x69, 0x74, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x73, - 0x74, 0x63, 0x61, 0x73, 0x65, 0x7d, 0x12, 0x6c, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x53, 0x75, - 0x69, 0x74, 0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, - 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22, - 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, - 0x7b, 0x73, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, - 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x78, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, - 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x53, 0x75, 0x69, 0x74, - 0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x1a, 0x2c, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73, - 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2f, - 0x7b, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x6f, - 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, - 0x12, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, - 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2f, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x2a, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x75, 0x69, 0x74, 0x65, 0x7d, 0x2f, 0x63, - 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x73, 0x74, 0x63, 0x61, 0x73, 0x65, 0x7d, 0x12, - 0x90, 0x01, 0x0a, 0x11, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, - 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, - 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, - 0x65, 0x70, 0x6c, 0x79, 0x22, 0x4c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x22, 0x41, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, - 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x61, 0x73, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x3a, - 0x01, 0x2a, 0x12, 0x8a, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x54, 0x65, 0x73, - 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, - 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, - 0x65, 0x70, 0x6c, 0x79, 0x22, 0x49, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x22, 0x3e, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, - 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x61, 0x73, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x01, 0x2a, 0x12, - 0x5f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x41, - 0x50, 0x49, 0x73, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, - 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x11, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, - 0x73, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x41, 0x50, 0x49, 0x73, - 0x12, 0x57, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, - 0x69, 0x74, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x17, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x1c, 0x47, 0x65, - 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, - 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, - 0x61, 0x73, 0x65, 0x1a, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x57, - 0x69, 0x74, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2f, 0x7b, 0x49, 0x44, 0x7d, 0x12, 0x6c, - 0x0a, 0x12, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, - 0x43, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x17, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, - 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, - 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x2f, 0x7b, 0x49, 0x44, 0x7d, 0x12, 0x6a, 0x0a, 0x15, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, - 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x12, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x2a, 0x1c, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, - 0x61, 0x73, 0x65, 0x2f, 0x7b, 0x49, 0x44, 0x7d, 0x12, 0x83, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, - 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x12, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x2a, 0x32, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, - 0x73, 0x2f, 0x7b, 0x73, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x61, - 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x74, - 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x41, 0x6c, 0x6c, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, - 0x73, 0x65, 0x73, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x27, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x75, 0x69, - 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x56, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x1e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, - 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x6d, 0x0a, 0x0c, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, - 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x7c, 0x0a, 0x13, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x22, 0x27, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x4e, 0x0a, 0x0d, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x1a, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x73, 0x12, 0x6c, 0x0a, 0x10, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x1b, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x63, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x4e, 0x0a, 0x0e, 0x50, 0x6f, 0x70, 0x75, 0x6c, - 0x61, 0x72, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, - 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x4f, 0x0a, 0x0e, 0x46, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x0d, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x22, 0x19, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5e, 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, - 0x61, 0x69, 0x72, 0x73, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x28, 0x01, 0x30, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, - 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, - 0x12, 0x45, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0d, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x17, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x06, 0x53, 0x61, 0x6d, 0x70, 0x6c, - 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, - 0x65, 0x70, 0x6c, 0x79, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x68, 0x0a, 0x14, - 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x46, 0x69, 0x6c, 0x65, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, - 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, - 0x12, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x62, 0x6f, 0x64, 0x79, 0x7d, 0x12, 0x50, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, - 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x2f, 0x6b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, - 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x0e, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, - 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, - 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, - 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x4d, 0x0a, 0x0b, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x1a, - 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x4a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x2a, 0x15, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x5d, 0x0a, 0x0b, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x53, - 0x74, 0x6f, 0x72, 0x65, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, - 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x3a, 0x01, 0x2a, 0x12, 0x45, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x73, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x50, 0x0a, 0x0c, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x22, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x54, 0x0a, - 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x4e, 0x61, - 0x6d, 0x65, 0x7d, 0x12, 0x57, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1b, 0x1a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x73, 0x2f, 0x7b, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x32, 0x0a, 0x05, - 0x50, 0x50, 0x72, 0x6f, 0x66, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, - 0x50, 0x72, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00, - 0x32, 0x6b, 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x03, 0x52, 0x75, 0x6e, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x57, 0x69, 0x74, - 0x68, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x20, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x75, 0x6e, 0x3a, 0x01, 0x2a, 0x32, 0x91, 0x03, - 0x0a, 0x0b, 0x55, 0x49, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, - 0x08, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6e, 0x75, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x19, 0x12, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x73, 0x12, 0x62, 0x0a, 0x0b, 0x47, - 0x65, 0x74, 0x50, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x4a, 0x53, 0x12, 0x12, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x14, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2f, - 0x70, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x73, 0x12, - 0x64, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x43, 0x53, 0x53, 0x12, - 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x24, 0x12, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x7d, 0x2f, 0x63, 0x73, 0x73, 0x12, 0x6a, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x61, 0x67, 0x65, - 0x4f, 0x66, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x12, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x14, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x61, - 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x63, 0x32, 0xd2, 0x02, 0x0a, 0x0e, 0x54, 0x68, 0x65, 0x6d, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x54, 0x68, 0x65, 0x6d, 0x65, - 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x08, - 0x47, 0x65, 0x74, 0x54, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x14, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x7d, 0x12, 0x4a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, - 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, - 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x57, 0x0a, - 0x0a, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, - 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x32, 0xed, 0x01, 0x0a, 0x04, 0x4d, 0x6f, 0x63, 0x6b, 0x12, - 0x4b, 0x0a, 0x06, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x0d, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, - 0x63, 0x6b, 0x2f, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x4b, 0x0a, 0x09, - 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x1b, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, - 0x63, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4b, 0x0a, 0x08, 0x4c, 0x6f, 0x67, - 0x57, 0x61, 0x74, 0x63, 0x68, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x63, 0x6b, - 0x2f, 0x6c, 0x6f, 0x67, 0x30, 0x01, 0x32, 0x60, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x11, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x17, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x3a, 0x01, 0x2a, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x73, 0x75, 0x72, 0x65, - 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6b, - 0x67, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +func (x *AIRequest) String() string { + return protoimpl.X.MessageStringOf(x) } +func (*AIRequest) ProtoMessage() {} + +func (x *AIRequest) ProtoReflect() protoreflect.Message { + mi := &file_pkg_server_server_proto_msgTypes[59] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AIRequest.ProtoReflect.Descriptor instead. +func (*AIRequest) Descriptor() ([]byte, []int) { + return file_pkg_server_server_proto_rawDescGZIP(), []int{59} +} + +func (x *AIRequest) GetInput() string { + if x != nil { + return x.Input + } + return "" +} + +func (x *AIRequest) GetContext() string { + if x != nil { + return x.Context + } + return "" +} + +func (x *AIRequest) GetParameters() []*Pair { + if x != nil { + return x.Parameters + } + return nil +} + +type AIResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + Result string `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"` + Error string `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"` + Metadata []*Pair `protobuf:"bytes,4,rep,name=metadata,proto3" json:"metadata,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AIResponse) Reset() { + *x = AIResponse{} + mi := &file_pkg_server_server_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AIResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AIResponse) ProtoMessage() {} + +func (x *AIResponse) ProtoReflect() protoreflect.Message { + mi := &file_pkg_server_server_proto_msgTypes[60] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AIResponse.ProtoReflect.Descriptor instead. +func (*AIResponse) Descriptor() ([]byte, []int) { + return file_pkg_server_server_proto_rawDescGZIP(), []int{60} +} + +func (x *AIResponse) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +func (x *AIResponse) GetResult() string { + if x != nil { + return x.Result + } + return "" +} + +func (x *AIResponse) GetError() string { + if x != nil { + return x.Error + } + return "" +} + +func (x *AIResponse) GetMetadata() []*Pair { + if x != nil { + return x.Metadata + } + return nil +} + +type AIHealthResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Healthy bool `protobuf:"varint,1,opt,name=healthy,proto3" json:"healthy,omitempty"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AIHealthResponse) Reset() { + *x = AIHealthResponse{} + mi := &file_pkg_server_server_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AIHealthResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AIHealthResponse) ProtoMessage() {} + +func (x *AIHealthResponse) ProtoReflect() protoreflect.Message { + mi := &file_pkg_server_server_proto_msgTypes[61] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AIHealthResponse.ProtoReflect.Descriptor instead. +func (*AIHealthResponse) Descriptor() ([]byte, []int) { + return file_pkg_server_server_proto_rawDescGZIP(), []int{61} +} + +func (x *AIHealthResponse) GetHealthy() bool { + if x != nil { + return x.Healthy + } + return false +} + +func (x *AIHealthResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *AIHealthResponse) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +var File_pkg_server_server_proto protoreflect.FileDescriptor + +const file_pkg_server_server_proto_rawDesc = "" + + "\n" + + "\x17pkg/server/server.proto\x12\x06server\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/api/annotations.proto\"^\n" + + "\x04Menu\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + + "\x05index\x18\x02 \x01(\tR\x05index\x12\x12\n" + + "\x04icon\x18\x03 \x01(\tR\x04icon\x12\x18\n" + + "\aversion\x18\x04 \x01(\x05R\aversion\",\n" + + "\bMenuList\x12 \n" + + "\x04data\x18\x01 \x03(\v2\f.server.MenuR\x04data\"~\n" + + "\x06Suites\x12,\n" + + "\x04data\x18\x01 \x03(\v2\x18.server.Suites.DataEntryR\x04data\x1aF\n" + + "\tDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12#\n" + + "\x05value\x18\x02 \x01(\v2\r.server.ItemsR\x05value:\x028\x01\"/\n" + + "\x05Items\x12\x12\n" + + "\x04data\x18\x01 \x03(\tR\x04data\x12\x12\n" + + "\x04kind\x18\x02 \x01(\tR\x04kind\"\x93\x01\n" + + "\rHistorySuites\x123\n" + + "\x04data\x18\x01 \x03(\v2\x1f.server.HistorySuites.DataEntryR\x04data\x1aM\n" + + "\tDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12*\n" + + "\x05value\x18\x02 \x01(\v2\x14.server.HistoryItemsR\x05value:\x028\x01\"?\n" + + "\fHistoryItems\x12/\n" + + "\x04data\x18\x01 \x03(\v2\x1b.server.HistoryCaseIdentityR\x04data\"\x97\x01\n" + + "\x13HistoryCaseIdentity\x12\x14\n" + + "\x05suite\x18\x01 \x01(\tR\x05suite\x12\x1a\n" + + "\btestcase\x18\x02 \x01(\tR\btestcase\x12*\n" + + "\x10historySuiteName\x18\x03 \x01(\tR\x10historySuiteName\x12\x12\n" + + "\x04kind\x18\x04 \x01(\tR\x04kind\x12\x0e\n" + + "\x02ID\x18\x05 \x01(\tR\x02ID\"r\n" + + "\x10TestCaseIdentity\x12\x14\n" + + "\x05suite\x18\x01 \x01(\tR\x05suite\x12\x1a\n" + + "\btestcase\x18\x02 \x01(\tR\btestcase\x12,\n" + + "\n" + + "parameters\x18\x03 \x03(\v2\f.server.PairR\n" + + "parameters\"K\n" + + "\x0fTestSuiteSource\x12\x12\n" + + "\x04kind\x18\x01 \x01(\tR\x04kind\x12\x10\n" + + "\x03url\x18\x02 \x01(\tR\x03url\x12\x12\n" + + "\x04data\x18\x03 \x01(\tR\x04data\"\xa5\x01\n" + + "\tTestSuite\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n" + + "\x03api\x18\x02 \x01(\tR\x03api\x12\"\n" + + "\x05param\x18\x03 \x03(\v2\f.server.PairR\x05param\x12#\n" + + "\x04spec\x18\x04 \x01(\v2\x0f.server.APISpecR\x04spec\x12)\n" + + "\x05proxy\x18\x05 \x01(\v2\x13.server.ProxyConfigR\x05proxy\"b\n" + + "\x11TestSuiteWithCase\x12'\n" + + "\x05suite\x18\x01 \x01(\v2\x11.server.TestSuiteR\x05suite\x12$\n" + + "\x04case\x18\x02 \x01(\v2\x10.server.TestCaseR\x04case\"v\n" + + "\aAPISpec\x12\x12\n" + + "\x04kind\x18\x01 \x01(\tR\x04kind\x12\x10\n" + + "\x03url\x18\x02 \x01(\tR\x03url\x12\x1d\n" + + "\x03rpc\x18\x03 \x01(\v2\v.server.RPCR\x03rpc\x12&\n" + + "\x06secure\x18\x04 \x01(\v2\x0e.server.SecureR\x06secure\"z\n" + + "\x06Secure\x12\x1a\n" + + "\binsecure\x18\x01 \x01(\bR\binsecure\x12\x12\n" + + "\x04cert\x18\x02 \x01(\tR\x04cert\x12\x0e\n" + + "\x02ca\x18\x03 \x01(\tR\x02ca\x12\x1e\n" + + "\n" + + "serverName\x18\x04 \x01(\tR\n" + + "serverName\x12\x10\n" + + "\x03key\x18\x05 \x01(\tR\x03key\"\x95\x01\n" + + "\x03RPC\x12\x16\n" + + "\x06import\x18\x01 \x03(\tR\x06import\x12*\n" + + "\x10serverReflection\x18\x02 \x01(\bR\x10serverReflection\x12\x1c\n" + + "\tprotofile\x18\x03 \x01(\tR\tprotofile\x12\x1a\n" + + "\bprotoset\x18\x04 \x01(\tR\bprotoset\x12\x10\n" + + "\x03raw\x18\x05 \x01(\tR\x03raw\"M\n" + + "\x11TestSuiteIdentity\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n" + + "\x03api\x18\x02 \x01(\tR\x03api\x12\x12\n" + + "\x04kind\x18\x03 \x01(\tR\x04kind\"h\n" + + "\x12TestSuiteDuplicate\x12(\n" + + "\x0fsourceSuiteName\x18\x01 \x01(\tR\x0fsourceSuiteName\x12(\n" + + "\x0ftargetSuiteName\x18\x02 \x01(\tR\x0ftargetSuiteName\"\xb7\x01\n" + + "\x11TestCaseDuplicate\x12(\n" + + "\x0fsourceSuiteName\x18\x01 \x01(\tR\x0fsourceSuiteName\x12&\n" + + "\x0esourceCaseName\x18\x02 \x01(\tR\x0esourceCaseName\x12(\n" + + "\x0ftargetSuiteName\x18\x03 \x01(\tR\x0ftargetSuiteName\x12&\n" + + "\x0etargetCaseName\x18\x04 \x01(\tR\x0etargetCaseName\"\xf7\x01\n" + + "\bTestTask\x12\x12\n" + + "\x04data\x18\x01 \x01(\tR\x04data\x12\x12\n" + + "\x04kind\x18\x02 \x01(\tR\x04kind\x12\x1a\n" + + "\bcaseName\x18\x03 \x01(\tR\bcaseName\x12\x14\n" + + "\x05level\x18\x04 \x01(\tR\x05level\x12+\n" + + "\x03env\x18\x05 \x03(\v2\x19.server.TestTask.EnvEntryR\x03env\x12,\n" + + "\n" + + "parameters\x18\x06 \x03(\v2\f.server.PairR\n" + + "parameters\x1a6\n" + + "\bEnvEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xa9\x01\n" + + "\rBatchTestTask\x12\x1c\n" + + "\tsuiteName\x18\x01 \x01(\tR\tsuiteName\x12\x1a\n" + + "\bcaseName\x18\x02 \x01(\tR\bcaseName\x12,\n" + + "\n" + + "parameters\x18\x03 \x03(\v2\f.server.PairR\n" + + "parameters\x12\x14\n" + + "\x05count\x18\x04 \x01(\x05R\x05count\x12\x1a\n" + + "\binterval\x18\x05 \x01(\tR\binterval\"|\n" + + "\n" + + "TestResult\x12\x18\n" + + "\amessage\x18\x01 \x01(\tR\amessage\x12\x14\n" + + "\x05error\x18\x02 \x01(\tR\x05error\x12>\n" + + "\x0etestCaseResult\x18\x03 \x03(\v2\x16.server.TestCaseResultR\x0etestCaseResult\"\xec\x01\n" + + "\x11HistoryTestResult\x12\x18\n" + + "\amessage\x18\x01 \x01(\tR\amessage\x12\x14\n" + + "\x05error\x18\x02 \x01(\tR\x05error\x12>\n" + + "\x0etestCaseResult\x18\x03 \x03(\v2\x16.server.TestCaseResultR\x0etestCaseResult\x12+\n" + + "\x04data\x18\x04 \x01(\v2\x17.server.HistoryTestCaseR\x04data\x12:\n" + + "\n" + + "createTime\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "createTime\"<\n" + + "\n" + + "HelloReply\x12\x18\n" + + "\amessage\x18\x01 \x01(\tR\amessage\x12\x14\n" + + "\x05error\x18\x02 \x01(\tR\x05error\"\x1e\n" + + "\bYamlData\x12\x12\n" + + "\x04data\x18\x01 \x01(\fR\x04data\"U\n" + + "\x05Suite\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n" + + "\x03api\x18\x02 \x01(\tR\x03api\x12&\n" + + "\x05items\x18\x03 \x03(\v2\x10.server.TestCaseR\x05items\"W\n" + + "\x11TestCaseWithSuite\x12\x1c\n" + + "\tsuiteName\x18\x01 \x01(\tR\tsuiteName\x12$\n" + + "\x04data\x18\x02 \x01(\v2\x10.server.TestCaseR\x04data\"1\n" + + "\tTestCases\x12$\n" + + "\x04data\x18\x01 \x03(\v2\x10.server.TestCaseR\x04data\"\xad\x01\n" + + "\bTestCase\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x1c\n" + + "\tsuiteName\x18\x02 \x01(\tR\tsuiteName\x12)\n" + + "\arequest\x18\x03 \x01(\v2\x0f.server.RequestR\arequest\x12,\n" + + "\bresponse\x18\x04 \x01(\v2\x10.server.ResponseR\bresponse\x12\x16\n" + + "\x06server\x18\x05 \x01(\tR\x06server\"\xc9\x03\n" + + "\x0fHistoryTestCase\x12\x1a\n" + + "\bcaseName\x18\x01 \x01(\tR\bcaseName\x12\x1c\n" + + "\tsuiteName\x18\x02 \x01(\tR\tsuiteName\x12*\n" + + "\x10historySuiteName\x18\x03 \x01(\tR\x10historySuiteName\x12:\n" + + "\n" + + "createTime\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "createTime\x12,\n" + + "\n" + + "suiteParam\x18\x05 \x03(\v2\f.server.PairR\n" + + "suiteParam\x12-\n" + + "\tsuiteSpec\x18\x06 \x01(\v2\x0f.server.APISpecR\tsuiteSpec\x12\x1a\n" + + "\bsuiteApi\x18\a \x01(\tR\bsuiteApi\x12)\n" + + "\arequest\x18\b \x01(\v2\x0f.server.RequestR\arequest\x12,\n" + + "\bresponse\x18\t \x01(\v2\x10.server.ResponseR\bresponse\x12\x0e\n" + + "\x02ID\x18\n" + + " \x01(\tR\x02ID\x122\n" + + "\rhistoryHeader\x18\v \x03(\v2\f.server.PairR\rhistoryHeader\"?\n" + + "\x10HistoryTestCases\x12+\n" + + "\x04data\x18\x01 \x03(\v2\x17.server.HistoryTestCaseR\x04data\"\xd9\x01\n" + + "\aRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x16\n" + + "\x06method\x18\x02 \x01(\tR\x06method\x12$\n" + + "\x06header\x18\x03 \x03(\v2\f.server.PairR\x06header\x12\"\n" + + "\x05query\x18\x04 \x03(\v2\f.server.PairR\x05query\x12$\n" + + "\x06cookie\x18\x05 \x03(\v2\f.server.PairR\x06cookie\x12 \n" + + "\x04form\x18\x06 \x03(\v2\f.server.PairR\x04form\x12\x12\n" + + "\x04body\x18\a \x01(\tR\x04body\"\x97\x02\n" + + "\bResponse\x12\x1e\n" + + "\n" + + "statusCode\x18\x01 \x01(\x05R\n" + + "statusCode\x12\x12\n" + + "\x04body\x18\x02 \x01(\tR\x04body\x12$\n" + + "\x06header\x18\x03 \x03(\v2\f.server.PairR\x06header\x128\n" + + "\x10bodyFieldsExpect\x18\x04 \x03(\v2\f.server.PairR\x10bodyFieldsExpect\x12\x16\n" + + "\x06verify\x18\x05 \x03(\tR\x06verify\x12G\n" + + "\x11ConditionalVerify\x18\x06 \x03(\v2\x19.server.ConditionalVerifyR\x11ConditionalVerify\x12\x16\n" + + "\x06schema\x18\a \x01(\tR\x06schema\"I\n" + + "\x11ConditionalVerify\x12\x1c\n" + + "\tcondition\x18\x01 \x03(\tR\tcondition\x12\x16\n" + + "\x06verify\x18\x02 \x03(\tR\x06verify\"\xa8\x01\n" + + "\x0eTestCaseResult\x12\x1e\n" + + "\n" + + "statusCode\x18\x01 \x01(\x05R\n" + + "statusCode\x12\x12\n" + + "\x04body\x18\x02 \x01(\tR\x04body\x12$\n" + + "\x06header\x18\x03 \x03(\v2\f.server.PairR\x06header\x12\x14\n" + + "\x05error\x18\x04 \x01(\tR\x05error\x12\x0e\n" + + "\x02id\x18\x05 \x01(\tR\x02id\x12\x16\n" + + "\x06output\x18\x06 \x01(\tR\x06output\"P\n" + + "\x04Pair\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value\x12 \n" + + "\vdescription\x18\x03 \x01(\tR\vdescription\")\n" + + "\x05Pairs\x12 \n" + + "\x04data\x18\x01 \x03(\v2\f.server.PairR\x04data\"5\n" + + "\vSimpleQuery\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n" + + "\x04kind\x18\x02 \x01(\tR\x04kind\"+\n" + + "\x06Stores\x12!\n" + + "\x04data\x18\x01 \x03(\v2\r.server.StoreR\x04data\"\xc0\x02\n" + + "\x05Store\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + + "\x05owner\x18\x02 \x01(\tR\x05owner\x12 \n" + + "\vdescription\x18\x03 \x01(\tR\vdescription\x12\x10\n" + + "\x03url\x18\x04 \x01(\tR\x03url\x12\x1a\n" + + "\busername\x18\x05 \x01(\tR\busername\x12\x1a\n" + + "\bpassword\x18\x06 \x01(\tR\bpassword\x12,\n" + + "\n" + + "properties\x18\a \x03(\v2\f.server.PairR\n" + + "properties\x12%\n" + + "\x04kind\x18\b \x01(\v2\x11.server.StoreKindR\x04kind\x12\x14\n" + + "\x05ready\x18\t \x01(\bR\x05ready\x12\x1a\n" + + "\breadOnly\x18\n" + + " \x01(\bR\breadOnly\x12\x1a\n" + + "\bdisabled\x18\v \x01(\bR\bdisabled\"3\n" + + "\n" + + "StoreKinds\x12%\n" + + "\x04data\x18\x01 \x03(\v2\x11.server.StoreKindR\x04data\"\xf0\x01\n" + + "\tStoreKind\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n" + + "\x03url\x18\x02 \x01(\tR\x03url\x12\x18\n" + + "\aenabled\x18\x03 \x01(\bR\aenabled\x12?\n" + + "\fdependencies\x18\x04 \x03(\v2\x1b.server.StoreKindDependencyR\fdependencies\x12\x12\n" + + "\x04link\x18\x05 \x01(\tR\x04link\x12.\n" + + "\x06params\x18\x06 \x03(\v2\x16.server.StoreKindParamR\x06params\x12\x1e\n" + + "\n" + + "categories\x18\a \x03(\tR\n" + + "categories\")\n" + + "\x13StoreKindDependency\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\"|\n" + + "\x0eStoreKindParam\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12 \n" + + "\vdescription\x18\x02 \x01(\tR\vdescription\x12\"\n" + + "\fdefaultValue\x18\x03 \x01(\tR\fdefaultValue\x12\x12\n" + + "\x04enum\x18\x04 \x03(\tR\x04enum\"B\n" + + "\fCommonResult\x12\x18\n" + + "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\".\n" + + "\n" + + "SimpleList\x12 \n" + + "\x04data\x18\x01 \x03(\v2\f.server.PairR\x04data\" \n" + + "\n" + + "SimpleName\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\"}\n" + + "\x13CodeGenerateRequest\x12\x1c\n" + + "\tTestSuite\x18\x01 \x01(\tR\tTestSuite\x12\x1a\n" + + "\bTestCase\x18\x02 \x01(\tR\bTestCase\x12\x1c\n" + + "\tGenerator\x18\x03 \x01(\tR\tGenerator\x12\x0e\n" + + "\x02ID\x18\x04 \x01(\tR\x02ID\"-\n" + + "\aSecrets\x12\"\n" + + "\x04data\x18\x01 \x03(\v2\x0e.server.SecretR\x04data\"T\n" + + "\x06Secret\x12\x12\n" + + "\x04Name\x18\x01 \x01(\tR\x04Name\x12\x14\n" + + "\x05Value\x18\x02 \x01(\tR\x05Value\x12 \n" + + "\vDescription\x18\x03 \x01(\tR\vDescription\"w\n" + + "\x0fExtensionStatus\x12\x14\n" + + "\x05ready\x18\x01 \x01(\bR\x05ready\x12\x1a\n" + + "\breadOnly\x18\x02 \x01(\bR\breadOnly\x12\x18\n" + + "\aversion\x18\x03 \x01(\tR\aversion\x12\x18\n" + + "\amessage\x18\x04 \x01(\tR\amessage\"\"\n" + + "\fPProfRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\"\x1f\n" + + "\tPProfData\x12\x12\n" + + "\x04data\x18\x01 \x01(\fR\x04data\"]\n" + + "\bFileData\x12\x12\n" + + "\x04data\x18\x01 \x01(\fR\x04data\x12!\n" + + "\fcontent_type\x18\x02 \x01(\tR\vcontentType\x12\x1a\n" + + "\bfilename\x18\x03 \x01(\tR\bfilename\"\a\n" + + "\x05Empty\"\xd4\x01\n" + + "\n" + + "MockConfig\x12\x16\n" + + "\x06Prefix\x18\x01 \x01(\tR\x06Prefix\x12\x16\n" + + "\x06Config\x18\x02 \x01(\tR\x06Config\x12\x12\n" + + "\x04Port\x18\x03 \x01(\x05R\x04Port\x12\x1c\n" + + "\tstoreKind\x18\x04 \x01(\tR\tstoreKind\x12&\n" + + "\x0estoreLocalFile\x18\x05 \x01(\tR\x0estoreLocalFile\x12\x1a\n" + + "\bstoreURL\x18\x06 \x01(\tR\bstoreURL\x12 \n" + + "\vstoreRemote\x18\a \x01(\tR\vstoreRemote\"O\n" + + "\aVersion\x12\x18\n" + + "\aversion\x18\x01 \x01(\tR\aversion\x12\x16\n" + + "\x06commit\x18\x02 \x01(\tR\x06commit\x12\x12\n" + + "\x04date\x18\x03 \x01(\tR\x04date\"G\n" + + "\vProxyConfig\x12\x12\n" + + "\x04http\x18\x01 \x01(\tR\x04http\x12\x14\n" + + "\x05https\x18\x02 \x01(\tR\x05https\x12\x0e\n" + + "\x02no\x18\x03 \x01(\tR\x02no\"q\n" + + "\tDataQuery\x12\x12\n" + + "\x04type\x18\x01 \x01(\tR\x04type\x12\x10\n" + + "\x03key\x18\x02 \x01(\tR\x03key\x12\x10\n" + + "\x03sql\x18\x03 \x01(\tR\x03sql\x12\x16\n" + + "\x06offset\x18\x04 \x01(\x03R\x06offset\x12\x14\n" + + "\x05limit\x18\x05 \x01(\x03R\x05limit\"~\n" + + "\x0fDataQueryResult\x12 \n" + + "\x04data\x18\x01 \x03(\v2\f.server.PairR\x04data\x12#\n" + + "\x05items\x18\x02 \x03(\v2\r.server.PairsR\x05items\x12$\n" + + "\x04meta\x18\x03 \x01(\v2\x10.server.DataMetaR\x04meta\"\xac\x01\n" + + "\bDataMeta\x12\x1c\n" + + "\tdatabases\x18\x01 \x03(\tR\tdatabases\x12\x16\n" + + "\x06tables\x18\x02 \x03(\tR\x06tables\x12(\n" + + "\x0fcurrentDatabase\x18\x03 \x01(\tR\x0fcurrentDatabase\x12\x1a\n" + + "\bduration\x18\x04 \x01(\tR\bduration\x12$\n" + + "\x06labels\x18\x05 \x03(\v2\f.server.PairR\x06labels\"i\n" + + "\tAIRequest\x12\x14\n" + + "\x05input\x18\x01 \x01(\tR\x05input\x12\x18\n" + + "\acontext\x18\x02 \x01(\tR\acontext\x12,\n" + + "\n" + + "parameters\x18\x03 \x03(\v2\f.server.PairR\n" + + "parameters\"~\n" + + "\n" + + "AIResponse\x12\x18\n" + + "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x16\n" + + "\x06result\x18\x02 \x01(\tR\x06result\x12\x14\n" + + "\x05error\x18\x03 \x01(\tR\x05error\x12(\n" + + "\bmetadata\x18\x04 \x03(\v2\f.server.PairR\bmetadata\"^\n" + + "\x10AIHealthResponse\x12\x18\n" + + "\ahealthy\x18\x01 \x01(\bR\ahealthy\x12\x16\n" + + "\x06status\x18\x02 \x01(\tR\x06status\x12\x18\n" + + "\aversion\x18\x03 \x01(\tR\aversion2\xfc%\n" + + "\x06Runner\x12C\n" + + "\x03Run\x12\x10.server.TestTask\x1a\x12.server.TestResult\"\x16\x82\xd3\xe4\x93\x02\x10:\x01*\"\v/api/v1/run\x12_\n" + + "\fRunTestSuite\x12\x19.server.TestSuiteIdentity\x1a\x12.server.TestResult\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/v1/run/suite(\x010\x01\x12B\n" + + "\tGetSuites\x12\r.server.Empty\x1a\x0e.server.Suites\"\x16\x82\xd3\xe4\x93\x02\x10\x12\x0e/api/v1/suites\x12[\n" + + "\x0fCreateTestSuite\x12\x19.server.TestSuiteIdentity\x1a\x12.server.HelloReply\"\x19\x82\xd3\xe4\x93\x02\x13:\x01*\"\x0e/api/v1/suites\x12b\n" + + "\x0fImportTestSuite\x12\x17.server.TestSuiteSource\x1a\x14.server.CommonResult\" \x82\xd3\xe4\x93\x02\x1a:\x01*\"\x15/api/v1/suites/import\x12[\n" + + "\fGetTestSuite\x12\x19.server.TestSuiteIdentity\x1a\x11.server.TestSuite\"\x1d\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/suites/{name}\x12Z\n" + + "\x0fUpdateTestSuite\x12\x11.server.TestSuite\x1a\x12.server.HelloReply\" \x82\xd3\xe4\x93\x02\x1a:\x01*\x1a\x15/api/v1/suites/{name}\x12_\n" + + "\x0fDeleteTestSuite\x12\x19.server.TestSuiteIdentity\x1a\x12.server.HelloReply\"\x1d\x82\xd3\xe4\x93\x02\x17*\x15/api/v1/suites/{name}\x12{\n" + + "\x12DuplicateTestSuite\x12\x1a.server.TestSuiteDuplicate\x1a\x12.server.HelloReply\"5\x82\xd3\xe4\x93\x02/:\x01*\"*/api/v1/suites/{sourceSuiteName}/duplicate\x12u\n" + + "\x0fRenameTestSuite\x12\x1a.server.TestSuiteDuplicate\x1a\x12.server.HelloReply\"2\x82\xd3\xe4\x93\x02,:\x01*\"'/api/v1/suites/{sourceSuiteName}/rename\x12c\n" + + "\x10GetTestSuiteYaml\x12\x19.server.TestSuiteIdentity\x1a\x10.server.YamlData\"\"\x82\xd3\xe4\x93\x02\x1c\x12\x1a/api/v1/suites/{name}/yaml\x12]\n" + + "\fListTestCase\x12\x19.server.TestSuiteIdentity\x1a\r.server.Suite\"#\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/v1/suites/{name}/cases\x12w\n" + + "\vRunTestCase\x12\x18.server.TestCaseIdentity\x1a\x16.server.TestCaseResult\"6\x82\xd3\xe4\x93\x020:\x01*\"+/api/v1/suites/{suite}/cases/{testcase}/run\x12V\n" + + "\bBatchRun\x12\x15.server.BatchTestTask\x1a\x12.server.TestResult\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/api/v1/batchRun(\x010\x01\x12j\n" + + "\vGetTestCase\x12\x18.server.TestCaseIdentity\x1a\x10.server.TestCase\"/\x82\xd3\xe4\x93\x02)\x12'/api/v1/suites/{suite}/cases/{testcase}\x12l\n" + + "\x0eCreateTestCase\x12\x19.server.TestCaseWithSuite\x1a\x12.server.HelloReply\"+\x82\xd3\xe4\x93\x02%:\x01*\" /api/v1/suites/{suiteName}/cases\x12x\n" + + "\x0eUpdateTestCase\x12\x19.server.TestCaseWithSuite\x1a\x12.server.HelloReply\"7\x82\xd3\xe4\x93\x021:\x01*\x1a,/api/v1/suites/{suiteName}/cases/{data.name}\x12o\n" + + "\x0eDeleteTestCase\x12\x18.server.TestCaseIdentity\x1a\x12.server.HelloReply\"/\x82\xd3\xe4\x93\x02)*'/api/v1/suites/{suite}/cases/{testcase}\x12\x90\x01\n" + + "\x11DuplicateTestCase\x12\x19.server.TestCaseDuplicate\x1a\x12.server.HelloReply\"L\x82\xd3\xe4\x93\x02F:\x01*\"A/api/v1/suites/{sourceSuiteName}/cases/{sourceCaseName}/duplicate\x12\x8a\x01\n" + + "\x0eRenameTestCase\x12\x19.server.TestCaseDuplicate\x1a\x12.server.HelloReply\"I\x82\xd3\xe4\x93\x02C:\x01*\">/api/v1/suites/{sourceSuiteName}/cases/{sourceCaseName}/rename\x12_\n" + + "\x10GetSuggestedAPIs\x12\x19.server.TestSuiteIdentity\x1a\x11.server.TestCases\"\x1d\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/suggestedAPIs\x12W\n" + + "\x10GetHistorySuites\x12\r.server.Empty\x1a\x15.server.HistorySuites\"\x1d\x82\xd3\xe4\x93\x02\x17\"\x15/api/v1/historySuites\x12\x82\x01\n" + + "\x1cGetHistoryTestCaseWithResult\x12\x17.server.HistoryTestCase\x1a\x19.server.HistoryTestResult\".\x82\xd3\xe4\x93\x02(\x12&/api/v1/historyTestCaseWithResult/{ID}\x12l\n" + + "\x12GetHistoryTestCase\x12\x17.server.HistoryTestCase\x1a\x17.server.HistoryTestCase\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/historyTestCase/{ID}\x12j\n" + + "\x15DeleteHistoryTestCase\x12\x17.server.HistoryTestCase\x1a\x12.server.HelloReply\"$\x82\xd3\xe4\x93\x02\x1e*\x1c/api/v1/historyTestCase/{ID}\x12\x83\x01\n" + + "\x18DeleteAllHistoryTestCase\x12\x17.server.HistoryTestCase\x1a\x12.server.HelloReply\":\x82\xd3\xe4\x93\x024*2/api/v1/historySuites/{suiteName}/cases/{caseName}\x12t\n" + + "\x15GetTestCaseAllHistory\x12\x10.server.TestCase\x1a\x18.server.HistoryTestCases\"/\x82\xd3\xe4\x93\x02)\"'/api/v1/suites/{suiteName}/cases/{name}\x12V\n" + + "\x11ListCodeGenerator\x12\r.server.Empty\x1a\x12.server.SimpleList\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/codeGenerators\x12m\n" + + "\fGenerateCode\x12\x1b.server.CodeGenerateRequest\x1a\x14.server.CommonResult\"*\x82\xd3\xe4\x93\x02$:\x01*\"\x1f/api/v1/codeGenerators/generate\x12|\n" + + "\x13HistoryGenerateCode\x12\x1b.server.CodeGenerateRequest\x1a\x14.server.CommonResult\"2\x82\xd3\xe4\x93\x02,:\x01*\"'/api/v1/codeGenerators/history/generate\x12N\n" + + "\rListConverter\x12\r.server.Empty\x1a\x12.server.SimpleList\"\x1a\x82\xd3\xe4\x93\x02\x14\x12\x12/api/v1/converters\x12l\n" + + "\x10ConvertTestSuite\x12\x1b.server.CodeGenerateRequest\x1a\x14.server.CommonResult\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v1/converters/convert\x12N\n" + + "\x0ePopularHeaders\x12\r.server.Empty\x1a\r.server.Pairs\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/popularHeaders\x12O\n" + + "\x0eFunctionsQuery\x12\x13.server.SimpleQuery\x1a\r.server.Pairs\"\x19\x82\xd3\xe4\x93\x02\x13\x12\x11/api/v1/functions\x12^\n" + + "\x14FunctionsQueryStream\x12\x13.server.SimpleQuery\x1a\r.server.Pairs\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/functionsQuery(\x010\x01\x12V\n" + + "\tGetSchema\x12\x13.server.SimpleQuery\x1a\x14.server.CommonResult\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/schemas/{name}\x12E\n" + + "\n" + + "GetVersion\x12\r.server.Empty\x1a\x0f.server.Version\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/version\x12C\n" + + "\x06Sample\x12\r.server.Empty\x1a\x12.server.HelloReply\"\x16\x82\xd3\xe4\x93\x02\x10\x12\x0e/api/v1/sample\x12h\n" + + "\x14DownloadResponseFile\x12\x10.server.TestCase\x1a\x10.server.FileData\",\x82\xd3\xe4\x93\x02&\x12$/api/v1/downloadFile/{response.body}\x12P\n" + + "\rGetStoreKinds\x12\r.server.Empty\x1a\x12.server.StoreKinds\"\x1c\x82\xd3\xe4\x93\x02\x16\x12\x14/api/v1/stores/kinds\x12H\n" + + "\tGetStores\x12\x13.server.SimpleQuery\x1a\x0e.server.Stores\"\x16\x82\xd3\xe4\x93\x02\x10\x12\x0e/api/v1/stores\x12F\n" + + "\vCreateStore\x12\r.server.Store\x1a\r.server.Store\"\x19\x82\xd3\xe4\x93\x02\x13:\x01*\"\x0e/api/v1/stores\x12M\n" + + "\vUpdateStore\x12\r.server.Store\x1a\r.server.Store\" \x82\xd3\xe4\x93\x02\x1a:\x01*\x1a\x15/api/v1/stores/{name}\x12J\n" + + "\vDeleteStore\x12\r.server.Store\x1a\r.server.Store\"\x1d\x82\xd3\xe4\x93\x02\x17*\x15/api/v1/stores/{name}\x12]\n" + + "\vVerifyStore\x12\x13.server.SimpleQuery\x1a\x17.server.ExtensionStatus\" \x82\xd3\xe4\x93\x02\x1a:\x01*\"\x15/api/v1/stores/verify\x12E\n" + + "\n" + + "GetSecrets\x12\r.server.Empty\x1a\x0f.server.Secrets\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/secrets\x12P\n" + + "\fCreateSecret\x12\x0e.server.Secret\x1a\x14.server.CommonResult\"\x1a\x82\xd3\xe4\x93\x02\x14:\x01*\"\x0f/api/v1/secrets\x12T\n" + + "\fDeleteSecret\x12\x0e.server.Secret\x1a\x14.server.CommonResult\"\x1e\x82\xd3\xe4\x93\x02\x18*\x16/api/v1/secrets/{Name}\x12W\n" + + "\fUpdateSecret\x12\x0e.server.Secret\x1a\x14.server.CommonResult\"!\x82\xd3\xe4\x93\x02\x1b:\x01*\x1a\x16/api/v1/secrets/{Name}\x122\n" + + "\x05PProf\x12\x14.server.PProfRequest\x1a\x11.server.PProfData\"\x002k\n" + + "\x0fRunnerExtension\x12X\n" + + "\x03Run\x12\x19.server.TestSuiteWithCase\x1a\x14.server.CommonResult\" \x82\xd3\xe4\x93\x02\x1a:\x01*\"\x15/api/v1/extension/run2\x91\x03\n" + + "\vUIExtension\x12L\n" + + "\bGetMenus\x12\r.server.Empty\x1a\x10.server.MenuList\"\x1f\x82\xd3\xe4\x93\x02\x19\x12\x17/api/v1/extension/menus\x12b\n" + + "\vGetPageOfJS\x12\x12.server.SimpleName\x1a\x14.server.CommonResult\")\x82\xd3\xe4\x93\x02#\x12!/api/v1/extension/pages/{name}/js\x12d\n" + + "\fGetPageOfCSS\x12\x12.server.SimpleName\x1a\x14.server.CommonResult\"*\x82\xd3\xe4\x93\x02$\x12\"/api/v1/extension/pages/{name}/css\x12j\n" + + "\x0fGetPageOfStatic\x12\x12.server.SimpleName\x1a\x14.server.CommonResult\"-\x82\xd3\xe4\x93\x02'\x12%/api/v1/extension/pages/{name}/static2\xd2\x02\n" + + "\x0eThemeExtension\x12F\n" + + "\tGetThemes\x12\r.server.Empty\x1a\x12.server.SimpleList\"\x16\x82\xd3\xe4\x93\x02\x10\x12\x0e/api/v1/themes\x12S\n" + + "\bGetTheme\x12\x12.server.SimpleName\x1a\x14.server.CommonResult\"\x1d\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/themes/{name}\x12J\n" + + "\vGetBindings\x12\r.server.Empty\x1a\x12.server.SimpleList\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/bindings\x12W\n" + + "\n" + + "GetBinding\x12\x12.server.SimpleName\x1a\x14.server.CommonResult\"\x1f\x82\xd3\xe4\x93\x02\x19\x12\x17/api/v1/bindings/{name}2\xed\x01\n" + + "\x04Mock\x12K\n" + + "\x06Reload\x12\x12.server.MockConfig\x1a\r.server.Empty\"\x1e\x82\xd3\xe4\x93\x02\x18:\x01*\"\x13/api/v1/mock/reload\x12K\n" + + "\tGetConfig\x12\r.server.Empty\x1a\x12.server.MockConfig\"\x1b\x82\xd3\xe4\x93\x02\x15\x12\x13/api/v1/mock/config\x12K\n" + + "\bLogWatch\x12\r.server.Empty\x1a\x14.server.CommonResult\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/mock/log0\x012`\n" + + "\n" + + "DataServer\x12R\n" + + "\x05Query\x12\x11.server.DataQuery\x1a\x17.server.DataQueryResult\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/data/query2\xfa\x02\n" + + "\tAIService\x12X\n" + + "\x0eConvertNLToSQL\x12\x11.server.AIRequest\x1a\x12.server.AIResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/ai/nl-to-sql\x12b\n" + + "\x10GenerateTestCase\x12\x11.server.AIRequest\x1a\x12.server.AIResponse\"'\x82\xd3\xe4\x93\x02!:\x01*\"\x1c/api/v1/ai/generate-testcase\x12\\\n" + + "\rOptimizeQuery\x12\x11.server.AIRequest\x1a\x12.server.AIResponse\"$\x82\xd3\xe4\x93\x02\x1e:\x01*\"\x19/api/v1/ai/optimize-query\x12Q\n" + + "\vHealthCheck\x12\r.server.Empty\x1a\x18.server.AIHealthResponse\"\x19\x82\xd3\xe4\x93\x02\x13\x12\x11/api/v1/ai/healthB.Z,github.com/linuxsuren/api-testing/pkg/serverb\x06proto3" + var ( file_pkg_server_server_proto_rawDescOnce sync.Once - file_pkg_server_server_proto_rawDescData = file_pkg_server_server_proto_rawDesc + file_pkg_server_server_proto_rawDescData []byte ) func file_pkg_server_server_proto_rawDescGZIP() []byte { file_pkg_server_server_proto_rawDescOnce.Do(func() { - file_pkg_server_server_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_server_server_proto_rawDescData) + file_pkg_server_server_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_pkg_server_server_proto_rawDesc), len(file_pkg_server_server_proto_rawDesc))) }) return file_pkg_server_server_proto_rawDescData } -var file_pkg_server_server_proto_msgTypes = make([]protoimpl.MessageInfo, 62) -var file_pkg_server_server_proto_goTypes = []interface{}{ +var file_pkg_server_server_proto_msgTypes = make([]protoimpl.MessageInfo, 65) +var file_pkg_server_server_proto_goTypes = []any{ (*Menu)(nil), // 0: server.Menu (*MenuList)(nil), // 1: server.MenuList (*Suites)(nil), // 2: server.Suites @@ -4792,15 +4370,18 @@ var file_pkg_server_server_proto_goTypes = []interface{}{ (*DataQuery)(nil), // 56: server.DataQuery (*DataQueryResult)(nil), // 57: server.DataQueryResult (*DataMeta)(nil), // 58: server.DataMeta - nil, // 59: server.Suites.DataEntry - nil, // 60: server.HistorySuites.DataEntry - nil, // 61: server.TestTask.EnvEntry - (*timestamppb.Timestamp)(nil), // 62: google.protobuf.Timestamp + (*AIRequest)(nil), // 59: server.AIRequest + (*AIResponse)(nil), // 60: server.AIResponse + (*AIHealthResponse)(nil), // 61: server.AIHealthResponse + nil, // 62: server.Suites.DataEntry + nil, // 63: server.HistorySuites.DataEntry + nil, // 64: server.TestTask.EnvEntry + (*timestamppb.Timestamp)(nil), // 65: google.protobuf.Timestamp } var file_pkg_server_server_proto_depIdxs = []int32{ 0, // 0: server.MenuList.data:type_name -> server.Menu - 59, // 1: server.Suites.data:type_name -> server.Suites.DataEntry - 60, // 2: server.HistorySuites.data:type_name -> server.HistorySuites.DataEntry + 62, // 1: server.Suites.data:type_name -> server.Suites.DataEntry + 63, // 2: server.HistorySuites.data:type_name -> server.HistorySuites.DataEntry 6, // 3: server.HistoryItems.data:type_name -> server.HistoryCaseIdentity 33, // 4: server.TestCaseIdentity.parameters:type_name -> server.Pair 33, // 5: server.TestSuite.param:type_name -> server.Pair @@ -4810,19 +4391,19 @@ var file_pkg_server_server_proto_depIdxs = []int32{ 26, // 9: server.TestSuiteWithCase.case:type_name -> server.TestCase 13, // 10: server.APISpec.rpc:type_name -> server.RPC 12, // 11: server.APISpec.secure:type_name -> server.Secure - 61, // 12: server.TestTask.env:type_name -> server.TestTask.EnvEntry + 64, // 12: server.TestTask.env:type_name -> server.TestTask.EnvEntry 33, // 13: server.TestTask.parameters:type_name -> server.Pair 33, // 14: server.BatchTestTask.parameters:type_name -> server.Pair 32, // 15: server.TestResult.testCaseResult:type_name -> server.TestCaseResult 32, // 16: server.HistoryTestResult.testCaseResult:type_name -> server.TestCaseResult 27, // 17: server.HistoryTestResult.data:type_name -> server.HistoryTestCase - 62, // 18: server.HistoryTestResult.createTime:type_name -> google.protobuf.Timestamp + 65, // 18: server.HistoryTestResult.createTime:type_name -> google.protobuf.Timestamp 26, // 19: server.Suite.items:type_name -> server.TestCase 26, // 20: server.TestCaseWithSuite.data:type_name -> server.TestCase 26, // 21: server.TestCases.data:type_name -> server.TestCase 29, // 22: server.TestCase.request:type_name -> server.Request 30, // 23: server.TestCase.response:type_name -> server.Response - 62, // 24: server.HistoryTestCase.createTime:type_name -> google.protobuf.Timestamp + 65, // 24: server.HistoryTestCase.createTime:type_name -> google.protobuf.Timestamp 33, // 25: server.HistoryTestCase.suiteParam:type_name -> server.Pair 11, // 26: server.HistoryTestCase.suiteSpec:type_name -> server.APISpec 29, // 27: server.HistoryTestCase.request:type_name -> server.Request @@ -4850,139 +4431,149 @@ var file_pkg_server_server_proto_depIdxs = []int32{ 34, // 49: server.DataQueryResult.items:type_name -> server.Pairs 58, // 50: server.DataQueryResult.meta:type_name -> server.DataMeta 33, // 51: server.DataMeta.labels:type_name -> server.Pair - 3, // 52: server.Suites.DataEntry.value:type_name -> server.Items - 5, // 53: server.HistorySuites.DataEntry.value:type_name -> server.HistoryItems - 17, // 54: server.Runner.Run:input_type -> server.TestTask - 14, // 55: server.Runner.RunTestSuite:input_type -> server.TestSuiteIdentity - 52, // 56: server.Runner.GetSuites:input_type -> server.Empty - 14, // 57: server.Runner.CreateTestSuite:input_type -> server.TestSuiteIdentity - 8, // 58: server.Runner.ImportTestSuite:input_type -> server.TestSuiteSource - 14, // 59: server.Runner.GetTestSuite:input_type -> server.TestSuiteIdentity - 9, // 60: server.Runner.UpdateTestSuite:input_type -> server.TestSuite - 14, // 61: server.Runner.DeleteTestSuite:input_type -> server.TestSuiteIdentity - 15, // 62: server.Runner.DuplicateTestSuite:input_type -> server.TestSuiteDuplicate - 15, // 63: server.Runner.RenameTestSuite:input_type -> server.TestSuiteDuplicate - 14, // 64: server.Runner.GetTestSuiteYaml:input_type -> server.TestSuiteIdentity - 14, // 65: server.Runner.ListTestCase:input_type -> server.TestSuiteIdentity - 7, // 66: server.Runner.RunTestCase:input_type -> server.TestCaseIdentity - 18, // 67: server.Runner.BatchRun:input_type -> server.BatchTestTask - 7, // 68: server.Runner.GetTestCase:input_type -> server.TestCaseIdentity - 24, // 69: server.Runner.CreateTestCase:input_type -> server.TestCaseWithSuite - 24, // 70: server.Runner.UpdateTestCase:input_type -> server.TestCaseWithSuite - 7, // 71: server.Runner.DeleteTestCase:input_type -> server.TestCaseIdentity - 16, // 72: server.Runner.DuplicateTestCase:input_type -> server.TestCaseDuplicate - 16, // 73: server.Runner.RenameTestCase:input_type -> server.TestCaseDuplicate - 14, // 74: server.Runner.GetSuggestedAPIs:input_type -> server.TestSuiteIdentity - 52, // 75: server.Runner.GetHistorySuites:input_type -> server.Empty - 27, // 76: server.Runner.GetHistoryTestCaseWithResult:input_type -> server.HistoryTestCase - 27, // 77: server.Runner.GetHistoryTestCase:input_type -> server.HistoryTestCase - 27, // 78: server.Runner.DeleteHistoryTestCase:input_type -> server.HistoryTestCase - 27, // 79: server.Runner.DeleteAllHistoryTestCase:input_type -> server.HistoryTestCase - 26, // 80: server.Runner.GetTestCaseAllHistory:input_type -> server.TestCase - 52, // 81: server.Runner.ListCodeGenerator:input_type -> server.Empty - 45, // 82: server.Runner.GenerateCode:input_type -> server.CodeGenerateRequest - 45, // 83: server.Runner.HistoryGenerateCode:input_type -> server.CodeGenerateRequest - 52, // 84: server.Runner.ListConverter:input_type -> server.Empty - 45, // 85: server.Runner.ConvertTestSuite:input_type -> server.CodeGenerateRequest - 52, // 86: server.Runner.PopularHeaders:input_type -> server.Empty - 35, // 87: server.Runner.FunctionsQuery:input_type -> server.SimpleQuery - 35, // 88: server.Runner.FunctionsQueryStream:input_type -> server.SimpleQuery - 35, // 89: server.Runner.GetSchema:input_type -> server.SimpleQuery - 52, // 90: server.Runner.GetVersion:input_type -> server.Empty - 52, // 91: server.Runner.Sample:input_type -> server.Empty - 26, // 92: server.Runner.DownloadResponseFile:input_type -> server.TestCase - 52, // 93: server.Runner.GetStoreKinds:input_type -> server.Empty - 35, // 94: server.Runner.GetStores:input_type -> server.SimpleQuery - 37, // 95: server.Runner.CreateStore:input_type -> server.Store - 37, // 96: server.Runner.UpdateStore:input_type -> server.Store - 37, // 97: server.Runner.DeleteStore:input_type -> server.Store - 35, // 98: server.Runner.VerifyStore:input_type -> server.SimpleQuery - 52, // 99: server.Runner.GetSecrets:input_type -> server.Empty - 47, // 100: server.Runner.CreateSecret:input_type -> server.Secret - 47, // 101: server.Runner.DeleteSecret:input_type -> server.Secret - 47, // 102: server.Runner.UpdateSecret:input_type -> server.Secret - 49, // 103: server.Runner.PProf:input_type -> server.PProfRequest - 10, // 104: server.RunnerExtension.Run:input_type -> server.TestSuiteWithCase - 52, // 105: server.UIExtension.GetMenus:input_type -> server.Empty - 44, // 106: server.UIExtension.GetPageOfJS:input_type -> server.SimpleName - 44, // 107: server.UIExtension.GetPageOfCSS:input_type -> server.SimpleName - 44, // 108: server.UIExtension.GetPageOfStatic:input_type -> server.SimpleName - 52, // 109: server.ThemeExtension.GetThemes:input_type -> server.Empty - 44, // 110: server.ThemeExtension.GetTheme:input_type -> server.SimpleName - 52, // 111: server.ThemeExtension.GetBindings:input_type -> server.Empty - 44, // 112: server.ThemeExtension.GetBinding:input_type -> server.SimpleName - 53, // 113: server.Mock.Reload:input_type -> server.MockConfig - 52, // 114: server.Mock.GetConfig:input_type -> server.Empty - 52, // 115: server.Mock.LogWatch:input_type -> server.Empty - 56, // 116: server.DataServer.Query:input_type -> server.DataQuery - 19, // 117: server.Runner.Run:output_type -> server.TestResult - 19, // 118: server.Runner.RunTestSuite:output_type -> server.TestResult - 2, // 119: server.Runner.GetSuites:output_type -> server.Suites - 21, // 120: server.Runner.CreateTestSuite:output_type -> server.HelloReply - 42, // 121: server.Runner.ImportTestSuite:output_type -> server.CommonResult - 9, // 122: server.Runner.GetTestSuite:output_type -> server.TestSuite - 21, // 123: server.Runner.UpdateTestSuite:output_type -> server.HelloReply - 21, // 124: server.Runner.DeleteTestSuite:output_type -> server.HelloReply - 21, // 125: server.Runner.DuplicateTestSuite:output_type -> server.HelloReply - 21, // 126: server.Runner.RenameTestSuite:output_type -> server.HelloReply - 22, // 127: server.Runner.GetTestSuiteYaml:output_type -> server.YamlData - 23, // 128: server.Runner.ListTestCase:output_type -> server.Suite - 32, // 129: server.Runner.RunTestCase:output_type -> server.TestCaseResult - 19, // 130: server.Runner.BatchRun:output_type -> server.TestResult - 26, // 131: server.Runner.GetTestCase:output_type -> server.TestCase - 21, // 132: server.Runner.CreateTestCase:output_type -> server.HelloReply - 21, // 133: server.Runner.UpdateTestCase:output_type -> server.HelloReply - 21, // 134: server.Runner.DeleteTestCase:output_type -> server.HelloReply - 21, // 135: server.Runner.DuplicateTestCase:output_type -> server.HelloReply - 21, // 136: server.Runner.RenameTestCase:output_type -> server.HelloReply - 25, // 137: server.Runner.GetSuggestedAPIs:output_type -> server.TestCases - 4, // 138: server.Runner.GetHistorySuites:output_type -> server.HistorySuites - 20, // 139: server.Runner.GetHistoryTestCaseWithResult:output_type -> server.HistoryTestResult - 27, // 140: server.Runner.GetHistoryTestCase:output_type -> server.HistoryTestCase - 21, // 141: server.Runner.DeleteHistoryTestCase:output_type -> server.HelloReply - 21, // 142: server.Runner.DeleteAllHistoryTestCase:output_type -> server.HelloReply - 28, // 143: server.Runner.GetTestCaseAllHistory:output_type -> server.HistoryTestCases - 43, // 144: server.Runner.ListCodeGenerator:output_type -> server.SimpleList - 42, // 145: server.Runner.GenerateCode:output_type -> server.CommonResult - 42, // 146: server.Runner.HistoryGenerateCode:output_type -> server.CommonResult - 43, // 147: server.Runner.ListConverter:output_type -> server.SimpleList - 42, // 148: server.Runner.ConvertTestSuite:output_type -> server.CommonResult - 34, // 149: server.Runner.PopularHeaders:output_type -> server.Pairs - 34, // 150: server.Runner.FunctionsQuery:output_type -> server.Pairs - 34, // 151: server.Runner.FunctionsQueryStream:output_type -> server.Pairs - 42, // 152: server.Runner.GetSchema:output_type -> server.CommonResult - 54, // 153: server.Runner.GetVersion:output_type -> server.Version - 21, // 154: server.Runner.Sample:output_type -> server.HelloReply - 51, // 155: server.Runner.DownloadResponseFile:output_type -> server.FileData - 38, // 156: server.Runner.GetStoreKinds:output_type -> server.StoreKinds - 36, // 157: server.Runner.GetStores:output_type -> server.Stores - 37, // 158: server.Runner.CreateStore:output_type -> server.Store - 37, // 159: server.Runner.UpdateStore:output_type -> server.Store - 37, // 160: server.Runner.DeleteStore:output_type -> server.Store - 48, // 161: server.Runner.VerifyStore:output_type -> server.ExtensionStatus - 46, // 162: server.Runner.GetSecrets:output_type -> server.Secrets - 42, // 163: server.Runner.CreateSecret:output_type -> server.CommonResult - 42, // 164: server.Runner.DeleteSecret:output_type -> server.CommonResult - 42, // 165: server.Runner.UpdateSecret:output_type -> server.CommonResult - 50, // 166: server.Runner.PProf:output_type -> server.PProfData - 42, // 167: server.RunnerExtension.Run:output_type -> server.CommonResult - 1, // 168: server.UIExtension.GetMenus:output_type -> server.MenuList - 42, // 169: server.UIExtension.GetPageOfJS:output_type -> server.CommonResult - 42, // 170: server.UIExtension.GetPageOfCSS:output_type -> server.CommonResult - 42, // 171: server.UIExtension.GetPageOfStatic:output_type -> server.CommonResult - 43, // 172: server.ThemeExtension.GetThemes:output_type -> server.SimpleList - 42, // 173: server.ThemeExtension.GetTheme:output_type -> server.CommonResult - 43, // 174: server.ThemeExtension.GetBindings:output_type -> server.SimpleList - 42, // 175: server.ThemeExtension.GetBinding:output_type -> server.CommonResult - 52, // 176: server.Mock.Reload:output_type -> server.Empty - 53, // 177: server.Mock.GetConfig:output_type -> server.MockConfig - 42, // 178: server.Mock.LogWatch:output_type -> server.CommonResult - 57, // 179: server.DataServer.Query:output_type -> server.DataQueryResult - 117, // [117:180] is the sub-list for method output_type - 54, // [54:117] is the sub-list for method input_type - 54, // [54:54] is the sub-list for extension type_name - 54, // [54:54] is the sub-list for extension extendee - 0, // [0:54] is the sub-list for field type_name + 33, // 52: server.AIRequest.parameters:type_name -> server.Pair + 33, // 53: server.AIResponse.metadata:type_name -> server.Pair + 3, // 54: server.Suites.DataEntry.value:type_name -> server.Items + 5, // 55: server.HistorySuites.DataEntry.value:type_name -> server.HistoryItems + 17, // 56: server.Runner.Run:input_type -> server.TestTask + 14, // 57: server.Runner.RunTestSuite:input_type -> server.TestSuiteIdentity + 52, // 58: server.Runner.GetSuites:input_type -> server.Empty + 14, // 59: server.Runner.CreateTestSuite:input_type -> server.TestSuiteIdentity + 8, // 60: server.Runner.ImportTestSuite:input_type -> server.TestSuiteSource + 14, // 61: server.Runner.GetTestSuite:input_type -> server.TestSuiteIdentity + 9, // 62: server.Runner.UpdateTestSuite:input_type -> server.TestSuite + 14, // 63: server.Runner.DeleteTestSuite:input_type -> server.TestSuiteIdentity + 15, // 64: server.Runner.DuplicateTestSuite:input_type -> server.TestSuiteDuplicate + 15, // 65: server.Runner.RenameTestSuite:input_type -> server.TestSuiteDuplicate + 14, // 66: server.Runner.GetTestSuiteYaml:input_type -> server.TestSuiteIdentity + 14, // 67: server.Runner.ListTestCase:input_type -> server.TestSuiteIdentity + 7, // 68: server.Runner.RunTestCase:input_type -> server.TestCaseIdentity + 18, // 69: server.Runner.BatchRun:input_type -> server.BatchTestTask + 7, // 70: server.Runner.GetTestCase:input_type -> server.TestCaseIdentity + 24, // 71: server.Runner.CreateTestCase:input_type -> server.TestCaseWithSuite + 24, // 72: server.Runner.UpdateTestCase:input_type -> server.TestCaseWithSuite + 7, // 73: server.Runner.DeleteTestCase:input_type -> server.TestCaseIdentity + 16, // 74: server.Runner.DuplicateTestCase:input_type -> server.TestCaseDuplicate + 16, // 75: server.Runner.RenameTestCase:input_type -> server.TestCaseDuplicate + 14, // 76: server.Runner.GetSuggestedAPIs:input_type -> server.TestSuiteIdentity + 52, // 77: server.Runner.GetHistorySuites:input_type -> server.Empty + 27, // 78: server.Runner.GetHistoryTestCaseWithResult:input_type -> server.HistoryTestCase + 27, // 79: server.Runner.GetHistoryTestCase:input_type -> server.HistoryTestCase + 27, // 80: server.Runner.DeleteHistoryTestCase:input_type -> server.HistoryTestCase + 27, // 81: server.Runner.DeleteAllHistoryTestCase:input_type -> server.HistoryTestCase + 26, // 82: server.Runner.GetTestCaseAllHistory:input_type -> server.TestCase + 52, // 83: server.Runner.ListCodeGenerator:input_type -> server.Empty + 45, // 84: server.Runner.GenerateCode:input_type -> server.CodeGenerateRequest + 45, // 85: server.Runner.HistoryGenerateCode:input_type -> server.CodeGenerateRequest + 52, // 86: server.Runner.ListConverter:input_type -> server.Empty + 45, // 87: server.Runner.ConvertTestSuite:input_type -> server.CodeGenerateRequest + 52, // 88: server.Runner.PopularHeaders:input_type -> server.Empty + 35, // 89: server.Runner.FunctionsQuery:input_type -> server.SimpleQuery + 35, // 90: server.Runner.FunctionsQueryStream:input_type -> server.SimpleQuery + 35, // 91: server.Runner.GetSchema:input_type -> server.SimpleQuery + 52, // 92: server.Runner.GetVersion:input_type -> server.Empty + 52, // 93: server.Runner.Sample:input_type -> server.Empty + 26, // 94: server.Runner.DownloadResponseFile:input_type -> server.TestCase + 52, // 95: server.Runner.GetStoreKinds:input_type -> server.Empty + 35, // 96: server.Runner.GetStores:input_type -> server.SimpleQuery + 37, // 97: server.Runner.CreateStore:input_type -> server.Store + 37, // 98: server.Runner.UpdateStore:input_type -> server.Store + 37, // 99: server.Runner.DeleteStore:input_type -> server.Store + 35, // 100: server.Runner.VerifyStore:input_type -> server.SimpleQuery + 52, // 101: server.Runner.GetSecrets:input_type -> server.Empty + 47, // 102: server.Runner.CreateSecret:input_type -> server.Secret + 47, // 103: server.Runner.DeleteSecret:input_type -> server.Secret + 47, // 104: server.Runner.UpdateSecret:input_type -> server.Secret + 49, // 105: server.Runner.PProf:input_type -> server.PProfRequest + 10, // 106: server.RunnerExtension.Run:input_type -> server.TestSuiteWithCase + 52, // 107: server.UIExtension.GetMenus:input_type -> server.Empty + 44, // 108: server.UIExtension.GetPageOfJS:input_type -> server.SimpleName + 44, // 109: server.UIExtension.GetPageOfCSS:input_type -> server.SimpleName + 44, // 110: server.UIExtension.GetPageOfStatic:input_type -> server.SimpleName + 52, // 111: server.ThemeExtension.GetThemes:input_type -> server.Empty + 44, // 112: server.ThemeExtension.GetTheme:input_type -> server.SimpleName + 52, // 113: server.ThemeExtension.GetBindings:input_type -> server.Empty + 44, // 114: server.ThemeExtension.GetBinding:input_type -> server.SimpleName + 53, // 115: server.Mock.Reload:input_type -> server.MockConfig + 52, // 116: server.Mock.GetConfig:input_type -> server.Empty + 52, // 117: server.Mock.LogWatch:input_type -> server.Empty + 56, // 118: server.DataServer.Query:input_type -> server.DataQuery + 59, // 119: server.AIService.ConvertNLToSQL:input_type -> server.AIRequest + 59, // 120: server.AIService.GenerateTestCase:input_type -> server.AIRequest + 59, // 121: server.AIService.OptimizeQuery:input_type -> server.AIRequest + 52, // 122: server.AIService.HealthCheck:input_type -> server.Empty + 19, // 123: server.Runner.Run:output_type -> server.TestResult + 19, // 124: server.Runner.RunTestSuite:output_type -> server.TestResult + 2, // 125: server.Runner.GetSuites:output_type -> server.Suites + 21, // 126: server.Runner.CreateTestSuite:output_type -> server.HelloReply + 42, // 127: server.Runner.ImportTestSuite:output_type -> server.CommonResult + 9, // 128: server.Runner.GetTestSuite:output_type -> server.TestSuite + 21, // 129: server.Runner.UpdateTestSuite:output_type -> server.HelloReply + 21, // 130: server.Runner.DeleteTestSuite:output_type -> server.HelloReply + 21, // 131: server.Runner.DuplicateTestSuite:output_type -> server.HelloReply + 21, // 132: server.Runner.RenameTestSuite:output_type -> server.HelloReply + 22, // 133: server.Runner.GetTestSuiteYaml:output_type -> server.YamlData + 23, // 134: server.Runner.ListTestCase:output_type -> server.Suite + 32, // 135: server.Runner.RunTestCase:output_type -> server.TestCaseResult + 19, // 136: server.Runner.BatchRun:output_type -> server.TestResult + 26, // 137: server.Runner.GetTestCase:output_type -> server.TestCase + 21, // 138: server.Runner.CreateTestCase:output_type -> server.HelloReply + 21, // 139: server.Runner.UpdateTestCase:output_type -> server.HelloReply + 21, // 140: server.Runner.DeleteTestCase:output_type -> server.HelloReply + 21, // 141: server.Runner.DuplicateTestCase:output_type -> server.HelloReply + 21, // 142: server.Runner.RenameTestCase:output_type -> server.HelloReply + 25, // 143: server.Runner.GetSuggestedAPIs:output_type -> server.TestCases + 4, // 144: server.Runner.GetHistorySuites:output_type -> server.HistorySuites + 20, // 145: server.Runner.GetHistoryTestCaseWithResult:output_type -> server.HistoryTestResult + 27, // 146: server.Runner.GetHistoryTestCase:output_type -> server.HistoryTestCase + 21, // 147: server.Runner.DeleteHistoryTestCase:output_type -> server.HelloReply + 21, // 148: server.Runner.DeleteAllHistoryTestCase:output_type -> server.HelloReply + 28, // 149: server.Runner.GetTestCaseAllHistory:output_type -> server.HistoryTestCases + 43, // 150: server.Runner.ListCodeGenerator:output_type -> server.SimpleList + 42, // 151: server.Runner.GenerateCode:output_type -> server.CommonResult + 42, // 152: server.Runner.HistoryGenerateCode:output_type -> server.CommonResult + 43, // 153: server.Runner.ListConverter:output_type -> server.SimpleList + 42, // 154: server.Runner.ConvertTestSuite:output_type -> server.CommonResult + 34, // 155: server.Runner.PopularHeaders:output_type -> server.Pairs + 34, // 156: server.Runner.FunctionsQuery:output_type -> server.Pairs + 34, // 157: server.Runner.FunctionsQueryStream:output_type -> server.Pairs + 42, // 158: server.Runner.GetSchema:output_type -> server.CommonResult + 54, // 159: server.Runner.GetVersion:output_type -> server.Version + 21, // 160: server.Runner.Sample:output_type -> server.HelloReply + 51, // 161: server.Runner.DownloadResponseFile:output_type -> server.FileData + 38, // 162: server.Runner.GetStoreKinds:output_type -> server.StoreKinds + 36, // 163: server.Runner.GetStores:output_type -> server.Stores + 37, // 164: server.Runner.CreateStore:output_type -> server.Store + 37, // 165: server.Runner.UpdateStore:output_type -> server.Store + 37, // 166: server.Runner.DeleteStore:output_type -> server.Store + 48, // 167: server.Runner.VerifyStore:output_type -> server.ExtensionStatus + 46, // 168: server.Runner.GetSecrets:output_type -> server.Secrets + 42, // 169: server.Runner.CreateSecret:output_type -> server.CommonResult + 42, // 170: server.Runner.DeleteSecret:output_type -> server.CommonResult + 42, // 171: server.Runner.UpdateSecret:output_type -> server.CommonResult + 50, // 172: server.Runner.PProf:output_type -> server.PProfData + 42, // 173: server.RunnerExtension.Run:output_type -> server.CommonResult + 1, // 174: server.UIExtension.GetMenus:output_type -> server.MenuList + 42, // 175: server.UIExtension.GetPageOfJS:output_type -> server.CommonResult + 42, // 176: server.UIExtension.GetPageOfCSS:output_type -> server.CommonResult + 42, // 177: server.UIExtension.GetPageOfStatic:output_type -> server.CommonResult + 43, // 178: server.ThemeExtension.GetThemes:output_type -> server.SimpleList + 42, // 179: server.ThemeExtension.GetTheme:output_type -> server.CommonResult + 43, // 180: server.ThemeExtension.GetBindings:output_type -> server.SimpleList + 42, // 181: server.ThemeExtension.GetBinding:output_type -> server.CommonResult + 52, // 182: server.Mock.Reload:output_type -> server.Empty + 53, // 183: server.Mock.GetConfig:output_type -> server.MockConfig + 42, // 184: server.Mock.LogWatch:output_type -> server.CommonResult + 57, // 185: server.DataServer.Query:output_type -> server.DataQueryResult + 60, // 186: server.AIService.ConvertNLToSQL:output_type -> server.AIResponse + 60, // 187: server.AIService.GenerateTestCase:output_type -> server.AIResponse + 60, // 188: server.AIService.OptimizeQuery:output_type -> server.AIResponse + 61, // 189: server.AIService.HealthCheck:output_type -> server.AIHealthResponse + 123, // [123:190] is the sub-list for method output_type + 56, // [56:123] is the sub-list for method input_type + 56, // [56:56] is the sub-list for extension type_name + 56, // [56:56] is the sub-list for extension extendee + 0, // [0:56] is the sub-list for field type_name } func init() { file_pkg_server_server_proto_init() } @@ -4990,732 +4581,21 @@ func file_pkg_server_server_proto_init() { if File_pkg_server_server_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_pkg_server_server_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Menu); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MenuList); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Suites); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Items); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HistorySuites); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HistoryItems); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HistoryCaseIdentity); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TestCaseIdentity); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TestSuiteSource); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TestSuite); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TestSuiteWithCase); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*APISpec); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Secure); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RPC); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TestSuiteIdentity); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TestSuiteDuplicate); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TestCaseDuplicate); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TestTask); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatchTestTask); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TestResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HistoryTestResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HelloReply); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*YamlData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Suite); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TestCaseWithSuite); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TestCases); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TestCase); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HistoryTestCase); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HistoryTestCases); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Request); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Response); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConditionalVerify); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TestCaseResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Pair); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Pairs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SimpleQuery); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Stores); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Store); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StoreKinds); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StoreKind); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StoreKindDependency); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StoreKindParam); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommonResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SimpleList); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SimpleName); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CodeGenerateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Secrets); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Secret); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExtensionStatus); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PProfRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PProfData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FileData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Empty); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MockConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Version); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProxyConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataQuery); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataQueryResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_server_server_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataMeta); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_pkg_server_server_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_pkg_server_server_proto_rawDesc), len(file_pkg_server_server_proto_rawDesc)), NumEnums: 0, - NumMessages: 62, + NumMessages: 65, NumExtensions: 0, - NumServices: 6, + NumServices: 7, }, GoTypes: file_pkg_server_server_proto_goTypes, DependencyIndexes: file_pkg_server_server_proto_depIdxs, MessageInfos: file_pkg_server_server_proto_msgTypes, }.Build() File_pkg_server_server_proto = out.File - file_pkg_server_server_proto_rawDesc = nil file_pkg_server_server_proto_goTypes = nil file_pkg_server_server_proto_depIdxs = nil } diff --git a/pkg/server/server.proto b/pkg/server/server.proto index 9ef4ee21..5ece1116 100644 --- a/pkg/server/server.proto +++ b/pkg/server/server.proto @@ -760,3 +760,52 @@ message DataMeta { string duration = 4; repeated Pair labels = 5; } + +// AI Service for natural language processing +service AIService { + rpc ConvertNLToSQL(AIRequest) returns (AIResponse) { + option (google.api.http) = { + post: "/api/v1/ai/nl-to-sql" + body: "*" + }; + } + + rpc GenerateTestCase(AIRequest) returns (AIResponse) { + option (google.api.http) = { + post: "/api/v1/ai/generate-testcase" + body: "*" + }; + } + + rpc OptimizeQuery(AIRequest) returns (AIResponse) { + option (google.api.http) = { + post: "/api/v1/ai/optimize-query" + body: "*" + }; + } + + rpc HealthCheck(Empty) returns (AIHealthResponse) { + option (google.api.http) = { + get: "/api/v1/ai/health" + }; + } +} + +message AIRequest { + string input = 1; + string context = 2; + repeated Pair parameters = 3; +} + +message AIResponse { + bool success = 1; + string result = 2; + string error = 3; + repeated Pair metadata = 4; +} + +message AIHealthResponse { + bool healthy = 1; + string status = 2; + string version = 3; +} diff --git a/pkg/server/server_grpc.pb.go b/pkg/server/server_grpc.pb.go index 065f3efa..f596dc45 100644 --- a/pkg/server/server_grpc.pb.go +++ b/pkg/server/server_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v4.22.2 +// - protoc-gen-go-grpc v1.5.1 +// - protoc v5.29.3 // source: pkg/server/server.proto package server @@ -15,8 +15,61 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + Runner_Run_FullMethodName = "/server.Runner/Run" + Runner_RunTestSuite_FullMethodName = "/server.Runner/RunTestSuite" + Runner_GetSuites_FullMethodName = "/server.Runner/GetSuites" + Runner_CreateTestSuite_FullMethodName = "/server.Runner/CreateTestSuite" + Runner_ImportTestSuite_FullMethodName = "/server.Runner/ImportTestSuite" + Runner_GetTestSuite_FullMethodName = "/server.Runner/GetTestSuite" + Runner_UpdateTestSuite_FullMethodName = "/server.Runner/UpdateTestSuite" + Runner_DeleteTestSuite_FullMethodName = "/server.Runner/DeleteTestSuite" + Runner_DuplicateTestSuite_FullMethodName = "/server.Runner/DuplicateTestSuite" + Runner_RenameTestSuite_FullMethodName = "/server.Runner/RenameTestSuite" + Runner_GetTestSuiteYaml_FullMethodName = "/server.Runner/GetTestSuiteYaml" + Runner_ListTestCase_FullMethodName = "/server.Runner/ListTestCase" + Runner_RunTestCase_FullMethodName = "/server.Runner/RunTestCase" + Runner_BatchRun_FullMethodName = "/server.Runner/BatchRun" + Runner_GetTestCase_FullMethodName = "/server.Runner/GetTestCase" + Runner_CreateTestCase_FullMethodName = "/server.Runner/CreateTestCase" + Runner_UpdateTestCase_FullMethodName = "/server.Runner/UpdateTestCase" + Runner_DeleteTestCase_FullMethodName = "/server.Runner/DeleteTestCase" + Runner_DuplicateTestCase_FullMethodName = "/server.Runner/DuplicateTestCase" + Runner_RenameTestCase_FullMethodName = "/server.Runner/RenameTestCase" + Runner_GetSuggestedAPIs_FullMethodName = "/server.Runner/GetSuggestedAPIs" + Runner_GetHistorySuites_FullMethodName = "/server.Runner/GetHistorySuites" + Runner_GetHistoryTestCaseWithResult_FullMethodName = "/server.Runner/GetHistoryTestCaseWithResult" + Runner_GetHistoryTestCase_FullMethodName = "/server.Runner/GetHistoryTestCase" + Runner_DeleteHistoryTestCase_FullMethodName = "/server.Runner/DeleteHistoryTestCase" + Runner_DeleteAllHistoryTestCase_FullMethodName = "/server.Runner/DeleteAllHistoryTestCase" + Runner_GetTestCaseAllHistory_FullMethodName = "/server.Runner/GetTestCaseAllHistory" + Runner_ListCodeGenerator_FullMethodName = "/server.Runner/ListCodeGenerator" + Runner_GenerateCode_FullMethodName = "/server.Runner/GenerateCode" + Runner_HistoryGenerateCode_FullMethodName = "/server.Runner/HistoryGenerateCode" + Runner_ListConverter_FullMethodName = "/server.Runner/ListConverter" + Runner_ConvertTestSuite_FullMethodName = "/server.Runner/ConvertTestSuite" + Runner_PopularHeaders_FullMethodName = "/server.Runner/PopularHeaders" + Runner_FunctionsQuery_FullMethodName = "/server.Runner/FunctionsQuery" + Runner_FunctionsQueryStream_FullMethodName = "/server.Runner/FunctionsQueryStream" + Runner_GetSchema_FullMethodName = "/server.Runner/GetSchema" + Runner_GetVersion_FullMethodName = "/server.Runner/GetVersion" + Runner_Sample_FullMethodName = "/server.Runner/Sample" + Runner_DownloadResponseFile_FullMethodName = "/server.Runner/DownloadResponseFile" + Runner_GetStoreKinds_FullMethodName = "/server.Runner/GetStoreKinds" + Runner_GetStores_FullMethodName = "/server.Runner/GetStores" + Runner_CreateStore_FullMethodName = "/server.Runner/CreateStore" + Runner_UpdateStore_FullMethodName = "/server.Runner/UpdateStore" + Runner_DeleteStore_FullMethodName = "/server.Runner/DeleteStore" + Runner_VerifyStore_FullMethodName = "/server.Runner/VerifyStore" + Runner_GetSecrets_FullMethodName = "/server.Runner/GetSecrets" + Runner_CreateSecret_FullMethodName = "/server.Runner/CreateSecret" + Runner_DeleteSecret_FullMethodName = "/server.Runner/DeleteSecret" + Runner_UpdateSecret_FullMethodName = "/server.Runner/UpdateSecret" + Runner_PProf_FullMethodName = "/server.Runner/PProf" +) // RunnerClient is the client API for Runner service. // @@ -24,7 +77,7 @@ const _ = grpc.SupportPackageIsVersion7 type RunnerClient interface { // belong to a specific store Run(ctx context.Context, in *TestTask, opts ...grpc.CallOption) (*TestResult, error) - RunTestSuite(ctx context.Context, opts ...grpc.CallOption) (Runner_RunTestSuiteClient, error) + RunTestSuite(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[TestSuiteIdentity, TestResult], error) // test suites related GetSuites(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Suites, error) CreateTestSuite(ctx context.Context, in *TestSuiteIdentity, opts ...grpc.CallOption) (*HelloReply, error) @@ -39,7 +92,7 @@ type RunnerClient interface { ListTestCase(ctx context.Context, in *TestSuiteIdentity, opts ...grpc.CallOption) (*Suite, error) // run target test case of a specific test suite RunTestCase(ctx context.Context, in *TestCaseIdentity, opts ...grpc.CallOption) (*TestCaseResult, error) - BatchRun(ctx context.Context, opts ...grpc.CallOption) (Runner_BatchRunClient, error) + BatchRun(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[BatchTestTask, TestResult], error) GetTestCase(ctx context.Context, in *TestCaseIdentity, opts ...grpc.CallOption) (*TestCase, error) CreateTestCase(ctx context.Context, in *TestCaseWithSuite, opts ...grpc.CallOption) (*HelloReply, error) UpdateTestCase(ctx context.Context, in *TestCaseWithSuite, opts ...grpc.CallOption) (*HelloReply, error) @@ -64,7 +117,7 @@ type RunnerClient interface { // common services PopularHeaders(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Pairs, error) FunctionsQuery(ctx context.Context, in *SimpleQuery, opts ...grpc.CallOption) (*Pairs, error) - FunctionsQueryStream(ctx context.Context, opts ...grpc.CallOption) (Runner_FunctionsQueryStreamClient, error) + FunctionsQueryStream(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[SimpleQuery, Pairs], error) GetSchema(ctx context.Context, in *SimpleQuery, opts ...grpc.CallOption) (*CommonResult, error) GetVersion(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Version, error) Sample(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*HelloReply, error) @@ -94,48 +147,32 @@ func NewRunnerClient(cc grpc.ClientConnInterface) RunnerClient { } func (c *runnerClient) Run(ctx context.Context, in *TestTask, opts ...grpc.CallOption) (*TestResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(TestResult) - err := c.cc.Invoke(ctx, "/server.Runner/Run", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_Run_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } return out, nil } -func (c *runnerClient) RunTestSuite(ctx context.Context, opts ...grpc.CallOption) (Runner_RunTestSuiteClient, error) { - stream, err := c.cc.NewStream(ctx, &Runner_ServiceDesc.Streams[0], "/server.Runner/RunTestSuite", opts...) +func (c *runnerClient) RunTestSuite(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[TestSuiteIdentity, TestResult], error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + stream, err := c.cc.NewStream(ctx, &Runner_ServiceDesc.Streams[0], Runner_RunTestSuite_FullMethodName, cOpts...) if err != nil { return nil, err } - x := &runnerRunTestSuiteClient{stream} + x := &grpc.GenericClientStream[TestSuiteIdentity, TestResult]{ClientStream: stream} return x, nil } -type Runner_RunTestSuiteClient interface { - Send(*TestSuiteIdentity) error - Recv() (*TestResult, error) - grpc.ClientStream -} - -type runnerRunTestSuiteClient struct { - grpc.ClientStream -} - -func (x *runnerRunTestSuiteClient) Send(m *TestSuiteIdentity) error { - return x.ClientStream.SendMsg(m) -} - -func (x *runnerRunTestSuiteClient) Recv() (*TestResult, error) { - m := new(TestResult) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type Runner_RunTestSuiteClient = grpc.BidiStreamingClient[TestSuiteIdentity, TestResult] func (c *runnerClient) GetSuites(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Suites, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Suites) - err := c.cc.Invoke(ctx, "/server.Runner/GetSuites", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_GetSuites_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -143,8 +180,9 @@ func (c *runnerClient) GetSuites(ctx context.Context, in *Empty, opts ...grpc.Ca } func (c *runnerClient) CreateTestSuite(ctx context.Context, in *TestSuiteIdentity, opts ...grpc.CallOption) (*HelloReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HelloReply) - err := c.cc.Invoke(ctx, "/server.Runner/CreateTestSuite", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_CreateTestSuite_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -152,8 +190,9 @@ func (c *runnerClient) CreateTestSuite(ctx context.Context, in *TestSuiteIdentit } func (c *runnerClient) ImportTestSuite(ctx context.Context, in *TestSuiteSource, opts ...grpc.CallOption) (*CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(CommonResult) - err := c.cc.Invoke(ctx, "/server.Runner/ImportTestSuite", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_ImportTestSuite_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -161,8 +200,9 @@ func (c *runnerClient) ImportTestSuite(ctx context.Context, in *TestSuiteSource, } func (c *runnerClient) GetTestSuite(ctx context.Context, in *TestSuiteIdentity, opts ...grpc.CallOption) (*TestSuite, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(TestSuite) - err := c.cc.Invoke(ctx, "/server.Runner/GetTestSuite", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_GetTestSuite_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -170,8 +210,9 @@ func (c *runnerClient) GetTestSuite(ctx context.Context, in *TestSuiteIdentity, } func (c *runnerClient) UpdateTestSuite(ctx context.Context, in *TestSuite, opts ...grpc.CallOption) (*HelloReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HelloReply) - err := c.cc.Invoke(ctx, "/server.Runner/UpdateTestSuite", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_UpdateTestSuite_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -179,8 +220,9 @@ func (c *runnerClient) UpdateTestSuite(ctx context.Context, in *TestSuite, opts } func (c *runnerClient) DeleteTestSuite(ctx context.Context, in *TestSuiteIdentity, opts ...grpc.CallOption) (*HelloReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HelloReply) - err := c.cc.Invoke(ctx, "/server.Runner/DeleteTestSuite", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_DeleteTestSuite_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -188,8 +230,9 @@ func (c *runnerClient) DeleteTestSuite(ctx context.Context, in *TestSuiteIdentit } func (c *runnerClient) DuplicateTestSuite(ctx context.Context, in *TestSuiteDuplicate, opts ...grpc.CallOption) (*HelloReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HelloReply) - err := c.cc.Invoke(ctx, "/server.Runner/DuplicateTestSuite", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_DuplicateTestSuite_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -197,8 +240,9 @@ func (c *runnerClient) DuplicateTestSuite(ctx context.Context, in *TestSuiteDupl } func (c *runnerClient) RenameTestSuite(ctx context.Context, in *TestSuiteDuplicate, opts ...grpc.CallOption) (*HelloReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HelloReply) - err := c.cc.Invoke(ctx, "/server.Runner/RenameTestSuite", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_RenameTestSuite_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -206,8 +250,9 @@ func (c *runnerClient) RenameTestSuite(ctx context.Context, in *TestSuiteDuplica } func (c *runnerClient) GetTestSuiteYaml(ctx context.Context, in *TestSuiteIdentity, opts ...grpc.CallOption) (*YamlData, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(YamlData) - err := c.cc.Invoke(ctx, "/server.Runner/GetTestSuiteYaml", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_GetTestSuiteYaml_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -215,8 +260,9 @@ func (c *runnerClient) GetTestSuiteYaml(ctx context.Context, in *TestSuiteIdenti } func (c *runnerClient) ListTestCase(ctx context.Context, in *TestSuiteIdentity, opts ...grpc.CallOption) (*Suite, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Suite) - err := c.cc.Invoke(ctx, "/server.Runner/ListTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_ListTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -224,48 +270,32 @@ func (c *runnerClient) ListTestCase(ctx context.Context, in *TestSuiteIdentity, } func (c *runnerClient) RunTestCase(ctx context.Context, in *TestCaseIdentity, opts ...grpc.CallOption) (*TestCaseResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(TestCaseResult) - err := c.cc.Invoke(ctx, "/server.Runner/RunTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_RunTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } return out, nil } -func (c *runnerClient) BatchRun(ctx context.Context, opts ...grpc.CallOption) (Runner_BatchRunClient, error) { - stream, err := c.cc.NewStream(ctx, &Runner_ServiceDesc.Streams[1], "/server.Runner/BatchRun", opts...) +func (c *runnerClient) BatchRun(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[BatchTestTask, TestResult], error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + stream, err := c.cc.NewStream(ctx, &Runner_ServiceDesc.Streams[1], Runner_BatchRun_FullMethodName, cOpts...) if err != nil { return nil, err } - x := &runnerBatchRunClient{stream} + x := &grpc.GenericClientStream[BatchTestTask, TestResult]{ClientStream: stream} return x, nil } -type Runner_BatchRunClient interface { - Send(*BatchTestTask) error - Recv() (*TestResult, error) - grpc.ClientStream -} - -type runnerBatchRunClient struct { - grpc.ClientStream -} - -func (x *runnerBatchRunClient) Send(m *BatchTestTask) error { - return x.ClientStream.SendMsg(m) -} - -func (x *runnerBatchRunClient) Recv() (*TestResult, error) { - m := new(TestResult) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type Runner_BatchRunClient = grpc.BidiStreamingClient[BatchTestTask, TestResult] func (c *runnerClient) GetTestCase(ctx context.Context, in *TestCaseIdentity, opts ...grpc.CallOption) (*TestCase, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(TestCase) - err := c.cc.Invoke(ctx, "/server.Runner/GetTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_GetTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -273,8 +303,9 @@ func (c *runnerClient) GetTestCase(ctx context.Context, in *TestCaseIdentity, op } func (c *runnerClient) CreateTestCase(ctx context.Context, in *TestCaseWithSuite, opts ...grpc.CallOption) (*HelloReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HelloReply) - err := c.cc.Invoke(ctx, "/server.Runner/CreateTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_CreateTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -282,8 +313,9 @@ func (c *runnerClient) CreateTestCase(ctx context.Context, in *TestCaseWithSuite } func (c *runnerClient) UpdateTestCase(ctx context.Context, in *TestCaseWithSuite, opts ...grpc.CallOption) (*HelloReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HelloReply) - err := c.cc.Invoke(ctx, "/server.Runner/UpdateTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_UpdateTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -291,8 +323,9 @@ func (c *runnerClient) UpdateTestCase(ctx context.Context, in *TestCaseWithSuite } func (c *runnerClient) DeleteTestCase(ctx context.Context, in *TestCaseIdentity, opts ...grpc.CallOption) (*HelloReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HelloReply) - err := c.cc.Invoke(ctx, "/server.Runner/DeleteTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_DeleteTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -300,8 +333,9 @@ func (c *runnerClient) DeleteTestCase(ctx context.Context, in *TestCaseIdentity, } func (c *runnerClient) DuplicateTestCase(ctx context.Context, in *TestCaseDuplicate, opts ...grpc.CallOption) (*HelloReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HelloReply) - err := c.cc.Invoke(ctx, "/server.Runner/DuplicateTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_DuplicateTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -309,8 +343,9 @@ func (c *runnerClient) DuplicateTestCase(ctx context.Context, in *TestCaseDuplic } func (c *runnerClient) RenameTestCase(ctx context.Context, in *TestCaseDuplicate, opts ...grpc.CallOption) (*HelloReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HelloReply) - err := c.cc.Invoke(ctx, "/server.Runner/RenameTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_RenameTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -318,8 +353,9 @@ func (c *runnerClient) RenameTestCase(ctx context.Context, in *TestCaseDuplicate } func (c *runnerClient) GetSuggestedAPIs(ctx context.Context, in *TestSuiteIdentity, opts ...grpc.CallOption) (*TestCases, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(TestCases) - err := c.cc.Invoke(ctx, "/server.Runner/GetSuggestedAPIs", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_GetSuggestedAPIs_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -327,8 +363,9 @@ func (c *runnerClient) GetSuggestedAPIs(ctx context.Context, in *TestSuiteIdenti } func (c *runnerClient) GetHistorySuites(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*HistorySuites, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HistorySuites) - err := c.cc.Invoke(ctx, "/server.Runner/GetHistorySuites", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_GetHistorySuites_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -336,8 +373,9 @@ func (c *runnerClient) GetHistorySuites(ctx context.Context, in *Empty, opts ... } func (c *runnerClient) GetHistoryTestCaseWithResult(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HistoryTestResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HistoryTestResult) - err := c.cc.Invoke(ctx, "/server.Runner/GetHistoryTestCaseWithResult", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_GetHistoryTestCaseWithResult_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -345,8 +383,9 @@ func (c *runnerClient) GetHistoryTestCaseWithResult(ctx context.Context, in *His } func (c *runnerClient) GetHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HistoryTestCase, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HistoryTestCase) - err := c.cc.Invoke(ctx, "/server.Runner/GetHistoryTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_GetHistoryTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -354,8 +393,9 @@ func (c *runnerClient) GetHistoryTestCase(ctx context.Context, in *HistoryTestCa } func (c *runnerClient) DeleteHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HelloReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HelloReply) - err := c.cc.Invoke(ctx, "/server.Runner/DeleteHistoryTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_DeleteHistoryTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -363,8 +403,9 @@ func (c *runnerClient) DeleteHistoryTestCase(ctx context.Context, in *HistoryTes } func (c *runnerClient) DeleteAllHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HelloReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HelloReply) - err := c.cc.Invoke(ctx, "/server.Runner/DeleteAllHistoryTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_DeleteAllHistoryTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -372,8 +413,9 @@ func (c *runnerClient) DeleteAllHistoryTestCase(ctx context.Context, in *History } func (c *runnerClient) GetTestCaseAllHistory(ctx context.Context, in *TestCase, opts ...grpc.CallOption) (*HistoryTestCases, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HistoryTestCases) - err := c.cc.Invoke(ctx, "/server.Runner/GetTestCaseAllHistory", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_GetTestCaseAllHistory_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -381,8 +423,9 @@ func (c *runnerClient) GetTestCaseAllHistory(ctx context.Context, in *TestCase, } func (c *runnerClient) ListCodeGenerator(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*SimpleList, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(SimpleList) - err := c.cc.Invoke(ctx, "/server.Runner/ListCodeGenerator", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_ListCodeGenerator_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -390,8 +433,9 @@ func (c *runnerClient) ListCodeGenerator(ctx context.Context, in *Empty, opts .. } func (c *runnerClient) GenerateCode(ctx context.Context, in *CodeGenerateRequest, opts ...grpc.CallOption) (*CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(CommonResult) - err := c.cc.Invoke(ctx, "/server.Runner/GenerateCode", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_GenerateCode_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -399,8 +443,9 @@ func (c *runnerClient) GenerateCode(ctx context.Context, in *CodeGenerateRequest } func (c *runnerClient) HistoryGenerateCode(ctx context.Context, in *CodeGenerateRequest, opts ...grpc.CallOption) (*CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(CommonResult) - err := c.cc.Invoke(ctx, "/server.Runner/HistoryGenerateCode", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_HistoryGenerateCode_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -408,8 +453,9 @@ func (c *runnerClient) HistoryGenerateCode(ctx context.Context, in *CodeGenerate } func (c *runnerClient) ListConverter(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*SimpleList, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(SimpleList) - err := c.cc.Invoke(ctx, "/server.Runner/ListConverter", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_ListConverter_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -417,8 +463,9 @@ func (c *runnerClient) ListConverter(ctx context.Context, in *Empty, opts ...grp } func (c *runnerClient) ConvertTestSuite(ctx context.Context, in *CodeGenerateRequest, opts ...grpc.CallOption) (*CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(CommonResult) - err := c.cc.Invoke(ctx, "/server.Runner/ConvertTestSuite", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_ConvertTestSuite_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -426,8 +473,9 @@ func (c *runnerClient) ConvertTestSuite(ctx context.Context, in *CodeGenerateReq } func (c *runnerClient) PopularHeaders(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Pairs, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Pairs) - err := c.cc.Invoke(ctx, "/server.Runner/PopularHeaders", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_PopularHeaders_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -435,48 +483,32 @@ func (c *runnerClient) PopularHeaders(ctx context.Context, in *Empty, opts ...gr } func (c *runnerClient) FunctionsQuery(ctx context.Context, in *SimpleQuery, opts ...grpc.CallOption) (*Pairs, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Pairs) - err := c.cc.Invoke(ctx, "/server.Runner/FunctionsQuery", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_FunctionsQuery_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } return out, nil } -func (c *runnerClient) FunctionsQueryStream(ctx context.Context, opts ...grpc.CallOption) (Runner_FunctionsQueryStreamClient, error) { - stream, err := c.cc.NewStream(ctx, &Runner_ServiceDesc.Streams[2], "/server.Runner/FunctionsQueryStream", opts...) +func (c *runnerClient) FunctionsQueryStream(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[SimpleQuery, Pairs], error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + stream, err := c.cc.NewStream(ctx, &Runner_ServiceDesc.Streams[2], Runner_FunctionsQueryStream_FullMethodName, cOpts...) if err != nil { return nil, err } - x := &runnerFunctionsQueryStreamClient{stream} + x := &grpc.GenericClientStream[SimpleQuery, Pairs]{ClientStream: stream} return x, nil } -type Runner_FunctionsQueryStreamClient interface { - Send(*SimpleQuery) error - Recv() (*Pairs, error) - grpc.ClientStream -} - -type runnerFunctionsQueryStreamClient struct { - grpc.ClientStream -} - -func (x *runnerFunctionsQueryStreamClient) Send(m *SimpleQuery) error { - return x.ClientStream.SendMsg(m) -} - -func (x *runnerFunctionsQueryStreamClient) Recv() (*Pairs, error) { - m := new(Pairs) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type Runner_FunctionsQueryStreamClient = grpc.BidiStreamingClient[SimpleQuery, Pairs] func (c *runnerClient) GetSchema(ctx context.Context, in *SimpleQuery, opts ...grpc.CallOption) (*CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(CommonResult) - err := c.cc.Invoke(ctx, "/server.Runner/GetSchema", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_GetSchema_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -484,8 +516,9 @@ func (c *runnerClient) GetSchema(ctx context.Context, in *SimpleQuery, opts ...g } func (c *runnerClient) GetVersion(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Version, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Version) - err := c.cc.Invoke(ctx, "/server.Runner/GetVersion", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_GetVersion_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -493,8 +526,9 @@ func (c *runnerClient) GetVersion(ctx context.Context, in *Empty, opts ...grpc.C } func (c *runnerClient) Sample(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*HelloReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HelloReply) - err := c.cc.Invoke(ctx, "/server.Runner/Sample", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_Sample_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -502,8 +536,9 @@ func (c *runnerClient) Sample(ctx context.Context, in *Empty, opts ...grpc.CallO } func (c *runnerClient) DownloadResponseFile(ctx context.Context, in *TestCase, opts ...grpc.CallOption) (*FileData, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(FileData) - err := c.cc.Invoke(ctx, "/server.Runner/DownloadResponseFile", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_DownloadResponseFile_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -511,8 +546,9 @@ func (c *runnerClient) DownloadResponseFile(ctx context.Context, in *TestCase, o } func (c *runnerClient) GetStoreKinds(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StoreKinds, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(StoreKinds) - err := c.cc.Invoke(ctx, "/server.Runner/GetStoreKinds", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_GetStoreKinds_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -520,8 +556,9 @@ func (c *runnerClient) GetStoreKinds(ctx context.Context, in *Empty, opts ...grp } func (c *runnerClient) GetStores(ctx context.Context, in *SimpleQuery, opts ...grpc.CallOption) (*Stores, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Stores) - err := c.cc.Invoke(ctx, "/server.Runner/GetStores", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_GetStores_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -529,8 +566,9 @@ func (c *runnerClient) GetStores(ctx context.Context, in *SimpleQuery, opts ...g } func (c *runnerClient) CreateStore(ctx context.Context, in *Store, opts ...grpc.CallOption) (*Store, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Store) - err := c.cc.Invoke(ctx, "/server.Runner/CreateStore", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_CreateStore_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -538,8 +576,9 @@ func (c *runnerClient) CreateStore(ctx context.Context, in *Store, opts ...grpc. } func (c *runnerClient) UpdateStore(ctx context.Context, in *Store, opts ...grpc.CallOption) (*Store, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Store) - err := c.cc.Invoke(ctx, "/server.Runner/UpdateStore", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_UpdateStore_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -547,8 +586,9 @@ func (c *runnerClient) UpdateStore(ctx context.Context, in *Store, opts ...grpc. } func (c *runnerClient) DeleteStore(ctx context.Context, in *Store, opts ...grpc.CallOption) (*Store, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Store) - err := c.cc.Invoke(ctx, "/server.Runner/DeleteStore", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_DeleteStore_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -556,8 +596,9 @@ func (c *runnerClient) DeleteStore(ctx context.Context, in *Store, opts ...grpc. } func (c *runnerClient) VerifyStore(ctx context.Context, in *SimpleQuery, opts ...grpc.CallOption) (*ExtensionStatus, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ExtensionStatus) - err := c.cc.Invoke(ctx, "/server.Runner/VerifyStore", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_VerifyStore_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -565,8 +606,9 @@ func (c *runnerClient) VerifyStore(ctx context.Context, in *SimpleQuery, opts .. } func (c *runnerClient) GetSecrets(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Secrets, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Secrets) - err := c.cc.Invoke(ctx, "/server.Runner/GetSecrets", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_GetSecrets_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -574,8 +616,9 @@ func (c *runnerClient) GetSecrets(ctx context.Context, in *Empty, opts ...grpc.C } func (c *runnerClient) CreateSecret(ctx context.Context, in *Secret, opts ...grpc.CallOption) (*CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(CommonResult) - err := c.cc.Invoke(ctx, "/server.Runner/CreateSecret", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_CreateSecret_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -583,8 +626,9 @@ func (c *runnerClient) CreateSecret(ctx context.Context, in *Secret, opts ...grp } func (c *runnerClient) DeleteSecret(ctx context.Context, in *Secret, opts ...grpc.CallOption) (*CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(CommonResult) - err := c.cc.Invoke(ctx, "/server.Runner/DeleteSecret", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_DeleteSecret_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -592,8 +636,9 @@ func (c *runnerClient) DeleteSecret(ctx context.Context, in *Secret, opts ...grp } func (c *runnerClient) UpdateSecret(ctx context.Context, in *Secret, opts ...grpc.CallOption) (*CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(CommonResult) - err := c.cc.Invoke(ctx, "/server.Runner/UpdateSecret", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_UpdateSecret_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -601,8 +646,9 @@ func (c *runnerClient) UpdateSecret(ctx context.Context, in *Secret, opts ...grp } func (c *runnerClient) PProf(ctx context.Context, in *PProfRequest, opts ...grpc.CallOption) (*PProfData, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(PProfData) - err := c.cc.Invoke(ctx, "/server.Runner/PProf", in, out, opts...) + err := c.cc.Invoke(ctx, Runner_PProf_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -611,11 +657,11 @@ func (c *runnerClient) PProf(ctx context.Context, in *PProfRequest, opts ...grpc // RunnerServer is the server API for Runner service. // All implementations must embed UnimplementedRunnerServer -// for forward compatibility +// for forward compatibility. type RunnerServer interface { // belong to a specific store Run(context.Context, *TestTask) (*TestResult, error) - RunTestSuite(Runner_RunTestSuiteServer) error + RunTestSuite(grpc.BidiStreamingServer[TestSuiteIdentity, TestResult]) error // test suites related GetSuites(context.Context, *Empty) (*Suites, error) CreateTestSuite(context.Context, *TestSuiteIdentity) (*HelloReply, error) @@ -630,7 +676,7 @@ type RunnerServer interface { ListTestCase(context.Context, *TestSuiteIdentity) (*Suite, error) // run target test case of a specific test suite RunTestCase(context.Context, *TestCaseIdentity) (*TestCaseResult, error) - BatchRun(Runner_BatchRunServer) error + BatchRun(grpc.BidiStreamingServer[BatchTestTask, TestResult]) error GetTestCase(context.Context, *TestCaseIdentity) (*TestCase, error) CreateTestCase(context.Context, *TestCaseWithSuite) (*HelloReply, error) UpdateTestCase(context.Context, *TestCaseWithSuite) (*HelloReply, error) @@ -655,7 +701,7 @@ type RunnerServer interface { // common services PopularHeaders(context.Context, *Empty) (*Pairs, error) FunctionsQuery(context.Context, *SimpleQuery) (*Pairs, error) - FunctionsQueryStream(Runner_FunctionsQueryStreamServer) error + FunctionsQueryStream(grpc.BidiStreamingServer[SimpleQuery, Pairs]) error GetSchema(context.Context, *SimpleQuery) (*CommonResult, error) GetVersion(context.Context, *Empty) (*Version, error) Sample(context.Context, *Empty) (*HelloReply, error) @@ -677,14 +723,17 @@ type RunnerServer interface { mustEmbedUnimplementedRunnerServer() } -// UnimplementedRunnerServer must be embedded to have forward compatible implementations. -type UnimplementedRunnerServer struct { -} +// UnimplementedRunnerServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedRunnerServer struct{} func (UnimplementedRunnerServer) Run(context.Context, *TestTask) (*TestResult, error) { return nil, status.Errorf(codes.Unimplemented, "method Run not implemented") } -func (UnimplementedRunnerServer) RunTestSuite(Runner_RunTestSuiteServer) error { +func (UnimplementedRunnerServer) RunTestSuite(grpc.BidiStreamingServer[TestSuiteIdentity, TestResult]) error { return status.Errorf(codes.Unimplemented, "method RunTestSuite not implemented") } func (UnimplementedRunnerServer) GetSuites(context.Context, *Empty) (*Suites, error) { @@ -720,7 +769,7 @@ func (UnimplementedRunnerServer) ListTestCase(context.Context, *TestSuiteIdentit func (UnimplementedRunnerServer) RunTestCase(context.Context, *TestCaseIdentity) (*TestCaseResult, error) { return nil, status.Errorf(codes.Unimplemented, "method RunTestCase not implemented") } -func (UnimplementedRunnerServer) BatchRun(Runner_BatchRunServer) error { +func (UnimplementedRunnerServer) BatchRun(grpc.BidiStreamingServer[BatchTestTask, TestResult]) error { return status.Errorf(codes.Unimplemented, "method BatchRun not implemented") } func (UnimplementedRunnerServer) GetTestCase(context.Context, *TestCaseIdentity) (*TestCase, error) { @@ -783,7 +832,7 @@ func (UnimplementedRunnerServer) PopularHeaders(context.Context, *Empty) (*Pairs func (UnimplementedRunnerServer) FunctionsQuery(context.Context, *SimpleQuery) (*Pairs, error) { return nil, status.Errorf(codes.Unimplemented, "method FunctionsQuery not implemented") } -func (UnimplementedRunnerServer) FunctionsQueryStream(Runner_FunctionsQueryStreamServer) error { +func (UnimplementedRunnerServer) FunctionsQueryStream(grpc.BidiStreamingServer[SimpleQuery, Pairs]) error { return status.Errorf(codes.Unimplemented, "method FunctionsQueryStream not implemented") } func (UnimplementedRunnerServer) GetSchema(context.Context, *SimpleQuery) (*CommonResult, error) { @@ -832,6 +881,7 @@ func (UnimplementedRunnerServer) PProf(context.Context, *PProfRequest) (*PProfDa return nil, status.Errorf(codes.Unimplemented, "method PProf not implemented") } func (UnimplementedRunnerServer) mustEmbedUnimplementedRunnerServer() {} +func (UnimplementedRunnerServer) testEmbeddedByValue() {} // UnsafeRunnerServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to RunnerServer will @@ -841,6 +891,13 @@ type UnsafeRunnerServer interface { } func RegisterRunnerServer(s grpc.ServiceRegistrar, srv RunnerServer) { + // If the following call pancis, it indicates UnimplementedRunnerServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&Runner_ServiceDesc, srv) } @@ -854,7 +911,7 @@ func _Runner_Run_Handler(srv interface{}, ctx context.Context, dec func(interfac } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/Run", + FullMethod: Runner_Run_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).Run(ctx, req.(*TestTask)) @@ -863,30 +920,11 @@ func _Runner_Run_Handler(srv interface{}, ctx context.Context, dec func(interfac } func _Runner_RunTestSuite_Handler(srv interface{}, stream grpc.ServerStream) error { - return srv.(RunnerServer).RunTestSuite(&runnerRunTestSuiteServer{stream}) -} - -type Runner_RunTestSuiteServer interface { - Send(*TestResult) error - Recv() (*TestSuiteIdentity, error) - grpc.ServerStream -} - -type runnerRunTestSuiteServer struct { - grpc.ServerStream + return srv.(RunnerServer).RunTestSuite(&grpc.GenericServerStream[TestSuiteIdentity, TestResult]{ServerStream: stream}) } -func (x *runnerRunTestSuiteServer) Send(m *TestResult) error { - return x.ServerStream.SendMsg(m) -} - -func (x *runnerRunTestSuiteServer) Recv() (*TestSuiteIdentity, error) { - m := new(TestSuiteIdentity) - if err := x.ServerStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type Runner_RunTestSuiteServer = grpc.BidiStreamingServer[TestSuiteIdentity, TestResult] func _Runner_GetSuites_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(Empty) @@ -898,7 +936,7 @@ func _Runner_GetSuites_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/GetSuites", + FullMethod: Runner_GetSuites_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).GetSuites(ctx, req.(*Empty)) @@ -916,7 +954,7 @@ func _Runner_CreateTestSuite_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/CreateTestSuite", + FullMethod: Runner_CreateTestSuite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).CreateTestSuite(ctx, req.(*TestSuiteIdentity)) @@ -934,7 +972,7 @@ func _Runner_ImportTestSuite_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/ImportTestSuite", + FullMethod: Runner_ImportTestSuite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).ImportTestSuite(ctx, req.(*TestSuiteSource)) @@ -952,7 +990,7 @@ func _Runner_GetTestSuite_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/GetTestSuite", + FullMethod: Runner_GetTestSuite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).GetTestSuite(ctx, req.(*TestSuiteIdentity)) @@ -970,7 +1008,7 @@ func _Runner_UpdateTestSuite_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/UpdateTestSuite", + FullMethod: Runner_UpdateTestSuite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).UpdateTestSuite(ctx, req.(*TestSuite)) @@ -988,7 +1026,7 @@ func _Runner_DeleteTestSuite_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/DeleteTestSuite", + FullMethod: Runner_DeleteTestSuite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).DeleteTestSuite(ctx, req.(*TestSuiteIdentity)) @@ -1006,7 +1044,7 @@ func _Runner_DuplicateTestSuite_Handler(srv interface{}, ctx context.Context, de } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/DuplicateTestSuite", + FullMethod: Runner_DuplicateTestSuite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).DuplicateTestSuite(ctx, req.(*TestSuiteDuplicate)) @@ -1024,7 +1062,7 @@ func _Runner_RenameTestSuite_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/RenameTestSuite", + FullMethod: Runner_RenameTestSuite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).RenameTestSuite(ctx, req.(*TestSuiteDuplicate)) @@ -1042,7 +1080,7 @@ func _Runner_GetTestSuiteYaml_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/GetTestSuiteYaml", + FullMethod: Runner_GetTestSuiteYaml_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).GetTestSuiteYaml(ctx, req.(*TestSuiteIdentity)) @@ -1060,7 +1098,7 @@ func _Runner_ListTestCase_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/ListTestCase", + FullMethod: Runner_ListTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).ListTestCase(ctx, req.(*TestSuiteIdentity)) @@ -1078,7 +1116,7 @@ func _Runner_RunTestCase_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/RunTestCase", + FullMethod: Runner_RunTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).RunTestCase(ctx, req.(*TestCaseIdentity)) @@ -1087,30 +1125,11 @@ func _Runner_RunTestCase_Handler(srv interface{}, ctx context.Context, dec func( } func _Runner_BatchRun_Handler(srv interface{}, stream grpc.ServerStream) error { - return srv.(RunnerServer).BatchRun(&runnerBatchRunServer{stream}) + return srv.(RunnerServer).BatchRun(&grpc.GenericServerStream[BatchTestTask, TestResult]{ServerStream: stream}) } -type Runner_BatchRunServer interface { - Send(*TestResult) error - Recv() (*BatchTestTask, error) - grpc.ServerStream -} - -type runnerBatchRunServer struct { - grpc.ServerStream -} - -func (x *runnerBatchRunServer) Send(m *TestResult) error { - return x.ServerStream.SendMsg(m) -} - -func (x *runnerBatchRunServer) Recv() (*BatchTestTask, error) { - m := new(BatchTestTask) - if err := x.ServerStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type Runner_BatchRunServer = grpc.BidiStreamingServer[BatchTestTask, TestResult] func _Runner_GetTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(TestCaseIdentity) @@ -1122,7 +1141,7 @@ func _Runner_GetTestCase_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/GetTestCase", + FullMethod: Runner_GetTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).GetTestCase(ctx, req.(*TestCaseIdentity)) @@ -1140,7 +1159,7 @@ func _Runner_CreateTestCase_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/CreateTestCase", + FullMethod: Runner_CreateTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).CreateTestCase(ctx, req.(*TestCaseWithSuite)) @@ -1158,7 +1177,7 @@ func _Runner_UpdateTestCase_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/UpdateTestCase", + FullMethod: Runner_UpdateTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).UpdateTestCase(ctx, req.(*TestCaseWithSuite)) @@ -1176,7 +1195,7 @@ func _Runner_DeleteTestCase_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/DeleteTestCase", + FullMethod: Runner_DeleteTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).DeleteTestCase(ctx, req.(*TestCaseIdentity)) @@ -1194,7 +1213,7 @@ func _Runner_DuplicateTestCase_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/DuplicateTestCase", + FullMethod: Runner_DuplicateTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).DuplicateTestCase(ctx, req.(*TestCaseDuplicate)) @@ -1212,7 +1231,7 @@ func _Runner_RenameTestCase_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/RenameTestCase", + FullMethod: Runner_RenameTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).RenameTestCase(ctx, req.(*TestCaseDuplicate)) @@ -1230,7 +1249,7 @@ func _Runner_GetSuggestedAPIs_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/GetSuggestedAPIs", + FullMethod: Runner_GetSuggestedAPIs_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).GetSuggestedAPIs(ctx, req.(*TestSuiteIdentity)) @@ -1248,7 +1267,7 @@ func _Runner_GetHistorySuites_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/GetHistorySuites", + FullMethod: Runner_GetHistorySuites_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).GetHistorySuites(ctx, req.(*Empty)) @@ -1266,7 +1285,7 @@ func _Runner_GetHistoryTestCaseWithResult_Handler(srv interface{}, ctx context.C } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/GetHistoryTestCaseWithResult", + FullMethod: Runner_GetHistoryTestCaseWithResult_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).GetHistoryTestCaseWithResult(ctx, req.(*HistoryTestCase)) @@ -1284,7 +1303,7 @@ func _Runner_GetHistoryTestCase_Handler(srv interface{}, ctx context.Context, de } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/GetHistoryTestCase", + FullMethod: Runner_GetHistoryTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).GetHistoryTestCase(ctx, req.(*HistoryTestCase)) @@ -1302,7 +1321,7 @@ func _Runner_DeleteHistoryTestCase_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/DeleteHistoryTestCase", + FullMethod: Runner_DeleteHistoryTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).DeleteHistoryTestCase(ctx, req.(*HistoryTestCase)) @@ -1320,7 +1339,7 @@ func _Runner_DeleteAllHistoryTestCase_Handler(srv interface{}, ctx context.Conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/DeleteAllHistoryTestCase", + FullMethod: Runner_DeleteAllHistoryTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).DeleteAllHistoryTestCase(ctx, req.(*HistoryTestCase)) @@ -1338,7 +1357,7 @@ func _Runner_GetTestCaseAllHistory_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/GetTestCaseAllHistory", + FullMethod: Runner_GetTestCaseAllHistory_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).GetTestCaseAllHistory(ctx, req.(*TestCase)) @@ -1356,7 +1375,7 @@ func _Runner_ListCodeGenerator_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/ListCodeGenerator", + FullMethod: Runner_ListCodeGenerator_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).ListCodeGenerator(ctx, req.(*Empty)) @@ -1374,7 +1393,7 @@ func _Runner_GenerateCode_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/GenerateCode", + FullMethod: Runner_GenerateCode_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).GenerateCode(ctx, req.(*CodeGenerateRequest)) @@ -1392,7 +1411,7 @@ func _Runner_HistoryGenerateCode_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/HistoryGenerateCode", + FullMethod: Runner_HistoryGenerateCode_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).HistoryGenerateCode(ctx, req.(*CodeGenerateRequest)) @@ -1410,7 +1429,7 @@ func _Runner_ListConverter_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/ListConverter", + FullMethod: Runner_ListConverter_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).ListConverter(ctx, req.(*Empty)) @@ -1428,7 +1447,7 @@ func _Runner_ConvertTestSuite_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/ConvertTestSuite", + FullMethod: Runner_ConvertTestSuite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).ConvertTestSuite(ctx, req.(*CodeGenerateRequest)) @@ -1446,7 +1465,7 @@ func _Runner_PopularHeaders_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/PopularHeaders", + FullMethod: Runner_PopularHeaders_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).PopularHeaders(ctx, req.(*Empty)) @@ -1464,7 +1483,7 @@ func _Runner_FunctionsQuery_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/FunctionsQuery", + FullMethod: Runner_FunctionsQuery_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).FunctionsQuery(ctx, req.(*SimpleQuery)) @@ -1473,30 +1492,11 @@ func _Runner_FunctionsQuery_Handler(srv interface{}, ctx context.Context, dec fu } func _Runner_FunctionsQueryStream_Handler(srv interface{}, stream grpc.ServerStream) error { - return srv.(RunnerServer).FunctionsQueryStream(&runnerFunctionsQueryStreamServer{stream}) -} - -type Runner_FunctionsQueryStreamServer interface { - Send(*Pairs) error - Recv() (*SimpleQuery, error) - grpc.ServerStream -} - -type runnerFunctionsQueryStreamServer struct { - grpc.ServerStream -} - -func (x *runnerFunctionsQueryStreamServer) Send(m *Pairs) error { - return x.ServerStream.SendMsg(m) + return srv.(RunnerServer).FunctionsQueryStream(&grpc.GenericServerStream[SimpleQuery, Pairs]{ServerStream: stream}) } -func (x *runnerFunctionsQueryStreamServer) Recv() (*SimpleQuery, error) { - m := new(SimpleQuery) - if err := x.ServerStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type Runner_FunctionsQueryStreamServer = grpc.BidiStreamingServer[SimpleQuery, Pairs] func _Runner_GetSchema_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SimpleQuery) @@ -1508,7 +1508,7 @@ func _Runner_GetSchema_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/GetSchema", + FullMethod: Runner_GetSchema_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).GetSchema(ctx, req.(*SimpleQuery)) @@ -1526,7 +1526,7 @@ func _Runner_GetVersion_Handler(srv interface{}, ctx context.Context, dec func(i } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/GetVersion", + FullMethod: Runner_GetVersion_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).GetVersion(ctx, req.(*Empty)) @@ -1544,7 +1544,7 @@ func _Runner_Sample_Handler(srv interface{}, ctx context.Context, dec func(inter } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/Sample", + FullMethod: Runner_Sample_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).Sample(ctx, req.(*Empty)) @@ -1562,7 +1562,7 @@ func _Runner_DownloadResponseFile_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/DownloadResponseFile", + FullMethod: Runner_DownloadResponseFile_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).DownloadResponseFile(ctx, req.(*TestCase)) @@ -1580,7 +1580,7 @@ func _Runner_GetStoreKinds_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/GetStoreKinds", + FullMethod: Runner_GetStoreKinds_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).GetStoreKinds(ctx, req.(*Empty)) @@ -1598,7 +1598,7 @@ func _Runner_GetStores_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/GetStores", + FullMethod: Runner_GetStores_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).GetStores(ctx, req.(*SimpleQuery)) @@ -1616,7 +1616,7 @@ func _Runner_CreateStore_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/CreateStore", + FullMethod: Runner_CreateStore_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).CreateStore(ctx, req.(*Store)) @@ -1634,7 +1634,7 @@ func _Runner_UpdateStore_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/UpdateStore", + FullMethod: Runner_UpdateStore_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).UpdateStore(ctx, req.(*Store)) @@ -1652,7 +1652,7 @@ func _Runner_DeleteStore_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/DeleteStore", + FullMethod: Runner_DeleteStore_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).DeleteStore(ctx, req.(*Store)) @@ -1670,7 +1670,7 @@ func _Runner_VerifyStore_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/VerifyStore", + FullMethod: Runner_VerifyStore_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).VerifyStore(ctx, req.(*SimpleQuery)) @@ -1688,7 +1688,7 @@ func _Runner_GetSecrets_Handler(srv interface{}, ctx context.Context, dec func(i } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/GetSecrets", + FullMethod: Runner_GetSecrets_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).GetSecrets(ctx, req.(*Empty)) @@ -1706,7 +1706,7 @@ func _Runner_CreateSecret_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/CreateSecret", + FullMethod: Runner_CreateSecret_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).CreateSecret(ctx, req.(*Secret)) @@ -1724,7 +1724,7 @@ func _Runner_DeleteSecret_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/DeleteSecret", + FullMethod: Runner_DeleteSecret_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).DeleteSecret(ctx, req.(*Secret)) @@ -1742,7 +1742,7 @@ func _Runner_UpdateSecret_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/UpdateSecret", + FullMethod: Runner_UpdateSecret_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).UpdateSecret(ctx, req.(*Secret)) @@ -1760,7 +1760,7 @@ func _Runner_PProf_Handler(srv interface{}, ctx context.Context, dec func(interf } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Runner/PProf", + FullMethod: Runner_PProf_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerServer).PProf(ctx, req.(*PProfRequest)) @@ -1987,6 +1987,10 @@ var Runner_ServiceDesc = grpc.ServiceDesc{ Metadata: "pkg/server/server.proto", } +const ( + RunnerExtension_Run_FullMethodName = "/server.RunnerExtension/Run" +) + // RunnerExtensionClient is the client API for RunnerExtension service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -2003,8 +2007,9 @@ func NewRunnerExtensionClient(cc grpc.ClientConnInterface) RunnerExtensionClient } func (c *runnerExtensionClient) Run(ctx context.Context, in *TestSuiteWithCase, opts ...grpc.CallOption) (*CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(CommonResult) - err := c.cc.Invoke(ctx, "/server.RunnerExtension/Run", in, out, opts...) + err := c.cc.Invoke(ctx, RunnerExtension_Run_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -2013,20 +2018,24 @@ func (c *runnerExtensionClient) Run(ctx context.Context, in *TestSuiteWithCase, // RunnerExtensionServer is the server API for RunnerExtension service. // All implementations must embed UnimplementedRunnerExtensionServer -// for forward compatibility +// for forward compatibility. type RunnerExtensionServer interface { Run(context.Context, *TestSuiteWithCase) (*CommonResult, error) mustEmbedUnimplementedRunnerExtensionServer() } -// UnimplementedRunnerExtensionServer must be embedded to have forward compatible implementations. -type UnimplementedRunnerExtensionServer struct { -} +// UnimplementedRunnerExtensionServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedRunnerExtensionServer struct{} func (UnimplementedRunnerExtensionServer) Run(context.Context, *TestSuiteWithCase) (*CommonResult, error) { return nil, status.Errorf(codes.Unimplemented, "method Run not implemented") } func (UnimplementedRunnerExtensionServer) mustEmbedUnimplementedRunnerExtensionServer() {} +func (UnimplementedRunnerExtensionServer) testEmbeddedByValue() {} // UnsafeRunnerExtensionServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to RunnerExtensionServer will @@ -2036,6 +2045,13 @@ type UnsafeRunnerExtensionServer interface { } func RegisterRunnerExtensionServer(s grpc.ServiceRegistrar, srv RunnerExtensionServer) { + // If the following call pancis, it indicates UnimplementedRunnerExtensionServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&RunnerExtension_ServiceDesc, srv) } @@ -2049,7 +2065,7 @@ func _RunnerExtension_Run_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.RunnerExtension/Run", + FullMethod: RunnerExtension_Run_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RunnerExtensionServer).Run(ctx, req.(*TestSuiteWithCase)) @@ -2073,6 +2089,13 @@ var RunnerExtension_ServiceDesc = grpc.ServiceDesc{ Metadata: "pkg/server/server.proto", } +const ( + UIExtension_GetMenus_FullMethodName = "/server.UIExtension/GetMenus" + UIExtension_GetPageOfJS_FullMethodName = "/server.UIExtension/GetPageOfJS" + UIExtension_GetPageOfCSS_FullMethodName = "/server.UIExtension/GetPageOfCSS" + UIExtension_GetPageOfStatic_FullMethodName = "/server.UIExtension/GetPageOfStatic" +) + // UIExtensionClient is the client API for UIExtension service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -2092,8 +2115,9 @@ func NewUIExtensionClient(cc grpc.ClientConnInterface) UIExtensionClient { } func (c *uIExtensionClient) GetMenus(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*MenuList, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(MenuList) - err := c.cc.Invoke(ctx, "/server.UIExtension/GetMenus", in, out, opts...) + err := c.cc.Invoke(ctx, UIExtension_GetMenus_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -2101,8 +2125,9 @@ func (c *uIExtensionClient) GetMenus(ctx context.Context, in *Empty, opts ...grp } func (c *uIExtensionClient) GetPageOfJS(ctx context.Context, in *SimpleName, opts ...grpc.CallOption) (*CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(CommonResult) - err := c.cc.Invoke(ctx, "/server.UIExtension/GetPageOfJS", in, out, opts...) + err := c.cc.Invoke(ctx, UIExtension_GetPageOfJS_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -2110,8 +2135,9 @@ func (c *uIExtensionClient) GetPageOfJS(ctx context.Context, in *SimpleName, opt } func (c *uIExtensionClient) GetPageOfCSS(ctx context.Context, in *SimpleName, opts ...grpc.CallOption) (*CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(CommonResult) - err := c.cc.Invoke(ctx, "/server.UIExtension/GetPageOfCSS", in, out, opts...) + err := c.cc.Invoke(ctx, UIExtension_GetPageOfCSS_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -2119,8 +2145,9 @@ func (c *uIExtensionClient) GetPageOfCSS(ctx context.Context, in *SimpleName, op } func (c *uIExtensionClient) GetPageOfStatic(ctx context.Context, in *SimpleName, opts ...grpc.CallOption) (*CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(CommonResult) - err := c.cc.Invoke(ctx, "/server.UIExtension/GetPageOfStatic", in, out, opts...) + err := c.cc.Invoke(ctx, UIExtension_GetPageOfStatic_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -2129,7 +2156,7 @@ func (c *uIExtensionClient) GetPageOfStatic(ctx context.Context, in *SimpleName, // UIExtensionServer is the server API for UIExtension service. // All implementations must embed UnimplementedUIExtensionServer -// for forward compatibility +// for forward compatibility. type UIExtensionServer interface { GetMenus(context.Context, *Empty) (*MenuList, error) GetPageOfJS(context.Context, *SimpleName) (*CommonResult, error) @@ -2138,9 +2165,12 @@ type UIExtensionServer interface { mustEmbedUnimplementedUIExtensionServer() } -// UnimplementedUIExtensionServer must be embedded to have forward compatible implementations. -type UnimplementedUIExtensionServer struct { -} +// UnimplementedUIExtensionServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedUIExtensionServer struct{} func (UnimplementedUIExtensionServer) GetMenus(context.Context, *Empty) (*MenuList, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMenus not implemented") @@ -2155,6 +2185,7 @@ func (UnimplementedUIExtensionServer) GetPageOfStatic(context.Context, *SimpleNa return nil, status.Errorf(codes.Unimplemented, "method GetPageOfStatic not implemented") } func (UnimplementedUIExtensionServer) mustEmbedUnimplementedUIExtensionServer() {} +func (UnimplementedUIExtensionServer) testEmbeddedByValue() {} // UnsafeUIExtensionServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to UIExtensionServer will @@ -2164,6 +2195,13 @@ type UnsafeUIExtensionServer interface { } func RegisterUIExtensionServer(s grpc.ServiceRegistrar, srv UIExtensionServer) { + // If the following call pancis, it indicates UnimplementedUIExtensionServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&UIExtension_ServiceDesc, srv) } @@ -2177,7 +2215,7 @@ func _UIExtension_GetMenus_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.UIExtension/GetMenus", + FullMethod: UIExtension_GetMenus_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(UIExtensionServer).GetMenus(ctx, req.(*Empty)) @@ -2195,7 +2233,7 @@ func _UIExtension_GetPageOfJS_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.UIExtension/GetPageOfJS", + FullMethod: UIExtension_GetPageOfJS_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(UIExtensionServer).GetPageOfJS(ctx, req.(*SimpleName)) @@ -2213,7 +2251,7 @@ func _UIExtension_GetPageOfCSS_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.UIExtension/GetPageOfCSS", + FullMethod: UIExtension_GetPageOfCSS_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(UIExtensionServer).GetPageOfCSS(ctx, req.(*SimpleName)) @@ -2231,7 +2269,7 @@ func _UIExtension_GetPageOfStatic_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.UIExtension/GetPageOfStatic", + FullMethod: UIExtension_GetPageOfStatic_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(UIExtensionServer).GetPageOfStatic(ctx, req.(*SimpleName)) @@ -2267,6 +2305,13 @@ var UIExtension_ServiceDesc = grpc.ServiceDesc{ Metadata: "pkg/server/server.proto", } +const ( + ThemeExtension_GetThemes_FullMethodName = "/server.ThemeExtension/GetThemes" + ThemeExtension_GetTheme_FullMethodName = "/server.ThemeExtension/GetTheme" + ThemeExtension_GetBindings_FullMethodName = "/server.ThemeExtension/GetBindings" + ThemeExtension_GetBinding_FullMethodName = "/server.ThemeExtension/GetBinding" +) + // ThemeExtensionClient is the client API for ThemeExtension service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -2286,8 +2331,9 @@ func NewThemeExtensionClient(cc grpc.ClientConnInterface) ThemeExtensionClient { } func (c *themeExtensionClient) GetThemes(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*SimpleList, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(SimpleList) - err := c.cc.Invoke(ctx, "/server.ThemeExtension/GetThemes", in, out, opts...) + err := c.cc.Invoke(ctx, ThemeExtension_GetThemes_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -2295,8 +2341,9 @@ func (c *themeExtensionClient) GetThemes(ctx context.Context, in *Empty, opts .. } func (c *themeExtensionClient) GetTheme(ctx context.Context, in *SimpleName, opts ...grpc.CallOption) (*CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(CommonResult) - err := c.cc.Invoke(ctx, "/server.ThemeExtension/GetTheme", in, out, opts...) + err := c.cc.Invoke(ctx, ThemeExtension_GetTheme_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -2304,8 +2351,9 @@ func (c *themeExtensionClient) GetTheme(ctx context.Context, in *SimpleName, opt } func (c *themeExtensionClient) GetBindings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*SimpleList, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(SimpleList) - err := c.cc.Invoke(ctx, "/server.ThemeExtension/GetBindings", in, out, opts...) + err := c.cc.Invoke(ctx, ThemeExtension_GetBindings_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -2313,8 +2361,9 @@ func (c *themeExtensionClient) GetBindings(ctx context.Context, in *Empty, opts } func (c *themeExtensionClient) GetBinding(ctx context.Context, in *SimpleName, opts ...grpc.CallOption) (*CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(CommonResult) - err := c.cc.Invoke(ctx, "/server.ThemeExtension/GetBinding", in, out, opts...) + err := c.cc.Invoke(ctx, ThemeExtension_GetBinding_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -2323,7 +2372,7 @@ func (c *themeExtensionClient) GetBinding(ctx context.Context, in *SimpleName, o // ThemeExtensionServer is the server API for ThemeExtension service. // All implementations must embed UnimplementedThemeExtensionServer -// for forward compatibility +// for forward compatibility. type ThemeExtensionServer interface { GetThemes(context.Context, *Empty) (*SimpleList, error) GetTheme(context.Context, *SimpleName) (*CommonResult, error) @@ -2332,9 +2381,12 @@ type ThemeExtensionServer interface { mustEmbedUnimplementedThemeExtensionServer() } -// UnimplementedThemeExtensionServer must be embedded to have forward compatible implementations. -type UnimplementedThemeExtensionServer struct { -} +// UnimplementedThemeExtensionServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedThemeExtensionServer struct{} func (UnimplementedThemeExtensionServer) GetThemes(context.Context, *Empty) (*SimpleList, error) { return nil, status.Errorf(codes.Unimplemented, "method GetThemes not implemented") @@ -2349,6 +2401,7 @@ func (UnimplementedThemeExtensionServer) GetBinding(context.Context, *SimpleName return nil, status.Errorf(codes.Unimplemented, "method GetBinding not implemented") } func (UnimplementedThemeExtensionServer) mustEmbedUnimplementedThemeExtensionServer() {} +func (UnimplementedThemeExtensionServer) testEmbeddedByValue() {} // UnsafeThemeExtensionServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to ThemeExtensionServer will @@ -2358,6 +2411,13 @@ type UnsafeThemeExtensionServer interface { } func RegisterThemeExtensionServer(s grpc.ServiceRegistrar, srv ThemeExtensionServer) { + // If the following call pancis, it indicates UnimplementedThemeExtensionServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&ThemeExtension_ServiceDesc, srv) } @@ -2371,7 +2431,7 @@ func _ThemeExtension_GetThemes_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.ThemeExtension/GetThemes", + FullMethod: ThemeExtension_GetThemes_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ThemeExtensionServer).GetThemes(ctx, req.(*Empty)) @@ -2389,7 +2449,7 @@ func _ThemeExtension_GetTheme_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.ThemeExtension/GetTheme", + FullMethod: ThemeExtension_GetTheme_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ThemeExtensionServer).GetTheme(ctx, req.(*SimpleName)) @@ -2407,7 +2467,7 @@ func _ThemeExtension_GetBindings_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.ThemeExtension/GetBindings", + FullMethod: ThemeExtension_GetBindings_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ThemeExtensionServer).GetBindings(ctx, req.(*Empty)) @@ -2425,7 +2485,7 @@ func _ThemeExtension_GetBinding_Handler(srv interface{}, ctx context.Context, de } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.ThemeExtension/GetBinding", + FullMethod: ThemeExtension_GetBinding_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ThemeExtensionServer).GetBinding(ctx, req.(*SimpleName)) @@ -2461,13 +2521,19 @@ var ThemeExtension_ServiceDesc = grpc.ServiceDesc{ Metadata: "pkg/server/server.proto", } +const ( + Mock_Reload_FullMethodName = "/server.Mock/Reload" + Mock_GetConfig_FullMethodName = "/server.Mock/GetConfig" + Mock_LogWatch_FullMethodName = "/server.Mock/LogWatch" +) + // MockClient is the client API for Mock service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type MockClient interface { Reload(ctx context.Context, in *MockConfig, opts ...grpc.CallOption) (*Empty, error) GetConfig(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*MockConfig, error) - LogWatch(ctx context.Context, in *Empty, opts ...grpc.CallOption) (Mock_LogWatchClient, error) + LogWatch(ctx context.Context, in *Empty, opts ...grpc.CallOption) (grpc.ServerStreamingClient[CommonResult], error) } type mockClient struct { @@ -2479,8 +2545,9 @@ func NewMockClient(cc grpc.ClientConnInterface) MockClient { } func (c *mockClient) Reload(ctx context.Context, in *MockConfig, opts ...grpc.CallOption) (*Empty, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Empty) - err := c.cc.Invoke(ctx, "/server.Mock/Reload", in, out, opts...) + err := c.cc.Invoke(ctx, Mock_Reload_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -2488,20 +2555,22 @@ func (c *mockClient) Reload(ctx context.Context, in *MockConfig, opts ...grpc.Ca } func (c *mockClient) GetConfig(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*MockConfig, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(MockConfig) - err := c.cc.Invoke(ctx, "/server.Mock/GetConfig", in, out, opts...) + err := c.cc.Invoke(ctx, Mock_GetConfig_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } return out, nil } -func (c *mockClient) LogWatch(ctx context.Context, in *Empty, opts ...grpc.CallOption) (Mock_LogWatchClient, error) { - stream, err := c.cc.NewStream(ctx, &Mock_ServiceDesc.Streams[0], "/server.Mock/LogWatch", opts...) +func (c *mockClient) LogWatch(ctx context.Context, in *Empty, opts ...grpc.CallOption) (grpc.ServerStreamingClient[CommonResult], error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + stream, err := c.cc.NewStream(ctx, &Mock_ServiceDesc.Streams[0], Mock_LogWatch_FullMethodName, cOpts...) if err != nil { return nil, err } - x := &mockLogWatchClient{stream} + x := &grpc.GenericClientStream[Empty, CommonResult]{ClientStream: stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } @@ -2511,36 +2580,25 @@ func (c *mockClient) LogWatch(ctx context.Context, in *Empty, opts ...grpc.CallO return x, nil } -type Mock_LogWatchClient interface { - Recv() (*CommonResult, error) - grpc.ClientStream -} - -type mockLogWatchClient struct { - grpc.ClientStream -} - -func (x *mockLogWatchClient) Recv() (*CommonResult, error) { - m := new(CommonResult) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type Mock_LogWatchClient = grpc.ServerStreamingClient[CommonResult] // MockServer is the server API for Mock service. // All implementations must embed UnimplementedMockServer -// for forward compatibility +// for forward compatibility. type MockServer interface { Reload(context.Context, *MockConfig) (*Empty, error) GetConfig(context.Context, *Empty) (*MockConfig, error) - LogWatch(*Empty, Mock_LogWatchServer) error + LogWatch(*Empty, grpc.ServerStreamingServer[CommonResult]) error mustEmbedUnimplementedMockServer() } -// UnimplementedMockServer must be embedded to have forward compatible implementations. -type UnimplementedMockServer struct { -} +// UnimplementedMockServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedMockServer struct{} func (UnimplementedMockServer) Reload(context.Context, *MockConfig) (*Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method Reload not implemented") @@ -2548,10 +2606,11 @@ func (UnimplementedMockServer) Reload(context.Context, *MockConfig) (*Empty, err func (UnimplementedMockServer) GetConfig(context.Context, *Empty) (*MockConfig, error) { return nil, status.Errorf(codes.Unimplemented, "method GetConfig not implemented") } -func (UnimplementedMockServer) LogWatch(*Empty, Mock_LogWatchServer) error { +func (UnimplementedMockServer) LogWatch(*Empty, grpc.ServerStreamingServer[CommonResult]) error { return status.Errorf(codes.Unimplemented, "method LogWatch not implemented") } func (UnimplementedMockServer) mustEmbedUnimplementedMockServer() {} +func (UnimplementedMockServer) testEmbeddedByValue() {} // UnsafeMockServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to MockServer will @@ -2561,6 +2620,13 @@ type UnsafeMockServer interface { } func RegisterMockServer(s grpc.ServiceRegistrar, srv MockServer) { + // If the following call pancis, it indicates UnimplementedMockServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&Mock_ServiceDesc, srv) } @@ -2574,7 +2640,7 @@ func _Mock_Reload_Handler(srv interface{}, ctx context.Context, dec func(interfa } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Mock/Reload", + FullMethod: Mock_Reload_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(MockServer).Reload(ctx, req.(*MockConfig)) @@ -2592,7 +2658,7 @@ func _Mock_GetConfig_Handler(srv interface{}, ctx context.Context, dec func(inte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.Mock/GetConfig", + FullMethod: Mock_GetConfig_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(MockServer).GetConfig(ctx, req.(*Empty)) @@ -2605,21 +2671,11 @@ func _Mock_LogWatch_Handler(srv interface{}, stream grpc.ServerStream) error { if err := stream.RecvMsg(m); err != nil { return err } - return srv.(MockServer).LogWatch(m, &mockLogWatchServer{stream}) -} - -type Mock_LogWatchServer interface { - Send(*CommonResult) error - grpc.ServerStream -} - -type mockLogWatchServer struct { - grpc.ServerStream + return srv.(MockServer).LogWatch(m, &grpc.GenericServerStream[Empty, CommonResult]{ServerStream: stream}) } -func (x *mockLogWatchServer) Send(m *CommonResult) error { - return x.ServerStream.SendMsg(m) -} +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type Mock_LogWatchServer = grpc.ServerStreamingServer[CommonResult] // Mock_ServiceDesc is the grpc.ServiceDesc for Mock service. // It's only intended for direct use with grpc.RegisterService, @@ -2647,6 +2703,10 @@ var Mock_ServiceDesc = grpc.ServiceDesc{ Metadata: "pkg/server/server.proto", } +const ( + DataServer_Query_FullMethodName = "/server.DataServer/Query" +) + // DataServerClient is the client API for DataServer service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -2663,8 +2723,9 @@ func NewDataServerClient(cc grpc.ClientConnInterface) DataServerClient { } func (c *dataServerClient) Query(ctx context.Context, in *DataQuery, opts ...grpc.CallOption) (*DataQueryResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(DataQueryResult) - err := c.cc.Invoke(ctx, "/server.DataServer/Query", in, out, opts...) + err := c.cc.Invoke(ctx, DataServer_Query_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -2673,20 +2734,24 @@ func (c *dataServerClient) Query(ctx context.Context, in *DataQuery, opts ...grp // DataServerServer is the server API for DataServer service. // All implementations must embed UnimplementedDataServerServer -// for forward compatibility +// for forward compatibility. type DataServerServer interface { Query(context.Context, *DataQuery) (*DataQueryResult, error) mustEmbedUnimplementedDataServerServer() } -// UnimplementedDataServerServer must be embedded to have forward compatible implementations. -type UnimplementedDataServerServer struct { -} +// UnimplementedDataServerServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedDataServerServer struct{} func (UnimplementedDataServerServer) Query(context.Context, *DataQuery) (*DataQueryResult, error) { return nil, status.Errorf(codes.Unimplemented, "method Query not implemented") } func (UnimplementedDataServerServer) mustEmbedUnimplementedDataServerServer() {} +func (UnimplementedDataServerServer) testEmbeddedByValue() {} // UnsafeDataServerServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to DataServerServer will @@ -2696,6 +2761,13 @@ type UnsafeDataServerServer interface { } func RegisterDataServerServer(s grpc.ServiceRegistrar, srv DataServerServer) { + // If the following call pancis, it indicates UnimplementedDataServerServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&DataServer_ServiceDesc, srv) } @@ -2709,7 +2781,7 @@ func _DataServer_Query_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/server.DataServer/Query", + FullMethod: DataServer_Query_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(DataServerServer).Query(ctx, req.(*DataQuery)) @@ -2732,3 +2804,223 @@ var DataServer_ServiceDesc = grpc.ServiceDesc{ Streams: []grpc.StreamDesc{}, Metadata: "pkg/server/server.proto", } + +const ( + AIService_ConvertNLToSQL_FullMethodName = "/server.AIService/ConvertNLToSQL" + AIService_GenerateTestCase_FullMethodName = "/server.AIService/GenerateTestCase" + AIService_OptimizeQuery_FullMethodName = "/server.AIService/OptimizeQuery" + AIService_HealthCheck_FullMethodName = "/server.AIService/HealthCheck" +) + +// AIServiceClient is the client API for AIService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +// +// AI Service for natural language processing +type AIServiceClient interface { + ConvertNLToSQL(ctx context.Context, in *AIRequest, opts ...grpc.CallOption) (*AIResponse, error) + GenerateTestCase(ctx context.Context, in *AIRequest, opts ...grpc.CallOption) (*AIResponse, error) + OptimizeQuery(ctx context.Context, in *AIRequest, opts ...grpc.CallOption) (*AIResponse, error) + HealthCheck(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*AIHealthResponse, error) +} + +type aIServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewAIServiceClient(cc grpc.ClientConnInterface) AIServiceClient { + return &aIServiceClient{cc} +} + +func (c *aIServiceClient) ConvertNLToSQL(ctx context.Context, in *AIRequest, opts ...grpc.CallOption) (*AIResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(AIResponse) + err := c.cc.Invoke(ctx, AIService_ConvertNLToSQL_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aIServiceClient) GenerateTestCase(ctx context.Context, in *AIRequest, opts ...grpc.CallOption) (*AIResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(AIResponse) + err := c.cc.Invoke(ctx, AIService_GenerateTestCase_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aIServiceClient) OptimizeQuery(ctx context.Context, in *AIRequest, opts ...grpc.CallOption) (*AIResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(AIResponse) + err := c.cc.Invoke(ctx, AIService_OptimizeQuery_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aIServiceClient) HealthCheck(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*AIHealthResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(AIHealthResponse) + err := c.cc.Invoke(ctx, AIService_HealthCheck_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AIServiceServer is the server API for AIService service. +// All implementations must embed UnimplementedAIServiceServer +// for forward compatibility. +// +// AI Service for natural language processing +type AIServiceServer interface { + ConvertNLToSQL(context.Context, *AIRequest) (*AIResponse, error) + GenerateTestCase(context.Context, *AIRequest) (*AIResponse, error) + OptimizeQuery(context.Context, *AIRequest) (*AIResponse, error) + HealthCheck(context.Context, *Empty) (*AIHealthResponse, error) + mustEmbedUnimplementedAIServiceServer() +} + +// UnimplementedAIServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedAIServiceServer struct{} + +func (UnimplementedAIServiceServer) ConvertNLToSQL(context.Context, *AIRequest) (*AIResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ConvertNLToSQL not implemented") +} +func (UnimplementedAIServiceServer) GenerateTestCase(context.Context, *AIRequest) (*AIResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GenerateTestCase not implemented") +} +func (UnimplementedAIServiceServer) OptimizeQuery(context.Context, *AIRequest) (*AIResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method OptimizeQuery not implemented") +} +func (UnimplementedAIServiceServer) HealthCheck(context.Context, *Empty) (*AIHealthResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method HealthCheck not implemented") +} +func (UnimplementedAIServiceServer) mustEmbedUnimplementedAIServiceServer() {} +func (UnimplementedAIServiceServer) testEmbeddedByValue() {} + +// UnsafeAIServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to AIServiceServer will +// result in compilation errors. +type UnsafeAIServiceServer interface { + mustEmbedUnimplementedAIServiceServer() +} + +func RegisterAIServiceServer(s grpc.ServiceRegistrar, srv AIServiceServer) { + // If the following call pancis, it indicates UnimplementedAIServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&AIService_ServiceDesc, srv) +} + +func _AIService_ConvertNLToSQL_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AIRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AIServiceServer).ConvertNLToSQL(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AIService_ConvertNLToSQL_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AIServiceServer).ConvertNLToSQL(ctx, req.(*AIRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AIService_GenerateTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AIRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AIServiceServer).GenerateTestCase(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AIService_GenerateTestCase_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AIServiceServer).GenerateTestCase(ctx, req.(*AIRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AIService_OptimizeQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AIRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AIServiceServer).OptimizeQuery(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AIService_OptimizeQuery_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AIServiceServer).OptimizeQuery(ctx, req.(*AIRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AIService_HealthCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AIServiceServer).HealthCheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AIService_HealthCheck_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AIServiceServer).HealthCheck(ctx, req.(*Empty)) + } + return interceptor(ctx, in, info, handler) +} + +// AIService_ServiceDesc is the grpc.ServiceDesc for AIService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var AIService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "server.AIService", + HandlerType: (*AIServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ConvertNLToSQL", + Handler: _AIService_ConvertNLToSQL_Handler, + }, + { + MethodName: "GenerateTestCase", + Handler: _AIService_GenerateTestCase_Handler, + }, + { + MethodName: "OptimizeQuery", + Handler: _AIService_OptimizeQuery_Handler, + }, + { + MethodName: "HealthCheck", + Handler: _AIService_HealthCheck_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "pkg/server/server.proto", +} diff --git a/pkg/testing/remote/loader.pb.go b/pkg/testing/remote/loader.pb.go index f00a2025..595b94bd 100644 --- a/pkg/testing/remote/loader.pb.go +++ b/pkg/testing/remote/loader.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v4.22.2 +// protoc-gen-go v1.36.8 +// protoc v5.29.3 // source: pkg/testing/remote/loader.proto package remote @@ -12,6 +12,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -22,20 +23,17 @@ const ( ) type TestSuites struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []*TestSuite `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Data []*TestSuite `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *TestSuites) Reset() { *x = TestSuites{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_testing_remote_loader_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_testing_remote_loader_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TestSuites) String() string { @@ -46,7 +44,7 @@ func (*TestSuites) ProtoMessage() {} func (x *TestSuites) ProtoReflect() protoreflect.Message { mi := &file_pkg_testing_remote_loader_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -69,25 +67,22 @@ func (x *TestSuites) GetData() []*TestSuite { } type TestSuite struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Api string `protobuf:"bytes,2,opt,name=api,proto3" json:"api,omitempty"` + Param []*server.Pair `protobuf:"bytes,3,rep,name=param,proto3" json:"param,omitempty"` + Spec *server.APISpec `protobuf:"bytes,4,opt,name=spec,proto3" json:"spec,omitempty"` + Items []*server.TestCase `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` + Full bool `protobuf:"varint,6,opt,name=full,proto3" json:"full,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Api string `protobuf:"bytes,2,opt,name=api,proto3" json:"api,omitempty"` - Param []*server.Pair `protobuf:"bytes,3,rep,name=param,proto3" json:"param,omitempty"` - Spec *server.APISpec `protobuf:"bytes,4,opt,name=spec,proto3" json:"spec,omitempty"` - Items []*server.TestCase `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` - Full bool `protobuf:"varint,6,opt,name=full,proto3" json:"full,omitempty"` + sizeCache protoimpl.SizeCache } func (x *TestSuite) Reset() { *x = TestSuite{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_testing_remote_loader_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_testing_remote_loader_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TestSuite) String() string { @@ -98,7 +93,7 @@ func (*TestSuite) ProtoMessage() {} func (x *TestSuite) ProtoReflect() protoreflect.Message { mi := &file_pkg_testing_remote_loader_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -156,20 +151,17 @@ func (x *TestSuite) GetFull() bool { } type HistoryTestSuites struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []*HistoryTestSuite `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Data []*HistoryTestSuite `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HistoryTestSuites) Reset() { *x = HistoryTestSuites{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_testing_remote_loader_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_testing_remote_loader_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HistoryTestSuites) String() string { @@ -180,7 +172,7 @@ func (*HistoryTestSuites) ProtoMessage() {} func (x *HistoryTestSuites) ProtoReflect() protoreflect.Message { mi := &file_pkg_testing_remote_loader_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -203,21 +195,18 @@ func (x *HistoryTestSuites) GetData() []*HistoryTestSuite { } type HistoryTestSuite struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` HistorySuiteName string `protobuf:"bytes,1,opt,name=historySuiteName,proto3" json:"historySuiteName,omitempty"` Items []*server.HistoryTestCase `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *HistoryTestSuite) Reset() { *x = HistoryTestSuite{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_testing_remote_loader_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_testing_remote_loader_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HistoryTestSuite) String() string { @@ -228,7 +217,7 @@ func (*HistoryTestSuite) ProtoMessage() {} func (x *HistoryTestSuite) ProtoReflect() protoreflect.Message { mi := &file_pkg_testing_remote_loader_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -258,20 +247,17 @@ func (x *HistoryTestSuite) GetItems() []*server.HistoryTestCase { } type Configs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []*Config `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Data []*Config `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Configs) Reset() { *x = Configs{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_testing_remote_loader_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_testing_remote_loader_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Configs) String() string { @@ -282,7 +268,7 @@ func (*Configs) ProtoMessage() {} func (x *Configs) ProtoReflect() protoreflect.Message { mi := &file_pkg_testing_remote_loader_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -305,22 +291,19 @@ func (x *Configs) GetData() []*Config { } type Config struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Config) Reset() { *x = Config{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_testing_remote_loader_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_testing_remote_loader_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Config) String() string { @@ -331,7 +314,7 @@ func (*Config) ProtoMessage() {} func (x *Config) ProtoReflect() protoreflect.Message { mi := &file_pkg_testing_remote_loader_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -369,217 +352,93 @@ func (x *Config) GetDescription() string { var File_pkg_testing_remote_loader_proto protoreflect.FileDescriptor -var file_pkg_testing_remote_loader_proto_rawDesc = []byte{ - 0x0a, 0x1f, 0x70, 0x6b, 0x67, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x2f, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x1a, 0x17, 0x70, 0x6b, 0x67, 0x2f, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x33, 0x0a, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, - 0x12, 0x25, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, - 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb6, 0x01, 0x0a, 0x09, 0x54, 0x65, 0x73, 0x74, - 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x22, 0x0a, 0x05, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x12, - 0x23, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x41, 0x50, 0x49, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, - 0x73, 0x70, 0x65, 0x63, 0x12, 0x26, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, - 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x66, 0x75, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x75, 0x6c, 0x6c, - 0x22, 0x41, 0x0a, 0x11, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x53, - 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x6d, 0x0a, 0x10, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, - 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x22, 0x2d, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x22, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0x54, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0xbc, 0x0e, 0x0a, 0x06, 0x4c, 0x6f, 0x61, 0x64, - 0x65, 0x72, 0x12, 0x34, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, - 0x69, 0x74, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, - 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x0d, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, - 0x36, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, - 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, - 0x74, 0x65, 0x1a, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, - 0x53, 0x75, 0x69, 0x74, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x11, 0x2e, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, - 0x22, 0x00, 0x12, 0x35, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, - 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, - 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0f, 0x52, 0x65, 0x6e, - 0x61, 0x6d, 0x65, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x44, - 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x37, - 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x12, - 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, - 0x74, 0x65, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, - 0x43, 0x61, 0x73, 0x65, 0x73, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x0b, - 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x10, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x10, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x36, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, - 0x61, 0x73, 0x65, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, - 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, - 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x0e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x10, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x0d, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x41, - 0x0a, 0x0e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, - 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, - 0x73, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, - 0x00, 0x12, 0x42, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, - 0x74, 0x65, 0x73, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, - 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x19, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, - 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x1c, 0x47, 0x65, - 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, - 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, - 0x61, 0x73, 0x65, 0x1a, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, - 0x12, 0x48, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, - 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, - 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x15, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, - 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x0d, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x44, 0x0a, - 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, - 0x73, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, - 0x73, 0x65, 0x41, 0x6c, 0x6c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x10, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x18, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, - 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0a, 0x47, 0x65, - 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x06, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x32, - 0x0a, 0x05, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, - 0x22, 0x00, 0x12, 0x35, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x11, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x17, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x30, 0x0a, 0x09, 0x47, 0x65, 0x74, - 0x54, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, - 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x08, 0x47, - 0x65, 0x74, 0x54, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x42, 0x69, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, - 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, - 0x00, 0x12, 0x2d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6e, 0x75, 0x73, 0x12, 0x0d, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x10, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, - 0x12, 0x39, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x50, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x4a, 0x53, 0x12, - 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0c, 0x47, - 0x65, 0x74, 0x50, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x43, 0x53, 0x53, 0x12, 0x12, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, - 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x61, - 0x67, 0x65, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x12, 0x12, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x14, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x32, 0x96, 0x02, 0x0a, 0x0d, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x73, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, - 0x36, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, - 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, - 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x32, - 0x9e, 0x02, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0x2e, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, - 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, - 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, - 0x00, 0x12, 0x31, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x1a, 0x0e, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x2e, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x14, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, - 0x6d, 0x70, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, - 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, - 0x69, 0x6e, 0x75, 0x78, 0x73, 0x75, 0x72, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x74, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_pkg_testing_remote_loader_proto_rawDesc = "" + + "\n" + + "\x1fpkg/testing/remote/loader.proto\x12\x06remote\x1a\x17pkg/server/server.proto\"3\n" + + "\n" + + "TestSuites\x12%\n" + + "\x04data\x18\x01 \x03(\v2\x11.remote.TestSuiteR\x04data\"\xb6\x01\n" + + "\tTestSuite\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n" + + "\x03api\x18\x02 \x01(\tR\x03api\x12\"\n" + + "\x05param\x18\x03 \x03(\v2\f.server.PairR\x05param\x12#\n" + + "\x04spec\x18\x04 \x01(\v2\x0f.server.APISpecR\x04spec\x12&\n" + + "\x05items\x18\x05 \x03(\v2\x10.server.TestCaseR\x05items\x12\x12\n" + + "\x04full\x18\x06 \x01(\bR\x04full\"A\n" + + "\x11HistoryTestSuites\x12,\n" + + "\x04data\x18\x01 \x03(\v2\x18.remote.HistoryTestSuiteR\x04data\"m\n" + + "\x10HistoryTestSuite\x12*\n" + + "\x10historySuiteName\x18\x01 \x01(\tR\x10historySuiteName\x12-\n" + + "\x05items\x18\x02 \x03(\v2\x17.server.HistoryTestCaseR\x05items\"-\n" + + "\aConfigs\x12\"\n" + + "\x04data\x18\x01 \x03(\v2\x0e.remote.ConfigR\x04data\"T\n" + + "\x06Config\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value\x12 \n" + + "\vdescription\x18\x03 \x01(\tR\vdescription2\xbc\x0e\n" + + "\x06Loader\x124\n" + + "\rListTestSuite\x12\r.server.Empty\x1a\x12.remote.TestSuites\"\x00\x125\n" + + "\x0fCreateTestSuite\x12\x11.remote.TestSuite\x1a\r.server.Empty\"\x00\x126\n" + + "\fGetTestSuite\x12\x11.remote.TestSuite\x1a\x11.remote.TestSuite\"\x00\x129\n" + + "\x0fUpdateTestSuite\x12\x11.remote.TestSuite\x1a\x11.remote.TestSuite\"\x00\x125\n" + + "\x0fDeleteTestSuite\x12\x11.remote.TestSuite\x1a\r.server.Empty\"\x00\x12C\n" + + "\x0fRenameTestSuite\x12\x1a.server.TestSuiteDuplicate\x1a\x12.server.HelloReply\"\x00\x127\n" + + "\rListTestCases\x12\x11.remote.TestSuite\x1a\x11.server.TestCases\"\x00\x123\n" + + "\x0eCreateTestCase\x12\x10.server.TestCase\x1a\r.server.Empty\"\x00\x123\n" + + "\vGetTestCase\x12\x10.server.TestCase\x1a\x10.server.TestCase\"\x00\x126\n" + + "\x0eUpdateTestCase\x12\x10.server.TestCase\x1a\x10.server.TestCase\"\x00\x123\n" + + "\x0eDeleteTestCase\x12\x10.server.TestCase\x1a\r.server.Empty\"\x00\x12A\n" + + "\x0eRenameTestCase\x12\x19.server.TestCaseDuplicate\x1a\x12.server.HelloReply\"\x00\x12B\n" + + "\x14ListHistoryTestSuite\x12\r.server.Empty\x1a\x19.remote.HistoryTestSuites\"\x00\x12C\n" + + "\x15CreateTestCaseHistory\x12\x19.server.HistoryTestResult\x1a\r.server.Empty\"\x00\x12T\n" + + "\x1cGetHistoryTestCaseWithResult\x12\x17.server.HistoryTestCase\x1a\x19.server.HistoryTestResult\"\x00\x12H\n" + + "\x12GetHistoryTestCase\x12\x17.server.HistoryTestCase\x1a\x17.server.HistoryTestCase\"\x00\x12A\n" + + "\x15DeleteHistoryTestCase\x12\x17.server.HistoryTestCase\x1a\r.server.Empty\"\x00\x12D\n" + + "\x18DeleteAllHistoryTestCase\x12\x17.server.HistoryTestCase\x1a\r.server.Empty\"\x00\x12E\n" + + "\x15GetTestCaseAllHistory\x12\x10.server.TestCase\x1a\x18.server.HistoryTestCases\"\x00\x12.\n" + + "\n" + + "GetVersion\x12\r.server.Empty\x1a\x0f.server.Version\"\x00\x122\n" + + "\x06Verify\x12\r.server.Empty\x1a\x17.server.ExtensionStatus\"\x00\x122\n" + + "\x05PProf\x12\x14.server.PProfRequest\x1a\x11.server.PProfData\"\x00\x125\n" + + "\x05Query\x12\x11.server.DataQuery\x1a\x17.server.DataQueryResult\"\x00\x120\n" + + "\tGetThemes\x12\r.server.Empty\x1a\x12.server.SimpleList\"\x00\x126\n" + + "\bGetTheme\x12\x12.server.SimpleName\x1a\x14.server.CommonResult\"\x00\x122\n" + + "\vGetBindings\x12\r.server.Empty\x1a\x12.server.SimpleList\"\x00\x128\n" + + "\n" + + "GetBinding\x12\x12.server.SimpleName\x1a\x14.server.CommonResult\"\x00\x12-\n" + + "\bGetMenus\x12\r.server.Empty\x1a\x10.server.MenuList\"\x00\x129\n" + + "\vGetPageOfJS\x12\x12.server.SimpleName\x1a\x14.server.CommonResult\"\x00\x12:\n" + + "\fGetPageOfCSS\x12\x12.server.SimpleName\x1a\x14.server.CommonResult\"\x00\x12=\n" + + "\x0fGetPageOfStatic\x12\x12.server.SimpleName\x1a\x14.server.CommonResult\"\x002\x96\x02\n" + + "\rSecretService\x12-\n" + + "\tGetSecret\x12\x0e.server.Secret\x1a\x0e.server.Secret\"\x00\x12.\n" + + "\n" + + "GetSecrets\x12\r.server.Empty\x1a\x0f.server.Secrets\"\x00\x126\n" + + "\fCreateSecret\x12\x0e.server.Secret\x1a\x14.server.CommonResult\"\x00\x126\n" + + "\fDeleteSecret\x12\x0e.server.Secret\x1a\x14.server.CommonResult\"\x00\x126\n" + + "\fUpdateSecret\x12\x0e.server.Secret\x1a\x14.server.CommonResult\"\x002\x9e\x02\n" + + "\rConfigService\x12.\n" + + "\n" + + "GetConfigs\x12\r.server.Empty\x1a\x0f.remote.Configs\"\x00\x121\n" + + "\tGetConfig\x12\x12.server.SimpleName\x1a\x0e.remote.Config\"\x00\x126\n" + + "\fCreateConfig\x12\x0e.remote.Config\x1a\x14.server.CommonResult\"\x00\x126\n" + + "\fUpdateConfig\x12\x0e.remote.Config\x1a\x14.server.CommonResult\"\x00\x12:\n" + + "\fDeleteConfig\x12\x12.server.SimpleName\x1a\x14.server.CommonResult\"\x00B6Z4github.com/linuxsuren/api-testing/pkg/testing/remoteb\x06proto3" var ( file_pkg_testing_remote_loader_proto_rawDescOnce sync.Once - file_pkg_testing_remote_loader_proto_rawDescData = file_pkg_testing_remote_loader_proto_rawDesc + file_pkg_testing_remote_loader_proto_rawDescData []byte ) func file_pkg_testing_remote_loader_proto_rawDescGZIP() []byte { file_pkg_testing_remote_loader_proto_rawDescOnce.Do(func() { - file_pkg_testing_remote_loader_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_testing_remote_loader_proto_rawDescData) + file_pkg_testing_remote_loader_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_pkg_testing_remote_loader_proto_rawDesc), len(file_pkg_testing_remote_loader_proto_rawDesc))) }) return file_pkg_testing_remote_loader_proto_rawDescData } var file_pkg_testing_remote_loader_proto_msgTypes = make([]protoimpl.MessageInfo, 6) -var file_pkg_testing_remote_loader_proto_goTypes = []interface{}{ +var file_pkg_testing_remote_loader_proto_goTypes = []any{ (*TestSuites)(nil), // 0: remote.TestSuites (*TestSuite)(nil), // 1: remote.TestSuite (*HistoryTestSuites)(nil), // 2: remote.HistoryTestSuites @@ -712,85 +571,11 @@ func file_pkg_testing_remote_loader_proto_init() { if File_pkg_testing_remote_loader_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_pkg_testing_remote_loader_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TestSuites); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_testing_remote_loader_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TestSuite); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_testing_remote_loader_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HistoryTestSuites); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_testing_remote_loader_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HistoryTestSuite); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_testing_remote_loader_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Configs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_testing_remote_loader_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Config); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_pkg_testing_remote_loader_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_pkg_testing_remote_loader_proto_rawDesc), len(file_pkg_testing_remote_loader_proto_rawDesc)), NumEnums: 0, NumMessages: 6, NumExtensions: 0, @@ -801,7 +586,6 @@ func file_pkg_testing_remote_loader_proto_init() { MessageInfos: file_pkg_testing_remote_loader_proto_msgTypes, }.Build() File_pkg_testing_remote_loader_proto = out.File - file_pkg_testing_remote_loader_proto_rawDesc = nil file_pkg_testing_remote_loader_proto_goTypes = nil file_pkg_testing_remote_loader_proto_depIdxs = nil } diff --git a/pkg/testing/remote/loader_grpc.pb.go b/pkg/testing/remote/loader_grpc.pb.go index 2c97d019..6c913423 100644 --- a/pkg/testing/remote/loader_grpc.pb.go +++ b/pkg/testing/remote/loader_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v4.22.2 +// - protoc-gen-go-grpc v1.5.1 +// - protoc v5.29.3 // source: pkg/testing/remote/loader.proto package remote @@ -16,8 +16,42 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + Loader_ListTestSuite_FullMethodName = "/remote.Loader/ListTestSuite" + Loader_CreateTestSuite_FullMethodName = "/remote.Loader/CreateTestSuite" + Loader_GetTestSuite_FullMethodName = "/remote.Loader/GetTestSuite" + Loader_UpdateTestSuite_FullMethodName = "/remote.Loader/UpdateTestSuite" + Loader_DeleteTestSuite_FullMethodName = "/remote.Loader/DeleteTestSuite" + Loader_RenameTestSuite_FullMethodName = "/remote.Loader/RenameTestSuite" + Loader_ListTestCases_FullMethodName = "/remote.Loader/ListTestCases" + Loader_CreateTestCase_FullMethodName = "/remote.Loader/CreateTestCase" + Loader_GetTestCase_FullMethodName = "/remote.Loader/GetTestCase" + Loader_UpdateTestCase_FullMethodName = "/remote.Loader/UpdateTestCase" + Loader_DeleteTestCase_FullMethodName = "/remote.Loader/DeleteTestCase" + Loader_RenameTestCase_FullMethodName = "/remote.Loader/RenameTestCase" + Loader_ListHistoryTestSuite_FullMethodName = "/remote.Loader/ListHistoryTestSuite" + Loader_CreateTestCaseHistory_FullMethodName = "/remote.Loader/CreateTestCaseHistory" + Loader_GetHistoryTestCaseWithResult_FullMethodName = "/remote.Loader/GetHistoryTestCaseWithResult" + Loader_GetHistoryTestCase_FullMethodName = "/remote.Loader/GetHistoryTestCase" + Loader_DeleteHistoryTestCase_FullMethodName = "/remote.Loader/DeleteHistoryTestCase" + Loader_DeleteAllHistoryTestCase_FullMethodName = "/remote.Loader/DeleteAllHistoryTestCase" + Loader_GetTestCaseAllHistory_FullMethodName = "/remote.Loader/GetTestCaseAllHistory" + Loader_GetVersion_FullMethodName = "/remote.Loader/GetVersion" + Loader_Verify_FullMethodName = "/remote.Loader/Verify" + Loader_PProf_FullMethodName = "/remote.Loader/PProf" + Loader_Query_FullMethodName = "/remote.Loader/Query" + Loader_GetThemes_FullMethodName = "/remote.Loader/GetThemes" + Loader_GetTheme_FullMethodName = "/remote.Loader/GetTheme" + Loader_GetBindings_FullMethodName = "/remote.Loader/GetBindings" + Loader_GetBinding_FullMethodName = "/remote.Loader/GetBinding" + Loader_GetMenus_FullMethodName = "/remote.Loader/GetMenus" + Loader_GetPageOfJS_FullMethodName = "/remote.Loader/GetPageOfJS" + Loader_GetPageOfCSS_FullMethodName = "/remote.Loader/GetPageOfCSS" + Loader_GetPageOfStatic_FullMethodName = "/remote.Loader/GetPageOfStatic" +) // LoaderClient is the client API for Loader service. // @@ -65,8 +99,9 @@ func NewLoaderClient(cc grpc.ClientConnInterface) LoaderClient { } func (c *loaderClient) ListTestSuite(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*TestSuites, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(TestSuites) - err := c.cc.Invoke(ctx, "/remote.Loader/ListTestSuite", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_ListTestSuite_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -74,8 +109,9 @@ func (c *loaderClient) ListTestSuite(ctx context.Context, in *server.Empty, opts } func (c *loaderClient) CreateTestSuite(ctx context.Context, in *TestSuite, opts ...grpc.CallOption) (*server.Empty, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.Empty) - err := c.cc.Invoke(ctx, "/remote.Loader/CreateTestSuite", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_CreateTestSuite_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -83,8 +119,9 @@ func (c *loaderClient) CreateTestSuite(ctx context.Context, in *TestSuite, opts } func (c *loaderClient) GetTestSuite(ctx context.Context, in *TestSuite, opts ...grpc.CallOption) (*TestSuite, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(TestSuite) - err := c.cc.Invoke(ctx, "/remote.Loader/GetTestSuite", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_GetTestSuite_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -92,8 +129,9 @@ func (c *loaderClient) GetTestSuite(ctx context.Context, in *TestSuite, opts ... } func (c *loaderClient) UpdateTestSuite(ctx context.Context, in *TestSuite, opts ...grpc.CallOption) (*TestSuite, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(TestSuite) - err := c.cc.Invoke(ctx, "/remote.Loader/UpdateTestSuite", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_UpdateTestSuite_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -101,8 +139,9 @@ func (c *loaderClient) UpdateTestSuite(ctx context.Context, in *TestSuite, opts } func (c *loaderClient) DeleteTestSuite(ctx context.Context, in *TestSuite, opts ...grpc.CallOption) (*server.Empty, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.Empty) - err := c.cc.Invoke(ctx, "/remote.Loader/DeleteTestSuite", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_DeleteTestSuite_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -110,8 +149,9 @@ func (c *loaderClient) DeleteTestSuite(ctx context.Context, in *TestSuite, opts } func (c *loaderClient) RenameTestSuite(ctx context.Context, in *server.TestSuiteDuplicate, opts ...grpc.CallOption) (*server.HelloReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.HelloReply) - err := c.cc.Invoke(ctx, "/remote.Loader/RenameTestSuite", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_RenameTestSuite_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -119,8 +159,9 @@ func (c *loaderClient) RenameTestSuite(ctx context.Context, in *server.TestSuite } func (c *loaderClient) ListTestCases(ctx context.Context, in *TestSuite, opts ...grpc.CallOption) (*server.TestCases, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.TestCases) - err := c.cc.Invoke(ctx, "/remote.Loader/ListTestCases", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_ListTestCases_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -128,8 +169,9 @@ func (c *loaderClient) ListTestCases(ctx context.Context, in *TestSuite, opts .. } func (c *loaderClient) CreateTestCase(ctx context.Context, in *server.TestCase, opts ...grpc.CallOption) (*server.Empty, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.Empty) - err := c.cc.Invoke(ctx, "/remote.Loader/CreateTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_CreateTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -137,8 +179,9 @@ func (c *loaderClient) CreateTestCase(ctx context.Context, in *server.TestCase, } func (c *loaderClient) GetTestCase(ctx context.Context, in *server.TestCase, opts ...grpc.CallOption) (*server.TestCase, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.TestCase) - err := c.cc.Invoke(ctx, "/remote.Loader/GetTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_GetTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -146,8 +189,9 @@ func (c *loaderClient) GetTestCase(ctx context.Context, in *server.TestCase, opt } func (c *loaderClient) UpdateTestCase(ctx context.Context, in *server.TestCase, opts ...grpc.CallOption) (*server.TestCase, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.TestCase) - err := c.cc.Invoke(ctx, "/remote.Loader/UpdateTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_UpdateTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -155,8 +199,9 @@ func (c *loaderClient) UpdateTestCase(ctx context.Context, in *server.TestCase, } func (c *loaderClient) DeleteTestCase(ctx context.Context, in *server.TestCase, opts ...grpc.CallOption) (*server.Empty, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.Empty) - err := c.cc.Invoke(ctx, "/remote.Loader/DeleteTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_DeleteTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -164,8 +209,9 @@ func (c *loaderClient) DeleteTestCase(ctx context.Context, in *server.TestCase, } func (c *loaderClient) RenameTestCase(ctx context.Context, in *server.TestCaseDuplicate, opts ...grpc.CallOption) (*server.HelloReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.HelloReply) - err := c.cc.Invoke(ctx, "/remote.Loader/RenameTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_RenameTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -173,8 +219,9 @@ func (c *loaderClient) RenameTestCase(ctx context.Context, in *server.TestCaseDu } func (c *loaderClient) ListHistoryTestSuite(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*HistoryTestSuites, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HistoryTestSuites) - err := c.cc.Invoke(ctx, "/remote.Loader/ListHistoryTestSuite", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_ListHistoryTestSuite_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -182,8 +229,9 @@ func (c *loaderClient) ListHistoryTestSuite(ctx context.Context, in *server.Empt } func (c *loaderClient) CreateTestCaseHistory(ctx context.Context, in *server.HistoryTestResult, opts ...grpc.CallOption) (*server.Empty, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.Empty) - err := c.cc.Invoke(ctx, "/remote.Loader/CreateTestCaseHistory", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_CreateTestCaseHistory_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -191,8 +239,9 @@ func (c *loaderClient) CreateTestCaseHistory(ctx context.Context, in *server.His } func (c *loaderClient) GetHistoryTestCaseWithResult(ctx context.Context, in *server.HistoryTestCase, opts ...grpc.CallOption) (*server.HistoryTestResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.HistoryTestResult) - err := c.cc.Invoke(ctx, "/remote.Loader/GetHistoryTestCaseWithResult", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_GetHistoryTestCaseWithResult_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -200,8 +249,9 @@ func (c *loaderClient) GetHistoryTestCaseWithResult(ctx context.Context, in *ser } func (c *loaderClient) GetHistoryTestCase(ctx context.Context, in *server.HistoryTestCase, opts ...grpc.CallOption) (*server.HistoryTestCase, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.HistoryTestCase) - err := c.cc.Invoke(ctx, "/remote.Loader/GetHistoryTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_GetHistoryTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -209,8 +259,9 @@ func (c *loaderClient) GetHistoryTestCase(ctx context.Context, in *server.Histor } func (c *loaderClient) DeleteHistoryTestCase(ctx context.Context, in *server.HistoryTestCase, opts ...grpc.CallOption) (*server.Empty, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.Empty) - err := c.cc.Invoke(ctx, "/remote.Loader/DeleteHistoryTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_DeleteHistoryTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -218,8 +269,9 @@ func (c *loaderClient) DeleteHistoryTestCase(ctx context.Context, in *server.His } func (c *loaderClient) DeleteAllHistoryTestCase(ctx context.Context, in *server.HistoryTestCase, opts ...grpc.CallOption) (*server.Empty, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.Empty) - err := c.cc.Invoke(ctx, "/remote.Loader/DeleteAllHistoryTestCase", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_DeleteAllHistoryTestCase_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -227,8 +279,9 @@ func (c *loaderClient) DeleteAllHistoryTestCase(ctx context.Context, in *server. } func (c *loaderClient) GetTestCaseAllHistory(ctx context.Context, in *server.TestCase, opts ...grpc.CallOption) (*server.HistoryTestCases, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.HistoryTestCases) - err := c.cc.Invoke(ctx, "/remote.Loader/GetTestCaseAllHistory", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_GetTestCaseAllHistory_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -236,8 +289,9 @@ func (c *loaderClient) GetTestCaseAllHistory(ctx context.Context, in *server.Tes } func (c *loaderClient) GetVersion(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*server.Version, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.Version) - err := c.cc.Invoke(ctx, "/remote.Loader/GetVersion", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_GetVersion_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -245,8 +299,9 @@ func (c *loaderClient) GetVersion(ctx context.Context, in *server.Empty, opts .. } func (c *loaderClient) Verify(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*server.ExtensionStatus, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.ExtensionStatus) - err := c.cc.Invoke(ctx, "/remote.Loader/Verify", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_Verify_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -254,8 +309,9 @@ func (c *loaderClient) Verify(ctx context.Context, in *server.Empty, opts ...grp } func (c *loaderClient) PProf(ctx context.Context, in *server.PProfRequest, opts ...grpc.CallOption) (*server.PProfData, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.PProfData) - err := c.cc.Invoke(ctx, "/remote.Loader/PProf", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_PProf_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -263,8 +319,9 @@ func (c *loaderClient) PProf(ctx context.Context, in *server.PProfRequest, opts } func (c *loaderClient) Query(ctx context.Context, in *server.DataQuery, opts ...grpc.CallOption) (*server.DataQueryResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.DataQueryResult) - err := c.cc.Invoke(ctx, "/remote.Loader/Query", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_Query_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -272,8 +329,9 @@ func (c *loaderClient) Query(ctx context.Context, in *server.DataQuery, opts ... } func (c *loaderClient) GetThemes(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*server.SimpleList, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.SimpleList) - err := c.cc.Invoke(ctx, "/remote.Loader/GetThemes", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_GetThemes_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -281,8 +339,9 @@ func (c *loaderClient) GetThemes(ctx context.Context, in *server.Empty, opts ... } func (c *loaderClient) GetTheme(ctx context.Context, in *server.SimpleName, opts ...grpc.CallOption) (*server.CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.CommonResult) - err := c.cc.Invoke(ctx, "/remote.Loader/GetTheme", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_GetTheme_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -290,8 +349,9 @@ func (c *loaderClient) GetTheme(ctx context.Context, in *server.SimpleName, opts } func (c *loaderClient) GetBindings(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*server.SimpleList, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.SimpleList) - err := c.cc.Invoke(ctx, "/remote.Loader/GetBindings", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_GetBindings_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -299,8 +359,9 @@ func (c *loaderClient) GetBindings(ctx context.Context, in *server.Empty, opts . } func (c *loaderClient) GetBinding(ctx context.Context, in *server.SimpleName, opts ...grpc.CallOption) (*server.CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.CommonResult) - err := c.cc.Invoke(ctx, "/remote.Loader/GetBinding", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_GetBinding_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -308,8 +369,9 @@ func (c *loaderClient) GetBinding(ctx context.Context, in *server.SimpleName, op } func (c *loaderClient) GetMenus(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*server.MenuList, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.MenuList) - err := c.cc.Invoke(ctx, "/remote.Loader/GetMenus", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_GetMenus_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -317,8 +379,9 @@ func (c *loaderClient) GetMenus(ctx context.Context, in *server.Empty, opts ...g } func (c *loaderClient) GetPageOfJS(ctx context.Context, in *server.SimpleName, opts ...grpc.CallOption) (*server.CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.CommonResult) - err := c.cc.Invoke(ctx, "/remote.Loader/GetPageOfJS", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_GetPageOfJS_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -326,8 +389,9 @@ func (c *loaderClient) GetPageOfJS(ctx context.Context, in *server.SimpleName, o } func (c *loaderClient) GetPageOfCSS(ctx context.Context, in *server.SimpleName, opts ...grpc.CallOption) (*server.CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.CommonResult) - err := c.cc.Invoke(ctx, "/remote.Loader/GetPageOfCSS", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_GetPageOfCSS_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -335,8 +399,9 @@ func (c *loaderClient) GetPageOfCSS(ctx context.Context, in *server.SimpleName, } func (c *loaderClient) GetPageOfStatic(ctx context.Context, in *server.SimpleName, opts ...grpc.CallOption) (*server.CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.CommonResult) - err := c.cc.Invoke(ctx, "/remote.Loader/GetPageOfStatic", in, out, opts...) + err := c.cc.Invoke(ctx, Loader_GetPageOfStatic_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -345,7 +410,7 @@ func (c *loaderClient) GetPageOfStatic(ctx context.Context, in *server.SimpleNam // LoaderServer is the server API for Loader service. // All implementations must embed UnimplementedLoaderServer -// for forward compatibility +// for forward compatibility. type LoaderServer interface { ListTestSuite(context.Context, *server.Empty) (*TestSuites, error) CreateTestSuite(context.Context, *TestSuite) (*server.Empty, error) @@ -381,9 +446,12 @@ type LoaderServer interface { mustEmbedUnimplementedLoaderServer() } -// UnimplementedLoaderServer must be embedded to have forward compatible implementations. -type UnimplementedLoaderServer struct { -} +// UnimplementedLoaderServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedLoaderServer struct{} func (UnimplementedLoaderServer) ListTestSuite(context.Context, *server.Empty) (*TestSuites, error) { return nil, status.Errorf(codes.Unimplemented, "method ListTestSuite not implemented") @@ -479,6 +547,7 @@ func (UnimplementedLoaderServer) GetPageOfStatic(context.Context, *server.Simple return nil, status.Errorf(codes.Unimplemented, "method GetPageOfStatic not implemented") } func (UnimplementedLoaderServer) mustEmbedUnimplementedLoaderServer() {} +func (UnimplementedLoaderServer) testEmbeddedByValue() {} // UnsafeLoaderServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to LoaderServer will @@ -488,6 +557,13 @@ type UnsafeLoaderServer interface { } func RegisterLoaderServer(s grpc.ServiceRegistrar, srv LoaderServer) { + // If the following call pancis, it indicates UnimplementedLoaderServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&Loader_ServiceDesc, srv) } @@ -501,7 +577,7 @@ func _Loader_ListTestSuite_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/ListTestSuite", + FullMethod: Loader_ListTestSuite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).ListTestSuite(ctx, req.(*server.Empty)) @@ -519,7 +595,7 @@ func _Loader_CreateTestSuite_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/CreateTestSuite", + FullMethod: Loader_CreateTestSuite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).CreateTestSuite(ctx, req.(*TestSuite)) @@ -537,7 +613,7 @@ func _Loader_GetTestSuite_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/GetTestSuite", + FullMethod: Loader_GetTestSuite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).GetTestSuite(ctx, req.(*TestSuite)) @@ -555,7 +631,7 @@ func _Loader_UpdateTestSuite_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/UpdateTestSuite", + FullMethod: Loader_UpdateTestSuite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).UpdateTestSuite(ctx, req.(*TestSuite)) @@ -573,7 +649,7 @@ func _Loader_DeleteTestSuite_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/DeleteTestSuite", + FullMethod: Loader_DeleteTestSuite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).DeleteTestSuite(ctx, req.(*TestSuite)) @@ -591,7 +667,7 @@ func _Loader_RenameTestSuite_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/RenameTestSuite", + FullMethod: Loader_RenameTestSuite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).RenameTestSuite(ctx, req.(*server.TestSuiteDuplicate)) @@ -609,7 +685,7 @@ func _Loader_ListTestCases_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/ListTestCases", + FullMethod: Loader_ListTestCases_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).ListTestCases(ctx, req.(*TestSuite)) @@ -627,7 +703,7 @@ func _Loader_CreateTestCase_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/CreateTestCase", + FullMethod: Loader_CreateTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).CreateTestCase(ctx, req.(*server.TestCase)) @@ -645,7 +721,7 @@ func _Loader_GetTestCase_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/GetTestCase", + FullMethod: Loader_GetTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).GetTestCase(ctx, req.(*server.TestCase)) @@ -663,7 +739,7 @@ func _Loader_UpdateTestCase_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/UpdateTestCase", + FullMethod: Loader_UpdateTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).UpdateTestCase(ctx, req.(*server.TestCase)) @@ -681,7 +757,7 @@ func _Loader_DeleteTestCase_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/DeleteTestCase", + FullMethod: Loader_DeleteTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).DeleteTestCase(ctx, req.(*server.TestCase)) @@ -699,7 +775,7 @@ func _Loader_RenameTestCase_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/RenameTestCase", + FullMethod: Loader_RenameTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).RenameTestCase(ctx, req.(*server.TestCaseDuplicate)) @@ -717,7 +793,7 @@ func _Loader_ListHistoryTestSuite_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/ListHistoryTestSuite", + FullMethod: Loader_ListHistoryTestSuite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).ListHistoryTestSuite(ctx, req.(*server.Empty)) @@ -735,7 +811,7 @@ func _Loader_CreateTestCaseHistory_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/CreateTestCaseHistory", + FullMethod: Loader_CreateTestCaseHistory_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).CreateTestCaseHistory(ctx, req.(*server.HistoryTestResult)) @@ -753,7 +829,7 @@ func _Loader_GetHistoryTestCaseWithResult_Handler(srv interface{}, ctx context.C } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/GetHistoryTestCaseWithResult", + FullMethod: Loader_GetHistoryTestCaseWithResult_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).GetHistoryTestCaseWithResult(ctx, req.(*server.HistoryTestCase)) @@ -771,7 +847,7 @@ func _Loader_GetHistoryTestCase_Handler(srv interface{}, ctx context.Context, de } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/GetHistoryTestCase", + FullMethod: Loader_GetHistoryTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).GetHistoryTestCase(ctx, req.(*server.HistoryTestCase)) @@ -789,7 +865,7 @@ func _Loader_DeleteHistoryTestCase_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/DeleteHistoryTestCase", + FullMethod: Loader_DeleteHistoryTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).DeleteHistoryTestCase(ctx, req.(*server.HistoryTestCase)) @@ -807,7 +883,7 @@ func _Loader_DeleteAllHistoryTestCase_Handler(srv interface{}, ctx context.Conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/DeleteAllHistoryTestCase", + FullMethod: Loader_DeleteAllHistoryTestCase_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).DeleteAllHistoryTestCase(ctx, req.(*server.HistoryTestCase)) @@ -825,7 +901,7 @@ func _Loader_GetTestCaseAllHistory_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/GetTestCaseAllHistory", + FullMethod: Loader_GetTestCaseAllHistory_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).GetTestCaseAllHistory(ctx, req.(*server.TestCase)) @@ -843,7 +919,7 @@ func _Loader_GetVersion_Handler(srv interface{}, ctx context.Context, dec func(i } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/GetVersion", + FullMethod: Loader_GetVersion_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).GetVersion(ctx, req.(*server.Empty)) @@ -861,7 +937,7 @@ func _Loader_Verify_Handler(srv interface{}, ctx context.Context, dec func(inter } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/Verify", + FullMethod: Loader_Verify_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).Verify(ctx, req.(*server.Empty)) @@ -879,7 +955,7 @@ func _Loader_PProf_Handler(srv interface{}, ctx context.Context, dec func(interf } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/PProf", + FullMethod: Loader_PProf_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).PProf(ctx, req.(*server.PProfRequest)) @@ -897,7 +973,7 @@ func _Loader_Query_Handler(srv interface{}, ctx context.Context, dec func(interf } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/Query", + FullMethod: Loader_Query_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).Query(ctx, req.(*server.DataQuery)) @@ -915,7 +991,7 @@ func _Loader_GetThemes_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/GetThemes", + FullMethod: Loader_GetThemes_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).GetThemes(ctx, req.(*server.Empty)) @@ -933,7 +1009,7 @@ func _Loader_GetTheme_Handler(srv interface{}, ctx context.Context, dec func(int } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/GetTheme", + FullMethod: Loader_GetTheme_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).GetTheme(ctx, req.(*server.SimpleName)) @@ -951,7 +1027,7 @@ func _Loader_GetBindings_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/GetBindings", + FullMethod: Loader_GetBindings_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).GetBindings(ctx, req.(*server.Empty)) @@ -969,7 +1045,7 @@ func _Loader_GetBinding_Handler(srv interface{}, ctx context.Context, dec func(i } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/GetBinding", + FullMethod: Loader_GetBinding_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).GetBinding(ctx, req.(*server.SimpleName)) @@ -987,7 +1063,7 @@ func _Loader_GetMenus_Handler(srv interface{}, ctx context.Context, dec func(int } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/GetMenus", + FullMethod: Loader_GetMenus_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).GetMenus(ctx, req.(*server.Empty)) @@ -1005,7 +1081,7 @@ func _Loader_GetPageOfJS_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/GetPageOfJS", + FullMethod: Loader_GetPageOfJS_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).GetPageOfJS(ctx, req.(*server.SimpleName)) @@ -1023,7 +1099,7 @@ func _Loader_GetPageOfCSS_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/GetPageOfCSS", + FullMethod: Loader_GetPageOfCSS_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).GetPageOfCSS(ctx, req.(*server.SimpleName)) @@ -1041,7 +1117,7 @@ func _Loader_GetPageOfStatic_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.Loader/GetPageOfStatic", + FullMethod: Loader_GetPageOfStatic_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(LoaderServer).GetPageOfStatic(ctx, req.(*server.SimpleName)) @@ -1185,6 +1261,14 @@ var Loader_ServiceDesc = grpc.ServiceDesc{ Metadata: "pkg/testing/remote/loader.proto", } +const ( + SecretService_GetSecret_FullMethodName = "/remote.SecretService/GetSecret" + SecretService_GetSecrets_FullMethodName = "/remote.SecretService/GetSecrets" + SecretService_CreateSecret_FullMethodName = "/remote.SecretService/CreateSecret" + SecretService_DeleteSecret_FullMethodName = "/remote.SecretService/DeleteSecret" + SecretService_UpdateSecret_FullMethodName = "/remote.SecretService/UpdateSecret" +) + // SecretServiceClient is the client API for SecretService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -1205,8 +1289,9 @@ func NewSecretServiceClient(cc grpc.ClientConnInterface) SecretServiceClient { } func (c *secretServiceClient) GetSecret(ctx context.Context, in *server.Secret, opts ...grpc.CallOption) (*server.Secret, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.Secret) - err := c.cc.Invoke(ctx, "/remote.SecretService/GetSecret", in, out, opts...) + err := c.cc.Invoke(ctx, SecretService_GetSecret_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -1214,8 +1299,9 @@ func (c *secretServiceClient) GetSecret(ctx context.Context, in *server.Secret, } func (c *secretServiceClient) GetSecrets(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*server.Secrets, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.Secrets) - err := c.cc.Invoke(ctx, "/remote.SecretService/GetSecrets", in, out, opts...) + err := c.cc.Invoke(ctx, SecretService_GetSecrets_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -1223,8 +1309,9 @@ func (c *secretServiceClient) GetSecrets(ctx context.Context, in *server.Empty, } func (c *secretServiceClient) CreateSecret(ctx context.Context, in *server.Secret, opts ...grpc.CallOption) (*server.CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.CommonResult) - err := c.cc.Invoke(ctx, "/remote.SecretService/CreateSecret", in, out, opts...) + err := c.cc.Invoke(ctx, SecretService_CreateSecret_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -1232,8 +1319,9 @@ func (c *secretServiceClient) CreateSecret(ctx context.Context, in *server.Secre } func (c *secretServiceClient) DeleteSecret(ctx context.Context, in *server.Secret, opts ...grpc.CallOption) (*server.CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.CommonResult) - err := c.cc.Invoke(ctx, "/remote.SecretService/DeleteSecret", in, out, opts...) + err := c.cc.Invoke(ctx, SecretService_DeleteSecret_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -1241,8 +1329,9 @@ func (c *secretServiceClient) DeleteSecret(ctx context.Context, in *server.Secre } func (c *secretServiceClient) UpdateSecret(ctx context.Context, in *server.Secret, opts ...grpc.CallOption) (*server.CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.CommonResult) - err := c.cc.Invoke(ctx, "/remote.SecretService/UpdateSecret", in, out, opts...) + err := c.cc.Invoke(ctx, SecretService_UpdateSecret_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -1251,7 +1340,7 @@ func (c *secretServiceClient) UpdateSecret(ctx context.Context, in *server.Secre // SecretServiceServer is the server API for SecretService service. // All implementations must embed UnimplementedSecretServiceServer -// for forward compatibility +// for forward compatibility. type SecretServiceServer interface { GetSecret(context.Context, *server.Secret) (*server.Secret, error) GetSecrets(context.Context, *server.Empty) (*server.Secrets, error) @@ -1261,9 +1350,12 @@ type SecretServiceServer interface { mustEmbedUnimplementedSecretServiceServer() } -// UnimplementedSecretServiceServer must be embedded to have forward compatible implementations. -type UnimplementedSecretServiceServer struct { -} +// UnimplementedSecretServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedSecretServiceServer struct{} func (UnimplementedSecretServiceServer) GetSecret(context.Context, *server.Secret) (*server.Secret, error) { return nil, status.Errorf(codes.Unimplemented, "method GetSecret not implemented") @@ -1281,6 +1373,7 @@ func (UnimplementedSecretServiceServer) UpdateSecret(context.Context, *server.Se return nil, status.Errorf(codes.Unimplemented, "method UpdateSecret not implemented") } func (UnimplementedSecretServiceServer) mustEmbedUnimplementedSecretServiceServer() {} +func (UnimplementedSecretServiceServer) testEmbeddedByValue() {} // UnsafeSecretServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to SecretServiceServer will @@ -1290,6 +1383,13 @@ type UnsafeSecretServiceServer interface { } func RegisterSecretServiceServer(s grpc.ServiceRegistrar, srv SecretServiceServer) { + // If the following call pancis, it indicates UnimplementedSecretServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&SecretService_ServiceDesc, srv) } @@ -1303,7 +1403,7 @@ func _SecretService_GetSecret_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.SecretService/GetSecret", + FullMethod: SecretService_GetSecret_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SecretServiceServer).GetSecret(ctx, req.(*server.Secret)) @@ -1321,7 +1421,7 @@ func _SecretService_GetSecrets_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.SecretService/GetSecrets", + FullMethod: SecretService_GetSecrets_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SecretServiceServer).GetSecrets(ctx, req.(*server.Empty)) @@ -1339,7 +1439,7 @@ func _SecretService_CreateSecret_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.SecretService/CreateSecret", + FullMethod: SecretService_CreateSecret_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SecretServiceServer).CreateSecret(ctx, req.(*server.Secret)) @@ -1357,7 +1457,7 @@ func _SecretService_DeleteSecret_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.SecretService/DeleteSecret", + FullMethod: SecretService_DeleteSecret_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SecretServiceServer).DeleteSecret(ctx, req.(*server.Secret)) @@ -1375,7 +1475,7 @@ func _SecretService_UpdateSecret_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.SecretService/UpdateSecret", + FullMethod: SecretService_UpdateSecret_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SecretServiceServer).UpdateSecret(ctx, req.(*server.Secret)) @@ -1415,6 +1515,14 @@ var SecretService_ServiceDesc = grpc.ServiceDesc{ Metadata: "pkg/testing/remote/loader.proto", } +const ( + ConfigService_GetConfigs_FullMethodName = "/remote.ConfigService/GetConfigs" + ConfigService_GetConfig_FullMethodName = "/remote.ConfigService/GetConfig" + ConfigService_CreateConfig_FullMethodName = "/remote.ConfigService/CreateConfig" + ConfigService_UpdateConfig_FullMethodName = "/remote.ConfigService/UpdateConfig" + ConfigService_DeleteConfig_FullMethodName = "/remote.ConfigService/DeleteConfig" +) + // ConfigServiceClient is the client API for ConfigService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -1435,8 +1543,9 @@ func NewConfigServiceClient(cc grpc.ClientConnInterface) ConfigServiceClient { } func (c *configServiceClient) GetConfigs(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*Configs, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Configs) - err := c.cc.Invoke(ctx, "/remote.ConfigService/GetConfigs", in, out, opts...) + err := c.cc.Invoke(ctx, ConfigService_GetConfigs_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -1444,8 +1553,9 @@ func (c *configServiceClient) GetConfigs(ctx context.Context, in *server.Empty, } func (c *configServiceClient) GetConfig(ctx context.Context, in *server.SimpleName, opts ...grpc.CallOption) (*Config, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Config) - err := c.cc.Invoke(ctx, "/remote.ConfigService/GetConfig", in, out, opts...) + err := c.cc.Invoke(ctx, ConfigService_GetConfig_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -1453,8 +1563,9 @@ func (c *configServiceClient) GetConfig(ctx context.Context, in *server.SimpleNa } func (c *configServiceClient) CreateConfig(ctx context.Context, in *Config, opts ...grpc.CallOption) (*server.CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.CommonResult) - err := c.cc.Invoke(ctx, "/remote.ConfigService/CreateConfig", in, out, opts...) + err := c.cc.Invoke(ctx, ConfigService_CreateConfig_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -1462,8 +1573,9 @@ func (c *configServiceClient) CreateConfig(ctx context.Context, in *Config, opts } func (c *configServiceClient) UpdateConfig(ctx context.Context, in *Config, opts ...grpc.CallOption) (*server.CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.CommonResult) - err := c.cc.Invoke(ctx, "/remote.ConfigService/UpdateConfig", in, out, opts...) + err := c.cc.Invoke(ctx, ConfigService_UpdateConfig_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -1471,8 +1583,9 @@ func (c *configServiceClient) UpdateConfig(ctx context.Context, in *Config, opts } func (c *configServiceClient) DeleteConfig(ctx context.Context, in *server.SimpleName, opts ...grpc.CallOption) (*server.CommonResult, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(server.CommonResult) - err := c.cc.Invoke(ctx, "/remote.ConfigService/DeleteConfig", in, out, opts...) + err := c.cc.Invoke(ctx, ConfigService_DeleteConfig_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -1481,7 +1594,7 @@ func (c *configServiceClient) DeleteConfig(ctx context.Context, in *server.Simpl // ConfigServiceServer is the server API for ConfigService service. // All implementations must embed UnimplementedConfigServiceServer -// for forward compatibility +// for forward compatibility. type ConfigServiceServer interface { GetConfigs(context.Context, *server.Empty) (*Configs, error) GetConfig(context.Context, *server.SimpleName) (*Config, error) @@ -1491,9 +1604,12 @@ type ConfigServiceServer interface { mustEmbedUnimplementedConfigServiceServer() } -// UnimplementedConfigServiceServer must be embedded to have forward compatible implementations. -type UnimplementedConfigServiceServer struct { -} +// UnimplementedConfigServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedConfigServiceServer struct{} func (UnimplementedConfigServiceServer) GetConfigs(context.Context, *server.Empty) (*Configs, error) { return nil, status.Errorf(codes.Unimplemented, "method GetConfigs not implemented") @@ -1511,6 +1627,7 @@ func (UnimplementedConfigServiceServer) DeleteConfig(context.Context, *server.Si return nil, status.Errorf(codes.Unimplemented, "method DeleteConfig not implemented") } func (UnimplementedConfigServiceServer) mustEmbedUnimplementedConfigServiceServer() {} +func (UnimplementedConfigServiceServer) testEmbeddedByValue() {} // UnsafeConfigServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to ConfigServiceServer will @@ -1520,6 +1637,13 @@ type UnsafeConfigServiceServer interface { } func RegisterConfigServiceServer(s grpc.ServiceRegistrar, srv ConfigServiceServer) { + // If the following call pancis, it indicates UnimplementedConfigServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&ConfigService_ServiceDesc, srv) } @@ -1533,7 +1657,7 @@ func _ConfigService_GetConfigs_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.ConfigService/GetConfigs", + FullMethod: ConfigService_GetConfigs_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ConfigServiceServer).GetConfigs(ctx, req.(*server.Empty)) @@ -1551,7 +1675,7 @@ func _ConfigService_GetConfig_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.ConfigService/GetConfig", + FullMethod: ConfigService_GetConfig_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ConfigServiceServer).GetConfig(ctx, req.(*server.SimpleName)) @@ -1569,7 +1693,7 @@ func _ConfigService_CreateConfig_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.ConfigService/CreateConfig", + FullMethod: ConfigService_CreateConfig_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ConfigServiceServer).CreateConfig(ctx, req.(*Config)) @@ -1587,7 +1711,7 @@ func _ConfigService_UpdateConfig_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.ConfigService/UpdateConfig", + FullMethod: ConfigService_UpdateConfig_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ConfigServiceServer).UpdateConfig(ctx, req.(*Config)) @@ -1605,7 +1729,7 @@ func _ConfigService_DeleteConfig_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/remote.ConfigService/DeleteConfig", + FullMethod: ConfigService_DeleteConfig_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ConfigServiceServer).DeleteConfig(ctx, req.(*server.SimpleName)) diff --git a/pkg/testing/testdata/data/core/extension.yaml b/pkg/testing/testdata/data/core/extension.yaml index de7d5be9..c530b2b1 100644 --- a/pkg/testing/testdata/data/core/extension.yaml +++ b/pkg/testing/testdata/data/core/extension.yaml @@ -3,3 +3,17 @@ items: dependencies: - name: atest-store-database link: https://github.com/LinuxSuRen/atest-ext-store-database + - name: atest-ext-ai + dependencies: + - name: atest-ext-ai + link: https://github.com/LinuxSuRen/atest-ext-ai + categories: + - ai + - assistant + params: + - key: model_provider + defaultValue: 'openai' + - key: api_endpoint + defaultValue: 'https://api.openai.com/v1' + - key: timeout + defaultValue: '30s' diff --git a/tools/src/protoc-gen-go-grpc/go.mod b/tools/src/protoc-gen-go-grpc/go.mod new file mode 100644 index 00000000..7375d2bd --- /dev/null +++ b/tools/src/protoc-gen-go-grpc/go.mod @@ -0,0 +1,5 @@ +module tools + +go 1.21 + +require google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 \ No newline at end of file diff --git a/tools/src/protoc-gen-go-grpc/go.sum b/tools/src/protoc-gen-go-grpc/go.sum new file mode 100644 index 00000000..6518fb7c --- /dev/null +++ b/tools/src/protoc-gen-go-grpc/go.sum @@ -0,0 +1 @@ +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= diff --git a/tools/src/protoc-gen-go-grpc/pin.go b/tools/src/protoc-gen-go-grpc/pin.go new file mode 100644 index 00000000..449d2ce5 --- /dev/null +++ b/tools/src/protoc-gen-go-grpc/pin.go @@ -0,0 +1,6 @@ +//go:build tools +// +build tools + +package tools + +import _ "google.golang.org/grpc/cmd/protoc-gen-go-grpc" \ No newline at end of file diff --git a/tools/src/protoc-gen-go/go.mod b/tools/src/protoc-gen-go/go.mod new file mode 100644 index 00000000..a0f5a2f3 --- /dev/null +++ b/tools/src/protoc-gen-go/go.mod @@ -0,0 +1,5 @@ +module tools + +go 1.21 + +require google.golang.org/protobuf v1.31.0 \ No newline at end of file diff --git a/tools/src/protoc-gen-go/go.sum b/tools/src/protoc-gen-go/go.sum new file mode 100644 index 00000000..dc786993 --- /dev/null +++ b/tools/src/protoc-gen-go/go.sum @@ -0,0 +1,5 @@ +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= diff --git a/tools/src/protoc-gen-go/pin.go b/tools/src/protoc-gen-go/pin.go new file mode 100644 index 00000000..e9ff6fda --- /dev/null +++ b/tools/src/protoc-gen-go/pin.go @@ -0,0 +1,6 @@ +//go:build tools +// +build tools + +package tools + +import _ "google.golang.org/protobuf/cmd/protoc-gen-go" \ No newline at end of file