diff --git a/.gitignore b/.gitignore index bc83676..1055a34 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,7 @@ cmake-build-debug/ build/ *.pb.h -*.pb.cc \ No newline at end of file +*.pb.cc + +### PreCI ### +.codecc \ No newline at end of file diff --git a/Makefile b/Makefile index 6a425ce..5b0d4cd 100644 --- a/Makefile +++ b/Makefile @@ -6,17 +6,34 @@ all: protoc -I$(INCLUDE_GOOGLE_PB_PATH) -I.\ --go_out=paths=source_relative:./$(DIR) \ ./trpc/api/annotations.proto \ - ./trpc/api/http.proto + ./trpc/api/http.proto \ + ./trpc/api/openapiv2.proto protoc -I$(INCLUDE_GOOGLE_PB_PATH) -I.\ --go_out=./$(DIR) \ ./trpc/trpc.proto \ ./trpc/proto/trpc_options.proto \ ./trpc/swagger/swagger.proto \ - ./trpc/validate/validate.proto + ./trpc/validate/validate.proto \ + ./trpc/reflection/reflection.proto mv $(DIR)/trpc.group/trpc/trpc-protocol/pb/go/trpc/* $(DIR)/trpc rm -rf $(DIR)/trpc.group cd ./$(DIR)/trpc && go mod init trpc.group/trpc/trpc-protocol/$(DIR)/trpc && go mod tidy && cd - + # trpc v2 + protoc -I$(INCLUDE_GOOGLE_PB_PATH) -I.\ + --go_out=paths=source_relative:./$(DIR) \ + ./trpc/v2/api/annotations.proto \ + ./trpc/v2/api/http.proto + protoc -I$(INCLUDE_GOOGLE_PB_PATH) -I.\ + --go_out=./$(DIR) \ + ./trpc/v2/trpc.proto \ + ./trpc/v2/proto/trpc_options.proto \ + ./trpc/v2/swagger/swagger.proto \ + ./trpc/v2/validate/validate.proto + mv $(DIR)/trpc.group/trpc/trpc-protocol/pb/go/trpc/v2/* $(DIR)/trpc/v2 + rm -rf $(DIR)/trpc.group + cd ./$(DIR)/trpc/v2 && go mod init trpc.group/trpc/trpc-protocol/$(DIR)/trpc/v2 && go mod tidy && cd - + .PHONY: test clean test: diff --git a/WORKSPACE b/WORKSPACE index 358391d..669349d 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -4,13 +4,14 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "com_google_protobuf", - sha256 = "0cbdc9adda01f6d2facc65a22a2be5cecefbefe5a09e5382ee8879b522c04441", - strip_prefix = "protobuf-3.15.8", + sha256 = "d0f5f605d0d656007ce6c8b5a82df3037e1d8fe8b121ed42e536f569dec16113", + strip_prefix = "protobuf-3.14.0", urls = [ - "https://github.com/protocolbuffers/protobuf/archive/v3.15.8.tar.gz", + "https://mirrors.tencent.com/github.com/protocolbuffers/protobuf/archive/v3.14.0.tar.gz", + "https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.14.0.tar.gz", + "https://github.com/protocolbuffers/protobuf/archive/v3.14.0.tar.gz", ], ) load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps") - protobuf_deps() diff --git a/pb/go/trpc/api/annotations.pb.go b/pb/go/trpc/api/annotations.pb.go index 351019a..db838e7 100644 --- a/pb/go/trpc/api/annotations.pb.go +++ b/pb/go/trpc/api/annotations.pb.go @@ -1,7 +1,30 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +// Copyright 2015 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// This file may have been modified by THL A29 Limited ("Tencent Modifications"). +// All Tencent Modifications are Copyright (C) 2023 THL A29 Limited. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v5.27.1 // source: trpc/api/annotations.proto package api @@ -29,6 +52,14 @@ var file_trpc_api_annotations_proto_extTypes = []protoimpl.ExtensionInfo{ Tag: "bytes,50201,opt,name=http", Filename: "trpc/api/annotations.proto", }, + { + ExtendedType: (*descriptorpb.MessageOptions)(nil), + ExtensionType: (*Schema)(nil), + Field: 50201, + Name: "trpc.api.openapiv2_schema", + Tag: "bytes,50201,opt,name=openapiv2_schema", + Filename: "trpc/api/annotations.proto", + }, } // Extension fields to descriptorpb.MethodOptions. @@ -37,38 +68,56 @@ var ( E_Http = &file_trpc_api_annotations_proto_extTypes[0] ) +// Extension fields to descriptorpb.MessageOptions. +var ( + // optional trpc.api.Schema openapiv2_schema = 50201; + E_Openapiv2Schema = &file_trpc_api_annotations_proto_extTypes[1] +) + var File_trpc_api_annotations_proto protoreflect.FileDescriptor var file_trpc_api_annotations_proto_rawDesc = []byte{ 0x0a, 0x1a, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x61, 0x70, 0x69, 0x1a, 0x13, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x48, 0x0a, - 0x04, 0x68, 0x74, 0x74, 0x70, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x99, 0x88, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x74, 0x72, 0x70, 0x63, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, - 0x65, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x42, 0x4d, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, - 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x2c, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, - 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2f, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x74, 0x72, 0x70, + 0x63, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x48, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x12, + 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x99, 0x88, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x68, 0x74, 0x74, + 0x70, 0x3a, 0x5e, 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x5f, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x99, 0x88, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x42, 0x4d, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, + 0x78, 0x74, 0x5a, 0x2c, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_trpc_api_annotations_proto_goTypes = []interface{}{ - (*descriptorpb.MethodOptions)(nil), // 0: google.protobuf.MethodOptions - (*HttpRule)(nil), // 1: trpc.api.HttpRule + (*descriptorpb.MethodOptions)(nil), // 0: google.protobuf.MethodOptions + (*descriptorpb.MessageOptions)(nil), // 1: google.protobuf.MessageOptions + (*HttpRule)(nil), // 2: trpc.api.HttpRule + (*Schema)(nil), // 3: trpc.api.Schema } var file_trpc_api_annotations_proto_depIdxs = []int32{ 0, // 0: trpc.api.http:extendee -> google.protobuf.MethodOptions - 1, // 1: trpc.api.http:type_name -> trpc.api.HttpRule - 2, // [2:2] is the sub-list for method output_type - 2, // [2:2] is the sub-list for method input_type - 1, // [1:2] is the sub-list for extension type_name - 0, // [0:1] is the sub-list for extension extendee + 1, // 1: trpc.api.openapiv2_schema:extendee -> google.protobuf.MessageOptions + 2, // 2: trpc.api.http:type_name -> trpc.api.HttpRule + 3, // 3: trpc.api.openapiv2_schema:type_name -> trpc.api.Schema + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 2, // [2:4] is the sub-list for extension type_name + 0, // [0:2] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } @@ -78,6 +127,7 @@ func file_trpc_api_annotations_proto_init() { return } file_trpc_api_http_proto_init() + file_trpc_api_openapiv2_proto_init() type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ @@ -85,7 +135,7 @@ func file_trpc_api_annotations_proto_init() { RawDescriptor: file_trpc_api_annotations_proto_rawDesc, NumEnums: 0, NumMessages: 0, - NumExtensions: 1, + NumExtensions: 2, NumServices: 0, }, GoTypes: file_trpc_api_annotations_proto_goTypes, diff --git a/pb/go/trpc/api/http.pb.go b/pb/go/trpc/api/http.pb.go index a8635bb..3f21cb6 100644 --- a/pb/go/trpc/api/http.pb.go +++ b/pb/go/trpc/api/http.pb.go @@ -1,7 +1,30 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// This file may have been modified by THL A29 Limited ("Tencent Modifications"). +// All Tencent Modifications are Copyright (C) 2023 THL A29 Limited. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v5.27.1 // source: trpc/api/http.proto package api @@ -34,7 +57,6 @@ type HttpRule struct { // can be defined using the 'custom' field. // // Types that are assignable to Pattern: - // // *HttpRule_Get // *HttpRule_Put // *HttpRule_Post diff --git a/pb/go/trpc/api/openapiv2.pb.go b/pb/go/trpc/api/openapiv2.pb.go new file mode 100644 index 0000000..f7d9b98 --- /dev/null +++ b/pb/go/trpc/api/openapiv2.pb.go @@ -0,0 +1,221 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v5.27.1 +// source: trpc/api/openapiv2.proto + +package api + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// message option schema +type Schema struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + JsonSchema *JSONSchema `protobuf:"bytes,1,opt,name=json_schema,json=jsonSchema,proto3" json:"json_schema,omitempty"` +} + +func (x *Schema) Reset() { + *x = Schema{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_api_openapiv2_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Schema) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Schema) ProtoMessage() {} + +func (x *Schema) ProtoReflect() protoreflect.Message { + mi := &file_trpc_api_openapiv2_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Schema.ProtoReflect.Descriptor instead. +func (*Schema) Descriptor() ([]byte, []int) { + return file_trpc_api_openapiv2_proto_rawDescGZIP(), []int{0} +} + +func (x *Schema) GetJsonSchema() *JSONSchema { + if x != nil { + return x.JsonSchema + } + return nil +} + +// `JSONSchema` represents properties from JSON SCHEMA taken,and as used, in +// the OpenAPI v2 spec. +type JSONSchema struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Required []string `protobuf:"bytes,1,rep,name=required,proto3" json:"required,omitempty"` +} + +func (x *JSONSchema) Reset() { + *x = JSONSchema{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_api_openapiv2_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JSONSchema) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JSONSchema) ProtoMessage() {} + +func (x *JSONSchema) ProtoReflect() protoreflect.Message { + mi := &file_trpc_api_openapiv2_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use JSONSchema.ProtoReflect.Descriptor instead. +func (*JSONSchema) Descriptor() ([]byte, []int) { + return file_trpc_api_openapiv2_proto_rawDescGZIP(), []int{1} +} + +func (x *JSONSchema) GetRequired() []string { + if x != nil { + return x.Required + } + return nil +} + +var File_trpc_api_openapiv2_proto protoreflect.FileDescriptor + +var file_trpc_api_openapiv2_proto_rawDesc = []byte{ + 0x0a, 0x18, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, + 0x70, 0x69, 0x76, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x74, 0x72, 0x70, 0x63, + 0x2e, 0x61, 0x70, 0x69, 0x22, 0x3f, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x35, + 0x0a, 0x0b, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, + 0x53, 0x4f, 0x4e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x28, 0x0a, 0x0a, 0x4a, 0x53, 0x4f, 0x4e, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x42, + 0x4d, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, + 0x5a, 0x2c, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, 0x72, 0x70, + 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, + 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_trpc_api_openapiv2_proto_rawDescOnce sync.Once + file_trpc_api_openapiv2_proto_rawDescData = file_trpc_api_openapiv2_proto_rawDesc +) + +func file_trpc_api_openapiv2_proto_rawDescGZIP() []byte { + file_trpc_api_openapiv2_proto_rawDescOnce.Do(func() { + file_trpc_api_openapiv2_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_api_openapiv2_proto_rawDescData) + }) + return file_trpc_api_openapiv2_proto_rawDescData +} + +var file_trpc_api_openapiv2_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_trpc_api_openapiv2_proto_goTypes = []interface{}{ + (*Schema)(nil), // 0: trpc.api.Schema + (*JSONSchema)(nil), // 1: trpc.api.JSONSchema +} +var file_trpc_api_openapiv2_proto_depIdxs = []int32{ + 1, // 0: trpc.api.Schema.json_schema:type_name -> trpc.api.JSONSchema + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_trpc_api_openapiv2_proto_init() } +func file_trpc_api_openapiv2_proto_init() { + if File_trpc_api_openapiv2_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_trpc_api_openapiv2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Schema); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_api_openapiv2_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JSONSchema); 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_trpc_api_openapiv2_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_trpc_api_openapiv2_proto_goTypes, + DependencyIndexes: file_trpc_api_openapiv2_proto_depIdxs, + MessageInfos: file_trpc_api_openapiv2_proto_msgTypes, + }.Build() + File_trpc_api_openapiv2_proto = out.File + file_trpc_api_openapiv2_proto_rawDesc = nil + file_trpc_api_openapiv2_proto_goTypes = nil + file_trpc_api_openapiv2_proto_depIdxs = nil +} diff --git a/pb/go/trpc/go.mod b/pb/go/trpc/go.mod index d3a0a07..844ebb2 100644 --- a/pb/go/trpc/go.mod +++ b/pb/go/trpc/go.mod @@ -2,4 +2,4 @@ module trpc.group/trpc/trpc-protocol/pb/go/trpc go 1.16 -require google.golang.org/protobuf v1.30.0 +require google.golang.org/protobuf v1.36.6 diff --git a/pb/go/trpc/go.sum b/pb/go/trpc/go.sum index 1838366..6ec03ed 100644 --- a/pb/go/trpc/go.sum +++ b/pb/go/trpc/go.sum @@ -4,5 +4,5 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= 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.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= diff --git a/pb/go/trpc/proto/trpc_options.pb.go b/pb/go/trpc/proto/trpc_options.pb.go index ab6b8b1..78c3737 100644 --- a/pb/go/trpc/proto/trpc_options.pb.go +++ b/pb/go/trpc/proto/trpc_options.pb.go @@ -1,7 +1,13 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v5.27.1 // source: trpc/proto/trpc_options.proto package proto diff --git a/pb/go/trpc/reflection/reflection.pb.go b/pb/go/trpc/reflection/reflection.pb.go new file mode 100644 index 0000000..50560db --- /dev/null +++ b/pb/go/trpc/reflection/reflection.pb.go @@ -0,0 +1,713 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v5.27.1 +// source: trpc/reflection/reflection.proto + +package reflection + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// The message sent by the client when calling ServerReflectionInfo method. +type ServerReflectionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` + // To use reflection service, the client should set one of the following + // fields in message_request. The server distinguishes requests by their + // defined field and then handles them using corresponding methods. + // + // Types that are assignable to MessageRequest: + // *ServerReflectionRequest_FileContainingSymbol + // *ServerReflectionRequest_ListServices + // *ServerReflectionRequest_FileByFilename + MessageRequest isServerReflectionRequest_MessageRequest `protobuf_oneof:"message_request"` +} + +func (x *ServerReflectionRequest) Reset() { + *x = ServerReflectionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_reflection_reflection_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerReflectionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerReflectionRequest) ProtoMessage() {} + +func (x *ServerReflectionRequest) ProtoReflect() protoreflect.Message { + mi := &file_trpc_reflection_reflection_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServerReflectionRequest.ProtoReflect.Descriptor instead. +func (*ServerReflectionRequest) Descriptor() ([]byte, []int) { + return file_trpc_reflection_reflection_proto_rawDescGZIP(), []int{0} +} + +func (x *ServerReflectionRequest) GetHost() string { + if x != nil { + return x.Host + } + return "" +} + +func (m *ServerReflectionRequest) GetMessageRequest() isServerReflectionRequest_MessageRequest { + if m != nil { + return m.MessageRequest + } + return nil +} + +func (x *ServerReflectionRequest) GetFileContainingSymbol() string { + if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_FileContainingSymbol); ok { + return x.FileContainingSymbol + } + return "" +} + +func (x *ServerReflectionRequest) GetListServices() string { + if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_ListServices); ok { + return x.ListServices + } + return "" +} + +func (x *ServerReflectionRequest) GetFileByFilename() string { + if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_FileByFilename); ok { + return x.FileByFilename + } + return "" +} + +type isServerReflectionRequest_MessageRequest interface { + isServerReflectionRequest_MessageRequest() +} + +type ServerReflectionRequest_FileContainingSymbol struct { + // Find the proto file that declares the given fully-qualified symbol name. + // This field should be a fully-qualified symbol name + // (e.g. .[.] or .). + FileContainingSymbol string `protobuf:"bytes,3,opt,name=file_containing_symbol,json=fileContainingSymbol,proto3,oneof"` +} + +type ServerReflectionRequest_ListServices struct { + // List the full names of registered services. The content will not be + // checked. + ListServices string `protobuf:"bytes,4,opt,name=list_services,json=listServices,proto3,oneof"` +} + +type ServerReflectionRequest_FileByFilename struct { + // Find a proto file by the file name. + FileByFilename string `protobuf:"bytes,5,opt,name=file_by_filename,json=fileByFilename,proto3,oneof"` +} + +func (*ServerReflectionRequest_FileContainingSymbol) isServerReflectionRequest_MessageRequest() {} + +func (*ServerReflectionRequest_ListServices) isServerReflectionRequest_MessageRequest() {} + +func (*ServerReflectionRequest_FileByFilename) isServerReflectionRequest_MessageRequest() {} + +// The message sent by the server to answer ServerReflectionInfo method. +type ServerReflectionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ValidHost string `protobuf:"bytes,1,opt,name=valid_host,json=validHost,proto3" json:"valid_host,omitempty"` + OriginalRequest *ServerReflectionRequest `protobuf:"bytes,2,opt,name=original_request,json=originalRequest,proto3" json:"original_request,omitempty"` + // The server sets one of the following fields according to the message_request + // in the request. + // + // Types that are assignable to MessageResponse: + // *ServerReflectionResponse_FileDescriptorResponse + // *ServerReflectionResponse_ListServicesResponse + // *ServerReflectionResponse_ErrorResponse + MessageResponse isServerReflectionResponse_MessageResponse `protobuf_oneof:"message_response"` +} + +func (x *ServerReflectionResponse) Reset() { + *x = ServerReflectionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_reflection_reflection_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerReflectionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerReflectionResponse) ProtoMessage() {} + +func (x *ServerReflectionResponse) ProtoReflect() protoreflect.Message { + mi := &file_trpc_reflection_reflection_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServerReflectionResponse.ProtoReflect.Descriptor instead. +func (*ServerReflectionResponse) Descriptor() ([]byte, []int) { + return file_trpc_reflection_reflection_proto_rawDescGZIP(), []int{1} +} + +func (x *ServerReflectionResponse) GetValidHost() string { + if x != nil { + return x.ValidHost + } + return "" +} + +func (x *ServerReflectionResponse) GetOriginalRequest() *ServerReflectionRequest { + if x != nil { + return x.OriginalRequest + } + return nil +} + +func (m *ServerReflectionResponse) GetMessageResponse() isServerReflectionResponse_MessageResponse { + if m != nil { + return m.MessageResponse + } + return nil +} + +func (x *ServerReflectionResponse) GetFileDescriptorResponse() *FileDescriptorResponse { + if x, ok := x.GetMessageResponse().(*ServerReflectionResponse_FileDescriptorResponse); ok { + return x.FileDescriptorResponse + } + return nil +} + +func (x *ServerReflectionResponse) GetListServicesResponse() *ListServiceResponse { + if x, ok := x.GetMessageResponse().(*ServerReflectionResponse_ListServicesResponse); ok { + return x.ListServicesResponse + } + return nil +} + +func (x *ServerReflectionResponse) GetErrorResponse() *ErrorResponse { + if x, ok := x.GetMessageResponse().(*ServerReflectionResponse_ErrorResponse); ok { + return x.ErrorResponse + } + return nil +} + +type isServerReflectionResponse_MessageResponse interface { + isServerReflectionResponse_MessageResponse() +} + +type ServerReflectionResponse_FileDescriptorResponse struct { + // This message is used to answer file_containing_symbol, + // As the repeated label is not allowed in oneof fields, we use a + // FileDescriptorResponse message to encapsulate the repeated fields. + FileDescriptorResponse *FileDescriptorResponse `protobuf:"bytes,4,opt,name=file_descriptor_response,json=fileDescriptorResponse,proto3,oneof"` +} + +type ServerReflectionResponse_ListServicesResponse struct { + // This message is used to answer list_services requests. + ListServicesResponse *ListServiceResponse `protobuf:"bytes,5,opt,name=list_services_response,json=listServicesResponse,proto3,oneof"` +} + +type ServerReflectionResponse_ErrorResponse struct { + // This message is used when an error occurs. + ErrorResponse *ErrorResponse `protobuf:"bytes,6,opt,name=error_response,json=errorResponse,proto3,oneof"` +} + +func (*ServerReflectionResponse_FileDescriptorResponse) isServerReflectionResponse_MessageResponse() { +} + +func (*ServerReflectionResponse_ListServicesResponse) isServerReflectionResponse_MessageResponse() {} + +func (*ServerReflectionResponse_ErrorResponse) isServerReflectionResponse_MessageResponse() {} + +// Serialized FileDescriptorProto messages sent by the server answering +// a file_by_filename, file_containing_symbol, or file_containing_extension +// request. +type FileDescriptorResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Serialized FileDescriptorProto messages. We avoid taking a dependency on + // descriptor.proto, which uses proto2 only features, by making them opaque + // bytes instead. + FileDescriptorProto [][]byte `protobuf:"bytes,1,rep,name=file_descriptor_proto,json=fileDescriptorProto,proto3" json:"file_descriptor_proto,omitempty"` +} + +func (x *FileDescriptorResponse) Reset() { + *x = FileDescriptorResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_reflection_reflection_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FileDescriptorResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FileDescriptorResponse) ProtoMessage() {} + +func (x *FileDescriptorResponse) ProtoReflect() protoreflect.Message { + mi := &file_trpc_reflection_reflection_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FileDescriptorResponse.ProtoReflect.Descriptor instead. +func (*FileDescriptorResponse) Descriptor() ([]byte, []int) { + return file_trpc_reflection_reflection_proto_rawDescGZIP(), []int{2} +} + +func (x *FileDescriptorResponse) GetFileDescriptorProto() [][]byte { + if x != nil { + return x.FileDescriptorProto + } + return nil +} + +// A list of ServiceResponse sent by the server answering list_services request. +type ListServiceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The information of each service may be expanded in the future, so we use + // ServiceResponse message to encapsulate it. + Service []*ServiceResponse `protobuf:"bytes,1,rep,name=service,proto3" json:"service,omitempty"` +} + +func (x *ListServiceResponse) Reset() { + *x = ListServiceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_reflection_reflection_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListServiceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListServiceResponse) ProtoMessage() {} + +func (x *ListServiceResponse) ProtoReflect() protoreflect.Message { + mi := &file_trpc_reflection_reflection_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListServiceResponse.ProtoReflect.Descriptor instead. +func (*ListServiceResponse) Descriptor() ([]byte, []int) { + return file_trpc_reflection_reflection_proto_rawDescGZIP(), []int{3} +} + +func (x *ListServiceResponse) GetService() []*ServiceResponse { + if x != nil { + return x.Service + } + return nil +} + +// The information of a single service used by ListServiceResponse to answer +// list_services request. +type ServiceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Full name of a registered service, including its package name. + // The format is . + // https://github.com/trpc-group/trpc/blob/master/trpc/trpc.proto#L465 package.Service + InterfaceServiceName string `protobuf:"bytes,1,opt,name=interface_service_name,json=interfaceServiceName,proto3" json:"interface_service_name,omitempty"` + // eg: polaris, 123 platform format: trpc.app.server.service. + RoutingServiceName string `protobuf:"bytes,2,opt,name=routing_service_name,json=routingServiceName,proto3" json:"routing_service_name,omitempty"` +} + +func (x *ServiceResponse) Reset() { + *x = ServiceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_reflection_reflection_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServiceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServiceResponse) ProtoMessage() {} + +func (x *ServiceResponse) ProtoReflect() protoreflect.Message { + mi := &file_trpc_reflection_reflection_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServiceResponse.ProtoReflect.Descriptor instead. +func (*ServiceResponse) Descriptor() ([]byte, []int) { + return file_trpc_reflection_reflection_proto_rawDescGZIP(), []int{4} +} + +func (x *ServiceResponse) GetInterfaceServiceName() string { + if x != nil { + return x.InterfaceServiceName + } + return "" +} + +func (x *ServiceResponse) GetRoutingServiceName() string { + if x != nil { + return x.RoutingServiceName + } + return "" +} + +// The error code and error message sent by the server when an error occurs. +type ErrorResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // This field uses the error codes defined in trpc.proto TrpcRetCode. + ErrorCode int32 `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` +} + +func (x *ErrorResponse) Reset() { + *x = ErrorResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_reflection_reflection_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ErrorResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ErrorResponse) ProtoMessage() {} + +func (x *ErrorResponse) ProtoReflect() protoreflect.Message { + mi := &file_trpc_reflection_reflection_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ErrorResponse.ProtoReflect.Descriptor instead. +func (*ErrorResponse) Descriptor() ([]byte, []int) { + return file_trpc_reflection_reflection_proto_rawDescGZIP(), []int{5} +} + +func (x *ErrorResponse) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode + } + return 0 +} + +func (x *ErrorResponse) GetErrorMessage() string { + if x != nil { + return x.ErrorMessage + } + return "" +} + +var File_trpc_reflection_reflection_proto protoreflect.FileDescriptor + +var file_trpc_reflection_reflection_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x12, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x22, 0xcb, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x14, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x25, + 0x0a, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x62, 0x79, + 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0xba, 0x03, 0x0a, 0x18, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x48, 0x6f, 0x73, 0x74, + 0x12, 0x56, 0x0a, 0x10, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x66, 0x0a, 0x18, 0x66, 0x69, 0x6c, 0x65, + 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x16, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x5f, 0x0a, 0x16, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x14, 0x6c, 0x69, 0x73, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x72, 0x70, 0x63, + 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x12, 0x0a, + 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x4c, 0x0a, 0x16, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x66, + 0x69, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x13, 0x66, 0x69, 0x6c, 0x65, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0x54, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x72, + 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x79, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, + 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x6f, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x22, 0x53, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x86, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x72, 0x0a, 0x15, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x66, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x54, + 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, + 0x33, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, 0x72, 0x70, 0x63, + 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, + 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_trpc_reflection_reflection_proto_rawDescOnce sync.Once + file_trpc_reflection_reflection_proto_rawDescData = file_trpc_reflection_reflection_proto_rawDesc +) + +func file_trpc_reflection_reflection_proto_rawDescGZIP() []byte { + file_trpc_reflection_reflection_proto_rawDescOnce.Do(func() { + file_trpc_reflection_reflection_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_reflection_reflection_proto_rawDescData) + }) + return file_trpc_reflection_reflection_proto_rawDescData +} + +var file_trpc_reflection_reflection_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_trpc_reflection_reflection_proto_goTypes = []interface{}{ + (*ServerReflectionRequest)(nil), // 0: trpc.reflection.v1.ServerReflectionRequest + (*ServerReflectionResponse)(nil), // 1: trpc.reflection.v1.ServerReflectionResponse + (*FileDescriptorResponse)(nil), // 2: trpc.reflection.v1.FileDescriptorResponse + (*ListServiceResponse)(nil), // 3: trpc.reflection.v1.ListServiceResponse + (*ServiceResponse)(nil), // 4: trpc.reflection.v1.ServiceResponse + (*ErrorResponse)(nil), // 5: trpc.reflection.v1.ErrorResponse +} +var file_trpc_reflection_reflection_proto_depIdxs = []int32{ + 0, // 0: trpc.reflection.v1.ServerReflectionResponse.original_request:type_name -> trpc.reflection.v1.ServerReflectionRequest + 2, // 1: trpc.reflection.v1.ServerReflectionResponse.file_descriptor_response:type_name -> trpc.reflection.v1.FileDescriptorResponse + 3, // 2: trpc.reflection.v1.ServerReflectionResponse.list_services_response:type_name -> trpc.reflection.v1.ListServiceResponse + 5, // 3: trpc.reflection.v1.ServerReflectionResponse.error_response:type_name -> trpc.reflection.v1.ErrorResponse + 4, // 4: trpc.reflection.v1.ListServiceResponse.service:type_name -> trpc.reflection.v1.ServiceResponse + 0, // 5: trpc.reflection.v1.ServerReflection.ServiceReflectionInfo:input_type -> trpc.reflection.v1.ServerReflectionRequest + 1, // 6: trpc.reflection.v1.ServerReflection.ServiceReflectionInfo:output_type -> trpc.reflection.v1.ServerReflectionResponse + 6, // [6:7] is the sub-list for method output_type + 5, // [5:6] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_trpc_reflection_reflection_proto_init() } +func file_trpc_reflection_reflection_proto_init() { + if File_trpc_reflection_reflection_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_trpc_reflection_reflection_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServerReflectionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_reflection_reflection_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServerReflectionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_reflection_reflection_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FileDescriptorResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_reflection_reflection_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListServiceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_reflection_reflection_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServiceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_reflection_reflection_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ErrorResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_trpc_reflection_reflection_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*ServerReflectionRequest_FileContainingSymbol)(nil), + (*ServerReflectionRequest_ListServices)(nil), + (*ServerReflectionRequest_FileByFilename)(nil), + } + file_trpc_reflection_reflection_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*ServerReflectionResponse_FileDescriptorResponse)(nil), + (*ServerReflectionResponse_ListServicesResponse)(nil), + (*ServerReflectionResponse_ErrorResponse)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpc_reflection_reflection_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_trpc_reflection_reflection_proto_goTypes, + DependencyIndexes: file_trpc_reflection_reflection_proto_depIdxs, + MessageInfos: file_trpc_reflection_reflection_proto_msgTypes, + }.Build() + File_trpc_reflection_reflection_proto = out.File + file_trpc_reflection_reflection_proto_rawDesc = nil + file_trpc_reflection_reflection_proto_goTypes = nil + file_trpc_reflection_reflection_proto_depIdxs = nil +} diff --git a/pb/go/trpc/swagger/swagger.pb.go b/pb/go/trpc/swagger/swagger.pb.go index c81c771..cbbdfd1 100644 --- a/pb/go/trpc/swagger/swagger.pb.go +++ b/pb/go/trpc/swagger/swagger.pb.go @@ -1,7 +1,13 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v5.27.1 // source: trpc/swagger/swagger.proto package swagger diff --git a/pb/go/trpc/trpc.pb.go b/pb/go/trpc/trpc.pb.go index 49ce62e..9f7bd54 100644 --- a/pb/go/trpc/trpc.pb.go +++ b/pb/go/trpc/trpc.pb.go @@ -1,7 +1,13 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v5.27.1 // source: trpc/trpc.proto package trpc @@ -20,13 +26,13 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// 框架协议头里的魔数 +// The magic value of trpc protocol type TrpcMagic int32 const ( - // trpc不用这个值,为了提供给pb工具生成代码 + // trpc does not use this value, it is used by the pb gen-code tool TrpcMagic_TRPC_DEFAULT_NONE TrpcMagic = 0 - // trpc协议默认使用这个魔数 + // The magic value used by trpc protocol TrpcMagic_TRPC_MAGIC_VALUE TrpcMagic = 2352 ) @@ -69,16 +75,14 @@ func (TrpcMagic) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{0} } -// trpc协议的二进制数据帧类型 -// 目前支持两种类型的二进制数据帧: -// 1. 一应一答模式的二进制数据帧类型 -// 2. 流式模式的二进制数据帧类型 +// The data frame type of the trpc protocol packet +// Two types are currently supported: +// 1. The data frame type for unary(one-response-one-response) +// 2. The data frame type for stream type TrpcDataFrameType int32 const ( - // trpc一应一答模式的二进制数据帧类型 - TrpcDataFrameType_TRPC_UNARY_FRAME TrpcDataFrameType = 0 - // trpc流式模式的二进制数据帧类型 + TrpcDataFrameType_TRPC_UNARY_FRAME TrpcDataFrameType = 0 TrpcDataFrameType_TRPC_STREAM_FRAME TrpcDataFrameType = 1 ) @@ -121,26 +125,20 @@ func (TrpcDataFrameType) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{1} } -// trpc协议流式的二进制数据帧类型 -// 目前流式帧类型分4种:INIT/DATA/FEEDBACK/CLOSE,其中CLOSE帧不带业务数据 -// INIT帧:FIXHEADER + TrpcStreamInitMeta -// DATA帧:FIXHEADER + body(业务序列化的数据) -// FEEDBACK帧:FIXHEADER + TrpcStreamFeedBackMeta(触发策略,高低水位+定时) -// CLOSE帧:FIXHEADER + TrpcStreamCloseMeta -// 连接和流空闲超时的回收机制不考虑 +// The specific frame type of trpc streaming data frame +// Four types are currently supported: +// `INIT` frame: FIXHEADER + TrpcStreamInitMeta +// `DATA` frame: FIXHEADER + body (business serialized data) +// `FEEDBACK` frame: FIXHEADER + TrpcStreamFeedBackMeta (triggered strategy: high/low water level and timer) +// `CLOSE` frame: FIXHEADER + TrpcStreamCloseMeta type TrpcStreamFrameType int32 const ( - // 一应一答的默认取值 - TrpcStreamFrameType_TRPC_UNARY TrpcStreamFrameType = 0 - // 流式INIT帧类型 - TrpcStreamFrameType_TRPC_STREAM_FRAME_INIT TrpcStreamFrameType = 1 - // 流式DATA帧类型 - TrpcStreamFrameType_TRPC_STREAM_FRAME_DATA TrpcStreamFrameType = 2 - // 流式FEEDBACK帧类型 + TrpcStreamFrameType_TRPC_UNARY TrpcStreamFrameType = 0 + TrpcStreamFrameType_TRPC_STREAM_FRAME_INIT TrpcStreamFrameType = 1 + TrpcStreamFrameType_TRPC_STREAM_FRAME_DATA TrpcStreamFrameType = 2 TrpcStreamFrameType_TRPC_STREAM_FRAME_FEEDBACK TrpcStreamFrameType = 3 - // 流式CLOSE帧类型 - TrpcStreamFrameType_TRPC_STREAM_FRAME_CLOSE TrpcStreamFrameType = 4 + TrpcStreamFrameType_TRPC_STREAM_FRAME_CLOSE TrpcStreamFrameType = 4 ) // Enum value maps for TrpcStreamFrameType. @@ -188,13 +186,13 @@ func (TrpcStreamFrameType) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{2} } -// trpc流式关闭类型 +// The closed type of trpc stream protocol type TrpcStreamCloseType int32 const ( - // 正常单向流关闭 + // normal closes unidirectional flow TrpcStreamCloseType_TRPC_STREAM_CLOSE TrpcStreamCloseType = 0 - // 异常关闭双向流 + // Exception closes bidirectional stream TrpcStreamCloseType_TRPC_STREAM_RESET TrpcStreamCloseType = 1 ) @@ -237,11 +235,10 @@ func (TrpcStreamCloseType) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{3} } -// trpc协议版本 +// The version of trpc protocol type TrpcProtoVersion int32 const ( - // 默认版本 TrpcProtoVersion_TRPC_PROTO_V1 TrpcProtoVersion = 0 ) @@ -282,13 +279,13 @@ func (TrpcProtoVersion) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{4} } -// trpc协议中的调用类型 +// The call type of trpc protocol type TrpcCallType int32 const ( - // 一应一答调用,包括同步、异步 + // Unary(one-response-one-response), include sync and async TrpcCallType_TRPC_UNARY_CALL TrpcCallType = 0 - // 单向调用 + // Oneway TrpcCallType_TRPC_ONEWAY_CALL TrpcCallType = 1 ) @@ -331,21 +328,21 @@ func (TrpcCallType) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{5} } -// trpc协议中的消息透传支持的类型 +// The message type of the transparent transmission information type TrpcMessageType int32 const ( - // trpc 不用这个值,为了提供给 pb 工具生成代码 + // trpc does not use this value, it is used by the pb gen-code tool TrpcMessageType_TRPC_DEFAULT TrpcMessageType = 0 - // 染色 + // Dyeing message TrpcMessageType_TRPC_DYEING_MESSAGE TrpcMessageType = 1 - // 调用链 + // Tracing message TrpcMessageType_TRPC_TRACE_MESSAGE TrpcMessageType = 2 - // 多环境 + // Multi-Environment message TrpcMessageType_TRPC_MULTI_ENV_MESSAGE TrpcMessageType = 4 - // 灰度 + // grid message TrpcMessageType_TRPC_GRID_MESSAGE TrpcMessageType = 8 - // set名 + // SetNmae message TrpcMessageType_TRPC_SETNAME_MESSAGE TrpcMessageType = 16 ) @@ -396,9 +393,9 @@ func (TrpcMessageType) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{6} } -// trpc协议中 data 内容的编码类型 -// 默认使用pb -// 目前约定 0-127 范围的取值为框架规范的序列化方式,框架使用 +// The encoding type of the body data in the trpc protocol +// Use proto by default +// At present, it is agreed that the value in the range of 0-127 is used by the framework type TrpcContentEncodeType int32 const ( @@ -410,12 +407,18 @@ const ( TrpcContentEncodeType_TRPC_JSON_ENCODE TrpcContentEncodeType = 2 // flatbuffer TrpcContentEncodeType_TRPC_FLATBUFFER_ENCODE TrpcContentEncodeType = 3 - // 不序列化 + // text or binary TrpcContentEncodeType_TRPC_NOOP_ENCODE TrpcContentEncodeType = 4 // xml TrpcContentEncodeType_TRPC_XML_ENCODE TrpcContentEncodeType = 5 // thrift + // Due to historical reasons, the early implementation of thrift used binary encoding + // so the thrift here represents thrift-binary." TrpcContentEncodeType_TRPC_THRIFT_ENCODE TrpcContentEncodeType = 6 + // thrift-compact + TrpcContentEncodeType_TRPC_THRIFT_COMPACT_ENCODE TrpcContentEncodeType = 7 + // text/xml + TrpcContentEncodeType_TRPC_TEXT_XML_ENCODE TrpcContentEncodeType = 8 ) // Enum value maps for TrpcContentEncodeType. @@ -428,15 +431,19 @@ var ( 4: "TRPC_NOOP_ENCODE", 5: "TRPC_XML_ENCODE", 6: "TRPC_THRIFT_ENCODE", + 7: "TRPC_THRIFT_COMPACT_ENCODE", + 8: "TRPC_TEXT_XML_ENCODE", } TrpcContentEncodeType_value = map[string]int32{ - "TRPC_PROTO_ENCODE": 0, - "TRPC_JCE_ENCODE": 1, - "TRPC_JSON_ENCODE": 2, - "TRPC_FLATBUFFER_ENCODE": 3, - "TRPC_NOOP_ENCODE": 4, - "TRPC_XML_ENCODE": 5, - "TRPC_THRIFT_ENCODE": 6, + "TRPC_PROTO_ENCODE": 0, + "TRPC_JCE_ENCODE": 1, + "TRPC_JSON_ENCODE": 2, + "TRPC_FLATBUFFER_ENCODE": 3, + "TRPC_NOOP_ENCODE": 4, + "TRPC_XML_ENCODE": 5, + "TRPC_THRIFT_ENCODE": 6, + "TRPC_THRIFT_COMPACT_ENCODE": 7, + "TRPC_TEXT_XML_ENCODE": 8, } ) @@ -467,29 +474,29 @@ func (TrpcContentEncodeType) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{7} } -// trpc协议中 data 内容的压缩类型 -// 默认使用不压缩 +// The compressor type of the body data in the trpc protocol +// No compression by default type TrpcCompressType int32 const ( - // 默认不使用压缩 + // No compression TrpcCompressType_TRPC_DEFAULT_COMPRESS TrpcCompressType = 0 - // 使用gzip + // gzip TrpcCompressType_TRPC_GZIP_COMPRESS TrpcCompressType = 1 - // 使用snappy - // - // Deprecated: 建议使用 TRPC_SNAPPY_STREAM_COMPRESS/TRPC_SNAPPY_BLOCK_COMPRESS, 因为现在 - // trpc-go 和 trpc-cpp 分别的使用的是 stream、block 模式,二者不兼容,跨语言调用会出错 + // snappy(Deprecated) + // please use `TRPC_SNAPPY_STREAM_COMPRESS`/`TRPC_SNAPPY_BLOCK_COMPRESS`, + // Because trpc-go and trpc-cpp use stream and block modes respectively, + // the two are not compatible, and cross-language calls will make mistakes TrpcCompressType_TRPC_SNAPPY_COMPRESS TrpcCompressType = 2 - // 使用zlib + // zlib TrpcCompressType_TRPC_ZLIB_COMPRESS TrpcCompressType = 3 - // 使用 stream 模式的 snappy + // snappy stream TrpcCompressType_TRPC_SNAPPY_STREAM_COMPRESS TrpcCompressType = 4 - // 使用 block 模式的 snappy + // snappy block TrpcCompressType_TRPC_SNAPPY_BLOCK_COMPRESS TrpcCompressType = 5 - // 使用 frame 模式的 lz4 + // lz4 frame TrpcCompressType_TRPC_LZ4_FRAME_COMPRESS TrpcCompressType = 6 - // 使用 block 模式的 lz4 + // lz4 block TrpcCompressType_TRPC_LZ4_BLOCK_COMPRESS TrpcCompressType = 7 ) @@ -544,111 +551,107 @@ func (TrpcCompressType) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{8} } -// 框架层接口调用的返回码定义 +// The return code definition of the framework layer interface call type TrpcRetCode int32 const ( - // 调用成功 + // success TrpcRetCode_TRPC_INVOKE_SUCCESS TrpcRetCode = 0 - // 协议错误码 - // 服务端解码错误 + // server-side decode error TrpcRetCode_TRPC_SERVER_DECODE_ERR TrpcRetCode = 1 - // 服务端编码错误 + // server-side encode error TrpcRetCode_TRPC_SERVER_ENCODE_ERR TrpcRetCode = 2 - // service或者func路由错误码 - // 服务端没有调用相应的service实现 + // the server-side does not have a corresponding service implementation TrpcRetCode_TRPC_SERVER_NOSERVICE_ERR TrpcRetCode = 11 - // 服务端没有调用相应的接口实现 + // the server-side does not have a corresponding interface implementation TrpcRetCode_TRPC_SERVER_NOFUNC_ERR TrpcRetCode = 12 - // 超时/过载/限流错误码 - // 请求在服务端超时 + // the request timed out on the server-side TrpcRetCode_TRPC_SERVER_TIMEOUT_ERR TrpcRetCode = 21 - // 请求在服务端被过载保护而丢弃请求 - // 主要用在框架内部实现的过载保护插件上 + // the request is overloaded on the server-side and the request is discarded TrpcRetCode_TRPC_SERVER_OVERLOAD_ERR TrpcRetCode = 22 - // 请求在服务端被限流 - // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 + // the request is throttled on the server-side TrpcRetCode_TRPC_SERVER_LIMITED_ERR TrpcRetCode = 23 - // 请求在服务端因全链路超时时间而超时 + // The request is timed out on the server-side due to the full link timeout TrpcRetCode_TRPC_SERVER_FULL_LINK_TIMEOUT_ERR TrpcRetCode = 24 - // 服务端系统错误 + // server-side system error TrpcRetCode_TRPC_SERVER_SYSTEM_ERR TrpcRetCode = 31 - // 服务端鉴权失败错误 + // the server-side request authentication failed error TrpcRetCode_TRPC_SERVER_AUTH_ERR TrpcRetCode = 41 - // 服务端请求参数自动校验失败错误 + // the server-side request parameter automatic verification failed error TrpcRetCode_TRPC_SERVER_VALIDATE_ERR TrpcRetCode = 51 - // 超时错误码 - // 请求在客户端调用超时 + // timeout error code + // the request is timed out on the client-side TrpcRetCode_TRPC_CLIENT_INVOKE_TIMEOUT_ERR TrpcRetCode = 101 - // 请求在客户端因全链路超时时间而超时 + // the request is timed out on the client-side due to the full link timeout TrpcRetCode_TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR TrpcRetCode = 102 - // 网络相关错误码 - // 客户端连接错误 + // network or connection error code + // client-side connection error TrpcRetCode_TRPC_CLIENT_CONNECT_ERR TrpcRetCode = 111 - // 协议相关错误码 - // 客户端编码错误 + // protocol error code + // client-side encode error TrpcRetCode_TRPC_CLIENT_ENCODE_ERR TrpcRetCode = 121 - // 客户端解码错误 + // client-side decode error TrpcRetCode_TRPC_CLIENT_DECODE_ERR TrpcRetCode = 122 - // 过载保护/限流相关错误码 - // 请求在客户端被限流 - // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 + // client-side overload/limter error code + // the request is throttled on the client-side TrpcRetCode_TRPC_CLIENT_LIMITED_ERR TrpcRetCode = 123 - // 请求在客户端被过载保护而丢弃请求 - // 主要用在框架内部实现的过载保护插件上 + // The request is overloaded on the client-side and discarded TrpcRetCode_TRPC_CLIENT_OVERLOAD_ERR TrpcRetCode = 124 - // 路由相关错误码 - // 客户端选ip路由错误 + // service routing error code TrpcRetCode_TRPC_CLIENT_ROUTER_ERR TrpcRetCode = 131 - // 客户端网络错误 + // client-side network or connection error code TrpcRetCode_TRPC_CLIENT_NETWORK_ERR TrpcRetCode = 141 - // 客户端响应参数自动校验失败错误 + // client-side response parameter automatic verification failed error TrpcRetCode_TRPC_CLIENT_VALIDATE_ERR TrpcRetCode = 151 - // 上游主动断开连接,提前取消请求错误 + // upstream actively disconnected, early cancellation request error code TrpcRetCode_TRPC_CLIENT_CANCELED_ERR TrpcRetCode = 161 - // 客户端读取 Frame 错误 + // client-side read data frame error TrpcRetCode_TRPC_CLIENT_READ_FRAME_ERR TrpcRetCode = 171 - // 服务端流式网络错误, 详细错误码需要在实现过程中再梳理 + // server-side streaming network or connection error code TrpcRetCode_TRPC_STREAM_SERVER_NETWORK_ERR TrpcRetCode = 201 - // 服务端流式传输错误, 详细错误码需要在实现过程中再梳理 - // 比如:流消息过大等 + // server-side streaming error code + // stream message exceeds size limit TrpcRetCode_TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR TrpcRetCode = 211 - // 服务端流式编码错误 + // server-side streaming encode error code TrpcRetCode_TRPC_STREAM_SERVER_ENCODE_ERR TrpcRetCode = 221 - // 客户端流式编解码错误 + // server-side streaming decode error code TrpcRetCode_TRPC_STREAM_SERVER_DECODE_ERR TrpcRetCode = 222 - // 服务端流式写错误, 详细错误码需要在实现过程中再梳理 + // server-side stream write error code TrpcRetCode_TRPC_STREAM_SERVER_WRITE_END TrpcRetCode = 231 TrpcRetCode_TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR TrpcRetCode = 232 TrpcRetCode_TRPC_STREAM_SERVER_WRITE_CLOSE_ERR TrpcRetCode = 233 TrpcRetCode_TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR TrpcRetCode = 234 - // 服务端流式读错误, 详细错误码需要在实现过程中再梳理 + // server-side stream read error code TrpcRetCode_TRPC_STREAM_SERVER_READ_END TrpcRetCode = 251 TrpcRetCode_TRPC_STREAM_SERVER_READ_CLOSE_ERR TrpcRetCode = 252 TrpcRetCode_TRPC_STREAM_SERVER_READ_EMPTY_ERR TrpcRetCode = 253 TrpcRetCode_TRPC_STREAM_SERVER_READ_TIMEOUT_ERR TrpcRetCode = 254 - // 客户端流式网络错误, 详细错误码需要在实现过程中再梳理 + // server-side streaming timeout error code + TrpcRetCode_TRPC_STREAM_SERVER_IDLE_TIMEOUT_ERR TrpcRetCode = 255 + // client-side streaming network or connection error code TrpcRetCode_TRPC_STREAM_CLIENT_NETWORK_ERR TrpcRetCode = 301 - // 客户端流式传输错误, 详细错误码需要在实现过程中再梳理 - // 比如:流消息过大等 + // client-side streaming error code + // client-side stream message exceeds size limit TrpcRetCode_TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR TrpcRetCode = 311 - // 客户端流式编码错误 + // client-side streaming encode error code TrpcRetCode_TRPC_STREAM_CLIENT_ENCODE_ERR TrpcRetCode = 321 - // 客户端流式编解码错误 + // client-side streaming decode error code TrpcRetCode_TRPC_STREAM_CLIENT_DECODE_ERR TrpcRetCode = 322 - // 客户端流式写错误, 详细错误码需要在实现过程中再梳理 + // client-side stream write error code TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_END TrpcRetCode = 331 TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR TrpcRetCode = 332 TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR TrpcRetCode = 333 TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR TrpcRetCode = 334 - // 客户端流式读错误, 详细错误码需要在实现过程中再梳理 + // client-side stream read error code TrpcRetCode_TRPC_STREAM_CLIENT_READ_END TrpcRetCode = 351 TrpcRetCode_TRPC_STREAM_CLIENT_READ_CLOSE_ERR TrpcRetCode = 352 TrpcRetCode_TRPC_STREAM_CLIENT_READ_EMPTY_ERR TrpcRetCode = 353 TrpcRetCode_TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR TrpcRetCode = 354 - // 未明确的错误 + // client streaming timeout error + TrpcRetCode_TRPC_STREAM_CLIENT_IDLE_TIMEOUT_ERR TrpcRetCode = 355 + // unspecified error code(unary) TrpcRetCode_TRPC_INVOKE_UNKNOWN_ERR TrpcRetCode = 999 - // 未明确的错误 + // unspecified error code(stream) TrpcRetCode_TRPC_STREAM_UNKNOWN_ERR TrpcRetCode = 1000 ) @@ -691,6 +694,7 @@ var ( 252: "TRPC_STREAM_SERVER_READ_CLOSE_ERR", 253: "TRPC_STREAM_SERVER_READ_EMPTY_ERR", 254: "TRPC_STREAM_SERVER_READ_TIMEOUT_ERR", + 255: "TRPC_STREAM_SERVER_IDLE_TIMEOUT_ERR", 301: "TRPC_STREAM_CLIENT_NETWORK_ERR", 311: "TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR", 321: "TRPC_STREAM_CLIENT_ENCODE_ERR", @@ -703,6 +707,7 @@ var ( 352: "TRPC_STREAM_CLIENT_READ_CLOSE_ERR", 353: "TRPC_STREAM_CLIENT_READ_EMPTY_ERR", 354: "TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR", + 355: "TRPC_STREAM_CLIENT_IDLE_TIMEOUT_ERR", 999: "TRPC_INVOKE_UNKNOWN_ERR", 1000: "TRPC_STREAM_UNKNOWN_ERR", } @@ -743,6 +748,7 @@ var ( "TRPC_STREAM_SERVER_READ_CLOSE_ERR": 252, "TRPC_STREAM_SERVER_READ_EMPTY_ERR": 253, "TRPC_STREAM_SERVER_READ_TIMEOUT_ERR": 254, + "TRPC_STREAM_SERVER_IDLE_TIMEOUT_ERR": 255, "TRPC_STREAM_CLIENT_NETWORK_ERR": 301, "TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR": 311, "TRPC_STREAM_CLIENT_ENCODE_ERR": 321, @@ -755,6 +761,7 @@ var ( "TRPC_STREAM_CLIENT_READ_CLOSE_ERR": 352, "TRPC_STREAM_CLIENT_READ_EMPTY_ERR": 353, "TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR": 354, + "TRPC_STREAM_CLIENT_IDLE_TIMEOUT_ERR": 355, "TRPC_INVOKE_UNKNOWN_ERR": 999, "TRPC_STREAM_UNKNOWN_ERR": 1000, } @@ -787,25 +794,25 @@ func (TrpcRetCode) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{9} } -// trpc流式的流控帧头消息定义 +// The message definition of stream `INIT` frame type TrpcStreamInitMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // init请求元信息 + // request meta information RequestMeta *TrpcStreamInitRequestMeta `protobuf:"bytes,1,opt,name=request_meta,json=requestMeta,proto3" json:"request_meta,omitempty"` - // init响应元信息 + // response meta information ResponseMeta *TrpcStreamInitResponseMeta `protobuf:"bytes,2,opt,name=response_meta,json=responseMeta,proto3" json:"response_meta,omitempty"` - // 由接收端告知发送端初始的发送窗口大小 + // The window size is notified by the receiver to the sender InitWindowSize uint32 `protobuf:"varint,3,opt,name=init_window_size,json=initWindowSize,proto3" json:"init_window_size,omitempty"` - // 请求数据的序列化类型 - // 比如: proto/jce/json, 默认proto - // 具体值与TrpcContentEncodeType对应 + // The serialization type of the request data + // eg: proto/json/.., default proto + // The specific value corresponds to `TrpcContentEncodeType` ContentType uint32 `protobuf:"varint,4,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` - // 请求数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - // 具体值与TrpcCompressType对应 + // The compression type of the requested data + // eg: gzip/snappy/..., not used by default + // The specific value corresponds to `TrpcCompressType` ContentEncoding uint32 `protobuf:"varint,5,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` } @@ -876,30 +883,32 @@ func (x *TrpcStreamInitMeta) GetContentEncoding() uint32 { return 0 } -// trpc流式init头的请求元信息 +// The request meta information definition of stream `INIT` frame type TrpcStreamInitRequestMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 主调服务的名称 - // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 + // Caller name + // The specification format: trpc.application_name.server_name.proto_service_name, 4 segments Caller []byte `protobuf:"bytes,1,opt,name=caller,proto3" json:"caller,omitempty"` - // 被调服务的路由名称 - // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] - // 前4段是必须有,接口可选。 + // Callee name + // The specification format: trpc.application_name.server_name.proto_service_name[.interface_name] Callee []byte `protobuf:"bytes,2,opt,name=callee,proto3" json:"callee,omitempty"` - // 调用服务的接口名 - // 规范格式: /package.Service名称/接口名 + // Interface name of callee + // The specification format: /package.service_name/interface_name Func []byte `protobuf:"bytes,3,opt,name=func,proto3" json:"func,omitempty"` - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 + // The message type of the transparent transmission information + // such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // The specific value corresponds to `TrpcMessageType` MessageType uint32 `protobuf:"varint,4,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` - // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc-开头 - // 2是业务层要透传的信息,业务可以自行设置 - // 注意: trans_info中的key-value对会全链路透传,业务请谨慎使用! + // The information key-value pair transparently transmitted by the framework + // Currently divided into two parts: + // 1 part is the information to be transparently transmitted by the framework layer, + // and the name of the key must be started with `trpc-`` + // 2 part is the information to be transparently transmitted by the business layer, + // and the business can set it by itself, it is recommended to start with `app-``, not `trpc-` + // Note: The key-value pair in trans_info will be transparently transmitted through the whole link, please use it carefully for business. TransInfo map[string][]byte `protobuf:"bytes,5,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } @@ -970,17 +979,16 @@ func (x *TrpcStreamInitRequestMeta) GetTransInfo() map[string][]byte { return nil } -// trpc流式init头的响应元信息 +// The response meta information definition of stream `INIT` frame type TrpcStreamInitResponseMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 请求在框架层的错误返回码 - // 具体值与TrpcRetCode对应 + // Error code + // The specific value corresponds to `TrpcRetCode` Ret int32 `protobuf:"varint,1,opt,name=ret,proto3" json:"ret,omitempty"` - // 调用结果信息描述 - // 失败的时候用 + // The result information when the call fails ErrorMsg []byte `protobuf:"bytes,2,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` } @@ -1030,13 +1038,13 @@ func (x *TrpcStreamInitResponseMeta) GetErrorMsg() []byte { return nil } -// trpc流式的流控帧头元信息定义 +// The meta information definition of stream `FEEDBACK` frame type TrpcStreamFeedBackMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 增加的窗口大小 + // increased window size WindowSizeIncrement uint32 `protobuf:"varint,1,opt,name=window_size_increment,json=windowSizeIncrement,proto3" json:"window_size_increment,omitempty"` } @@ -1079,29 +1087,33 @@ func (x *TrpcStreamFeedBackMeta) GetWindowSizeIncrement() uint32 { return 0 } -// trpc流式的RESET帧头消息定义 +// The meta information definition of trpc stream protocol for closing stream type TrpcStreamCloseMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 关闭的类型,关闭一端,还是全部关闭 + // The type of stream closure, close one end, or close all CloseType int32 `protobuf:"varint,1,opt,name=close_type,json=closeType,proto3" json:"close_type,omitempty"` - // close返回码 - // 代表框架层的错误 + // Error code + // The specific value corresponds to `TrpcRetCode` Ret int32 `protobuf:"varint,2,opt,name=ret,proto3" json:"ret,omitempty"` - // close信息描述 + // The result information when the call fails Msg []byte `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 + // The message type of the transparent transmission information + // such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // The specific value corresponds to `TrpcMessageType` MessageType uint32 `protobuf:"varint,4,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` - // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc-开头 - // 2是业务层要透传的信息,业务可以自行设置 + // The information key-value pair transparently transmitted by the framework + // Currently divided into two parts: + // 1 part is the information to be transparently transmitted by the framework layer, + // and the name of the key must be started with `trpc-`` + // 2 part is the information to be transparently transmitted by the business layer, + // and the business can set it by itself, it is recommended to start with `app-``, not `trpc-` + // Note: The key-value pair in trans_info will be transparently transmitted through the whole link, please use it carefully for business. TransInfo map[string][]byte `protobuf:"bytes,5,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // 接口的错误返回码 - // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + // The error code of the interface + // 0 means success, other means failure FuncRet int32 `protobuf:"varint,6,opt,name=func_ret,json=funcRet,proto3" json:"func_ret,omitempty"` } @@ -1179,50 +1191,53 @@ func (x *TrpcStreamCloseMeta) GetFuncRet() int32 { return 0 } -// 请求协议头 +// The request header for unary type RequestProtocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 协议版本 - // 具体值与TrpcProtoVersion对应 + // The version of protocol + // The specific value corresponds to `TrpcProtoVersion` Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` - // 请求的调用类型 - // 比如: 普通调用,单向调用 - // 具体值与TrpcCallType对应 + // Call type + // eg: unary, one-way + // The specific value corresponds to `TrpcCallType` CallType uint32 `protobuf:"varint,2,opt,name=call_type,json=callType,proto3" json:"call_type,omitempty"` - // 请求唯一id + // The unique id of the request(on the conneciton) RequestId uint32 `protobuf:"varint,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` - // 请求的超时时间,单位ms + // The timeout of the request(ms) Timeout uint32 `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"` - // 主调服务的名称 - // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 + // Caller name + // The specification format: trpc.application_name.server_name.proto_service_name, 4 segments Caller []byte `protobuf:"bytes,5,opt,name=caller,proto3" json:"caller,omitempty"` - // 被调服务的路由名称 - // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] - // 前4段是必须有,接口可选。 + // Callee name + // The specification format: trpc.application_name.server_name.proto_service_name[.interface_name] Callee []byte `protobuf:"bytes,6,opt,name=callee,proto3" json:"callee,omitempty"` - // 调用服务的接口名 - // 规范格式: /package.Service名称/接口名 + // Interface name of callee + // The specification format: /package.service_name/interface_name Func []byte `protobuf:"bytes,7,opt,name=func,proto3" json:"func,omitempty"` - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 + // The message type of the transparent transmission information + // such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // The specific value corresponds to `TrpcMessageType` MessageType uint32 `protobuf:"varint,8,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` - // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc-开头 - // 2是业务层要透传的信息,业务可以自行设置 + // The information key-value pair transparently transmitted by the framework + // Currently divided into two parts: + // 1 part is the information to be transparently transmitted by the framework layer, + // and the name of the key must be started with `trpc-`` + // 2 part is the information to be transparently transmitted by the business layer, + // and the business can set it by itself, it is recommended to start with `app-``, not `trpc-` + // Note: The key-value pair in trans_info will be transparently transmitted through the whole link, please use it carefully for business. TransInfo map[string][]byte `protobuf:"bytes,9,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // 请求数据的序列化类型 - // 比如: proto/jce/json, 默认proto - // 具体值与TrpcContentEncodeType对应 + // The serialization type of the request data + // eg: proto/json/.., default proto + // The specific value corresponds to `TrpcContentEncodeType` ContentType uint32 `protobuf:"varint,10,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` - // 请求数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - // 具体值与TrpcCompressType对应 + // The compression type of the requested data + // eg: gzip/snappy/..., not used by default + // The specific value corresponds to `TrpcCompressType` ContentEncoding uint32 `protobuf:"varint,11,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` - // attachment大小 + // The size of attachment data AttachmentSize uint32 `protobuf:"varint,12,opt,name=attachment_size,json=attachmentSize,proto3" json:"attachment_size,omitempty"` } @@ -1342,48 +1357,49 @@ func (x *RequestProtocol) GetAttachmentSize() uint32 { return 0 } -// 响应协议头 +// The response header for unary type ResponseProtocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 协议版本 - // 具体值与TrpcProtoVersion对应 + // The version of protocol + // The specific value corresponds to `TrpcProtoVersion` Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` - // 请求的调用类型 - // 比如: 普通调用,单向调用 - // 具体值与TrpcCallType对应 + // Call type + // eg: unary, one-way + // The specific value corresponds to `TrpcCallType` CallType uint32 `protobuf:"varint,2,opt,name=call_type,json=callType,proto3" json:"call_type,omitempty"` - // 请求唯一id + // The unique id of the request(on the conneciton) RequestId uint32 `protobuf:"varint,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` - // 请求在框架层的错误返回码 - // 具体值与TrpcRetCode对应 + // Error code + // The specific value corresponds to `TrpcRetCode` Ret int32 `protobuf:"varint,4,opt,name=ret,proto3" json:"ret,omitempty"` - // 接口的错误返回码 - // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + // The error code of the interface + // 0 means success, other means failure FuncRet int32 `protobuf:"varint,5,opt,name=func_ret,json=funcRet,proto3" json:"func_ret,omitempty"` - // 调用结果信息描述 - // 失败的时候用 + // The result information when the call fails ErrorMsg []byte `protobuf:"bytes,6,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 + // The message type of the transparent transmission information + // such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // The specific value corresponds to `TrpcMessageType` MessageType uint32 `protobuf:"varint,7,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` - // 框架透传回来的信息key-value对, - // 目前分两部分 - // 1是框架层透传回来的信息,key的名字要以trpc-开头 - // 2是业务层透传回来的信息,业务可以自行设置 + // The information key-value pair transparently transmitted by the framework + // Currently divided into two parts: + // 1 part is the information to be transparently transmitted by the framework layer, + // and the name of the key must be started with `trpc-`` + // 2 part is the information to be transparently transmitted by the business layer, + // and the business can set it by itself, it is recommended to start with `app-``, not `trpc-` TransInfo map[string][]byte `protobuf:"bytes,8,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // 响应数据的编码类型 - // 比如: proto/jce/json, 默认proto - // 具体值与TrpcContentEncodeType对应 + // The serialization type of the request data + // eg: proto/json/.., default proto + // The specific value corresponds to `TrpcContentEncodeType` ContentType uint32 `protobuf:"varint,9,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` - // 响应数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - // 具体值与TrpcCompressType对应 + // The compression type of the requested data + // eg: gzip/snappy/..., not used by default + // The specific value corresponds to `TrpcCompressType` ContentEncoding uint32 `protobuf:"varint,10,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` - // attachment大小 + // The size of attachment data AttachmentSize uint32 `protobuf:"varint,12,opt,name=attachment_size,json=attachmentSize,proto3" json:"attachment_size,omitempty"` } @@ -1660,7 +1676,7 @@ var file_trpc_trpc_proto_rawDesc = []byte{ 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x52, 0x49, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x08, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x54, 0x4e, 0x41, 0x4d, - 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x10, 0x2a, 0xb8, 0x01, 0x0a, 0x15, + 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x10, 0x2a, 0xf2, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, @@ -1672,138 +1688,147 @@ var file_trpc_trpc_proto_rawDesc = []byte{ 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x58, 0x4d, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x46, 0x54, 0x5f, 0x45, 0x4e, - 0x43, 0x4f, 0x44, 0x45, 0x10, 0x06, 0x2a, 0xf2, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x70, 0x63, 0x43, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, - 0x52, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, - 0x5a, 0x49, 0x50, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x18, - 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x43, 0x4f, - 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x5a, 0x4c, 0x49, 0x42, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, - 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, - 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, - 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, - 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4c, 0x5a, 0x34, 0x5f, 0x46, 0x52, - 0x41, 0x4d, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x06, 0x12, 0x1b, - 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4c, 0x5a, 0x34, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x07, 0x2a, 0xd1, 0x0d, 0x0a, 0x0b, - 0x54, 0x72, 0x70, 0x63, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, - 0x53, 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x01, + 0x43, 0x4f, 0x44, 0x45, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, + 0x48, 0x52, 0x49, 0x46, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x43, 0x54, 0x5f, 0x45, 0x4e, + 0x43, 0x4f, 0x44, 0x45, 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, + 0x45, 0x58, 0x54, 0x5f, 0x58, 0x4d, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x08, + 0x2a, 0xf2, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, + 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x00, + 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x5a, 0x49, 0x50, 0x5f, 0x43, 0x4f, + 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, + 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x5a, 0x4c, 0x49, 0x42, 0x5f, + 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x4c, 0x5a, 0x34, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x43, 0x4f, + 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x4c, 0x5a, 0x34, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, + 0x45, 0x53, 0x53, 0x10, 0x07, 0x2a, 0xa5, 0x0e, 0x0a, 0x0b, 0x54, 0x72, 0x70, 0x63, 0x52, 0x65, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, + 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x1a, + 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, + 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, + 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, + 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x15, 0x12, 0x1c, + 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4f, 0x56, + 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x16, 0x12, 0x1b, 0x0a, 0x17, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, + 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x17, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, + 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x18, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, - 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x53, 0x45, - 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x46, 0x55, 0x4e, - 0x43, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0x15, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0x16, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, - 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x17, 0x12, - 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x46, - 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0x18, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, - 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x29, 0x12, 0x1c, 0x0a, 0x18, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x49, - 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x33, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, - 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x65, 0x12, 0x25, - 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x55, - 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0x66, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, - 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0x6f, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, - 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x79, 0x12, 0x1a, - 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, - 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7a, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, - 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7b, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0x7c, 0x12, 0x1b, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, - 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0x83, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, - 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x8d, 0x01, - 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, - 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x97, 0x01, 0x12, - 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, - 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xa1, 0x01, 0x12, 0x1f, - 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, - 0x41, 0x44, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xab, 0x01, 0x12, - 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, - 0x52, 0x10, 0xc9, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, - 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, - 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0xd3, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0xdd, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, - 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xde, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, - 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xe7, 0x01, 0x12, 0x2a, 0x0a, - 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, - 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, + 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x29, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0x33, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, + 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, + 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x66, 0x12, + 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, + 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x6f, 0x12, 0x1a, 0x0a, 0x16, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, + 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0x7a, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0x7b, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7c, 0x12, + 0x1b, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, + 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x83, 0x01, 0x12, 0x1c, 0x0a, 0x17, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, + 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x8d, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, + 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x97, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, + 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xa1, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x46, 0x52, 0x41, + 0x4d, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xab, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, - 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0xe9, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, - 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xea, 0x01, 0x12, 0x20, 0x0a, - 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xfb, 0x01, 0x12, - 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfc, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, - 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfd, 0x01, 0x12, - 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, - 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfe, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, - 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xad, 0x02, 0x12, 0x2c, - 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, - 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, - 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xb7, 0x02, 0x12, 0x22, 0x0a, 0x1d, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, - 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc1, 0x02, + 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc9, 0x01, 0x12, 0x2c, + 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, + 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, + 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xd3, 0x01, 0x12, 0x22, 0x0a, 0x1d, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, + 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xdd, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, - 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, - 0x52, 0x10, 0xc2, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, - 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, - 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xcb, 0x02, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xde, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, + 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xe7, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0xcc, 0x02, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, - 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, - 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcd, 0x02, 0x12, 0x29, 0x0a, 0x24, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, - 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0xce, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, - 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xdf, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, - 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe0, - 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, - 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, - 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe1, 0x02, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, + 0x10, 0xe8, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, + 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, + 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe9, 0x01, 0x12, 0x29, 0x0a, 0x24, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, + 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xea, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, + 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xfb, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfc, + 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, + 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfd, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0xe2, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, - 0x4b, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe7, - 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, - 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x07, 0x42, - 0x60, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, - 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, 0x0c, 0x54, 0x52, 0x50, 0x43, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5a, 0x28, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, - 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x10, 0xfe, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, + 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x54, + 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xff, 0x01, 0x12, 0x23, 0x0a, + 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0xad, 0x02, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, + 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xb7, 0x02, + 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, + 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xc1, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, + 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc2, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, + 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xcb, 0x02, 0x12, 0x2a, 0x0a, 0x25, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcc, 0x02, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, + 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcd, 0x02, + 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, + 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, + 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xce, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xdf, 0x02, 0x12, 0x26, 0x0a, + 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0xe0, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, + 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe1, 0x02, 0x12, 0x28, 0x0a, + 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe2, 0x02, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, + 0x4c, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe3, + 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, + 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe7, 0x07, 0x12, + 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x07, 0x42, 0x60, 0x0a, + 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, 0x0c, 0x54, 0x52, 0x50, 0x43, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5a, 0x28, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/go/trpc/v2/api/annotations.pb.go b/pb/go/trpc/v2/api/annotations.pb.go new file mode 100644 index 0000000..d934201 --- /dev/null +++ b/pb/go/trpc/v2/api/annotations.pb.go @@ -0,0 +1,106 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v5.27.1 +// source: trpc/v2/api/annotations.proto + +package api + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" + reflect "reflect" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +var file_trpc_v2_api_annotations_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptorpb.MethodOptions)(nil), + ExtensionType: (*HttpRule)(nil), + Field: 1157, + Name: "trpc.v2.api.http", + Tag: "bytes,1157,opt,name=http", + Filename: "trpc/v2/api/annotations.proto", + }, +} + +// Extension fields to descriptorpb.MethodOptions. +var ( + // optional trpc.v2.api.HttpRule http = 1157; + E_Http = &file_trpc_v2_api_annotations_proto_extTypes[0] +) + +var File_trpc_v2_api_annotations_proto protoreflect.FileDescriptor + +var file_trpc_v2_api_annotations_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x0b, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x1a, 0x16, 0x74, 0x72, + 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x4a, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x12, 0x1e, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x85, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x68, 0x74, + 0x74, 0x70, 0x42, 0x50, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, + 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x65, 0x78, 0x74, 0x5a, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, + 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, + 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_trpc_v2_api_annotations_proto_goTypes = []interface{}{ + (*descriptorpb.MethodOptions)(nil), // 0: google.protobuf.MethodOptions + (*HttpRule)(nil), // 1: trpc.v2.api.HttpRule +} +var file_trpc_v2_api_annotations_proto_depIdxs = []int32{ + 0, // 0: trpc.v2.api.http:extendee -> google.protobuf.MethodOptions + 1, // 1: trpc.v2.api.http:type_name -> trpc.v2.api.HttpRule + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 1, // [1:2] is the sub-list for extension type_name + 0, // [0:1] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_trpc_v2_api_annotations_proto_init() } +func file_trpc_v2_api_annotations_proto_init() { + if File_trpc_v2_api_annotations_proto != nil { + return + } + file_trpc_v2_api_http_proto_init() + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpc_v2_api_annotations_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 1, + NumServices: 0, + }, + GoTypes: file_trpc_v2_api_annotations_proto_goTypes, + DependencyIndexes: file_trpc_v2_api_annotations_proto_depIdxs, + ExtensionInfos: file_trpc_v2_api_annotations_proto_extTypes, + }.Build() + File_trpc_v2_api_annotations_proto = out.File + file_trpc_v2_api_annotations_proto_rawDesc = nil + file_trpc_v2_api_annotations_proto_goTypes = nil + file_trpc_v2_api_annotations_proto_depIdxs = nil +} diff --git a/pb/go/trpc/v2/api/http.pb.go b/pb/go/trpc/v2/api/http.pb.go new file mode 100644 index 0000000..691fc4b --- /dev/null +++ b/pb/go/trpc/v2/api/http.pb.go @@ -0,0 +1,410 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v5.27.1 +// source: trpc/v2/api/http.proto + +package api + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type HttpRule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Selects a method to which this rule applies. + // + // Refer to [selector][google.api.DocumentationRule.selector] for syntax details. + Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"` + // Determines the URL pattern is matched by this rules. This pattern can be + // used with any of the {get|put|post|delete|patch} methods. A custom method + // can be defined using the 'custom' field. + // + // Types that are assignable to Pattern: + // *HttpRule_Get + // *HttpRule_Put + // *HttpRule_Post + // *HttpRule_Delete + // *HttpRule_Patch + // *HttpRule_Custom + Pattern isHttpRule_Pattern `protobuf_oneof:"pattern"` + // The name of the request field whose value is mapped to the HTTP request + // body, or `*` for mapping all request fields not captured by the path + // pattern to the HTTP body, or omitted for not having any HTTP request body. + // + // NOTE: the referred field must be present at the top-level of the request + // message type. + Body string `protobuf:"bytes,7,opt,name=body,proto3" json:"body,omitempty"` + // Optional. The name of the response field whose value is mapped to the HTTP + // response body. When omitted, the entire response message will be used + // as the HTTP response body. + // + // NOTE: The referred field must be present at the top-level of the response + // message type. + ResponseBody string `protobuf:"bytes,12,opt,name=response_body,json=responseBody,proto3" json:"response_body,omitempty"` + // Additional HTTP bindings for the selector. Nested bindings must + // not contain an `additional_bindings` field themselves (that is, + // the nesting may only be one level deep). + AdditionalBindings []*HttpRule `protobuf:"bytes,11,rep,name=additional_bindings,json=additionalBindings,proto3" json:"additional_bindings,omitempty"` +} + +func (x *HttpRule) Reset() { + *x = HttpRule{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_api_http_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HttpRule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HttpRule) ProtoMessage() {} + +func (x *HttpRule) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_api_http_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HttpRule.ProtoReflect.Descriptor instead. +func (*HttpRule) Descriptor() ([]byte, []int) { + return file_trpc_v2_api_http_proto_rawDescGZIP(), []int{0} +} + +func (x *HttpRule) GetSelector() string { + if x != nil { + return x.Selector + } + return "" +} + +func (m *HttpRule) GetPattern() isHttpRule_Pattern { + if m != nil { + return m.Pattern + } + return nil +} + +func (x *HttpRule) GetGet() string { + if x, ok := x.GetPattern().(*HttpRule_Get); ok { + return x.Get + } + return "" +} + +func (x *HttpRule) GetPut() string { + if x, ok := x.GetPattern().(*HttpRule_Put); ok { + return x.Put + } + return "" +} + +func (x *HttpRule) GetPost() string { + if x, ok := x.GetPattern().(*HttpRule_Post); ok { + return x.Post + } + return "" +} + +func (x *HttpRule) GetDelete() string { + if x, ok := x.GetPattern().(*HttpRule_Delete); ok { + return x.Delete + } + return "" +} + +func (x *HttpRule) GetPatch() string { + if x, ok := x.GetPattern().(*HttpRule_Patch); ok { + return x.Patch + } + return "" +} + +func (x *HttpRule) GetCustom() *CustomHttpPattern { + if x, ok := x.GetPattern().(*HttpRule_Custom); ok { + return x.Custom + } + return nil +} + +func (x *HttpRule) GetBody() string { + if x != nil { + return x.Body + } + return "" +} + +func (x *HttpRule) GetResponseBody() string { + if x != nil { + return x.ResponseBody + } + return "" +} + +func (x *HttpRule) GetAdditionalBindings() []*HttpRule { + if x != nil { + return x.AdditionalBindings + } + return nil +} + +type isHttpRule_Pattern interface { + isHttpRule_Pattern() +} + +type HttpRule_Get struct { + // Maps to HTTP GET. Used for listing and getting information about + // resources. + Get string `protobuf:"bytes,2,opt,name=get,proto3,oneof"` +} + +type HttpRule_Put struct { + // Maps to HTTP PUT. Used for replacing a resource. + Put string `protobuf:"bytes,3,opt,name=put,proto3,oneof"` +} + +type HttpRule_Post struct { + // Maps to HTTP POST. Used for creating a resource or performing an action. + Post string `protobuf:"bytes,4,opt,name=post,proto3,oneof"` +} + +type HttpRule_Delete struct { + // Maps to HTTP DELETE. Used for deleting a resource. + Delete string `protobuf:"bytes,5,opt,name=delete,proto3,oneof"` +} + +type HttpRule_Patch struct { + // Maps to HTTP PATCH. Used for updating a resource. + Patch string `protobuf:"bytes,6,opt,name=patch,proto3,oneof"` +} + +type HttpRule_Custom struct { + // The custom pattern is used for specifying an HTTP method that is not + // included in the `pattern` field, such as HEAD, or "*" to leave the + // HTTP method unspecified for this rule. The wild-card rule is useful + // for services that provide content to Web (HTML) clients. + Custom *CustomHttpPattern `protobuf:"bytes,8,opt,name=custom,proto3,oneof"` +} + +func (*HttpRule_Get) isHttpRule_Pattern() {} + +func (*HttpRule_Put) isHttpRule_Pattern() {} + +func (*HttpRule_Post) isHttpRule_Pattern() {} + +func (*HttpRule_Delete) isHttpRule_Pattern() {} + +func (*HttpRule_Patch) isHttpRule_Pattern() {} + +func (*HttpRule_Custom) isHttpRule_Pattern() {} + +// A custom pattern is used for defining custom HTTP verb. +type CustomHttpPattern struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of this custom HTTP verb. + Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"` + // The path matched by this custom verb. + Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` +} + +func (x *CustomHttpPattern) Reset() { + *x = CustomHttpPattern{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_api_http_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CustomHttpPattern) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CustomHttpPattern) ProtoMessage() {} + +func (x *CustomHttpPattern) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_api_http_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CustomHttpPattern.ProtoReflect.Descriptor instead. +func (*CustomHttpPattern) Descriptor() ([]byte, []int) { + return file_trpc_v2_api_http_proto_rawDescGZIP(), []int{1} +} + +func (x *CustomHttpPattern) GetKind() string { + if x != nil { + return x.Kind + } + return "" +} + +func (x *CustomHttpPattern) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +var File_trpc_v2_api_http_proto protoreflect.FileDescriptor + +var file_trpc_v2_api_http_proto_rawDesc = []byte{ + 0x0a, 0x16, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, + 0x74, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, + 0x32, 0x2e, 0x61, 0x70, 0x69, 0x22, 0xdc, 0x02, 0x0a, 0x08, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, + 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x12, + 0x0a, 0x03, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x67, + 0x65, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x03, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x06, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x38, + 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x48, 0x74, 0x74, 0x70, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x23, 0x0a, 0x0d, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x6f, 0x64, + 0x79, 0x12, 0x46, 0x0a, 0x13, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, + 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, + 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x12, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x22, 0x3b, 0x0a, 0x11, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x74, + 0x74, 0x70, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x42, 0x50, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, + 0x78, 0x74, 0x5a, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, + 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_trpc_v2_api_http_proto_rawDescOnce sync.Once + file_trpc_v2_api_http_proto_rawDescData = file_trpc_v2_api_http_proto_rawDesc +) + +func file_trpc_v2_api_http_proto_rawDescGZIP() []byte { + file_trpc_v2_api_http_proto_rawDescOnce.Do(func() { + file_trpc_v2_api_http_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_v2_api_http_proto_rawDescData) + }) + return file_trpc_v2_api_http_proto_rawDescData +} + +var file_trpc_v2_api_http_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_trpc_v2_api_http_proto_goTypes = []interface{}{ + (*HttpRule)(nil), // 0: trpc.v2.api.HttpRule + (*CustomHttpPattern)(nil), // 1: trpc.v2.api.CustomHttpPattern +} +var file_trpc_v2_api_http_proto_depIdxs = []int32{ + 1, // 0: trpc.v2.api.HttpRule.custom:type_name -> trpc.v2.api.CustomHttpPattern + 0, // 1: trpc.v2.api.HttpRule.additional_bindings:type_name -> trpc.v2.api.HttpRule + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_trpc_v2_api_http_proto_init() } +func file_trpc_v2_api_http_proto_init() { + if File_trpc_v2_api_http_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_trpc_v2_api_http_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HttpRule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_api_http_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CustomHttpPattern); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_trpc_v2_api_http_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*HttpRule_Get)(nil), + (*HttpRule_Put)(nil), + (*HttpRule_Post)(nil), + (*HttpRule_Delete)(nil), + (*HttpRule_Patch)(nil), + (*HttpRule_Custom)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpc_v2_api_http_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_trpc_v2_api_http_proto_goTypes, + DependencyIndexes: file_trpc_v2_api_http_proto_depIdxs, + MessageInfos: file_trpc_v2_api_http_proto_msgTypes, + }.Build() + File_trpc_v2_api_http_proto = out.File + file_trpc_v2_api_http_proto_rawDesc = nil + file_trpc_v2_api_http_proto_goTypes = nil + file_trpc_v2_api_http_proto_depIdxs = nil +} diff --git a/pb/go/trpc/v2/go.mod b/pb/go/trpc/v2/go.mod new file mode 100644 index 0000000..0b1dcf2 --- /dev/null +++ b/pb/go/trpc/v2/go.mod @@ -0,0 +1,5 @@ +module trpc.group/trpc/trpc-protocol/pb/go/trpc/v2 + +go 1.16 + +require google.golang.org/protobuf v1.36.6 diff --git a/pb/go/trpc/v2/go.sum b/pb/go/trpc/v2/go.sum new file mode 100644 index 0000000..6ec03ed --- /dev/null +++ b/pb/go/trpc/v2/go.sum @@ -0,0 +1,8 @@ +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +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.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= diff --git a/pb/go/trpc/v2/proto/trpc_options.pb.go b/pb/go/trpc/v2/proto/trpc_options.pb.go new file mode 100644 index 0000000..ca14472 --- /dev/null +++ b/pb/go/trpc/v2/proto/trpc_options.pb.go @@ -0,0 +1,120 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v5.27.1 +// source: trpc/v2/proto/trpc_options.proto + +package proto + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" + reflect "reflect" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +var file_trpc_v2_proto_trpc_options_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptorpb.MethodOptions)(nil), + ExtensionType: (*string)(nil), + Field: 1155, + Name: "trpc.v2.alias", + Tag: "bytes,1155,opt,name=alias", + Filename: "trpc/v2/proto/trpc_options.proto", + }, + { + ExtendedType: (*descriptorpb.FieldOptions)(nil), + ExtensionType: (*string)(nil), + Field: 1156, + Name: "trpc.v2.go_tag", + Tag: "bytes,1156,opt,name=go_tag", + Filename: "trpc/v2/proto/trpc_options.proto", + }, +} + +// Extension fields to descriptorpb.MethodOptions. +var ( + // optional string alias = 1155; + E_Alias = &file_trpc_v2_proto_trpc_options_proto_extTypes[0] +) + +// Extension fields to descriptorpb.FieldOptions. +var ( + // optional string go_tag = 1156; + E_GoTag = &file_trpc_v2_proto_trpc_options_proto_extTypes[1] +) + +var File_trpc_v2_proto_trpc_options_proto protoreflect.FileDescriptor + +var file_trpc_v2_proto_trpc_options_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x74, 0x72, 0x70, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x07, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x1a, 0x20, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x35, 0x0a, + 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x83, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, + 0x6c, 0x69, 0x61, 0x73, 0x3a, 0x35, 0x0a, 0x06, 0x67, 0x6f, 0x5f, 0x74, 0x61, 0x67, 0x12, 0x1d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x84, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x6f, 0x54, 0x61, 0x67, 0x42, 0x52, 0x0a, 0x1d, 0x63, + 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x31, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, + 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, + 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_trpc_v2_proto_trpc_options_proto_goTypes = []interface{}{ + (*descriptorpb.MethodOptions)(nil), // 0: google.protobuf.MethodOptions + (*descriptorpb.FieldOptions)(nil), // 1: google.protobuf.FieldOptions +} +var file_trpc_v2_proto_trpc_options_proto_depIdxs = []int32{ + 0, // 0: trpc.v2.alias:extendee -> google.protobuf.MethodOptions + 1, // 1: trpc.v2.go_tag:extendee -> google.protobuf.FieldOptions + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 0, // [0:2] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_trpc_v2_proto_trpc_options_proto_init() } +func file_trpc_v2_proto_trpc_options_proto_init() { + if File_trpc_v2_proto_trpc_options_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpc_v2_proto_trpc_options_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 2, + NumServices: 0, + }, + GoTypes: file_trpc_v2_proto_trpc_options_proto_goTypes, + DependencyIndexes: file_trpc_v2_proto_trpc_options_proto_depIdxs, + ExtensionInfos: file_trpc_v2_proto_trpc_options_proto_extTypes, + }.Build() + File_trpc_v2_proto_trpc_options_proto = out.File + file_trpc_v2_proto_trpc_options_proto_rawDesc = nil + file_trpc_v2_proto_trpc_options_proto_goTypes = nil + file_trpc_v2_proto_trpc_options_proto_depIdxs = nil +} diff --git a/pb/go/trpc/v2/swagger/swagger.pb.go b/pb/go/trpc/v2/swagger/swagger.pb.go new file mode 100644 index 0000000..5990a11 --- /dev/null +++ b/pb/go/trpc/v2/swagger/swagger.pb.go @@ -0,0 +1,297 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v5.27.1 +// source: trpc/v2/swagger/swagger.proto + +package swagger + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// to gen swagger json +type SwaggerRule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,50103,opt,name=title,proto3" json:"title,omitempty"` + Method string `protobuf:"bytes,50104,opt,name=method,proto3" json:"method,omitempty"` + Description string `protobuf:"bytes,50105,opt,name=description,proto3" json:"description,omitempty"` + Params []*SwaggerParam `protobuf:"bytes,50106,rep,name=params,proto3" json:"params,omitempty"` +} + +func (x *SwaggerRule) Reset() { + *x = SwaggerRule{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_swagger_swagger_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwaggerRule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwaggerRule) ProtoMessage() {} + +func (x *SwaggerRule) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_swagger_swagger_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwaggerRule.ProtoReflect.Descriptor instead. +func (*SwaggerRule) Descriptor() ([]byte, []int) { + return file_trpc_v2_swagger_swagger_proto_rawDescGZIP(), []int{0} +} + +func (x *SwaggerRule) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *SwaggerRule) GetMethod() string { + if x != nil { + return x.Method + } + return "" +} + +func (x *SwaggerRule) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *SwaggerRule) GetParams() []*SwaggerParam { + if x != nil { + return x.Params + } + return nil +} + +type SwaggerParam struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Required bool `protobuf:"varint,2,opt,name=required,proto3" json:"required,omitempty"` + Default string `protobuf:"bytes,3,opt,name=default,proto3" json:"default,omitempty"` +} + +func (x *SwaggerParam) Reset() { + *x = SwaggerParam{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_swagger_swagger_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwaggerParam) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwaggerParam) ProtoMessage() {} + +func (x *SwaggerParam) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_swagger_swagger_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwaggerParam.ProtoReflect.Descriptor instead. +func (*SwaggerParam) Descriptor() ([]byte, []int) { + return file_trpc_v2_swagger_swagger_proto_rawDescGZIP(), []int{1} +} + +func (x *SwaggerParam) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *SwaggerParam) GetRequired() bool { + if x != nil { + return x.Required + } + return false +} + +func (x *SwaggerParam) GetDefault() string { + if x != nil { + return x.Default + } + return "" +} + +var file_trpc_v2_swagger_swagger_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptorpb.MethodOptions)(nil), + ExtensionType: (*SwaggerRule)(nil), + Field: 1156, + Name: "trpc.v2.swagger", + Tag: "bytes,1156,opt,name=swagger", + Filename: "trpc/v2/swagger/swagger.proto", + }, +} + +// Extension fields to descriptorpb.MethodOptions. +var ( + // optional trpc.v2.SwaggerRule swagger = 1156; + E_Swagger = &file_trpc_v2_swagger_swagger_proto_extTypes[0] +) + +var File_trpc_v2_swagger_swagger_proto protoreflect.FileDescriptor + +var file_trpc_v2_swagger_swagger_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, + 0x72, 0x2f, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x07, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x94, 0x01, 0x0a, 0x0b, 0x53, + 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x18, 0xb7, 0x87, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0xb8, 0x87, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x22, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xb9, 0x87, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x2f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0xba, 0x87, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x77, 0x61, + 0x67, 0x67, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x22, 0x58, 0x0a, 0x0c, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x4f, 0x0a, 0x07, 0x73, + 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x84, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x52, + 0x75, 0x6c, 0x65, 0x52, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x42, 0x54, 0x0a, 0x1d, + 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x33, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, + 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x77, 0x61, 0x67, 0x67, + 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_trpc_v2_swagger_swagger_proto_rawDescOnce sync.Once + file_trpc_v2_swagger_swagger_proto_rawDescData = file_trpc_v2_swagger_swagger_proto_rawDesc +) + +func file_trpc_v2_swagger_swagger_proto_rawDescGZIP() []byte { + file_trpc_v2_swagger_swagger_proto_rawDescOnce.Do(func() { + file_trpc_v2_swagger_swagger_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_v2_swagger_swagger_proto_rawDescData) + }) + return file_trpc_v2_swagger_swagger_proto_rawDescData +} + +var file_trpc_v2_swagger_swagger_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_trpc_v2_swagger_swagger_proto_goTypes = []interface{}{ + (*SwaggerRule)(nil), // 0: trpc.v2.SwaggerRule + (*SwaggerParam)(nil), // 1: trpc.v2.SwaggerParam + (*descriptorpb.MethodOptions)(nil), // 2: google.protobuf.MethodOptions +} +var file_trpc_v2_swagger_swagger_proto_depIdxs = []int32{ + 1, // 0: trpc.v2.SwaggerRule.params:type_name -> trpc.v2.SwaggerParam + 2, // 1: trpc.v2.swagger:extendee -> google.protobuf.MethodOptions + 0, // 2: trpc.v2.swagger:type_name -> trpc.v2.SwaggerRule + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 2, // [2:3] is the sub-list for extension type_name + 1, // [1:2] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_trpc_v2_swagger_swagger_proto_init() } +func file_trpc_v2_swagger_swagger_proto_init() { + if File_trpc_v2_swagger_swagger_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_trpc_v2_swagger_swagger_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwaggerRule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_swagger_swagger_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwaggerParam); 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_trpc_v2_swagger_swagger_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 1, + NumServices: 0, + }, + GoTypes: file_trpc_v2_swagger_swagger_proto_goTypes, + DependencyIndexes: file_trpc_v2_swagger_swagger_proto_depIdxs, + MessageInfos: file_trpc_v2_swagger_swagger_proto_msgTypes, + ExtensionInfos: file_trpc_v2_swagger_swagger_proto_extTypes, + }.Build() + File_trpc_v2_swagger_swagger_proto = out.File + file_trpc_v2_swagger_swagger_proto_rawDesc = nil + file_trpc_v2_swagger_swagger_proto_goTypes = nil + file_trpc_v2_swagger_swagger_proto_depIdxs = nil +} diff --git a/pb/go/trpc/v2/trpc.pb.go b/pb/go/trpc/v2/trpc.pb.go new file mode 100644 index 0000000..68b20b3 --- /dev/null +++ b/pb/go/trpc/v2/trpc.pb.go @@ -0,0 +1,1937 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v5.27.1 +// source: trpc/v2/trpc.proto + +package trpc + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// The magic value in the framework protocol header +type TrpcMagic int32 + +const ( + // trpc does not use this value, it is used by the pb tool to generate code + TrpcMagic_TRPC_DEFAULT_NONE TrpcMagic = 0 + // trpc protocol uses this magic value by default + TrpcMagic_TRPC_MAGIC_VALUE TrpcMagic = 2352 +) + +// Enum value maps for TrpcMagic. +var ( + TrpcMagic_name = map[int32]string{ + 0: "TRPC_DEFAULT_NONE", + 2352: "TRPC_MAGIC_VALUE", + } + TrpcMagic_value = map[string]int32{ + "TRPC_DEFAULT_NONE": 0, + "TRPC_MAGIC_VALUE": 2352, + } +) + +func (x TrpcMagic) Enum() *TrpcMagic { + p := new(TrpcMagic) + *p = x + return p +} + +func (x TrpcMagic) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcMagic) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_v2_trpc_proto_enumTypes[0].Descriptor() +} + +func (TrpcMagic) Type() protoreflect.EnumType { + return &file_trpc_v2_trpc_proto_enumTypes[0] +} + +func (x TrpcMagic) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcMagic.Descriptor instead. +func (TrpcMagic) EnumDescriptor() ([]byte, []int) { + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{0} +} + +// The binary data frame type of the trpc protocol +// Currently supports two types of binary data frames: +// 1. Binary data frame type for request-response mode +// 2. Binary data frame type for streaming mode +type TrpcDataFrameType int32 + +const ( + // Binary data frame type for trpc request-response mode + TrpcDataFrameType_TRPC_UNARY_FRAME TrpcDataFrameType = 0 + // Binary data frame type for trpc streaming mode + TrpcDataFrameType_TRPC_STREAM_FRAME TrpcDataFrameType = 1 +) + +// Enum value maps for TrpcDataFrameType. +var ( + TrpcDataFrameType_name = map[int32]string{ + 0: "TRPC_UNARY_FRAME", + 1: "TRPC_STREAM_FRAME", + } + TrpcDataFrameType_value = map[string]int32{ + "TRPC_UNARY_FRAME": 0, + "TRPC_STREAM_FRAME": 1, + } +) + +func (x TrpcDataFrameType) Enum() *TrpcDataFrameType { + p := new(TrpcDataFrameType) + *p = x + return p +} + +func (x TrpcDataFrameType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcDataFrameType) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_v2_trpc_proto_enumTypes[1].Descriptor() +} + +func (TrpcDataFrameType) Type() protoreflect.EnumType { + return &file_trpc_v2_trpc_proto_enumTypes[1] +} + +func (x TrpcDataFrameType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcDataFrameType.Descriptor instead. +func (TrpcDataFrameType) EnumDescriptor() ([]byte, []int) { + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{1} +} + +// The binary data frame type of trpc protocol streaming +// Currently there are 4 types of streaming frames: INIT/DATA/FEEDBACK/CLOSE, where CLOSE frame does not carry business data +// INIT frame: FIXHEADER + TrpcStreamInitMeta +// DATA frame: FIXHEADER + body(business serialized data) +// FEEDBACK frame: FIXHEADER + TrpcStreamFeedBackMeta (trigger strategy: high/low water level + timer) +// CLOSE frame: FIXHEADER + TrpcStreamCloseMeta +// Connection and stream idle timeout recycling mechanism is not considered +type TrpcStreamFrameType int32 + +const ( + // Default value for request-response + TrpcStreamFrameType_TRPC_UNARY TrpcStreamFrameType = 0 + // Streaming INIT frame type + TrpcStreamFrameType_TRPC_STREAM_FRAME_INIT TrpcStreamFrameType = 1 + // Streaming DATA frame type + TrpcStreamFrameType_TRPC_STREAM_FRAME_DATA TrpcStreamFrameType = 2 + // Streaming FEEDBACK frame type + TrpcStreamFrameType_TRPC_STREAM_FRAME_FEEDBACK TrpcStreamFrameType = 3 + // Streaming CLOSE frame type + TrpcStreamFrameType_TRPC_STREAM_FRAME_CLOSE TrpcStreamFrameType = 4 +) + +// Enum value maps for TrpcStreamFrameType. +var ( + TrpcStreamFrameType_name = map[int32]string{ + 0: "TRPC_UNARY", + 1: "TRPC_STREAM_FRAME_INIT", + 2: "TRPC_STREAM_FRAME_DATA", + 3: "TRPC_STREAM_FRAME_FEEDBACK", + 4: "TRPC_STREAM_FRAME_CLOSE", + } + TrpcStreamFrameType_value = map[string]int32{ + "TRPC_UNARY": 0, + "TRPC_STREAM_FRAME_INIT": 1, + "TRPC_STREAM_FRAME_DATA": 2, + "TRPC_STREAM_FRAME_FEEDBACK": 3, + "TRPC_STREAM_FRAME_CLOSE": 4, + } +) + +func (x TrpcStreamFrameType) Enum() *TrpcStreamFrameType { + p := new(TrpcStreamFrameType) + *p = x + return p +} + +func (x TrpcStreamFrameType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcStreamFrameType) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_v2_trpc_proto_enumTypes[2].Descriptor() +} + +func (TrpcStreamFrameType) Type() protoreflect.EnumType { + return &file_trpc_v2_trpc_proto_enumTypes[2] +} + +func (x TrpcStreamFrameType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcStreamFrameType.Descriptor instead. +func (TrpcStreamFrameType) EnumDescriptor() ([]byte, []int) { + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{2} +} + +// trpc streaming close type +type TrpcStreamCloseType int32 + +const ( + // Normal unidirectional stream close + TrpcStreamCloseType_TRPC_STREAM_CLOSE TrpcStreamCloseType = 0 + // Abnormal bidirectional stream close + TrpcStreamCloseType_TRPC_STREAM_RESET TrpcStreamCloseType = 1 +) + +// Enum value maps for TrpcStreamCloseType. +var ( + TrpcStreamCloseType_name = map[int32]string{ + 0: "TRPC_STREAM_CLOSE", + 1: "TRPC_STREAM_RESET", + } + TrpcStreamCloseType_value = map[string]int32{ + "TRPC_STREAM_CLOSE": 0, + "TRPC_STREAM_RESET": 1, + } +) + +func (x TrpcStreamCloseType) Enum() *TrpcStreamCloseType { + p := new(TrpcStreamCloseType) + *p = x + return p +} + +func (x TrpcStreamCloseType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcStreamCloseType) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_v2_trpc_proto_enumTypes[3].Descriptor() +} + +func (TrpcStreamCloseType) Type() protoreflect.EnumType { + return &file_trpc_v2_trpc_proto_enumTypes[3] +} + +func (x TrpcStreamCloseType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcStreamCloseType.Descriptor instead. +func (TrpcStreamCloseType) EnumDescriptor() ([]byte, []int) { + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{3} +} + +// trpc protocol version +type TrpcProtoVersion int32 + +const ( + // Default version + TrpcProtoVersion_TRPC_PROTO_V1 TrpcProtoVersion = 0 +) + +// Enum value maps for TrpcProtoVersion. +var ( + TrpcProtoVersion_name = map[int32]string{ + 0: "TRPC_PROTO_V1", + } + TrpcProtoVersion_value = map[string]int32{ + "TRPC_PROTO_V1": 0, + } +) + +func (x TrpcProtoVersion) Enum() *TrpcProtoVersion { + p := new(TrpcProtoVersion) + *p = x + return p +} + +func (x TrpcProtoVersion) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcProtoVersion) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_v2_trpc_proto_enumTypes[4].Descriptor() +} + +func (TrpcProtoVersion) Type() protoreflect.EnumType { + return &file_trpc_v2_trpc_proto_enumTypes[4] +} + +func (x TrpcProtoVersion) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcProtoVersion.Descriptor instead. +func (TrpcProtoVersion) EnumDescriptor() ([]byte, []int) { + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{4} +} + +// Call type in trpc protocol +type TrpcCallType int32 + +const ( + // Request-response call, including synchronous and asynchronous + TrpcCallType_TRPC_UNARY_CALL TrpcCallType = 0 + // One-way call + TrpcCallType_TRPC_ONEWAY_CALL TrpcCallType = 1 +) + +// Enum value maps for TrpcCallType. +var ( + TrpcCallType_name = map[int32]string{ + 0: "TRPC_UNARY_CALL", + 1: "TRPC_ONEWAY_CALL", + } + TrpcCallType_value = map[string]int32{ + "TRPC_UNARY_CALL": 0, + "TRPC_ONEWAY_CALL": 1, + } +) + +func (x TrpcCallType) Enum() *TrpcCallType { + p := new(TrpcCallType) + *p = x + return p +} + +func (x TrpcCallType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcCallType) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_v2_trpc_proto_enumTypes[5].Descriptor() +} + +func (TrpcCallType) Type() protoreflect.EnumType { + return &file_trpc_v2_trpc_proto_enumTypes[5] +} + +func (x TrpcCallType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcCallType.Descriptor instead. +func (TrpcCallType) EnumDescriptor() ([]byte, []int) { + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{5} +} + +// Message transparent transmission supported types in trpc protocol +type TrpcMessageType int32 + +const ( + // trpc does not use this value, it is used by the pb tool to generate code + TrpcMessageType_TRPC_DEFAULT TrpcMessageType = 0 + // Dyeing + TrpcMessageType_TRPC_DYEING_MESSAGE TrpcMessageType = 1 + // Tracing + TrpcMessageType_TRPC_TRACE_MESSAGE TrpcMessageType = 2 + // Multi-environment + TrpcMessageType_TRPC_MULTI_ENV_MESSAGE TrpcMessageType = 4 + // Gray + TrpcMessageType_TRPC_GRID_MESSAGE TrpcMessageType = 8 + // Set name + TrpcMessageType_TRPC_SETNAME_MESSAGE TrpcMessageType = 16 +) + +// Enum value maps for TrpcMessageType. +var ( + TrpcMessageType_name = map[int32]string{ + 0: "TRPC_DEFAULT", + 1: "TRPC_DYEING_MESSAGE", + 2: "TRPC_TRACE_MESSAGE", + 4: "TRPC_MULTI_ENV_MESSAGE", + 8: "TRPC_GRID_MESSAGE", + 16: "TRPC_SETNAME_MESSAGE", + } + TrpcMessageType_value = map[string]int32{ + "TRPC_DEFAULT": 0, + "TRPC_DYEING_MESSAGE": 1, + "TRPC_TRACE_MESSAGE": 2, + "TRPC_MULTI_ENV_MESSAGE": 4, + "TRPC_GRID_MESSAGE": 8, + "TRPC_SETNAME_MESSAGE": 16, + } +) + +func (x TrpcMessageType) Enum() *TrpcMessageType { + p := new(TrpcMessageType) + *p = x + return p +} + +func (x TrpcMessageType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcMessageType) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_v2_trpc_proto_enumTypes[6].Descriptor() +} + +func (TrpcMessageType) Type() protoreflect.EnumType { + return &file_trpc_v2_trpc_proto_enumTypes[6] +} + +func (x TrpcMessageType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcMessageType.Descriptor instead. +func (TrpcMessageType) EnumDescriptor() ([]byte, []int) { + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{6} +} + +// Encoding type of data content in trpc protocol +// Default uses pb +// Currently agreed that values in the range 0-127 are framework-standard serialization methods, used by framework +type TrpcContentEncodeType int32 + +const ( + // pb + TrpcContentEncodeType_TRPC_PROTO_ENCODE TrpcContentEncodeType = 0 + // jce + TrpcContentEncodeType_TRPC_JCE_ENCODE TrpcContentEncodeType = 1 + // json + TrpcContentEncodeType_TRPC_JSON_ENCODE TrpcContentEncodeType = 2 + // flatbuffer + TrpcContentEncodeType_TRPC_FLATBUFFER_ENCODE TrpcContentEncodeType = 3 + // No serialization + TrpcContentEncodeType_TRPC_NOOP_ENCODE TrpcContentEncodeType = 4 + // xml + TrpcContentEncodeType_TRPC_XML_ENCODE TrpcContentEncodeType = 5 + // thrift + TrpcContentEncodeType_TRPC_THRIFT_ENCODE TrpcContentEncodeType = 6 +) + +// Enum value maps for TrpcContentEncodeType. +var ( + TrpcContentEncodeType_name = map[int32]string{ + 0: "TRPC_PROTO_ENCODE", + 1: "TRPC_JCE_ENCODE", + 2: "TRPC_JSON_ENCODE", + 3: "TRPC_FLATBUFFER_ENCODE", + 4: "TRPC_NOOP_ENCODE", + 5: "TRPC_XML_ENCODE", + 6: "TRPC_THRIFT_ENCODE", + } + TrpcContentEncodeType_value = map[string]int32{ + "TRPC_PROTO_ENCODE": 0, + "TRPC_JCE_ENCODE": 1, + "TRPC_JSON_ENCODE": 2, + "TRPC_FLATBUFFER_ENCODE": 3, + "TRPC_NOOP_ENCODE": 4, + "TRPC_XML_ENCODE": 5, + "TRPC_THRIFT_ENCODE": 6, + } +) + +func (x TrpcContentEncodeType) Enum() *TrpcContentEncodeType { + p := new(TrpcContentEncodeType) + *p = x + return p +} + +func (x TrpcContentEncodeType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcContentEncodeType) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_v2_trpc_proto_enumTypes[7].Descriptor() +} + +func (TrpcContentEncodeType) Type() protoreflect.EnumType { + return &file_trpc_v2_trpc_proto_enumTypes[7] +} + +func (x TrpcContentEncodeType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcContentEncodeType.Descriptor instead. +func (TrpcContentEncodeType) EnumDescriptor() ([]byte, []int) { + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{7} +} + +// Compression type of data content in trpc protocol +// Default uses no compression +type TrpcCompressType int32 + +const ( + // Default no compression + TrpcCompressType_TRPC_DEFAULT_COMPRESS TrpcCompressType = 0 + // Use gzip + TrpcCompressType_TRPC_GZIP_COMPRESS TrpcCompressType = 1 + // Use snappy + // + // Deprecated: It is recommended to use TRPC_SNAPPY_STREAM_COMPRESS/TRPC_SNAPPY_BLOCK_COMPRESS, because currently + // trpc-go and trpc-cpp use stream and block modes respectively, which are incompatible, cross-language calls will cause errors + TrpcCompressType_TRPC_SNAPPY_COMPRESS TrpcCompressType = 2 + // Use zlib + TrpcCompressType_TRPC_ZLIB_COMPRESS TrpcCompressType = 3 + // Use snappy in stream mode + TrpcCompressType_TRPC_SNAPPY_STREAM_COMPRESS TrpcCompressType = 4 + // Use snappy in block mode + TrpcCompressType_TRPC_SNAPPY_BLOCK_COMPRESS TrpcCompressType = 5 +) + +// Enum value maps for TrpcCompressType. +var ( + TrpcCompressType_name = map[int32]string{ + 0: "TRPC_DEFAULT_COMPRESS", + 1: "TRPC_GZIP_COMPRESS", + 2: "TRPC_SNAPPY_COMPRESS", + 3: "TRPC_ZLIB_COMPRESS", + 4: "TRPC_SNAPPY_STREAM_COMPRESS", + 5: "TRPC_SNAPPY_BLOCK_COMPRESS", + } + TrpcCompressType_value = map[string]int32{ + "TRPC_DEFAULT_COMPRESS": 0, + "TRPC_GZIP_COMPRESS": 1, + "TRPC_SNAPPY_COMPRESS": 2, + "TRPC_ZLIB_COMPRESS": 3, + "TRPC_SNAPPY_STREAM_COMPRESS": 4, + "TRPC_SNAPPY_BLOCK_COMPRESS": 5, + } +) + +func (x TrpcCompressType) Enum() *TrpcCompressType { + p := new(TrpcCompressType) + *p = x + return p +} + +func (x TrpcCompressType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcCompressType) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_v2_trpc_proto_enumTypes[8].Descriptor() +} + +func (TrpcCompressType) Type() protoreflect.EnumType { + return &file_trpc_v2_trpc_proto_enumTypes[8] +} + +func (x TrpcCompressType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcCompressType.Descriptor instead. +func (TrpcCompressType) EnumDescriptor() ([]byte, []int) { + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{8} +} + +// Definition of framework layer interface call return codes +type TrpcRetCode int32 + +const ( + // Call success + TrpcRetCode_TRPC_INVOKE_SUCCESS TrpcRetCode = 0 + // Protocol error codes + // Server-side decode error + TrpcRetCode_TRPC_SERVER_DECODE_ERR TrpcRetCode = 1 + // Server-side encode error + TrpcRetCode_TRPC_SERVER_ENCODE_ERR TrpcRetCode = 2 + // Service or func routing error codes + // Server does not have corresponding service implementation + TrpcRetCode_TRPC_SERVER_NOSERVICE_ERR TrpcRetCode = 11 + // Server does not have corresponding interface implementation + TrpcRetCode_TRPC_SERVER_NOFUNC_ERR TrpcRetCode = 12 + // Timeout/overload/limiter error codes + // Request timed out on server + TrpcRetCode_TRPC_SERVER_TIMEOUT_ERR TrpcRetCode = 21 + // Request discarded due to server overload protection + // Mainly used in framework's internal overload protection plugin + TrpcRetCode_TRPC_SERVER_OVERLOAD_ERR TrpcRetCode = 22 + // Request limited on server + // Mainly used in external service governance system plugins or business custom limiter plugins, eg: Polaris limiter + TrpcRetCode_TRPC_SERVER_LIMITED_ERR TrpcRetCode = 23 + // Request timed out on server due to full link timeout + TrpcRetCode_TRPC_SERVER_FULL_LINK_TIMEOUT_ERR TrpcRetCode = 24 + // Server system error + TrpcRetCode_TRPC_SERVER_SYSTEM_ERR TrpcRetCode = 31 + // Server authentication failure error + TrpcRetCode_TRPC_SERVER_AUTH_ERR TrpcRetCode = 41 + // Server request parameter automatic validation failure error + TrpcRetCode_TRPC_SERVER_VALIDATE_ERR TrpcRetCode = 51 + // Timeout error codes + // Request timed out on client + TrpcRetCode_TRPC_CLIENT_INVOKE_TIMEOUT_ERR TrpcRetCode = 101 + // Request timed out on client due to full link timeout + TrpcRetCode_TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR TrpcRetCode = 102 + // Network related error codes + // Client connection error + TrpcRetCode_TRPC_CLIENT_CONNECT_ERR TrpcRetCode = 111 + // Protocol related error codes + // Client encode error + TrpcRetCode_TRPC_CLIENT_ENCODE_ERR TrpcRetCode = 121 + // Client decode error + TrpcRetCode_TRPC_CLIENT_DECODE_ERR TrpcRetCode = 122 + // Overload protection/limiter related error codes + // Request limited on client + // Mainly used in external service governance system plugins or business custom limiter plugins, eg: Polaris limiter + TrpcRetCode_TRPC_CLIENT_LIMITED_ERR TrpcRetCode = 123 + // Request discarded due to client overload protection + // Mainly used in framework's internal overload protection plugin + TrpcRetCode_TRPC_CLIENT_OVERLOAD_ERR TrpcRetCode = 124 + // Routing related error codes + // Client IP routing error + TrpcRetCode_TRPC_CLIENT_ROUTER_ERR TrpcRetCode = 131 + // Client network error + TrpcRetCode_TRPC_CLIENT_NETWORK_ERR TrpcRetCode = 141 + // Client response parameter automatic validation failure error + TrpcRetCode_TRPC_CLIENT_VALIDATE_ERR TrpcRetCode = 151 + // Upstream actively disconnected, early cancellation request error + TrpcRetCode_TRPC_CLIENT_CANCELED_ERR TrpcRetCode = 161 + // Server-side streaming network error, detailed error codes need to be sorted out during implementation + TrpcRetCode_TRPC_STREAM_SERVER_NETWORK_ERR TrpcRetCode = 201 + // Server-side streaming transmission error, detailed error codes need to be sorted out during implementation + // eg: Stream message too large, etc. + TrpcRetCode_TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR TrpcRetCode = 211 + // Server-side streaming encode error + TrpcRetCode_TRPC_STREAM_SERVER_ENCODE_ERR TrpcRetCode = 221 + // Client-side streaming encode/decode error + TrpcRetCode_TRPC_STREAM_SERVER_DECODE_ERR TrpcRetCode = 222 + // Server-side streaming write error, detailed error codes need to be sorted out during implementation + TrpcRetCode_TRPC_STREAM_SERVER_WRITE_END TrpcRetCode = 231 + TrpcRetCode_TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR TrpcRetCode = 232 + TrpcRetCode_TRPC_STREAM_SERVER_WRITE_CLOSE_ERR TrpcRetCode = 233 + TrpcRetCode_TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR TrpcRetCode = 234 + // Server-side streaming read error, detailed error codes need to be sorted out during implementation + TrpcRetCode_TRPC_STREAM_SERVER_READ_END TrpcRetCode = 251 + TrpcRetCode_TRPC_STREAM_SERVER_READ_CLOSE_ERR TrpcRetCode = 252 + TrpcRetCode_TRPC_STREAM_SERVER_READ_EMPTY_ERR TrpcRetCode = 253 + TrpcRetCode_TRPC_STREAM_SERVER_READ_TIMEOUT_ERR TrpcRetCode = 254 + // Client-side streaming network error, detailed error codes need to be sorted out during implementation + TrpcRetCode_TRPC_STREAM_CLIENT_NETWORK_ERR TrpcRetCode = 301 + // Client-side streaming transmission error, detailed error codes need to be sorted out during implementation + // eg: Stream message too large, etc. + TrpcRetCode_TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR TrpcRetCode = 311 + // Client-side streaming encode error + TrpcRetCode_TRPC_STREAM_CLIENT_ENCODE_ERR TrpcRetCode = 321 + // Client-side streaming encode/decode error + TrpcRetCode_TRPC_STREAM_CLIENT_DECODE_ERR TrpcRetCode = 322 + // Client-side streaming write error, detailed error codes need to be sorted out during implementation + TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_END TrpcRetCode = 331 + TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR TrpcRetCode = 332 + TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR TrpcRetCode = 333 + TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR TrpcRetCode = 334 + // Client-side streaming read error, detailed error codes need to be sorted out during implementation + TrpcRetCode_TRPC_STREAM_CLIENT_READ_END TrpcRetCode = 351 + TrpcRetCode_TRPC_STREAM_CLIENT_READ_CLOSE_ERR TrpcRetCode = 352 + TrpcRetCode_TRPC_STREAM_CLIENT_READ_EMPTY_ERR TrpcRetCode = 353 + TrpcRetCode_TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR TrpcRetCode = 354 + // Unspecified error + TrpcRetCode_TRPC_INVOKE_UNKNOWN_ERR TrpcRetCode = 999 + // Unspecified error + TrpcRetCode_TRPC_STREAM_UNKNOWN_ERR TrpcRetCode = 1000 +) + +// Enum value maps for TrpcRetCode. +var ( + TrpcRetCode_name = map[int32]string{ + 0: "TRPC_INVOKE_SUCCESS", + 1: "TRPC_SERVER_DECODE_ERR", + 2: "TRPC_SERVER_ENCODE_ERR", + 11: "TRPC_SERVER_NOSERVICE_ERR", + 12: "TRPC_SERVER_NOFUNC_ERR", + 21: "TRPC_SERVER_TIMEOUT_ERR", + 22: "TRPC_SERVER_OVERLOAD_ERR", + 23: "TRPC_SERVER_LIMITED_ERR", + 24: "TRPC_SERVER_FULL_LINK_TIMEOUT_ERR", + 31: "TRPC_SERVER_SYSTEM_ERR", + 41: "TRPC_SERVER_AUTH_ERR", + 51: "TRPC_SERVER_VALIDATE_ERR", + 101: "TRPC_CLIENT_INVOKE_TIMEOUT_ERR", + 102: "TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR", + 111: "TRPC_CLIENT_CONNECT_ERR", + 121: "TRPC_CLIENT_ENCODE_ERR", + 122: "TRPC_CLIENT_DECODE_ERR", + 123: "TRPC_CLIENT_LIMITED_ERR", + 124: "TRPC_CLIENT_OVERLOAD_ERR", + 131: "TRPC_CLIENT_ROUTER_ERR", + 141: "TRPC_CLIENT_NETWORK_ERR", + 151: "TRPC_CLIENT_VALIDATE_ERR", + 161: "TRPC_CLIENT_CANCELED_ERR", + 201: "TRPC_STREAM_SERVER_NETWORK_ERR", + 211: "TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR", + 221: "TRPC_STREAM_SERVER_ENCODE_ERR", + 222: "TRPC_STREAM_SERVER_DECODE_ERR", + 231: "TRPC_STREAM_SERVER_WRITE_END", + 232: "TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR", + 233: "TRPC_STREAM_SERVER_WRITE_CLOSE_ERR", + 234: "TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR", + 251: "TRPC_STREAM_SERVER_READ_END", + 252: "TRPC_STREAM_SERVER_READ_CLOSE_ERR", + 253: "TRPC_STREAM_SERVER_READ_EMPTY_ERR", + 254: "TRPC_STREAM_SERVER_READ_TIMEOUT_ERR", + 301: "TRPC_STREAM_CLIENT_NETWORK_ERR", + 311: "TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR", + 321: "TRPC_STREAM_CLIENT_ENCODE_ERR", + 322: "TRPC_STREAM_CLIENT_DECODE_ERR", + 331: "TRPC_STREAM_CLIENT_WRITE_END", + 332: "TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR", + 333: "TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR", + 334: "TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR", + 351: "TRPC_STREAM_CLIENT_READ_END", + 352: "TRPC_STREAM_CLIENT_READ_CLOSE_ERR", + 353: "TRPC_STREAM_CLIENT_READ_EMPTY_ERR", + 354: "TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR", + 999: "TRPC_INVOKE_UNKNOWN_ERR", + 1000: "TRPC_STREAM_UNKNOWN_ERR", + } + TrpcRetCode_value = map[string]int32{ + "TRPC_INVOKE_SUCCESS": 0, + "TRPC_SERVER_DECODE_ERR": 1, + "TRPC_SERVER_ENCODE_ERR": 2, + "TRPC_SERVER_NOSERVICE_ERR": 11, + "TRPC_SERVER_NOFUNC_ERR": 12, + "TRPC_SERVER_TIMEOUT_ERR": 21, + "TRPC_SERVER_OVERLOAD_ERR": 22, + "TRPC_SERVER_LIMITED_ERR": 23, + "TRPC_SERVER_FULL_LINK_TIMEOUT_ERR": 24, + "TRPC_SERVER_SYSTEM_ERR": 31, + "TRPC_SERVER_AUTH_ERR": 41, + "TRPC_SERVER_VALIDATE_ERR": 51, + "TRPC_CLIENT_INVOKE_TIMEOUT_ERR": 101, + "TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR": 102, + "TRPC_CLIENT_CONNECT_ERR": 111, + "TRPC_CLIENT_ENCODE_ERR": 121, + "TRPC_CLIENT_DECODE_ERR": 122, + "TRPC_CLIENT_LIMITED_ERR": 123, + "TRPC_CLIENT_OVERLOAD_ERR": 124, + "TRPC_CLIENT_ROUTER_ERR": 131, + "TRPC_CLIENT_NETWORK_ERR": 141, + "TRPC_CLIENT_VALIDATE_ERR": 151, + "TRPC_CLIENT_CANCELED_ERR": 161, + "TRPC_STREAM_SERVER_NETWORK_ERR": 201, + "TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR": 211, + "TRPC_STREAM_SERVER_ENCODE_ERR": 221, + "TRPC_STREAM_SERVER_DECODE_ERR": 222, + "TRPC_STREAM_SERVER_WRITE_END": 231, + "TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR": 232, + "TRPC_STREAM_SERVER_WRITE_CLOSE_ERR": 233, + "TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR": 234, + "TRPC_STREAM_SERVER_READ_END": 251, + "TRPC_STREAM_SERVER_READ_CLOSE_ERR": 252, + "TRPC_STREAM_SERVER_READ_EMPTY_ERR": 253, + "TRPC_STREAM_SERVER_READ_TIMEOUT_ERR": 254, + "TRPC_STREAM_CLIENT_NETWORK_ERR": 301, + "TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR": 311, + "TRPC_STREAM_CLIENT_ENCODE_ERR": 321, + "TRPC_STREAM_CLIENT_DECODE_ERR": 322, + "TRPC_STREAM_CLIENT_WRITE_END": 331, + "TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR": 332, + "TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR": 333, + "TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR": 334, + "TRPC_STREAM_CLIENT_READ_END": 351, + "TRPC_STREAM_CLIENT_READ_CLOSE_ERR": 352, + "TRPC_STREAM_CLIENT_READ_EMPTY_ERR": 353, + "TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR": 354, + "TRPC_INVOKE_UNKNOWN_ERR": 999, + "TRPC_STREAM_UNKNOWN_ERR": 1000, + } +) + +func (x TrpcRetCode) Enum() *TrpcRetCode { + p := new(TrpcRetCode) + *p = x + return p +} + +func (x TrpcRetCode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcRetCode) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_v2_trpc_proto_enumTypes[9].Descriptor() +} + +func (TrpcRetCode) Type() protoreflect.EnumType { + return &file_trpc_v2_trpc_proto_enumTypes[9] +} + +func (x TrpcRetCode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcRetCode.Descriptor instead. +func (TrpcRetCode) EnumDescriptor() ([]byte, []int) { + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{9} +} + +// Definition of flow control frame header message for trpc streaming +type TrpcStreamInitMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // INIT request metadata + RequestMeta *TrpcStreamInitRequestMeta `protobuf:"bytes,1,opt,name=request_meta,json=requestMeta,proto3" json:"request_meta,omitempty"` + // INIT response metadata + ResponseMeta *TrpcStreamInitResponseMeta `protobuf:"bytes,2,opt,name=response_meta,json=responseMeta,proto3" json:"response_meta,omitempty"` + // Initial send window size notified by receiver to sender + InitWindowSize uint32 `protobuf:"varint,3,opt,name=init_window_size,json=initWindowSize,proto3" json:"init_window_size,omitempty"` + // Serialization type of request data + // eg: proto/jce/json, default proto + // Specific value corresponds to TrpcContentEncodeType + ContentType uint32 `protobuf:"varint,4,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` + // Compression method used for request data + // eg: gzip/snappy/..., default not used + // Specific value corresponds to TrpcCompressType + ContentEncoding uint32 `protobuf:"varint,5,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` +} + +func (x *TrpcStreamInitMeta) Reset() { + *x = TrpcStreamInitMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_trpc_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrpcStreamInitMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrpcStreamInitMeta) ProtoMessage() {} + +func (x *TrpcStreamInitMeta) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_trpc_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrpcStreamInitMeta.ProtoReflect.Descriptor instead. +func (*TrpcStreamInitMeta) Descriptor() ([]byte, []int) { + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{0} +} + +func (x *TrpcStreamInitMeta) GetRequestMeta() *TrpcStreamInitRequestMeta { + if x != nil { + return x.RequestMeta + } + return nil +} + +func (x *TrpcStreamInitMeta) GetResponseMeta() *TrpcStreamInitResponseMeta { + if x != nil { + return x.ResponseMeta + } + return nil +} + +func (x *TrpcStreamInitMeta) GetInitWindowSize() uint32 { + if x != nil { + return x.InitWindowSize + } + return 0 +} + +func (x *TrpcStreamInitMeta) GetContentType() uint32 { + if x != nil { + return x.ContentType + } + return 0 +} + +func (x *TrpcStreamInitMeta) GetContentEncoding() uint32 { + if x != nil { + return x.ContentEncoding + } + return 0 +} + +// Request metadata definition for trpc streaming INIT header +type TrpcStreamInitRequestMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of the calling service + // Standard format in trpc protocol: trpc.application_name.server_name.proto_service_name, 4 segments + Caller []byte `protobuf:"bytes,1,opt,name=caller,proto3" json:"caller,omitempty"` + // Routing name of the called service + // Standard format in trpc protocol: trpc.application_name.server_name.proto_service_name[.interface_name] + // First 4 segments are mandatory, interface is optional + Callee []byte `protobuf:"bytes,2,opt,name=callee,proto3" json:"callee,omitempty"` + // Interface name of the called service + // Standard format: /package.Service_name/interface_name + Func []byte `protobuf:"bytes,3,opt,name=func,proto3" json:"func,omitempty"` + // Message type for framework information transparent transmission + // Such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // Specific value corresponds to TrpcMessageType + MessageType uint32 `protobuf:"varint,4,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` + // Key-value pairs for framework transparent transmission information, currently divided into two parts: + // 1. Information to be transparently transmitted by the framework layer, key names must start with 'trpc-' + // 2. Information to be transparently transmitted by the business layer, which can be set by the business itself + // Note: Key-value pairs in trans_info will be transparently transmitted through the entire link, please use with caution! + TransInfo map[string][]byte `protobuf:"bytes,5,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *TrpcStreamInitRequestMeta) Reset() { + *x = TrpcStreamInitRequestMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_trpc_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrpcStreamInitRequestMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrpcStreamInitRequestMeta) ProtoMessage() {} + +func (x *TrpcStreamInitRequestMeta) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_trpc_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrpcStreamInitRequestMeta.ProtoReflect.Descriptor instead. +func (*TrpcStreamInitRequestMeta) Descriptor() ([]byte, []int) { + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{1} +} + +func (x *TrpcStreamInitRequestMeta) GetCaller() []byte { + if x != nil { + return x.Caller + } + return nil +} + +func (x *TrpcStreamInitRequestMeta) GetCallee() []byte { + if x != nil { + return x.Callee + } + return nil +} + +func (x *TrpcStreamInitRequestMeta) GetFunc() []byte { + if x != nil { + return x.Func + } + return nil +} + +func (x *TrpcStreamInitRequestMeta) GetMessageType() uint32 { + if x != nil { + return x.MessageType + } + return 0 +} + +func (x *TrpcStreamInitRequestMeta) GetTransInfo() map[string][]byte { + if x != nil { + return x.TransInfo + } + return nil +} + +// Response metadata definition for trpc streaming INIT header +type TrpcStreamInitResponseMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Error return code at framework layer + // Specific value corresponds to TrpcRetCode + Ret int32 `protobuf:"varint,1,opt,name=ret,proto3" json:"ret,omitempty"` + // Call result information description + // Used when failed + ErrorMsg []byte `protobuf:"bytes,2,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` +} + +func (x *TrpcStreamInitResponseMeta) Reset() { + *x = TrpcStreamInitResponseMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_trpc_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrpcStreamInitResponseMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrpcStreamInitResponseMeta) ProtoMessage() {} + +func (x *TrpcStreamInitResponseMeta) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_trpc_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrpcStreamInitResponseMeta.ProtoReflect.Descriptor instead. +func (*TrpcStreamInitResponseMeta) Descriptor() ([]byte, []int) { + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{2} +} + +func (x *TrpcStreamInitResponseMeta) GetRet() int32 { + if x != nil { + return x.Ret + } + return 0 +} + +func (x *TrpcStreamInitResponseMeta) GetErrorMsg() []byte { + if x != nil { + return x.ErrorMsg + } + return nil +} + +// Definition of flow control frame header metadata for trpc streaming +type TrpcStreamFeedBackMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Incremented window size + WindowSizeIncrement uint32 `protobuf:"varint,1,opt,name=window_size_increment,json=windowSizeIncrement,proto3" json:"window_size_increment,omitempty"` +} + +func (x *TrpcStreamFeedBackMeta) Reset() { + *x = TrpcStreamFeedBackMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_trpc_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrpcStreamFeedBackMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrpcStreamFeedBackMeta) ProtoMessage() {} + +func (x *TrpcStreamFeedBackMeta) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_trpc_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrpcStreamFeedBackMeta.ProtoReflect.Descriptor instead. +func (*TrpcStreamFeedBackMeta) Descriptor() ([]byte, []int) { + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{3} +} + +func (x *TrpcStreamFeedBackMeta) GetWindowSizeIncrement() uint32 { + if x != nil { + return x.WindowSizeIncrement + } + return 0 +} + +// Definition of RESET frame header message for trpc streaming +type TrpcStreamCloseMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Close type, whether to close one end or all + CloseType int32 `protobuf:"varint,1,opt,name=close_type,json=closeType,proto3" json:"close_type,omitempty"` + // Close return code + // Represents framework layer error + Ret int32 `protobuf:"varint,2,opt,name=ret,proto3" json:"ret,omitempty"` + // Close information description + Msg []byte `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` + // Message type for framework information transparent transmission + // Such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // Specific value corresponds to TrpcMessageType + MessageType uint32 `protobuf:"varint,4,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` + // Key-value pairs for framework transparent transmission information, currently divided into two parts: + // 1. Information to be transparently transmitted by the framework layer, key names must start with 'trpc-' + // 2. Information to be transparently transmitted by the business layer, which can be set by the business itself + TransInfo map[string][]byte `protobuf:"bytes,5,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Interface error return code + // It is recommended to identify success and failure when using, 0 represents success, others represent failure + FuncRet int32 `protobuf:"varint,6,opt,name=func_ret,json=funcRet,proto3" json:"func_ret,omitempty"` +} + +func (x *TrpcStreamCloseMeta) Reset() { + *x = TrpcStreamCloseMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_trpc_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrpcStreamCloseMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrpcStreamCloseMeta) ProtoMessage() {} + +func (x *TrpcStreamCloseMeta) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_trpc_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrpcStreamCloseMeta.ProtoReflect.Descriptor instead. +func (*TrpcStreamCloseMeta) Descriptor() ([]byte, []int) { + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{4} +} + +func (x *TrpcStreamCloseMeta) GetCloseType() int32 { + if x != nil { + return x.CloseType + } + return 0 +} + +func (x *TrpcStreamCloseMeta) GetRet() int32 { + if x != nil { + return x.Ret + } + return 0 +} + +func (x *TrpcStreamCloseMeta) GetMsg() []byte { + if x != nil { + return x.Msg + } + return nil +} + +func (x *TrpcStreamCloseMeta) GetMessageType() uint32 { + if x != nil { + return x.MessageType + } + return 0 +} + +func (x *TrpcStreamCloseMeta) GetTransInfo() map[string][]byte { + if x != nil { + return x.TransInfo + } + return nil +} + +func (x *TrpcStreamCloseMeta) GetFuncRet() int32 { + if x != nil { + return x.FuncRet + } + return 0 +} + +// Request protocol header +type RequestProtocol struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Protocol version + // Specific value corresponds to TrpcProtoVersion + Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` + // Call type of request + // eg: normal call, one-way call + // Specific value corresponds to TrpcCallType + CallType uint32 `protobuf:"varint,2,opt,name=call_type,json=callType,proto3" json:"call_type,omitempty"` + // Request unique id + RequestId uint32 `protobuf:"varint,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Request timeout, unit ms + Timeout uint32 `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"` + // Name of the calling service + // Standard format in trpc protocol: trpc.application_name.server_name.proto_service_name, 4 segments + Caller []byte `protobuf:"bytes,5,opt,name=caller,proto3" json:"caller,omitempty"` + // Routing name of the called service + // Standard format in trpc protocol: trpc.application_name.server_name.proto_service_name[.interface_name] + // First 4 segments are mandatory, interface is optional + Callee []byte `protobuf:"bytes,6,opt,name=callee,proto3" json:"callee,omitempty"` + // Interface name of the called service + // Standard format: /package.Service_name/interface_name + Func []byte `protobuf:"bytes,7,opt,name=func,proto3" json:"func,omitempty"` + // Message type for framework information transparent transmission + // Such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // Specific value corresponds to TrpcMessageType + MessageType uint32 `protobuf:"varint,8,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` + // Key-value pairs for framework transparent transmission information, currently divided into two parts: + // 1. Information to be transparently transmitted by the framework layer, key names must start with 'trpc-' + // 2. Information to be transparently transmitted by the business layer, which can be set by the business itself + TransInfo map[string][]byte `protobuf:"bytes,9,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Serialization type of request data + // eg: proto/jce/json, default proto + // Specific value corresponds to TrpcContentEncodeType + ContentType uint32 `protobuf:"varint,10,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` + // Compression method used for request data + // eg: gzip/snappy/..., default not used + // Specific value corresponds to TrpcCompressType + ContentEncoding uint32 `protobuf:"varint,11,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` +} + +func (x *RequestProtocol) Reset() { + *x = RequestProtocol{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_trpc_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RequestProtocol) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RequestProtocol) ProtoMessage() {} + +func (x *RequestProtocol) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_trpc_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RequestProtocol.ProtoReflect.Descriptor instead. +func (*RequestProtocol) Descriptor() ([]byte, []int) { + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{5} +} + +func (x *RequestProtocol) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *RequestProtocol) GetCallType() uint32 { + if x != nil { + return x.CallType + } + return 0 +} + +func (x *RequestProtocol) GetRequestId() uint32 { + if x != nil { + return x.RequestId + } + return 0 +} + +func (x *RequestProtocol) GetTimeout() uint32 { + if x != nil { + return x.Timeout + } + return 0 +} + +func (x *RequestProtocol) GetCaller() []byte { + if x != nil { + return x.Caller + } + return nil +} + +func (x *RequestProtocol) GetCallee() []byte { + if x != nil { + return x.Callee + } + return nil +} + +func (x *RequestProtocol) GetFunc() []byte { + if x != nil { + return x.Func + } + return nil +} + +func (x *RequestProtocol) GetMessageType() uint32 { + if x != nil { + return x.MessageType + } + return 0 +} + +func (x *RequestProtocol) GetTransInfo() map[string][]byte { + if x != nil { + return x.TransInfo + } + return nil +} + +func (x *RequestProtocol) GetContentType() uint32 { + if x != nil { + return x.ContentType + } + return 0 +} + +func (x *RequestProtocol) GetContentEncoding() uint32 { + if x != nil { + return x.ContentEncoding + } + return 0 +} + +// Response protocol header +type ResponseProtocol struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Protocol version + // Specific value corresponds to TrpcProtoVersion + Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` + // Call type of request + // eg: normal call, one-way call + // Specific value corresponds to TrpcCallType + CallType uint32 `protobuf:"varint,2,opt,name=call_type,json=callType,proto3" json:"call_type,omitempty"` + // Request unique id + RequestId uint32 `protobuf:"varint,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Error return code at framework layer + // Specific value corresponds to TrpcRetCode + Ret int32 `protobuf:"varint,4,opt,name=ret,proto3" json:"ret,omitempty"` + // Interface error return code + // It is recommended to identify success and failure when using, 0 represents success, others represent failure + FuncRet int32 `protobuf:"varint,5,opt,name=func_ret,json=funcRet,proto3" json:"func_ret,omitempty"` + // Call result information description + // Used when failed + ErrorMsg []byte `protobuf:"bytes,6,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` + // Message type for framework information transparent transmission + // Such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // Specific value corresponds to TrpcMessageType + MessageType uint32 `protobuf:"varint,7,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` + // Key-value pairs for framework transparent transmission information returned, + // Currently divided into two parts: + // 1. Information transparently transmitted back by the framework layer, key names must start with 'trpc-' + // 2. Information transparently transmitted back by the business layer, which can be set by the business itself + TransInfo map[string][]byte `protobuf:"bytes,8,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Encoding type of response data + // eg: proto/jce/json, default proto + // Specific value corresponds to TrpcContentEncodeType + ContentType uint32 `protobuf:"varint,9,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` + // Compression method used for response data + // eg: gzip/snappy/..., default not used + // Specific value corresponds to TrpcCompressType + ContentEncoding uint32 `protobuf:"varint,10,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` +} + +func (x *ResponseProtocol) Reset() { + *x = ResponseProtocol{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_trpc_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResponseProtocol) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResponseProtocol) ProtoMessage() {} + +func (x *ResponseProtocol) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_trpc_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResponseProtocol.ProtoReflect.Descriptor instead. +func (*ResponseProtocol) Descriptor() ([]byte, []int) { + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{6} +} + +func (x *ResponseProtocol) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *ResponseProtocol) GetCallType() uint32 { + if x != nil { + return x.CallType + } + return 0 +} + +func (x *ResponseProtocol) GetRequestId() uint32 { + if x != nil { + return x.RequestId + } + return 0 +} + +func (x *ResponseProtocol) GetRet() int32 { + if x != nil { + return x.Ret + } + return 0 +} + +func (x *ResponseProtocol) GetFuncRet() int32 { + if x != nil { + return x.FuncRet + } + return 0 +} + +func (x *ResponseProtocol) GetErrorMsg() []byte { + if x != nil { + return x.ErrorMsg + } + return nil +} + +func (x *ResponseProtocol) GetMessageType() uint32 { + if x != nil { + return x.MessageType + } + return 0 +} + +func (x *ResponseProtocol) GetTransInfo() map[string][]byte { + if x != nil { + return x.TransInfo + } + return nil +} + +func (x *ResponseProtocol) GetContentType() uint32 { + if x != nil { + return x.ContentType + } + return 0 +} + +func (x *ResponseProtocol) GetContentEncoding() uint32 { + if x != nil { + return x.ContentEncoding + } + return 0 +} + +var File_trpc_v2_trpc_proto protoreflect.FileDescriptor + +var file_trpc_v2_trpc_proto_rawDesc = []byte{ + 0x0a, 0x12, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x22, 0x9d, 0x02, + 0x0a, 0x12, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x12, 0x45, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, + 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0b, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x48, 0x0a, 0x0d, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x70, + 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, + 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x92, 0x02, + 0x0a, 0x19, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x63, + 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x6c, + 0x6c, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, + 0x75, 0x6e, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, + 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x50, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, + 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 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, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x4b, 0x0a, 0x1a, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, + 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, + 0x4c, 0x0a, 0x16, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x65, 0x65, + 0x64, 0x42, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x15, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xa0, 0x02, + 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, + 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6c, 0x6f, 0x73, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x5f, + 0x72, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x75, 0x6e, 0x63, 0x52, + 0x65, 0x74, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 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, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0xbc, 0x03, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, + 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, + 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, + 0x6c, 0x6c, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x0a, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, + 0x67, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 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, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0xaa, 0x03, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, + 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x19, 0x0a, 0x08, + 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x66, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x4d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, + 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x1a, 0x3c, + 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 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, + 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x39, 0x0a, 0x09, + 0x54, 0x72, 0x70, 0x63, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, + 0x12, 0x15, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x41, 0x47, 0x49, 0x43, 0x5f, 0x56, + 0x41, 0x4c, 0x55, 0x45, 0x10, 0xb0, 0x12, 0x2a, 0x40, 0x0a, 0x11, 0x54, 0x72, 0x70, 0x63, 0x44, + 0x61, 0x74, 0x61, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, + 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x2a, 0x9a, 0x01, 0x0a, 0x13, 0x54, 0x72, + 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x10, + 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, + 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, + 0x4d, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x46, + 0x45, 0x45, 0x44, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x43, + 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x04, 0x2a, 0x43, 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, + 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x4f, + 0x53, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x10, 0x01, 0x2a, 0x25, 0x0a, 0x10, 0x54, + 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x11, 0x0a, 0x0d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x56, 0x31, + 0x10, 0x00, 0x2a, 0x39, 0x0a, 0x0c, 0x54, 0x72, 0x70, 0x63, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, + 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x4f, 0x4e, 0x45, 0x57, 0x41, 0x59, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x2a, 0xa1, 0x01, + 0x0a, 0x0f, 0x54, 0x72, 0x70, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, + 0x54, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x59, 0x45, 0x49, + 0x4e, 0x47, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, + 0x47, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x55, 0x4c, + 0x54, 0x49, 0x5f, 0x45, 0x4e, 0x56, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, + 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x52, 0x49, 0x44, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x08, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x45, 0x54, 0x4e, 0x41, 0x4d, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, + 0x10, 0x2a, 0xb8, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, + 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4a, 0x43, 0x45, 0x5f, 0x45, + 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x4a, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, + 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x46, 0x4c, 0x41, 0x54, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, + 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x4e, 0x4f, 0x4f, 0x50, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x04, 0x12, + 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x58, 0x4d, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x4f, + 0x44, 0x45, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x48, 0x52, + 0x49, 0x46, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x06, 0x2a, 0xb8, 0x01, 0x0a, + 0x10, 0x54, 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, + 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x5a, 0x49, 0x50, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, + 0x53, 0x53, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, + 0x50, 0x50, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x16, + 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x5a, 0x4c, 0x49, 0x42, 0x5f, 0x43, 0x4f, 0x4d, 0x50, + 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4d, + 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4f, 0x4d, + 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x05, 0x2a, 0xb0, 0x0d, 0x0a, 0x0b, 0x54, 0x72, 0x70, 0x63, + 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, + 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, + 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, + 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, + 0x45, 0x52, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x15, + 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x16, 0x12, 0x1b, + 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4c, 0x49, + 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x17, 0x12, 0x25, 0x0a, 0x21, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, + 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0x18, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, + 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x1f, 0x12, 0x18, + 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x41, 0x55, + 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x29, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x33, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x54, 0x49, 0x4d, + 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, + 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0x66, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x6f, 0x12, 0x1a, + 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, + 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7a, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0x7b, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, + 0x4e, 0x54, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0x7c, 0x12, 0x1b, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x83, 0x01, 0x12, 0x1c, + 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, + 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x8d, 0x01, 0x12, 0x1d, 0x0a, 0x18, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, + 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x97, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, + 0x4c, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xa1, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, + 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc9, 0x01, 0x12, + 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, + 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xd3, 0x01, 0x12, 0x22, 0x0a, + 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xdd, + 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0xde, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, + 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xe7, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, + 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xe8, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, + 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe9, 0x01, 0x12, 0x29, 0x0a, + 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, + 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xea, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, + 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xfb, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, + 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0xfc, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, + 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfd, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, + 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xfe, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, + 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xad, 0x02, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, + 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xb7, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, + 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc1, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc2, 0x02, 0x12, + 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, + 0xcb, 0x02, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, + 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcc, 0x02, 0x12, 0x27, + 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, + 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcd, 0x02, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, + 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0xce, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, + 0x44, 0x10, 0xdf, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, + 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe0, 0x02, 0x12, 0x26, 0x0a, 0x21, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, + 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xe1, 0x02, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, + 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe2, 0x02, 0x12, 0x1c, + 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe7, 0x07, 0x12, 0x1c, 0x0a, 0x17, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, + 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x07, 0x42, 0x68, 0x0a, 0x26, 0x63, 0x6f, + 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x42, 0x0c, 0x54, 0x52, 0x50, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x5a, 0x30, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x3b, + 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_trpc_v2_trpc_proto_rawDescOnce sync.Once + file_trpc_v2_trpc_proto_rawDescData = file_trpc_v2_trpc_proto_rawDesc +) + +func file_trpc_v2_trpc_proto_rawDescGZIP() []byte { + file_trpc_v2_trpc_proto_rawDescOnce.Do(func() { + file_trpc_v2_trpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_v2_trpc_proto_rawDescData) + }) + return file_trpc_v2_trpc_proto_rawDescData +} + +var file_trpc_v2_trpc_proto_enumTypes = make([]protoimpl.EnumInfo, 10) +var file_trpc_v2_trpc_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_trpc_v2_trpc_proto_goTypes = []interface{}{ + (TrpcMagic)(0), // 0: trpc.v2.TrpcMagic + (TrpcDataFrameType)(0), // 1: trpc.v2.TrpcDataFrameType + (TrpcStreamFrameType)(0), // 2: trpc.v2.TrpcStreamFrameType + (TrpcStreamCloseType)(0), // 3: trpc.v2.TrpcStreamCloseType + (TrpcProtoVersion)(0), // 4: trpc.v2.TrpcProtoVersion + (TrpcCallType)(0), // 5: trpc.v2.TrpcCallType + (TrpcMessageType)(0), // 6: trpc.v2.TrpcMessageType + (TrpcContentEncodeType)(0), // 7: trpc.v2.TrpcContentEncodeType + (TrpcCompressType)(0), // 8: trpc.v2.TrpcCompressType + (TrpcRetCode)(0), // 9: trpc.v2.TrpcRetCode + (*TrpcStreamInitMeta)(nil), // 10: trpc.v2.TrpcStreamInitMeta + (*TrpcStreamInitRequestMeta)(nil), // 11: trpc.v2.TrpcStreamInitRequestMeta + (*TrpcStreamInitResponseMeta)(nil), // 12: trpc.v2.TrpcStreamInitResponseMeta + (*TrpcStreamFeedBackMeta)(nil), // 13: trpc.v2.TrpcStreamFeedBackMeta + (*TrpcStreamCloseMeta)(nil), // 14: trpc.v2.TrpcStreamCloseMeta + (*RequestProtocol)(nil), // 15: trpc.v2.RequestProtocol + (*ResponseProtocol)(nil), // 16: trpc.v2.ResponseProtocol + nil, // 17: trpc.v2.TrpcStreamInitRequestMeta.TransInfoEntry + nil, // 18: trpc.v2.TrpcStreamCloseMeta.TransInfoEntry + nil, // 19: trpc.v2.RequestProtocol.TransInfoEntry + nil, // 20: trpc.v2.ResponseProtocol.TransInfoEntry +} +var file_trpc_v2_trpc_proto_depIdxs = []int32{ + 11, // 0: trpc.v2.TrpcStreamInitMeta.request_meta:type_name -> trpc.v2.TrpcStreamInitRequestMeta + 12, // 1: trpc.v2.TrpcStreamInitMeta.response_meta:type_name -> trpc.v2.TrpcStreamInitResponseMeta + 17, // 2: trpc.v2.TrpcStreamInitRequestMeta.trans_info:type_name -> trpc.v2.TrpcStreamInitRequestMeta.TransInfoEntry + 18, // 3: trpc.v2.TrpcStreamCloseMeta.trans_info:type_name -> trpc.v2.TrpcStreamCloseMeta.TransInfoEntry + 19, // 4: trpc.v2.RequestProtocol.trans_info:type_name -> trpc.v2.RequestProtocol.TransInfoEntry + 20, // 5: trpc.v2.ResponseProtocol.trans_info:type_name -> trpc.v2.ResponseProtocol.TransInfoEntry + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_trpc_v2_trpc_proto_init() } +func file_trpc_v2_trpc_proto_init() { + if File_trpc_v2_trpc_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_trpc_v2_trpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrpcStreamInitMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_trpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrpcStreamInitRequestMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_trpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrpcStreamInitResponseMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_trpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrpcStreamFeedBackMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_trpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrpcStreamCloseMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_trpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RequestProtocol); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_trpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResponseProtocol); 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_trpc_v2_trpc_proto_rawDesc, + NumEnums: 10, + NumMessages: 11, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_trpc_v2_trpc_proto_goTypes, + DependencyIndexes: file_trpc_v2_trpc_proto_depIdxs, + EnumInfos: file_trpc_v2_trpc_proto_enumTypes, + MessageInfos: file_trpc_v2_trpc_proto_msgTypes, + }.Build() + File_trpc_v2_trpc_proto = out.File + file_trpc_v2_trpc_proto_rawDesc = nil + file_trpc_v2_trpc_proto_goTypes = nil + file_trpc_v2_trpc_proto_depIdxs = nil +} diff --git a/pb/go/trpc/v2/validate/validate.pb.go b/pb/go/trpc/v2/validate/validate.pb.go new file mode 100644 index 0000000..bf15edd --- /dev/null +++ b/pb/go/trpc/v2/validate/validate.pb.go @@ -0,0 +1,4197 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v5.27.1 +// source: trpc/v2/validate/validate.proto + +package validate + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" + durationpb "google.golang.org/protobuf/types/known/durationpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// WellKnownRegex contain some well-known patterns. +type KnownRegex int32 + +const ( + KnownRegex_UNKNOWN KnownRegex = 0 + // HTTP header name as defined by RFC 7230. + KnownRegex_HTTP_HEADER_NAME KnownRegex = 1 + // HTTP header value as defined by RFC 7230. + KnownRegex_HTTP_HEADER_VALUE KnownRegex = 2 +) + +// Enum value maps for KnownRegex. +var ( + KnownRegex_name = map[int32]string{ + 0: "UNKNOWN", + 1: "HTTP_HEADER_NAME", + 2: "HTTP_HEADER_VALUE", + } + KnownRegex_value = map[string]int32{ + "UNKNOWN": 0, + "HTTP_HEADER_NAME": 1, + "HTTP_HEADER_VALUE": 2, + } +) + +func (x KnownRegex) Enum() *KnownRegex { + p := new(KnownRegex) + *p = x + return p +} + +func (x KnownRegex) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (KnownRegex) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_v2_validate_validate_proto_enumTypes[0].Descriptor() +} + +func (KnownRegex) Type() protoreflect.EnumType { + return &file_trpc_v2_validate_validate_proto_enumTypes[0] +} + +func (x KnownRegex) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *KnownRegex) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = KnownRegex(num) + return nil +} + +// Deprecated: Use KnownRegex.Descriptor instead. +func (KnownRegex) EnumDescriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{0} +} + +// FieldRules encapsulates the rules for each type of field. Depending on the +// field, the correct set should be used to ensure proper validations. +type FieldRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message *MessageRules `protobuf:"bytes,17,opt,name=message" json:"message,omitempty"` + // Types that are assignable to Type: + // *FieldRules_Float + // *FieldRules_Double + // *FieldRules_Int32 + // *FieldRules_Int64 + // *FieldRules_Uint32 + // *FieldRules_Uint64 + // *FieldRules_Sint32 + // *FieldRules_Sint64 + // *FieldRules_Fixed32 + // *FieldRules_Fixed64 + // *FieldRules_Sfixed32 + // *FieldRules_Sfixed64 + // *FieldRules_Bool + // *FieldRules_String_ + // *FieldRules_Bytes + // *FieldRules_Enum + // *FieldRules_Repeated + // *FieldRules_Map + // *FieldRules_Any + // *FieldRules_Duration + // *FieldRules_Timestamp + Type isFieldRules_Type `protobuf_oneof:"type"` +} + +func (x *FieldRules) Reset() { + *x = FieldRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FieldRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FieldRules) ProtoMessage() {} + +func (x *FieldRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FieldRules.ProtoReflect.Descriptor instead. +func (*FieldRules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{0} +} + +func (x *FieldRules) GetMessage() *MessageRules { + if x != nil { + return x.Message + } + return nil +} + +func (m *FieldRules) GetType() isFieldRules_Type { + if m != nil { + return m.Type + } + return nil +} + +func (x *FieldRules) GetFloat() *FloatRules { + if x, ok := x.GetType().(*FieldRules_Float); ok { + return x.Float + } + return nil +} + +func (x *FieldRules) GetDouble() *DoubleRules { + if x, ok := x.GetType().(*FieldRules_Double); ok { + return x.Double + } + return nil +} + +func (x *FieldRules) GetInt32() *Int32Rules { + if x, ok := x.GetType().(*FieldRules_Int32); ok { + return x.Int32 + } + return nil +} + +func (x *FieldRules) GetInt64() *Int64Rules { + if x, ok := x.GetType().(*FieldRules_Int64); ok { + return x.Int64 + } + return nil +} + +func (x *FieldRules) GetUint32() *UInt32Rules { + if x, ok := x.GetType().(*FieldRules_Uint32); ok { + return x.Uint32 + } + return nil +} + +func (x *FieldRules) GetUint64() *UInt64Rules { + if x, ok := x.GetType().(*FieldRules_Uint64); ok { + return x.Uint64 + } + return nil +} + +func (x *FieldRules) GetSint32() *SInt32Rules { + if x, ok := x.GetType().(*FieldRules_Sint32); ok { + return x.Sint32 + } + return nil +} + +func (x *FieldRules) GetSint64() *SInt64Rules { + if x, ok := x.GetType().(*FieldRules_Sint64); ok { + return x.Sint64 + } + return nil +} + +func (x *FieldRules) GetFixed32() *Fixed32Rules { + if x, ok := x.GetType().(*FieldRules_Fixed32); ok { + return x.Fixed32 + } + return nil +} + +func (x *FieldRules) GetFixed64() *Fixed64Rules { + if x, ok := x.GetType().(*FieldRules_Fixed64); ok { + return x.Fixed64 + } + return nil +} + +func (x *FieldRules) GetSfixed32() *SFixed32Rules { + if x, ok := x.GetType().(*FieldRules_Sfixed32); ok { + return x.Sfixed32 + } + return nil +} + +func (x *FieldRules) GetSfixed64() *SFixed64Rules { + if x, ok := x.GetType().(*FieldRules_Sfixed64); ok { + return x.Sfixed64 + } + return nil +} + +func (x *FieldRules) GetBool() *BoolRules { + if x, ok := x.GetType().(*FieldRules_Bool); ok { + return x.Bool + } + return nil +} + +func (x *FieldRules) GetString_() *StringRules { + if x, ok := x.GetType().(*FieldRules_String_); ok { + return x.String_ + } + return nil +} + +func (x *FieldRules) GetBytes() *BytesRules { + if x, ok := x.GetType().(*FieldRules_Bytes); ok { + return x.Bytes + } + return nil +} + +func (x *FieldRules) GetEnum() *EnumRules { + if x, ok := x.GetType().(*FieldRules_Enum); ok { + return x.Enum + } + return nil +} + +func (x *FieldRules) GetRepeated() *RepeatedRules { + if x, ok := x.GetType().(*FieldRules_Repeated); ok { + return x.Repeated + } + return nil +} + +func (x *FieldRules) GetMap() *MapRules { + if x, ok := x.GetType().(*FieldRules_Map); ok { + return x.Map + } + return nil +} + +func (x *FieldRules) GetAny() *AnyRules { + if x, ok := x.GetType().(*FieldRules_Any); ok { + return x.Any + } + return nil +} + +func (x *FieldRules) GetDuration() *DurationRules { + if x, ok := x.GetType().(*FieldRules_Duration); ok { + return x.Duration + } + return nil +} + +func (x *FieldRules) GetTimestamp() *TimestampRules { + if x, ok := x.GetType().(*FieldRules_Timestamp); ok { + return x.Timestamp + } + return nil +} + +type isFieldRules_Type interface { + isFieldRules_Type() +} + +type FieldRules_Float struct { + // Scalar Field Types + Float *FloatRules `protobuf:"bytes,1,opt,name=float,oneof"` +} + +type FieldRules_Double struct { + Double *DoubleRules `protobuf:"bytes,2,opt,name=double,oneof"` +} + +type FieldRules_Int32 struct { + Int32 *Int32Rules `protobuf:"bytes,3,opt,name=int32,oneof"` +} + +type FieldRules_Int64 struct { + Int64 *Int64Rules `protobuf:"bytes,4,opt,name=int64,oneof"` +} + +type FieldRules_Uint32 struct { + Uint32 *UInt32Rules `protobuf:"bytes,5,opt,name=uint32,oneof"` +} + +type FieldRules_Uint64 struct { + Uint64 *UInt64Rules `protobuf:"bytes,6,opt,name=uint64,oneof"` +} + +type FieldRules_Sint32 struct { + Sint32 *SInt32Rules `protobuf:"bytes,7,opt,name=sint32,oneof"` +} + +type FieldRules_Sint64 struct { + Sint64 *SInt64Rules `protobuf:"bytes,8,opt,name=sint64,oneof"` +} + +type FieldRules_Fixed32 struct { + Fixed32 *Fixed32Rules `protobuf:"bytes,9,opt,name=fixed32,oneof"` +} + +type FieldRules_Fixed64 struct { + Fixed64 *Fixed64Rules `protobuf:"bytes,10,opt,name=fixed64,oneof"` +} + +type FieldRules_Sfixed32 struct { + Sfixed32 *SFixed32Rules `protobuf:"bytes,11,opt,name=sfixed32,oneof"` +} + +type FieldRules_Sfixed64 struct { + Sfixed64 *SFixed64Rules `protobuf:"bytes,12,opt,name=sfixed64,oneof"` +} + +type FieldRules_Bool struct { + Bool *BoolRules `protobuf:"bytes,13,opt,name=bool,oneof"` +} + +type FieldRules_String_ struct { + String_ *StringRules `protobuf:"bytes,14,opt,name=string,oneof"` +} + +type FieldRules_Bytes struct { + Bytes *BytesRules `protobuf:"bytes,15,opt,name=bytes,oneof"` +} + +type FieldRules_Enum struct { + // Complex Field Types + Enum *EnumRules `protobuf:"bytes,16,opt,name=enum,oneof"` +} + +type FieldRules_Repeated struct { + Repeated *RepeatedRules `protobuf:"bytes,18,opt,name=repeated,oneof"` +} + +type FieldRules_Map struct { + Map *MapRules `protobuf:"bytes,19,opt,name=map,oneof"` +} + +type FieldRules_Any struct { + // Well-Known Field Types + Any *AnyRules `protobuf:"bytes,20,opt,name=any,oneof"` +} + +type FieldRules_Duration struct { + Duration *DurationRules `protobuf:"bytes,21,opt,name=duration,oneof"` +} + +type FieldRules_Timestamp struct { + Timestamp *TimestampRules `protobuf:"bytes,22,opt,name=timestamp,oneof"` +} + +func (*FieldRules_Float) isFieldRules_Type() {} + +func (*FieldRules_Double) isFieldRules_Type() {} + +func (*FieldRules_Int32) isFieldRules_Type() {} + +func (*FieldRules_Int64) isFieldRules_Type() {} + +func (*FieldRules_Uint32) isFieldRules_Type() {} + +func (*FieldRules_Uint64) isFieldRules_Type() {} + +func (*FieldRules_Sint32) isFieldRules_Type() {} + +func (*FieldRules_Sint64) isFieldRules_Type() {} + +func (*FieldRules_Fixed32) isFieldRules_Type() {} + +func (*FieldRules_Fixed64) isFieldRules_Type() {} + +func (*FieldRules_Sfixed32) isFieldRules_Type() {} + +func (*FieldRules_Sfixed64) isFieldRules_Type() {} + +func (*FieldRules_Bool) isFieldRules_Type() {} + +func (*FieldRules_String_) isFieldRules_Type() {} + +func (*FieldRules_Bytes) isFieldRules_Type() {} + +func (*FieldRules_Enum) isFieldRules_Type() {} + +func (*FieldRules_Repeated) isFieldRules_Type() {} + +func (*FieldRules_Map) isFieldRules_Type() {} + +func (*FieldRules_Any) isFieldRules_Type() {} + +func (*FieldRules_Duration) isFieldRules_Type() {} + +func (*FieldRules_Timestamp) isFieldRules_Type() {} + +// FloatRules describes the constraints applied to `float` values +type FloatRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *float32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *float32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *float32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *float32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *float32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []float32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []float32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *FloatRules) Reset() { + *x = FloatRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FloatRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FloatRules) ProtoMessage() {} + +func (x *FloatRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FloatRules.ProtoReflect.Descriptor instead. +func (*FloatRules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{1} +} + +func (x *FloatRules) GetConst() float32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *FloatRules) GetLt() float32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *FloatRules) GetLte() float32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *FloatRules) GetGt() float32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *FloatRules) GetGte() float32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *FloatRules) GetIn() []float32 { + if x != nil { + return x.In + } + return nil +} + +func (x *FloatRules) GetNotIn() []float32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *FloatRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// DoubleRules describes the constraints applied to `double` values +type DoubleRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *float64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *float64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *float64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *float64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *float64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []float64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []float64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *DoubleRules) Reset() { + *x = DoubleRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DoubleRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DoubleRules) ProtoMessage() {} + +func (x *DoubleRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DoubleRules.ProtoReflect.Descriptor instead. +func (*DoubleRules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{2} +} + +func (x *DoubleRules) GetConst() float64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *DoubleRules) GetLt() float64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *DoubleRules) GetLte() float64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *DoubleRules) GetGt() float64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *DoubleRules) GetGte() float64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *DoubleRules) GetIn() []float64 { + if x != nil { + return x.In + } + return nil +} + +func (x *DoubleRules) GetNotIn() []float64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *DoubleRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// Int32Rules describes the constraints applied to `int32` values +type Int32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int32 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int32 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int32 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int32 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int32 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int32 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *Int32Rules) Reset() { + *x = Int32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Int32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Int32Rules) ProtoMessage() {} + +func (x *Int32Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Int32Rules.ProtoReflect.Descriptor instead. +func (*Int32Rules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{3} +} + +func (x *Int32Rules) GetConst() int32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *Int32Rules) GetLt() int32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *Int32Rules) GetLte() int32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *Int32Rules) GetGt() int32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *Int32Rules) GetGte() int32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *Int32Rules) GetIn() []int32 { + if x != nil { + return x.In + } + return nil +} + +func (x *Int32Rules) GetNotIn() []int32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *Int32Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// Int64Rules describes the constraints applied to `int64` values +type Int64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int64 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int64 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int64 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int64 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int64 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int64 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int64 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *Int64Rules) Reset() { + *x = Int64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Int64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Int64Rules) ProtoMessage() {} + +func (x *Int64Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Int64Rules.ProtoReflect.Descriptor instead. +func (*Int64Rules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{4} +} + +func (x *Int64Rules) GetConst() int64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *Int64Rules) GetLt() int64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *Int64Rules) GetLte() int64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *Int64Rules) GetGt() int64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *Int64Rules) GetGte() int64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *Int64Rules) GetIn() []int64 { + if x != nil { + return x.In + } + return nil +} + +func (x *Int64Rules) GetNotIn() []int64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *Int64Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// UInt32Rules describes the constraints applied to `uint32` values +type UInt32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *uint32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *uint32 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *uint32 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *uint32 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *uint32 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []uint32 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []uint32 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *UInt32Rules) Reset() { + *x = UInt32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UInt32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UInt32Rules) ProtoMessage() {} + +func (x *UInt32Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UInt32Rules.ProtoReflect.Descriptor instead. +func (*UInt32Rules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{5} +} + +func (x *UInt32Rules) GetConst() uint32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *UInt32Rules) GetLt() uint32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *UInt32Rules) GetLte() uint32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *UInt32Rules) GetGt() uint32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *UInt32Rules) GetGte() uint32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *UInt32Rules) GetIn() []uint32 { + if x != nil { + return x.In + } + return nil +} + +func (x *UInt32Rules) GetNotIn() []uint32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *UInt32Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// UInt64Rules describes the constraints applied to `uint64` values +type UInt64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *uint64 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *uint64 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *uint64 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *uint64 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *uint64 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []uint64 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []uint64 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *UInt64Rules) Reset() { + *x = UInt64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UInt64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UInt64Rules) ProtoMessage() {} + +func (x *UInt64Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UInt64Rules.ProtoReflect.Descriptor instead. +func (*UInt64Rules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{6} +} + +func (x *UInt64Rules) GetConst() uint64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *UInt64Rules) GetLt() uint64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *UInt64Rules) GetLte() uint64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *UInt64Rules) GetGt() uint64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *UInt64Rules) GetGte() uint64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *UInt64Rules) GetIn() []uint64 { + if x != nil { + return x.In + } + return nil +} + +func (x *UInt64Rules) GetNotIn() []uint64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *UInt64Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// SInt32Rules describes the constraints applied to `sint32` values +type SInt32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int32 `protobuf:"zigzag32,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int32 `protobuf:"zigzag32,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int32 `protobuf:"zigzag32,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int32 `protobuf:"zigzag32,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int32 `protobuf:"zigzag32,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int32 `protobuf:"zigzag32,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int32 `protobuf:"zigzag32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *SInt32Rules) Reset() { + *x = SInt32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SInt32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SInt32Rules) ProtoMessage() {} + +func (x *SInt32Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SInt32Rules.ProtoReflect.Descriptor instead. +func (*SInt32Rules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{7} +} + +func (x *SInt32Rules) GetConst() int32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *SInt32Rules) GetLt() int32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *SInt32Rules) GetLte() int32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *SInt32Rules) GetGt() int32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *SInt32Rules) GetGte() int32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *SInt32Rules) GetIn() []int32 { + if x != nil { + return x.In + } + return nil +} + +func (x *SInt32Rules) GetNotIn() []int32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *SInt32Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// SInt64Rules describes the constraints applied to `sint64` values +type SInt64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int64 `protobuf:"zigzag64,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int64 `protobuf:"zigzag64,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int64 `protobuf:"zigzag64,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int64 `protobuf:"zigzag64,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int64 `protobuf:"zigzag64,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int64 `protobuf:"zigzag64,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int64 `protobuf:"zigzag64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *SInt64Rules) Reset() { + *x = SInt64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SInt64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SInt64Rules) ProtoMessage() {} + +func (x *SInt64Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SInt64Rules.ProtoReflect.Descriptor instead. +func (*SInt64Rules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{8} +} + +func (x *SInt64Rules) GetConst() int64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *SInt64Rules) GetLt() int64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *SInt64Rules) GetLte() int64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *SInt64Rules) GetGt() int64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *SInt64Rules) GetGte() int64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *SInt64Rules) GetIn() []int64 { + if x != nil { + return x.In + } + return nil +} + +func (x *SInt64Rules) GetNotIn() []int64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *SInt64Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// Fixed32Rules describes the constraints applied to `fixed32` values +type Fixed32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *uint32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *uint32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *uint32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *uint32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *uint32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []uint32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []uint32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *Fixed32Rules) Reset() { + *x = Fixed32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Fixed32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Fixed32Rules) ProtoMessage() {} + +func (x *Fixed32Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Fixed32Rules.ProtoReflect.Descriptor instead. +func (*Fixed32Rules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{9} +} + +func (x *Fixed32Rules) GetConst() uint32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *Fixed32Rules) GetLt() uint32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *Fixed32Rules) GetLte() uint32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *Fixed32Rules) GetGt() uint32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *Fixed32Rules) GetGte() uint32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *Fixed32Rules) GetIn() []uint32 { + if x != nil { + return x.In + } + return nil +} + +func (x *Fixed32Rules) GetNotIn() []uint32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *Fixed32Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// Fixed64Rules describes the constraints applied to `fixed64` values +type Fixed64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *uint64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *uint64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *uint64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *uint64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *uint64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []uint64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []uint64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *Fixed64Rules) Reset() { + *x = Fixed64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Fixed64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Fixed64Rules) ProtoMessage() {} + +func (x *Fixed64Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Fixed64Rules.ProtoReflect.Descriptor instead. +func (*Fixed64Rules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{10} +} + +func (x *Fixed64Rules) GetConst() uint64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *Fixed64Rules) GetLt() uint64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *Fixed64Rules) GetLte() uint64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *Fixed64Rules) GetGt() uint64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *Fixed64Rules) GetGte() uint64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *Fixed64Rules) GetIn() []uint64 { + if x != nil { + return x.In + } + return nil +} + +func (x *Fixed64Rules) GetNotIn() []uint64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *Fixed64Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// SFixed32Rules describes the constraints applied to `sfixed32` values +type SFixed32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *SFixed32Rules) Reset() { + *x = SFixed32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SFixed32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SFixed32Rules) ProtoMessage() {} + +func (x *SFixed32Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SFixed32Rules.ProtoReflect.Descriptor instead. +func (*SFixed32Rules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{11} +} + +func (x *SFixed32Rules) GetConst() int32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *SFixed32Rules) GetLt() int32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *SFixed32Rules) GetLte() int32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *SFixed32Rules) GetGt() int32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *SFixed32Rules) GetGte() int32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *SFixed32Rules) GetIn() []int32 { + if x != nil { + return x.In + } + return nil +} + +func (x *SFixed32Rules) GetNotIn() []int32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *SFixed32Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// SFixed64Rules describes the constraints applied to `sfixed64` values +type SFixed64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *SFixed64Rules) Reset() { + *x = SFixed64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SFixed64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SFixed64Rules) ProtoMessage() {} + +func (x *SFixed64Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SFixed64Rules.ProtoReflect.Descriptor instead. +func (*SFixed64Rules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{12} +} + +func (x *SFixed64Rules) GetConst() int64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *SFixed64Rules) GetLt() int64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *SFixed64Rules) GetLte() int64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *SFixed64Rules) GetGt() int64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *SFixed64Rules) GetGte() int64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *SFixed64Rules) GetIn() []int64 { + if x != nil { + return x.In + } + return nil +} + +func (x *SFixed64Rules) GetNotIn() []int64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *SFixed64Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// BoolRules describes the constraints applied to `bool` values +type BoolRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *bool `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` +} + +func (x *BoolRules) Reset() { + *x = BoolRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BoolRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BoolRules) ProtoMessage() {} + +func (x *BoolRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BoolRules.ProtoReflect.Descriptor instead. +func (*BoolRules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{13} +} + +func (x *BoolRules) GetConst() bool { + if x != nil && x.Const != nil { + return *x.Const + } + return false +} + +// StringRules describe the constraints applied to `string` values +type StringRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *string `protobuf:"bytes,1,opt,name=const" json:"const,omitempty"` + // Len specifies that this field must be the specified number of + // characters (Unicode code points). Note that the number of + // characters may differ from the number of bytes in the string. + Len *uint64 `protobuf:"varint,19,opt,name=len" json:"len,omitempty"` + // MinLen specifies that this field must be the specified number of + // characters (Unicode code points) at a minimum. Note that the number of + // characters may differ from the number of bytes in the string. + MinLen *uint64 `protobuf:"varint,2,opt,name=min_len,json=minLen" json:"min_len,omitempty"` + // MaxLen specifies that this field must be the specified number of + // characters (Unicode code points) at a maximum. Note that the number of + // characters may differ from the number of bytes in the string. + MaxLen *uint64 `protobuf:"varint,3,opt,name=max_len,json=maxLen" json:"max_len,omitempty"` + // LenBytes specifies that this field must be the specified number of bytes + // at a minimum + LenBytes *uint64 `protobuf:"varint,20,opt,name=len_bytes,json=lenBytes" json:"len_bytes,omitempty"` + // MinBytes specifies that this field must be the specified number of bytes + // at a minimum + MinBytes *uint64 `protobuf:"varint,4,opt,name=min_bytes,json=minBytes" json:"min_bytes,omitempty"` + // MaxBytes specifies that this field must be the specified number of bytes + // at a maximum + MaxBytes *uint64 `protobuf:"varint,5,opt,name=max_bytes,json=maxBytes" json:"max_bytes,omitempty"` + // Pattern specifes that this field must match against the specified + // regular expression (RE2 syntax). The included expression should elide + // any delimiters. + Pattern *string `protobuf:"bytes,6,opt,name=pattern" json:"pattern,omitempty"` + // Prefix specifies that this field must have the specified substring at + // the beginning of the string. + Prefix *string `protobuf:"bytes,7,opt,name=prefix" json:"prefix,omitempty"` + // Suffix specifies that this field must have the specified substring at + // the end of the string. + Suffix *string `protobuf:"bytes,8,opt,name=suffix" json:"suffix,omitempty"` + // Contains specifies that this field must have the specified substring + // anywhere in the string. + Contains *string `protobuf:"bytes,9,opt,name=contains" json:"contains,omitempty"` + // NotContains specifies that this field cannot have the specified substring + // anywhere in the string. + NotContains *string `protobuf:"bytes,23,opt,name=not_contains,json=notContains" json:"not_contains,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []string `protobuf:"bytes,10,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []string `protobuf:"bytes,11,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // WellKnown rules provide advanced constraints against common string + // patterns + // + // Types that are assignable to WellKnown: + // *StringRules_Email + // *StringRules_Hostname + // *StringRules_Ip + // *StringRules_Ipv4 + // *StringRules_Ipv6 + // *StringRules_Uri + // *StringRules_UriRef + // *StringRules_Address + // *StringRules_Uuid + // *StringRules_WellKnownRegex + // *StringRules_Alphabets + // *StringRules_Alphanums + // *StringRules_Lowercase + // *StringRules_Tsecstr + WellKnown isStringRules_WellKnown `protobuf_oneof:"well_known"` + // This applies to regexes HTTP_HEADER_NAME and HTTP_HEADER_VALUE to enable + // strict header validation. + // By default, this is true, and HTTP header validations are RFC-compliant. + // Setting to false will enable a looser validations that only disallows + // \r\n\0 characters, which can be used to bypass header matching rules. + Strict *bool `protobuf:"varint,25,opt,name=strict,def=1" json:"strict,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,26,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +// Default values for StringRules fields. +const ( + Default_StringRules_Strict = bool(true) +) + +func (x *StringRules) Reset() { + *x = StringRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StringRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StringRules) ProtoMessage() {} + +func (x *StringRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StringRules.ProtoReflect.Descriptor instead. +func (*StringRules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{14} +} + +func (x *StringRules) GetConst() string { + if x != nil && x.Const != nil { + return *x.Const + } + return "" +} + +func (x *StringRules) GetLen() uint64 { + if x != nil && x.Len != nil { + return *x.Len + } + return 0 +} + +func (x *StringRules) GetMinLen() uint64 { + if x != nil && x.MinLen != nil { + return *x.MinLen + } + return 0 +} + +func (x *StringRules) GetMaxLen() uint64 { + if x != nil && x.MaxLen != nil { + return *x.MaxLen + } + return 0 +} + +func (x *StringRules) GetLenBytes() uint64 { + if x != nil && x.LenBytes != nil { + return *x.LenBytes + } + return 0 +} + +func (x *StringRules) GetMinBytes() uint64 { + if x != nil && x.MinBytes != nil { + return *x.MinBytes + } + return 0 +} + +func (x *StringRules) GetMaxBytes() uint64 { + if x != nil && x.MaxBytes != nil { + return *x.MaxBytes + } + return 0 +} + +func (x *StringRules) GetPattern() string { + if x != nil && x.Pattern != nil { + return *x.Pattern + } + return "" +} + +func (x *StringRules) GetPrefix() string { + if x != nil && x.Prefix != nil { + return *x.Prefix + } + return "" +} + +func (x *StringRules) GetSuffix() string { + if x != nil && x.Suffix != nil { + return *x.Suffix + } + return "" +} + +func (x *StringRules) GetContains() string { + if x != nil && x.Contains != nil { + return *x.Contains + } + return "" +} + +func (x *StringRules) GetNotContains() string { + if x != nil && x.NotContains != nil { + return *x.NotContains + } + return "" +} + +func (x *StringRules) GetIn() []string { + if x != nil { + return x.In + } + return nil +} + +func (x *StringRules) GetNotIn() []string { + if x != nil { + return x.NotIn + } + return nil +} + +func (m *StringRules) GetWellKnown() isStringRules_WellKnown { + if m != nil { + return m.WellKnown + } + return nil +} + +func (x *StringRules) GetEmail() bool { + if x, ok := x.GetWellKnown().(*StringRules_Email); ok { + return x.Email + } + return false +} + +func (x *StringRules) GetHostname() bool { + if x, ok := x.GetWellKnown().(*StringRules_Hostname); ok { + return x.Hostname + } + return false +} + +func (x *StringRules) GetIp() bool { + if x, ok := x.GetWellKnown().(*StringRules_Ip); ok { + return x.Ip + } + return false +} + +func (x *StringRules) GetIpv4() bool { + if x, ok := x.GetWellKnown().(*StringRules_Ipv4); ok { + return x.Ipv4 + } + return false +} + +func (x *StringRules) GetIpv6() bool { + if x, ok := x.GetWellKnown().(*StringRules_Ipv6); ok { + return x.Ipv6 + } + return false +} + +func (x *StringRules) GetUri() bool { + if x, ok := x.GetWellKnown().(*StringRules_Uri); ok { + return x.Uri + } + return false +} + +func (x *StringRules) GetUriRef() bool { + if x, ok := x.GetWellKnown().(*StringRules_UriRef); ok { + return x.UriRef + } + return false +} + +func (x *StringRules) GetAddress() bool { + if x, ok := x.GetWellKnown().(*StringRules_Address); ok { + return x.Address + } + return false +} + +func (x *StringRules) GetUuid() bool { + if x, ok := x.GetWellKnown().(*StringRules_Uuid); ok { + return x.Uuid + } + return false +} + +func (x *StringRules) GetWellKnownRegex() KnownRegex { + if x, ok := x.GetWellKnown().(*StringRules_WellKnownRegex); ok { + return x.WellKnownRegex + } + return KnownRegex_UNKNOWN +} + +func (x *StringRules) GetAlphabets() bool { + if x, ok := x.GetWellKnown().(*StringRules_Alphabets); ok { + return x.Alphabets + } + return false +} + +func (x *StringRules) GetAlphanums() bool { + if x, ok := x.GetWellKnown().(*StringRules_Alphanums); ok { + return x.Alphanums + } + return false +} + +func (x *StringRules) GetLowercase() bool { + if x, ok := x.GetWellKnown().(*StringRules_Lowercase); ok { + return x.Lowercase + } + return false +} + +func (x *StringRules) GetTsecstr() bool { + if x, ok := x.GetWellKnown().(*StringRules_Tsecstr); ok { + return x.Tsecstr + } + return false +} + +func (x *StringRules) GetStrict() bool { + if x != nil && x.Strict != nil { + return *x.Strict + } + return Default_StringRules_Strict +} + +func (x *StringRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +type isStringRules_WellKnown interface { + isStringRules_WellKnown() +} + +type StringRules_Email struct { + // Email specifies that the field must be a valid email address as + // defined by RFC 5322 + Email bool `protobuf:"varint,12,opt,name=email,oneof"` +} + +type StringRules_Hostname struct { + // Hostname specifies that the field must be a valid hostname as + // defined by RFC 1034. This constraint does not support + // internationalized domain names (IDNs). + Hostname bool `protobuf:"varint,13,opt,name=hostname,oneof"` +} + +type StringRules_Ip struct { + // Ip specifies that the field must be a valid IP (v4 or v6) address. + // Valid IPv6 addresses should not include surrounding square brackets. + Ip bool `protobuf:"varint,14,opt,name=ip,oneof"` +} + +type StringRules_Ipv4 struct { + // Ipv4 specifies that the field must be a valid IPv4 address. + Ipv4 bool `protobuf:"varint,15,opt,name=ipv4,oneof"` +} + +type StringRules_Ipv6 struct { + // Ipv6 specifies that the field must be a valid IPv6 address. Valid + // IPv6 addresses should not include surrounding square brackets. + Ipv6 bool `protobuf:"varint,16,opt,name=ipv6,oneof"` +} + +type StringRules_Uri struct { + // Uri specifies that the field must be a valid, absolute URI as defined + // by RFC 3986 + Uri bool `protobuf:"varint,17,opt,name=uri,oneof"` +} + +type StringRules_UriRef struct { + // UriRef specifies that the field must be a valid URI as defined by RFC + // 3986 and may be relative or absolute. + UriRef bool `protobuf:"varint,18,opt,name=uri_ref,json=uriRef,oneof"` +} + +type StringRules_Address struct { + // Address specifies that the field must be either a valid hostname as + // defined by RFC 1034 (which does not support internationalized domain + // names or IDNs), or it can be a valid IP (v4 or v6). + Address bool `protobuf:"varint,21,opt,name=address,oneof"` +} + +type StringRules_Uuid struct { + // Uuid specifies that the field must be a valid UUID as defined by + // RFC 4122 + Uuid bool `protobuf:"varint,22,opt,name=uuid,oneof"` +} + +type StringRules_WellKnownRegex struct { + // WellKnownRegex specifies a common well known pattern defined as a regex. + WellKnownRegex KnownRegex `protobuf:"varint,24,opt,name=well_known_regex,json=wellKnownRegex,enum=trpc.v2.validate.KnownRegex,oneof"` +} + +type StringRules_Alphabets struct { + // Alphabets specifies that the field can only contain alphabets. e.g. aA + Alphabets bool `protobuf:"varint,27,opt,name=alphabets,oneof"` +} + +type StringRules_Alphanums struct { + // Alphanums specifies that the field should contain both alphabet(s) and number(s). e.g. aA1 + Alphanums bool `protobuf:"varint,28,opt,name=alphanums,oneof"` +} + +type StringRules_Lowercase struct { + // Lowercase specifies that the field can only contain lowercase alphabet(s). e.g. aa + Lowercase bool `protobuf:"varint,29,opt,name=lowercase,oneof"` +} + +type StringRules_Tsecstr struct { + // tsecstr specifies that the field can only contain secured strings + Tsecstr bool `protobuf:"varint,30,opt,name=tsecstr,oneof"` +} + +func (*StringRules_Email) isStringRules_WellKnown() {} + +func (*StringRules_Hostname) isStringRules_WellKnown() {} + +func (*StringRules_Ip) isStringRules_WellKnown() {} + +func (*StringRules_Ipv4) isStringRules_WellKnown() {} + +func (*StringRules_Ipv6) isStringRules_WellKnown() {} + +func (*StringRules_Uri) isStringRules_WellKnown() {} + +func (*StringRules_UriRef) isStringRules_WellKnown() {} + +func (*StringRules_Address) isStringRules_WellKnown() {} + +func (*StringRules_Uuid) isStringRules_WellKnown() {} + +func (*StringRules_WellKnownRegex) isStringRules_WellKnown() {} + +func (*StringRules_Alphabets) isStringRules_WellKnown() {} + +func (*StringRules_Alphanums) isStringRules_WellKnown() {} + +func (*StringRules_Lowercase) isStringRules_WellKnown() {} + +func (*StringRules_Tsecstr) isStringRules_WellKnown() {} + +// BytesRules describe the constraints applied to `bytes` values +type BytesRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const []byte `protobuf:"bytes,1,opt,name=const" json:"const,omitempty"` + // Len specifies that this field must be the specified number of bytes + Len *uint64 `protobuf:"varint,13,opt,name=len" json:"len,omitempty"` + // MinLen specifies that this field must be the specified number of bytes + // at a minimum + MinLen *uint64 `protobuf:"varint,2,opt,name=min_len,json=minLen" json:"min_len,omitempty"` + // MaxLen specifies that this field must be the specified number of bytes + // at a maximum + MaxLen *uint64 `protobuf:"varint,3,opt,name=max_len,json=maxLen" json:"max_len,omitempty"` + // Pattern specifes that this field must match against the specified + // regular expression (RE2 syntax). The included expression should elide + // any delimiters. + Pattern *string `protobuf:"bytes,4,opt,name=pattern" json:"pattern,omitempty"` + // Prefix specifies that this field must have the specified bytes at the + // beginning of the string. + Prefix []byte `protobuf:"bytes,5,opt,name=prefix" json:"prefix,omitempty"` + // Suffix specifies that this field must have the specified bytes at the + // end of the string. + Suffix []byte `protobuf:"bytes,6,opt,name=suffix" json:"suffix,omitempty"` + // Contains specifies that this field must have the specified bytes + // anywhere in the string. + Contains []byte `protobuf:"bytes,7,opt,name=contains" json:"contains,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In [][]byte `protobuf:"bytes,8,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn [][]byte `protobuf:"bytes,9,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // WellKnown rules provide advanced constraints against common byte + // patterns + // + // Types that are assignable to WellKnown: + // *BytesRules_Ip + // *BytesRules_Ipv4 + // *BytesRules_Ipv6 + WellKnown isBytesRules_WellKnown `protobuf_oneof:"well_known"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,14,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *BytesRules) Reset() { + *x = BytesRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BytesRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BytesRules) ProtoMessage() {} + +func (x *BytesRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BytesRules.ProtoReflect.Descriptor instead. +func (*BytesRules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{15} +} + +func (x *BytesRules) GetConst() []byte { + if x != nil { + return x.Const + } + return nil +} + +func (x *BytesRules) GetLen() uint64 { + if x != nil && x.Len != nil { + return *x.Len + } + return 0 +} + +func (x *BytesRules) GetMinLen() uint64 { + if x != nil && x.MinLen != nil { + return *x.MinLen + } + return 0 +} + +func (x *BytesRules) GetMaxLen() uint64 { + if x != nil && x.MaxLen != nil { + return *x.MaxLen + } + return 0 +} + +func (x *BytesRules) GetPattern() string { + if x != nil && x.Pattern != nil { + return *x.Pattern + } + return "" +} + +func (x *BytesRules) GetPrefix() []byte { + if x != nil { + return x.Prefix + } + return nil +} + +func (x *BytesRules) GetSuffix() []byte { + if x != nil { + return x.Suffix + } + return nil +} + +func (x *BytesRules) GetContains() []byte { + if x != nil { + return x.Contains + } + return nil +} + +func (x *BytesRules) GetIn() [][]byte { + if x != nil { + return x.In + } + return nil +} + +func (x *BytesRules) GetNotIn() [][]byte { + if x != nil { + return x.NotIn + } + return nil +} + +func (m *BytesRules) GetWellKnown() isBytesRules_WellKnown { + if m != nil { + return m.WellKnown + } + return nil +} + +func (x *BytesRules) GetIp() bool { + if x, ok := x.GetWellKnown().(*BytesRules_Ip); ok { + return x.Ip + } + return false +} + +func (x *BytesRules) GetIpv4() bool { + if x, ok := x.GetWellKnown().(*BytesRules_Ipv4); ok { + return x.Ipv4 + } + return false +} + +func (x *BytesRules) GetIpv6() bool { + if x, ok := x.GetWellKnown().(*BytesRules_Ipv6); ok { + return x.Ipv6 + } + return false +} + +func (x *BytesRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +type isBytesRules_WellKnown interface { + isBytesRules_WellKnown() +} + +type BytesRules_Ip struct { + // Ip specifies that the field must be a valid IP (v4 or v6) address in + // byte format + Ip bool `protobuf:"varint,10,opt,name=ip,oneof"` +} + +type BytesRules_Ipv4 struct { + // Ipv4 specifies that the field must be a valid IPv4 address in byte + // format + Ipv4 bool `protobuf:"varint,11,opt,name=ipv4,oneof"` +} + +type BytesRules_Ipv6 struct { + // Ipv6 specifies that the field must be a valid IPv6 address in byte + // format + Ipv6 bool `protobuf:"varint,12,opt,name=ipv6,oneof"` +} + +func (*BytesRules_Ip) isBytesRules_WellKnown() {} + +func (*BytesRules_Ipv4) isBytesRules_WellKnown() {} + +func (*BytesRules_Ipv6) isBytesRules_WellKnown() {} + +// EnumRules describe the constraints applied to enum values +type EnumRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // DefinedOnly specifies that this field must be only one of the defined + // values for this enum, failing on any undefined value. + DefinedOnly *bool `protobuf:"varint,2,opt,name=defined_only,json=definedOnly" json:"defined_only,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int32 `protobuf:"varint,3,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int32 `protobuf:"varint,4,rep,name=not_in,json=notIn" json:"not_in,omitempty"` +} + +func (x *EnumRules) Reset() { + *x = EnumRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EnumRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnumRules) ProtoMessage() {} + +func (x *EnumRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EnumRules.ProtoReflect.Descriptor instead. +func (*EnumRules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{16} +} + +func (x *EnumRules) GetConst() int32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *EnumRules) GetDefinedOnly() bool { + if x != nil && x.DefinedOnly != nil { + return *x.DefinedOnly + } + return false +} + +func (x *EnumRules) GetIn() []int32 { + if x != nil { + return x.In + } + return nil +} + +func (x *EnumRules) GetNotIn() []int32 { + if x != nil { + return x.NotIn + } + return nil +} + +// MessageRules describe the constraints applied to embedded message values. +// For message-type fields, validation is performed recursively. +type MessageRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Skip specifies that the validation rules of this field should not be + // evaluated + Skip *bool `protobuf:"varint,1,opt,name=skip" json:"skip,omitempty"` + // Required specifies that this field must be set + Required *bool `protobuf:"varint,2,opt,name=required" json:"required,omitempty"` +} + +func (x *MessageRules) Reset() { + *x = MessageRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageRules) ProtoMessage() {} + +func (x *MessageRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageRules.ProtoReflect.Descriptor instead. +func (*MessageRules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{17} +} + +func (x *MessageRules) GetSkip() bool { + if x != nil && x.Skip != nil { + return *x.Skip + } + return false +} + +func (x *MessageRules) GetRequired() bool { + if x != nil && x.Required != nil { + return *x.Required + } + return false +} + +// RepeatedRules describe the constraints applied to `repeated` values +type RepeatedRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // MinItems specifies that this field must have the specified number of + // items at a minimum + MinItems *uint64 `protobuf:"varint,1,opt,name=min_items,json=minItems" json:"min_items,omitempty"` + // MaxItems specifies that this field must have the specified number of + // items at a maximum + MaxItems *uint64 `protobuf:"varint,2,opt,name=max_items,json=maxItems" json:"max_items,omitempty"` + // Unique specifies that all elements in this field must be unique. This + // contraint is only applicable to scalar and enum types (messages are not + // supported). + Unique *bool `protobuf:"varint,3,opt,name=unique" json:"unique,omitempty"` + // Items specifies the contraints to be applied to each item in the field. + // Repeated message fields will still execute validation against each item + // unless skip is specified here. + Items *FieldRules `protobuf:"bytes,4,opt,name=items" json:"items,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,5,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *RepeatedRules) Reset() { + *x = RepeatedRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RepeatedRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RepeatedRules) ProtoMessage() {} + +func (x *RepeatedRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RepeatedRules.ProtoReflect.Descriptor instead. +func (*RepeatedRules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{18} +} + +func (x *RepeatedRules) GetMinItems() uint64 { + if x != nil && x.MinItems != nil { + return *x.MinItems + } + return 0 +} + +func (x *RepeatedRules) GetMaxItems() uint64 { + if x != nil && x.MaxItems != nil { + return *x.MaxItems + } + return 0 +} + +func (x *RepeatedRules) GetUnique() bool { + if x != nil && x.Unique != nil { + return *x.Unique + } + return false +} + +func (x *RepeatedRules) GetItems() *FieldRules { + if x != nil { + return x.Items + } + return nil +} + +func (x *RepeatedRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// MapRules describe the constraints applied to `map` values +type MapRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // MinPairs specifies that this field must have the specified number of + // KVs at a minimum + MinPairs *uint64 `protobuf:"varint,1,opt,name=min_pairs,json=minPairs" json:"min_pairs,omitempty"` + // MaxPairs specifies that this field must have the specified number of + // KVs at a maximum + MaxPairs *uint64 `protobuf:"varint,2,opt,name=max_pairs,json=maxPairs" json:"max_pairs,omitempty"` + // NoSparse specifies values in this field cannot be unset. This only + // applies to map's with message value types. + NoSparse *bool `protobuf:"varint,3,opt,name=no_sparse,json=noSparse" json:"no_sparse,omitempty"` + // Keys specifies the constraints to be applied to each key in the field. + Keys *FieldRules `protobuf:"bytes,4,opt,name=keys" json:"keys,omitempty"` + // Values specifies the constraints to be applied to the value of each key + // in the field. Message values will still have their validations evaluated + // unless skip is specified here. + Values *FieldRules `protobuf:"bytes,5,opt,name=values" json:"values,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,6,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *MapRules) Reset() { + *x = MapRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MapRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MapRules) ProtoMessage() {} + +func (x *MapRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MapRules.ProtoReflect.Descriptor instead. +func (*MapRules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{19} +} + +func (x *MapRules) GetMinPairs() uint64 { + if x != nil && x.MinPairs != nil { + return *x.MinPairs + } + return 0 +} + +func (x *MapRules) GetMaxPairs() uint64 { + if x != nil && x.MaxPairs != nil { + return *x.MaxPairs + } + return 0 +} + +func (x *MapRules) GetNoSparse() bool { + if x != nil && x.NoSparse != nil { + return *x.NoSparse + } + return false +} + +func (x *MapRules) GetKeys() *FieldRules { + if x != nil { + return x.Keys + } + return nil +} + +func (x *MapRules) GetValues() *FieldRules { + if x != nil { + return x.Values + } + return nil +} + +func (x *MapRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// AnyRules describe constraints applied exclusively to the +// `google.protobuf.Any` well-known type +type AnyRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required specifies that this field must be set + Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` + // In specifies that this field's `type_url` must be equal to one of the + // specified values. + In []string `protobuf:"bytes,2,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field's `type_url` must not be equal to any of + // the specified values. + NotIn []string `protobuf:"bytes,3,rep,name=not_in,json=notIn" json:"not_in,omitempty"` +} + +func (x *AnyRules) Reset() { + *x = AnyRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnyRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnyRules) ProtoMessage() {} + +func (x *AnyRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AnyRules.ProtoReflect.Descriptor instead. +func (*AnyRules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{20} +} + +func (x *AnyRules) GetRequired() bool { + if x != nil && x.Required != nil { + return *x.Required + } + return false +} + +func (x *AnyRules) GetIn() []string { + if x != nil { + return x.In + } + return nil +} + +func (x *AnyRules) GetNotIn() []string { + if x != nil { + return x.NotIn + } + return nil +} + +// DurationRules describe the constraints applied exclusively to the +// `google.protobuf.Duration` well-known type +type DurationRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required specifies that this field must be set + Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` + // Const specifies that this field must be exactly the specified value + Const *durationpb.Duration `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *durationpb.Duration `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` + // Lt specifies that this field must be less than the specified value, + // inclusive + Lte *durationpb.Duration `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive + Gt *durationpb.Duration `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than the specified value, + // inclusive + Gte *durationpb.Duration `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []*durationpb.Duration `protobuf:"bytes,7,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []*durationpb.Duration `protobuf:"bytes,8,rep,name=not_in,json=notIn" json:"not_in,omitempty"` +} + +func (x *DurationRules) Reset() { + *x = DurationRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DurationRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DurationRules) ProtoMessage() {} + +func (x *DurationRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DurationRules.ProtoReflect.Descriptor instead. +func (*DurationRules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{21} +} + +func (x *DurationRules) GetRequired() bool { + if x != nil && x.Required != nil { + return *x.Required + } + return false +} + +func (x *DurationRules) GetConst() *durationpb.Duration { + if x != nil { + return x.Const + } + return nil +} + +func (x *DurationRules) GetLt() *durationpb.Duration { + if x != nil { + return x.Lt + } + return nil +} + +func (x *DurationRules) GetLte() *durationpb.Duration { + if x != nil { + return x.Lte + } + return nil +} + +func (x *DurationRules) GetGt() *durationpb.Duration { + if x != nil { + return x.Gt + } + return nil +} + +func (x *DurationRules) GetGte() *durationpb.Duration { + if x != nil { + return x.Gte + } + return nil +} + +func (x *DurationRules) GetIn() []*durationpb.Duration { + if x != nil { + return x.In + } + return nil +} + +func (x *DurationRules) GetNotIn() []*durationpb.Duration { + if x != nil { + return x.NotIn + } + return nil +} + +// TimestampRules describe the constraints applied exclusively to the +// `google.protobuf.Timestamp` well-known type +type TimestampRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required specifies that this field must be set + Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` + // Const specifies that this field must be exactly the specified value + Const *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than the specified value, + // inclusive + Lte *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive + Gt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than the specified value, + // inclusive + Gte *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` + // LtNow specifies that this must be less than the current time. LtNow + // can only be used with the Within rule. + LtNow *bool `protobuf:"varint,7,opt,name=lt_now,json=ltNow" json:"lt_now,omitempty"` + // GtNow specifies that this must be greater than the current time. GtNow + // can only be used with the Within rule. + GtNow *bool `protobuf:"varint,8,opt,name=gt_now,json=gtNow" json:"gt_now,omitempty"` + // Within specifies that this field must be within this duration of the + // current time. This constraint can be used alone or with the LtNow and + // GtNow rules. + Within *durationpb.Duration `protobuf:"bytes,9,opt,name=within" json:"within,omitempty"` +} + +func (x *TimestampRules) Reset() { + *x = TimestampRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TimestampRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TimestampRules) ProtoMessage() {} + +func (x *TimestampRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_validate_validate_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TimestampRules.ProtoReflect.Descriptor instead. +func (*TimestampRules) Descriptor() ([]byte, []int) { + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{22} +} + +func (x *TimestampRules) GetRequired() bool { + if x != nil && x.Required != nil { + return *x.Required + } + return false +} + +func (x *TimestampRules) GetConst() *timestamppb.Timestamp { + if x != nil { + return x.Const + } + return nil +} + +func (x *TimestampRules) GetLt() *timestamppb.Timestamp { + if x != nil { + return x.Lt + } + return nil +} + +func (x *TimestampRules) GetLte() *timestamppb.Timestamp { + if x != nil { + return x.Lte + } + return nil +} + +func (x *TimestampRules) GetGt() *timestamppb.Timestamp { + if x != nil { + return x.Gt + } + return nil +} + +func (x *TimestampRules) GetGte() *timestamppb.Timestamp { + if x != nil { + return x.Gte + } + return nil +} + +func (x *TimestampRules) GetLtNow() bool { + if x != nil && x.LtNow != nil { + return *x.LtNow + } + return false +} + +func (x *TimestampRules) GetGtNow() bool { + if x != nil && x.GtNow != nil { + return *x.GtNow + } + return false +} + +func (x *TimestampRules) GetWithin() *durationpb.Duration { + if x != nil { + return x.Within + } + return nil +} + +var file_trpc_v2_validate_validate_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptorpb.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1155, + Name: "trpc.v2.validate.disabled", + Tag: "varint,1155,opt,name=disabled", + Filename: "trpc/v2/validate/validate.proto", + }, + { + ExtendedType: (*descriptorpb.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1156, + Name: "trpc.v2.validate.ignored", + Tag: "varint,1156,opt,name=ignored", + Filename: "trpc/v2/validate/validate.proto", + }, + { + ExtendedType: (*descriptorpb.OneofOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1155, + Name: "trpc.v2.validate.required", + Tag: "varint,1155,opt,name=required", + Filename: "trpc/v2/validate/validate.proto", + }, + { + ExtendedType: (*descriptorpb.FieldOptions)(nil), + ExtensionType: (*FieldRules)(nil), + Field: 1155, + Name: "trpc.v2.validate.rules", + Tag: "bytes,1155,opt,name=rules", + Filename: "trpc/v2/validate/validate.proto", + }, +} + +// Extension fields to descriptorpb.MessageOptions. +var ( + // Disabled nullifies any validation rules for this message, including any + // message fields associated with it that do support validation. + // + // optional bool disabled = 1155; + E_Disabled = &file_trpc_v2_validate_validate_proto_extTypes[0] + // Ignore skips generation of validation methods for this message. + // + // optional bool ignored = 1156; + E_Ignored = &file_trpc_v2_validate_validate_proto_extTypes[1] +) + +// Extension fields to descriptorpb.OneofOptions. +var ( + // Required ensures that exactly one the field options in a oneof is set; + // validation fails if no fields in the oneof are set. + // + // optional bool required = 1155; + E_Required = &file_trpc_v2_validate_validate_proto_extTypes[2] +) + +// Extension fields to descriptorpb.FieldOptions. +var ( + // Rules specify the validations to be performed on this field. By default, + // no validation is performed against a field. + // + // optional trpc.v2.validate.FieldRules rules = 1155; + E_Rules = &file_trpc_v2_validate_validate_proto_extTypes[3] +) + +var File_trpc_v2_validate_validate_proto protoreflect.FileDescriptor + +var file_trpc_v2_validate_validate_proto_rawDesc = []byte{ + 0x0a, 0x1f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x10, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf8, 0x09, 0x0a, 0x0a, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, + 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x34, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x37, 0x0a, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x34, + 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x12, 0x34, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x37, 0x0a, 0x06, 0x75, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x12, 0x37, 0x0a, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x37, 0x0a, 0x06, + 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, + 0x53, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x3a, + 0x0a, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x3a, 0x0a, 0x07, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, + 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x07, 0x66, + 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x3d, 0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, + 0x33, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, + 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x3d, 0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, + 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, + 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x46, 0x69, 0x78, 0x65, + 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x36, 0x34, 0x12, 0x31, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, + 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x12, 0x34, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, + 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x48, 0x00, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x3d, 0x0a, 0x08, 0x72, 0x65, 0x70, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x52, + 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x2e, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x3d, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x02, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, + 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x02, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, + 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x01, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, + 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x01, 0x52, 0x05, + 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x67, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x67, 0x74, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, 0x69, + 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x0a, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x6c, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6c, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, + 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, + 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, + 0x01, 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, + 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, + 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, + 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, + 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x03, 0x67, 0x74, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x11, 0x52, 0x02, 0x69, 0x6e, + 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x11, + 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x53, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, 0x6c, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x6c, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, + 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x12, + 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x12, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb2, + 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x07, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x07, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x07, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x07, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, + 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x07, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, + 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x06, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x06, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x06, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, + 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x06, 0x52, 0x05, + 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, + 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02, 0x6c, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x6c, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02, + 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0f, 0x52, + 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0f, + 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0f, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb3, + 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x10, 0x52, + 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x10, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x10, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x10, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x10, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, + 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x10, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, + 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x22, 0xd8, 0x06, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, + 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, + 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65, + 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6c, 0x65, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b, + 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, + 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, + 0x66, 0x66, 0x69, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, + 0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x21, + 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, + 0x12, 0x1c, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, + 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, + 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, 0x12, 0x0a, 0x03, + 0x75, 0x72, 0x69, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, + 0x12, 0x19, 0x0a, 0x07, 0x75, 0x72, 0x69, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, 0x72, 0x69, 0x52, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x48, 0x0a, + 0x10, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65, 0x67, 0x65, + 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, + 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, + 0x52, 0x65, 0x67, 0x65, 0x78, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, + 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x62, 0x65, 0x74, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x6e, 0x75, 0x6d, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, + 0x63, 0x61, 0x73, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, + 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x74, 0x73, 0x65, 0x63, 0x73, + 0x74, 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x74, 0x73, 0x65, 0x63, + 0x73, 0x74, 0x72, 0x12, 0x1c, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x22, 0xe2, 0x02, 0x0a, 0x0a, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, + 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, + 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, + 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x02, 0x69, + 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x0c, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, + 0x76, 0x34, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, + 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, + 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x65, 0x6c, + 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0x6b, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, + 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x6e, + 0x6f, 0x74, 0x49, 0x6e, 0x22, 0x3e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x22, 0xb8, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, + 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, + 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, + 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0xec, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, + 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, + 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, + 0x78, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x73, 0x70, 0x61, + 0x72, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, 0x53, 0x70, 0x61, + 0x72, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, + 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x34, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4d, + 0x0a, 0x08, 0x41, 0x6e, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, 0xe9, 0x02, + 0x0a, 0x0d, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x02, + 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x03, 0x6c, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x67, 0x74, 0x12, + 0x2b, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x02, + 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, + 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, 0xf3, 0x02, 0x0a, 0x0e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x18, 0x02, 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, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x02, 0x6c, 0x74, + 0x18, 0x03, 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, 0x02, 0x6c, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x6c, 0x74, 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, + 0x03, 0x6c, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x02, 0x67, 0x74, 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, 0x02, 0x67, 0x74, + 0x12, 0x2c, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x06, 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, 0x03, 0x67, 0x74, 0x65, 0x12, 0x15, + 0x0a, 0x06, 0x6c, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, + 0x6c, 0x74, 0x4e, 0x6f, 0x77, 0x12, 0x15, 0x0a, 0x06, 0x67, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x74, 0x4e, 0x6f, 0x77, 0x12, 0x31, 0x0a, 0x06, + 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x2a, + 0x46, 0x0a, 0x0a, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x0b, 0x0a, + 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x54, + 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, + 0x12, 0x15, 0x0a, 0x11, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, + 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x02, 0x3a, 0x3c, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x83, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x3a, 0x0a, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, + 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x84, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x64, 0x3a, 0x3a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x83, 0x09, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x52, 0x0a, + 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x83, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x42, 0x55, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, + 0x78, 0x74, 0x5a, 0x34, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, +} + +var ( + file_trpc_v2_validate_validate_proto_rawDescOnce sync.Once + file_trpc_v2_validate_validate_proto_rawDescData = file_trpc_v2_validate_validate_proto_rawDesc +) + +func file_trpc_v2_validate_validate_proto_rawDescGZIP() []byte { + file_trpc_v2_validate_validate_proto_rawDescOnce.Do(func() { + file_trpc_v2_validate_validate_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_v2_validate_validate_proto_rawDescData) + }) + return file_trpc_v2_validate_validate_proto_rawDescData +} + +var file_trpc_v2_validate_validate_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_trpc_v2_validate_validate_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_trpc_v2_validate_validate_proto_goTypes = []interface{}{ + (KnownRegex)(0), // 0: trpc.v2.validate.KnownRegex + (*FieldRules)(nil), // 1: trpc.v2.validate.FieldRules + (*FloatRules)(nil), // 2: trpc.v2.validate.FloatRules + (*DoubleRules)(nil), // 3: trpc.v2.validate.DoubleRules + (*Int32Rules)(nil), // 4: trpc.v2.validate.Int32Rules + (*Int64Rules)(nil), // 5: trpc.v2.validate.Int64Rules + (*UInt32Rules)(nil), // 6: trpc.v2.validate.UInt32Rules + (*UInt64Rules)(nil), // 7: trpc.v2.validate.UInt64Rules + (*SInt32Rules)(nil), // 8: trpc.v2.validate.SInt32Rules + (*SInt64Rules)(nil), // 9: trpc.v2.validate.SInt64Rules + (*Fixed32Rules)(nil), // 10: trpc.v2.validate.Fixed32Rules + (*Fixed64Rules)(nil), // 11: trpc.v2.validate.Fixed64Rules + (*SFixed32Rules)(nil), // 12: trpc.v2.validate.SFixed32Rules + (*SFixed64Rules)(nil), // 13: trpc.v2.validate.SFixed64Rules + (*BoolRules)(nil), // 14: trpc.v2.validate.BoolRules + (*StringRules)(nil), // 15: trpc.v2.validate.StringRules + (*BytesRules)(nil), // 16: trpc.v2.validate.BytesRules + (*EnumRules)(nil), // 17: trpc.v2.validate.EnumRules + (*MessageRules)(nil), // 18: trpc.v2.validate.MessageRules + (*RepeatedRules)(nil), // 19: trpc.v2.validate.RepeatedRules + (*MapRules)(nil), // 20: trpc.v2.validate.MapRules + (*AnyRules)(nil), // 21: trpc.v2.validate.AnyRules + (*DurationRules)(nil), // 22: trpc.v2.validate.DurationRules + (*TimestampRules)(nil), // 23: trpc.v2.validate.TimestampRules + (*durationpb.Duration)(nil), // 24: google.protobuf.Duration + (*timestamppb.Timestamp)(nil), // 25: google.protobuf.Timestamp + (*descriptorpb.MessageOptions)(nil), // 26: google.protobuf.MessageOptions + (*descriptorpb.OneofOptions)(nil), // 27: google.protobuf.OneofOptions + (*descriptorpb.FieldOptions)(nil), // 28: google.protobuf.FieldOptions +} +var file_trpc_v2_validate_validate_proto_depIdxs = []int32{ + 18, // 0: trpc.v2.validate.FieldRules.message:type_name -> trpc.v2.validate.MessageRules + 2, // 1: trpc.v2.validate.FieldRules.float:type_name -> trpc.v2.validate.FloatRules + 3, // 2: trpc.v2.validate.FieldRules.double:type_name -> trpc.v2.validate.DoubleRules + 4, // 3: trpc.v2.validate.FieldRules.int32:type_name -> trpc.v2.validate.Int32Rules + 5, // 4: trpc.v2.validate.FieldRules.int64:type_name -> trpc.v2.validate.Int64Rules + 6, // 5: trpc.v2.validate.FieldRules.uint32:type_name -> trpc.v2.validate.UInt32Rules + 7, // 6: trpc.v2.validate.FieldRules.uint64:type_name -> trpc.v2.validate.UInt64Rules + 8, // 7: trpc.v2.validate.FieldRules.sint32:type_name -> trpc.v2.validate.SInt32Rules + 9, // 8: trpc.v2.validate.FieldRules.sint64:type_name -> trpc.v2.validate.SInt64Rules + 10, // 9: trpc.v2.validate.FieldRules.fixed32:type_name -> trpc.v2.validate.Fixed32Rules + 11, // 10: trpc.v2.validate.FieldRules.fixed64:type_name -> trpc.v2.validate.Fixed64Rules + 12, // 11: trpc.v2.validate.FieldRules.sfixed32:type_name -> trpc.v2.validate.SFixed32Rules + 13, // 12: trpc.v2.validate.FieldRules.sfixed64:type_name -> trpc.v2.validate.SFixed64Rules + 14, // 13: trpc.v2.validate.FieldRules.bool:type_name -> trpc.v2.validate.BoolRules + 15, // 14: trpc.v2.validate.FieldRules.string:type_name -> trpc.v2.validate.StringRules + 16, // 15: trpc.v2.validate.FieldRules.bytes:type_name -> trpc.v2.validate.BytesRules + 17, // 16: trpc.v2.validate.FieldRules.enum:type_name -> trpc.v2.validate.EnumRules + 19, // 17: trpc.v2.validate.FieldRules.repeated:type_name -> trpc.v2.validate.RepeatedRules + 20, // 18: trpc.v2.validate.FieldRules.map:type_name -> trpc.v2.validate.MapRules + 21, // 19: trpc.v2.validate.FieldRules.any:type_name -> trpc.v2.validate.AnyRules + 22, // 20: trpc.v2.validate.FieldRules.duration:type_name -> trpc.v2.validate.DurationRules + 23, // 21: trpc.v2.validate.FieldRules.timestamp:type_name -> trpc.v2.validate.TimestampRules + 0, // 22: trpc.v2.validate.StringRules.well_known_regex:type_name -> trpc.v2.validate.KnownRegex + 1, // 23: trpc.v2.validate.RepeatedRules.items:type_name -> trpc.v2.validate.FieldRules + 1, // 24: trpc.v2.validate.MapRules.keys:type_name -> trpc.v2.validate.FieldRules + 1, // 25: trpc.v2.validate.MapRules.values:type_name -> trpc.v2.validate.FieldRules + 24, // 26: trpc.v2.validate.DurationRules.const:type_name -> google.protobuf.Duration + 24, // 27: trpc.v2.validate.DurationRules.lt:type_name -> google.protobuf.Duration + 24, // 28: trpc.v2.validate.DurationRules.lte:type_name -> google.protobuf.Duration + 24, // 29: trpc.v2.validate.DurationRules.gt:type_name -> google.protobuf.Duration + 24, // 30: trpc.v2.validate.DurationRules.gte:type_name -> google.protobuf.Duration + 24, // 31: trpc.v2.validate.DurationRules.in:type_name -> google.protobuf.Duration + 24, // 32: trpc.v2.validate.DurationRules.not_in:type_name -> google.protobuf.Duration + 25, // 33: trpc.v2.validate.TimestampRules.const:type_name -> google.protobuf.Timestamp + 25, // 34: trpc.v2.validate.TimestampRules.lt:type_name -> google.protobuf.Timestamp + 25, // 35: trpc.v2.validate.TimestampRules.lte:type_name -> google.protobuf.Timestamp + 25, // 36: trpc.v2.validate.TimestampRules.gt:type_name -> google.protobuf.Timestamp + 25, // 37: trpc.v2.validate.TimestampRules.gte:type_name -> google.protobuf.Timestamp + 24, // 38: trpc.v2.validate.TimestampRules.within:type_name -> google.protobuf.Duration + 26, // 39: trpc.v2.validate.disabled:extendee -> google.protobuf.MessageOptions + 26, // 40: trpc.v2.validate.ignored:extendee -> google.protobuf.MessageOptions + 27, // 41: trpc.v2.validate.required:extendee -> google.protobuf.OneofOptions + 28, // 42: trpc.v2.validate.rules:extendee -> google.protobuf.FieldOptions + 1, // 43: trpc.v2.validate.rules:type_name -> trpc.v2.validate.FieldRules + 44, // [44:44] is the sub-list for method output_type + 44, // [44:44] is the sub-list for method input_type + 43, // [43:44] is the sub-list for extension type_name + 39, // [39:43] is the sub-list for extension extendee + 0, // [0:39] is the sub-list for field type_name +} + +func init() { file_trpc_v2_validate_validate_proto_init() } +func file_trpc_v2_validate_validate_proto_init() { + if File_trpc_v2_validate_validate_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_trpc_v2_validate_validate_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FieldRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FloatRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DoubleRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Int32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Int64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UInt32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UInt64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SInt32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SInt64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Fixed32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Fixed64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SFixed32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SFixed64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BoolRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StringRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BytesRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EnumRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RepeatedRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MapRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnyRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DurationRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_validate_validate_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TimestampRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_trpc_v2_validate_validate_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*FieldRules_Float)(nil), + (*FieldRules_Double)(nil), + (*FieldRules_Int32)(nil), + (*FieldRules_Int64)(nil), + (*FieldRules_Uint32)(nil), + (*FieldRules_Uint64)(nil), + (*FieldRules_Sint32)(nil), + (*FieldRules_Sint64)(nil), + (*FieldRules_Fixed32)(nil), + (*FieldRules_Fixed64)(nil), + (*FieldRules_Sfixed32)(nil), + (*FieldRules_Sfixed64)(nil), + (*FieldRules_Bool)(nil), + (*FieldRules_String_)(nil), + (*FieldRules_Bytes)(nil), + (*FieldRules_Enum)(nil), + (*FieldRules_Repeated)(nil), + (*FieldRules_Map)(nil), + (*FieldRules_Any)(nil), + (*FieldRules_Duration)(nil), + (*FieldRules_Timestamp)(nil), + } + file_trpc_v2_validate_validate_proto_msgTypes[14].OneofWrappers = []interface{}{ + (*StringRules_Email)(nil), + (*StringRules_Hostname)(nil), + (*StringRules_Ip)(nil), + (*StringRules_Ipv4)(nil), + (*StringRules_Ipv6)(nil), + (*StringRules_Uri)(nil), + (*StringRules_UriRef)(nil), + (*StringRules_Address)(nil), + (*StringRules_Uuid)(nil), + (*StringRules_WellKnownRegex)(nil), + (*StringRules_Alphabets)(nil), + (*StringRules_Alphanums)(nil), + (*StringRules_Lowercase)(nil), + (*StringRules_Tsecstr)(nil), + } + file_trpc_v2_validate_validate_proto_msgTypes[15].OneofWrappers = []interface{}{ + (*BytesRules_Ip)(nil), + (*BytesRules_Ipv4)(nil), + (*BytesRules_Ipv6)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpc_v2_validate_validate_proto_rawDesc, + NumEnums: 1, + NumMessages: 23, + NumExtensions: 4, + NumServices: 0, + }, + GoTypes: file_trpc_v2_validate_validate_proto_goTypes, + DependencyIndexes: file_trpc_v2_validate_validate_proto_depIdxs, + EnumInfos: file_trpc_v2_validate_validate_proto_enumTypes, + MessageInfos: file_trpc_v2_validate_validate_proto_msgTypes, + ExtensionInfos: file_trpc_v2_validate_validate_proto_extTypes, + }.Build() + File_trpc_v2_validate_validate_proto = out.File + file_trpc_v2_validate_validate_proto_rawDesc = nil + file_trpc_v2_validate_validate_proto_goTypes = nil + file_trpc_v2_validate_validate_proto_depIdxs = nil +} diff --git a/pb/go/trpc/validate/validate.pb.go b/pb/go/trpc/validate/validate.pb.go index da63ddc..97ee5ec 100644 --- a/pb/go/trpc/validate/validate.pb.go +++ b/pb/go/trpc/validate/validate.pb.go @@ -1,7 +1,13 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v5.27.1 // source: trpc/validate/validate.proto package validate @@ -94,7 +100,6 @@ type FieldRules struct { Message *MessageRules `protobuf:"bytes,17,opt,name=message" json:"message,omitempty"` // Types that are assignable to Type: - // // *FieldRules_Float // *FieldRules_Double // *FieldRules_Int32 @@ -2001,7 +2006,6 @@ type StringRules struct { // patterns // // Types that are assignable to WellKnown: - // // *StringRules_Email // *StringRules_Hostname // *StringRules_Ip @@ -2433,7 +2437,6 @@ type BytesRules struct { // patterns // // Types that are assignable to WellKnown: - // // *BytesRules_Ip // *BytesRules_Ipv4 // *BytesRules_Ipv6 diff --git a/trpc/api/BUILD b/trpc/api/BUILD index 2909d2b..299589f 100644 --- a/trpc/api/BUILD +++ b/trpc/api/BUILD @@ -15,5 +15,6 @@ proto_library( name = "http_proto", srcs = [ "http.proto", + "openapiv2.proto", ], ) diff --git a/trpc/api/annotations.proto b/trpc/api/annotations.proto index 6045bd1..afb0143 100644 --- a/trpc/api/annotations.proto +++ b/trpc/api/annotations.proto @@ -26,6 +26,7 @@ syntax = "proto3"; package trpc.api; import "trpc/api/http.proto"; +import "trpc/api/openapiv2.proto"; import "google/protobuf/descriptor.proto"; option go_package = "trpc.group/trpc/trpc-protocol/pb/go/trpc/api"; @@ -34,3 +35,7 @@ option java_package = "com.tencent.trpc.protobuf.ext"; extend google.protobuf.MethodOptions { HttpRule http = 50201; } + +extend google.protobuf.MessageOptions { + Schema openapiv2_schema = 50201; +} diff --git a/trpc/api/openapiv2.proto b/trpc/api/openapiv2.proto new file mode 100644 index 0000000..6be443a --- /dev/null +++ b/trpc/api/openapiv2.proto @@ -0,0 +1,23 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +syntax = "proto3"; + +package trpc.api; + +option go_package = "trpc.group/trpc/trpc-protocol/pb/go/trpc/api"; +option java_package = "com.tencent.trpc.protobuf.ext"; + +// message option schema +message Schema { + JSONSchema json_schema = 1; +} + +// `JSONSchema` represents properties from JSON SCHEMA taken,and as used, in +// the OpenAPI v2 spec. +message JSONSchema { + repeated string required = 1; +} diff --git a/trpc/reflection/BUILD b/trpc/reflection/BUILD new file mode 100644 index 0000000..c96bb15 --- /dev/null +++ b/trpc/reflection/BUILD @@ -0,0 +1,8 @@ +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "reflection_proto", + srcs = [ + "reflection.proto", + ], +) diff --git a/trpc/reflection/reflection.proto b/trpc/reflection/reflection.proto new file mode 100644 index 0000000..671f8d3 --- /dev/null +++ b/trpc/reflection/reflection.proto @@ -0,0 +1,93 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +syntax = "proto3"; + +package trpc.reflection.v1; + +option go_package = "trpc.group/trpc/trpc-protocol/pb/go/trpc/reflection"; +option java_package = "com.tencent.trpc.protobuf.ext"; + +service ServerReflection { + rpc ServiceReflectionInfo (ServerReflectionRequest) returns (ServerReflectionResponse); +} + +// The message sent by the client when calling ServerReflectionInfo method. +message ServerReflectionRequest { + string host = 1; + // To use reflection service, the client should set one of the following + // fields in message_request. The server distinguishes requests by their + // defined field and then handles them using corresponding methods. + oneof message_request { + // Find the proto file that declares the given fully-qualified symbol name. + // This field should be a fully-qualified symbol name + // (e.g. .[.] or .). + string file_containing_symbol = 3; + + // List the full names of registered services. The content will not be + // checked. + string list_services = 4; + + // Find a proto file by the file name. + string file_by_filename = 5; + }; +} + + +// The message sent by the server to answer ServerReflectionInfo method. +message ServerReflectionResponse { + string valid_host = 1; + ServerReflectionRequest original_request = 2; + // The server sets one of the following fields according to the message_request + // in the request. + oneof message_response { + // This message is used to answer file_containing_symbol, + // As the repeated label is not allowed in oneof fields, we use a + // FileDescriptorResponse message to encapsulate the repeated fields. + FileDescriptorResponse file_descriptor_response = 4; + // This message is used to answer list_services requests. + ListServiceResponse list_services_response = 5; + // This message is used when an error occurs. + ErrorResponse error_response = 6; + } +} + +// Serialized FileDescriptorProto messages sent by the server answering +// a file_by_filename, file_containing_symbol, or file_containing_extension +// request. +message FileDescriptorResponse { + // Serialized FileDescriptorProto messages. We avoid taking a dependency on + // descriptor.proto, which uses proto2 only features, by making them opaque + // bytes instead. + repeated bytes file_descriptor_proto = 1; +} + + +// A list of ServiceResponse sent by the server answering list_services request. +message ListServiceResponse { + // The information of each service may be expanded in the future, so we use + // ServiceResponse message to encapsulate it. + repeated ServiceResponse service = 1; +} + +// The information of a single service used by ListServiceResponse to answer +// list_services request. +message ServiceResponse { + // Full name of a registered service, including its package name. + // The format is . + // https://github.com/trpc-group/trpc/blob/master/trpc/trpc.proto#L465 package.Service + string interface_service_name = 1; + // eg: polaris, 123 platform format: trpc.app.server.service. + string routing_service_name = 2; +} + +// The error code and error message sent by the server when an error occurs. +message ErrorResponse { + // This field uses the error codes defined in trpc.proto TrpcRetCode. + int32 error_code = 1; + string error_message = 2; +} + diff --git a/trpc/trpc.proto b/trpc/trpc.proto index 39182e8..8519f88 100644 --- a/trpc/trpc.proto +++ b/trpc/trpc.proto @@ -168,6 +168,15 @@ enum TrpcCallType { // Oneway TRPC_ONEWAY_CALL = 1; + + // client stream service, deleted + //TRPC_CLIENT_STREAM_CALL = 2; + + // server stream service, deleted + //TRPC_SERVER_STREAM_CALL = 3; + + // client and server stream service, deleted + //TRPC_BIDI_STREAM_CALL = 4; } // The message type of the transparent transmission information @@ -203,7 +212,7 @@ enum TrpcContentEncodeType { // json TRPC_JSON_ENCODE = 2; - + // flatbuffer TRPC_FLATBUFFER_ENCODE = 3; @@ -214,7 +223,15 @@ enum TrpcContentEncodeType { TRPC_XML_ENCODE = 5; // thrift + // Due to historical reasons, the early implementation of thrift used binary encoding + // so the thrift here represents thrift-binary." TRPC_THRIFT_ENCODE = 6; + + // thrift-compact + TRPC_THRIFT_COMPACT_ENCODE = 7; + + // text/xml + TRPC_TEXT_XML_ENCODE = 8; } // The compressor type of the body data in the trpc protocol @@ -248,7 +265,6 @@ enum TrpcCompressType { TRPC_LZ4_BLOCK_COMPRESS = 7; } -// 框架层接口调用的返回码定义 // The return code definition of the framework layer interface call enum TrpcRetCode { // success @@ -304,28 +320,26 @@ enum TrpcRetCode { // 5. ... // timeout error code - // the request is timed out on the client-side TRPC_CLIENT_INVOKE_TIMEOUT_ERR = 101; // the request is timed out on the client-side due to the full link timeout TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR = 102; // network or connection error code - // client-side connection error TRPC_CLIENT_CONNECT_ERR = 111; // protocol error code - // client-side encode error TRPC_CLIENT_ENCODE_ERR = 121; + // client-side decode error TRPC_CLIENT_DECODE_ERR = 122; // client-side overload/limter error code - // the request is throttled on the client-side TRPC_CLIENT_LIMITED_ERR = 123; + // The request is overloaded on the client-side and discarded TRPC_CLIENT_OVERLOAD_ERR = 124; @@ -356,12 +370,12 @@ enum TrpcRetCode { TRPC_STREAM_SERVER_NETWORK_ERR = 201; // server-side streaming error code - // stream message exceeds size limit TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR = 211; // server-side streaming encode error code TRPC_STREAM_SERVER_ENCODE_ERR = 221; + // server-side streaming decode error code TRPC_STREAM_SERVER_DECODE_ERR = 222; @@ -377,6 +391,9 @@ enum TrpcRetCode { TRPC_STREAM_SERVER_READ_EMPTY_ERR = 253; TRPC_STREAM_SERVER_READ_TIMEOUT_ERR = 254; + // server-side streaming timeout error code + TRPC_STREAM_SERVER_IDLE_TIMEOUT_ERR = 255; + // error code of the client-side stream // mainly divided into several categories: // 1. network or connection related, @@ -384,17 +401,17 @@ enum TrpcRetCode { // 3. write stream data related, // 4. read stream data related, // 5. ... - + // client-side streaming network or connection error code TRPC_STREAM_CLIENT_NETWORK_ERR = 301; // client-side streaming error code - // client-side stream message exceeds size limit TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR = 311; // client-side streaming encode error code TRPC_STREAM_CLIENT_ENCODE_ERR = 321; + // client-side streaming decode error code TRPC_STREAM_CLIENT_DECODE_ERR = 322; @@ -410,8 +427,12 @@ enum TrpcRetCode { TRPC_STREAM_CLIENT_READ_EMPTY_ERR = 353; TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR = 354; + // client streaming timeout error + TRPC_STREAM_CLIENT_IDLE_TIMEOUT_ERR = 355; + // unspecified error code(unary) TRPC_INVOKE_UNKNOWN_ERR = 999; + // unspecified error code(stream) TRPC_STREAM_UNKNOWN_ERR = 1000; } diff --git a/trpc/v2/BUILD b/trpc/v2/BUILD new file mode 100644 index 0000000..406c1f5 --- /dev/null +++ b/trpc/v2/BUILD @@ -0,0 +1,8 @@ +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "trpc_proto", + srcs = [ + "trpc.proto", + ], +) diff --git a/trpc/v2/api/BUILD b/trpc/v2/api/BUILD new file mode 100644 index 0000000..59f848f --- /dev/null +++ b/trpc/v2/api/BUILD @@ -0,0 +1,19 @@ +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "annotations_proto", + srcs = [ + "annotations.proto", + ], + deps = [ + "//trpc/v2/api:http_proto", + "@com_google_protobuf//:descriptor_proto", + ], +) + +proto_library( + name = "http_proto", + srcs = [ + "http.proto", + ], +) diff --git a/trpc/v2/api/annotations.proto b/trpc/v2/api/annotations.proto new file mode 100644 index 0000000..10b5aa7 --- /dev/null +++ b/trpc/v2/api/annotations.proto @@ -0,0 +1,19 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +syntax = "proto3"; + +package trpc.v2.api; + +import "trpc/v2/api/http.proto"; +import "google/protobuf/descriptor.proto"; + +option go_package = "trpc.group/trpc/trpc-protocol/pb/go/trpc/v2/api"; +option java_package = "com.tencent.trpc.protobuf.ext"; + +extend google.protobuf.MethodOptions { + HttpRule http = 1157; +} diff --git a/trpc/v2/api/http.proto b/trpc/v2/api/http.proto new file mode 100644 index 0000000..8922592 --- /dev/null +++ b/trpc/v2/api/http.proto @@ -0,0 +1,76 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +syntax = "proto3"; + +package trpc.v2.api; + +option go_package = "trpc.group/trpc/trpc-protocol/pb/go/trpc/v2/api"; +option java_package = "com.tencent.trpc.protobuf.ext"; + +message HttpRule { + // Selects a method to which this rule applies. + // + // Refer to [selector][google.api.DocumentationRule.selector] for syntax details. + string selector = 1; + + // Determines the URL pattern is matched by this rules. This pattern can be + // used with any of the {get|put|post|delete|patch} methods. A custom method + // can be defined using the 'custom' field. + oneof pattern { + // Maps to HTTP GET. Used for listing and getting information about + // resources. + string get = 2; + + // Maps to HTTP PUT. Used for replacing a resource. + string put = 3; + + // Maps to HTTP POST. Used for creating a resource or performing an action. + string post = 4; + + // Maps to HTTP DELETE. Used for deleting a resource. + string delete = 5; + + // Maps to HTTP PATCH. Used for updating a resource. + string patch = 6; + + // The custom pattern is used for specifying an HTTP method that is not + // included in the `pattern` field, such as HEAD, or "*" to leave the + // HTTP method unspecified for this rule. The wild-card rule is useful + // for services that provide content to Web (HTML) clients. + CustomHttpPattern custom = 8; + } + + // The name of the request field whose value is mapped to the HTTP request + // body, or `*` for mapping all request fields not captured by the path + // pattern to the HTTP body, or omitted for not having any HTTP request body. + // + // NOTE: the referred field must be present at the top-level of the request + // message type. + string body = 7; + + // Optional. The name of the response field whose value is mapped to the HTTP + // response body. When omitted, the entire response message will be used + // as the HTTP response body. + // + // NOTE: The referred field must be present at the top-level of the response + // message type. + string response_body = 12; + + // Additional HTTP bindings for the selector. Nested bindings must + // not contain an `additional_bindings` field themselves (that is, + // the nesting may only be one level deep). + repeated HttpRule additional_bindings = 11; +} + +// A custom pattern is used for defining custom HTTP verb. +message CustomHttpPattern { + // The name of this custom HTTP verb. + string kind = 1; + + // The path matched by this custom verb. + string path = 2; +} diff --git a/trpc/v2/proto/BUILD b/trpc/v2/proto/BUILD new file mode 100644 index 0000000..6cf0dab --- /dev/null +++ b/trpc/v2/proto/BUILD @@ -0,0 +1,11 @@ +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "trpc_options_proto", + srcs = [ + "trpc_options.proto", + ], + deps = [ + "@com_google_protobuf//:descriptor_proto", + ], +) diff --git a/trpc/v2/proto/trpc_options.proto b/trpc/v2/proto/trpc_options.proto new file mode 100644 index 0000000..6e2a365 --- /dev/null +++ b/trpc/v2/proto/trpc_options.proto @@ -0,0 +1,22 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +syntax = "proto3"; + +import "google/protobuf/descriptor.proto"; + +package trpc.v2; + +option go_package = "trpc.group/trpc/trpc-protocol/pb/go/trpc/v2/proto"; +option java_package = "com.tencent.trpc.protobuf.ext"; + +extend google.protobuf.MethodOptions { + string alias = 1155; +} + +extend google.protobuf.FieldOptions { + string go_tag = 1156; +} diff --git a/trpc/v2/swagger/BUILD b/trpc/v2/swagger/BUILD new file mode 100644 index 0000000..3812bda --- /dev/null +++ b/trpc/v2/swagger/BUILD @@ -0,0 +1,11 @@ +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "swagger_proto", + srcs = [ + "swagger.proto", + ], + deps = [ + "@com_google_protobuf//:descriptor_proto", + ], +) diff --git a/trpc/v2/swagger/swagger.proto b/trpc/v2/swagger/swagger.proto new file mode 100644 index 0000000..b9b05ee --- /dev/null +++ b/trpc/v2/swagger/swagger.proto @@ -0,0 +1,30 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +syntax = "proto3"; +import "google/protobuf/descriptor.proto"; +package trpc.v2; + +option go_package = "trpc.group/trpc/trpc-protocol/pb/go/trpc/v2/swagger"; +option java_package = "com.tencent.trpc.protobuf.ext"; + +extend google.protobuf.MethodOptions { + SwaggerRule swagger = 1156; +} + +// to gen swagger json +message SwaggerRule { + string title = 50103; + string method = 50104; + string description = 50105; + repeated SwaggerParam params = 50106; +} + +message SwaggerParam { + string name = 1; + bool required = 2; + string default = 3; +} \ No newline at end of file diff --git a/trpc/v2/trpc.proto b/trpc/v2/trpc.proto new file mode 100644 index 0000000..f313f26 --- /dev/null +++ b/trpc/v2/trpc.proto @@ -0,0 +1,518 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +syntax = "proto3"; + +package trpc.v2; + +option go_package = "trpc.group/trpc/trpc-protocol/pb/go/trpc/v2;trpc"; +option java_package = "com.tencent.trpc.proto.standard.common"; +option java_outer_classname = "TRPCProtocol"; + +// The magic value in the framework protocol header +enum TrpcMagic { + // trpc does not use this value, it is used by the pb tool to generate code + TRPC_DEFAULT_NONE = 0x00; + + // trpc protocol uses this magic value by default + TRPC_MAGIC_VALUE = 0x930; +} + +// The binary data frame type of the trpc protocol +// Currently supports two types of binary data frames: +// 1. Binary data frame type for request-response mode +// 2. Binary data frame type for streaming mode +enum TrpcDataFrameType { + // Binary data frame type for trpc request-response mode + TRPC_UNARY_FRAME = 0x00; + + // Binary data frame type for trpc streaming mode + TRPC_STREAM_FRAME = 0x01; +} + +// This type is deleted, replaced by TrpcStreamFrameType below +// The state of trpc protocol's binary data frame +// Currently supports the end state of streaming mode binary data frame +//enum TrpcDataFrameState { +// // Does not include any state +// TRPC_NO_STATE = 0x00; +// +// // End state in trpc streaming mode +// TRPC_STREAM_FINISH = 0x01; +//} + +// The binary data frame type of trpc protocol streaming +// Currently there are 4 types of streaming frames: INIT/DATA/FEEDBACK/CLOSE, where CLOSE frame does not carry business data +// INIT frame: FIXHEADER + TrpcStreamInitMeta +// DATA frame: FIXHEADER + body(business serialized data) +// FEEDBACK frame: FIXHEADER + TrpcStreamFeedBackMeta (trigger strategy: high/low water level + timer) +// CLOSE frame: FIXHEADER + TrpcStreamCloseMeta +// Connection and stream idle timeout recycling mechanism is not considered +enum TrpcStreamFrameType { + // Default value for request-response + TRPC_UNARY = 0x00; + + // Streaming INIT frame type + TRPC_STREAM_FRAME_INIT = 0x01; + + // Streaming DATA frame type + TRPC_STREAM_FRAME_DATA = 0x02; + + // Streaming FEEDBACK frame type + TRPC_STREAM_FRAME_FEEDBACK = 0x03; + + // Streaming CLOSE frame type + TRPC_STREAM_FRAME_CLOSE = 0x04; +} + +// Definition of flow control frame header message for trpc streaming +message TrpcStreamInitMeta { + // INIT request metadata + TrpcStreamInitRequestMeta request_meta = 1; + + // INIT response metadata + TrpcStreamInitResponseMeta response_meta = 2; + + // Initial send window size notified by receiver to sender + uint32 init_window_size = 3; + + // Serialization type of request data + // eg: proto/jce/json, default proto + // Specific value corresponds to TrpcContentEncodeType + uint32 content_type = 4; + + // Compression method used for request data + // eg: gzip/snappy/..., default not used + // Specific value corresponds to TrpcCompressType + uint32 content_encoding = 5; +} + +// Request metadata definition for trpc streaming INIT header +message TrpcStreamInitRequestMeta { + // Name of the calling service + // Standard format in trpc protocol: trpc.application_name.server_name.proto_service_name, 4 segments + bytes caller = 1; + + // Routing name of the called service + // Standard format in trpc protocol: trpc.application_name.server_name.proto_service_name[.interface_name] + // First 4 segments are mandatory, interface is optional + bytes callee = 2; + + // Interface name of the called service + // Standard format: /package.Service_name/interface_name + bytes func = 3; + + // Message type for framework information transparent transmission + // Such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // Specific value corresponds to TrpcMessageType + uint32 message_type = 4; + + // Key-value pairs for framework transparent transmission information, currently divided into two parts: + // 1. Information to be transparently transmitted by the framework layer, key names must start with 'trpc-' + // 2. Information to be transparently transmitted by the business layer, which can be set by the business itself + // Note: Key-value pairs in trans_info will be transparently transmitted through the entire link, please use with caution! + map trans_info = 5; +}; + +// Response metadata definition for trpc streaming INIT header +message TrpcStreamInitResponseMeta { + // Error return code at framework layer + // Specific value corresponds to TrpcRetCode + int32 ret = 1; + + // Call result information description + // Used when failed + bytes error_msg = 2; +}; + +// Definition of flow control frame header metadata for trpc streaming +message TrpcStreamFeedBackMeta { + // Incremented window size + uint32 window_size_increment = 1; +} + +// trpc streaming close type +enum TrpcStreamCloseType { + // Normal unidirectional stream close + TRPC_STREAM_CLOSE = 0; + + // Abnormal bidirectional stream close + TRPC_STREAM_RESET = 1; +} + +// Definition of RESET frame header message for trpc streaming +message TrpcStreamCloseMeta { + // Close type, whether to close one end or all + int32 close_type = 1; + + // Close return code + // Represents framework layer error + int32 ret = 2; + + // Close information description + bytes msg = 3; + + // Message type for framework information transparent transmission + // Such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // Specific value corresponds to TrpcMessageType + uint32 message_type = 4; + + // Key-value pairs for framework transparent transmission information, currently divided into two parts: + // 1. Information to be transparently transmitted by the framework layer, key names must start with 'trpc-' + // 2. Information to be transparently transmitted by the business layer, which can be set by the business itself + map trans_info = 5; + + // Interface error return code + // It is recommended to identify success and failure when using, 0 represents success, others represent failure + int32 func_ret = 6; +} + +// trpc protocol version +enum TrpcProtoVersion { + // Default version + TRPC_PROTO_V1 = 0; +} + +// Call type in trpc protocol +enum TrpcCallType { + // Request-response call, including synchronous and asynchronous + TRPC_UNARY_CALL = 0; + + // One-way call + TRPC_ONEWAY_CALL = 1; + + // Client streaming request call, deleted + //TRPC_CLIENT_STREAM_CALL = 2; + + // Server streaming response, deleted + //TRPC_SERVER_STREAM_CALL = 3; + + // Client and server streaming request and response, deleted + //TRPC_BIDI_STREAM_CALL = 4; +} + +// Message transparent transmission supported types in trpc protocol +enum TrpcMessageType { + // trpc does not use this value, it is used by the pb tool to generate code + TRPC_DEFAULT = 0x00; + + // Dyeing + TRPC_DYEING_MESSAGE = 0x01; + + // Tracing + TRPC_TRACE_MESSAGE = 0x02; + + // Multi-environment + TRPC_MULTI_ENV_MESSAGE = 0x04; + + // Gray + TRPC_GRID_MESSAGE = 0x08; + + // Set name + TRPC_SETNAME_MESSAGE = 0x10; +} + +// Encoding type of data content in trpc protocol +// Default uses pb +// Currently agreed that values in the range 0-127 are framework-standard serialization methods, used by framework +enum TrpcContentEncodeType { + // pb + TRPC_PROTO_ENCODE = 0; + + // jce + TRPC_JCE_ENCODE = 1; + + // json + TRPC_JSON_ENCODE = 2; + + // flatbuffer + TRPC_FLATBUFFER_ENCODE = 3; + + // No serialization + TRPC_NOOP_ENCODE = 4; + + // xml + TRPC_XML_ENCODE = 5; + + // thrift + TRPC_THRIFT_ENCODE = 6; +} + +// Compression type of data content in trpc protocol +// Default uses no compression +enum TrpcCompressType { + // Default no compression + TRPC_DEFAULT_COMPRESS = 0; + + // Use gzip + TRPC_GZIP_COMPRESS = 1; + + // Use snappy + // + // Deprecated: It is recommended to use TRPC_SNAPPY_STREAM_COMPRESS/TRPC_SNAPPY_BLOCK_COMPRESS, because currently + // trpc-go and trpc-cpp use stream and block modes respectively, which are incompatible, cross-language calls will cause errors + TRPC_SNAPPY_COMPRESS = 2; + + // Use zlib + TRPC_ZLIB_COMPRESS = 3; + + // Use snappy in stream mode + TRPC_SNAPPY_STREAM_COMPRESS = 4; + + // Use snappy in block mode + TRPC_SNAPPY_BLOCK_COMPRESS = 5; +} + +// Definition of framework layer interface call return codes +enum TrpcRetCode { + // Call success + TRPC_INVOKE_SUCCESS = 0; + + // Server-side error codes + // Mainly divided into several categories: + // 1. Protocol, 2. Service or func routing, 3. Queue timeout or overload + // Others to be added + + // Protocol error codes + // Server-side decode error + TRPC_SERVER_DECODE_ERR = 1; + // Server-side encode error + TRPC_SERVER_ENCODE_ERR = 2; + + // Service or func routing error codes + // Server does not have corresponding service implementation + TRPC_SERVER_NOSERVICE_ERR = 11; + // Server does not have corresponding interface implementation + TRPC_SERVER_NOFUNC_ERR = 12; + + // Timeout/overload/limiter error codes + // Request timed out on server + TRPC_SERVER_TIMEOUT_ERR = 21; + // Request discarded due to server overload protection + // Mainly used in framework's internal overload protection plugin + TRPC_SERVER_OVERLOAD_ERR = 22; + // Request limited on server + // Mainly used in external service governance system plugins or business custom limiter plugins, eg: Polaris limiter + TRPC_SERVER_LIMITED_ERR = 23; + // Request timed out on server due to full link timeout + TRPC_SERVER_FULL_LINK_TIMEOUT_ERR = 24; + + // Server system error + TRPC_SERVER_SYSTEM_ERR = 31; + + // Server authentication failure error + TRPC_SERVER_AUTH_ERR = 41; + + // Server request parameter automatic validation failure error + TRPC_SERVER_VALIDATE_ERR = 51; + + // Client-side error codes + // Mainly divided into several categories: + // 1. Timeout, 2. Network, 3. Protocol, 4. Routing + // Others to be added + + // Timeout error codes + // Request timed out on client + TRPC_CLIENT_INVOKE_TIMEOUT_ERR = 101; + // Request timed out on client due to full link timeout + TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR = 102; + + // Network related error codes + // Client connection error + TRPC_CLIENT_CONNECT_ERR = 111; + + // Protocol related error codes + // Client encode error + TRPC_CLIENT_ENCODE_ERR = 121; + // Client decode error + TRPC_CLIENT_DECODE_ERR = 122; + + // Overload protection/limiter related error codes + // Request limited on client + // Mainly used in external service governance system plugins or business custom limiter plugins, eg: Polaris limiter + TRPC_CLIENT_LIMITED_ERR = 123; + // Request discarded due to client overload protection + // Mainly used in framework's internal overload protection plugin + TRPC_CLIENT_OVERLOAD_ERR = 124; + + // Routing related error codes + // Client IP routing error + TRPC_CLIENT_ROUTER_ERR = 131; + + // Client network error + TRPC_CLIENT_NETWORK_ERR = 141; + + // Client response parameter automatic validation failure error + TRPC_CLIENT_VALIDATE_ERR = 151; + + // Upstream actively disconnected, early cancellation request error + TRPC_CLIENT_CANCELED_ERR = 161; + + // Server-side streaming error codes + // Mainly divided into several categories: + // 1. Network, 2. Encode/decode, 3. Write, 4. Read + // Others to be added + + // Server-side streaming network error, detailed error codes need to be sorted out during implementation + TRPC_STREAM_SERVER_NETWORK_ERR = 201; + + // Server-side streaming transmission error, detailed error codes need to be sorted out during implementation + // eg: Stream message too large, etc. + TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR = 211; + + // Server-side streaming encode error + TRPC_STREAM_SERVER_ENCODE_ERR = 221; + // Client-side streaming encode/decode error + TRPC_STREAM_SERVER_DECODE_ERR = 222; + + // Server-side streaming write error, detailed error codes need to be sorted out during implementation + TRPC_STREAM_SERVER_WRITE_END = 231; + TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR = 232; + TRPC_STREAM_SERVER_WRITE_CLOSE_ERR = 233; + TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR = 234; + + // Server-side streaming read error, detailed error codes need to be sorted out during implementation + TRPC_STREAM_SERVER_READ_END = 251; + TRPC_STREAM_SERVER_READ_CLOSE_ERR = 252; + TRPC_STREAM_SERVER_READ_EMPTY_ERR = 253; + TRPC_STREAM_SERVER_READ_TIMEOUT_ERR = 254; + + // Client-side streaming error codes + // Mainly divided into several categories: + // 1. Network, 2. Encode/decode, 3. Write, 4. Read + // Others to be added + + // Client-side streaming network error, detailed error codes need to be sorted out during implementation + TRPC_STREAM_CLIENT_NETWORK_ERR = 301; + + // Client-side streaming transmission error, detailed error codes need to be sorted out during implementation + // eg: Stream message too large, etc. + TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR = 311; + + // Client-side streaming encode error + TRPC_STREAM_CLIENT_ENCODE_ERR = 321; + // Client-side streaming encode/decode error + TRPC_STREAM_CLIENT_DECODE_ERR = 322; + + // Client-side streaming write error, detailed error codes need to be sorted out during implementation + TRPC_STREAM_CLIENT_WRITE_END = 331; + TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR = 332; + TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR = 333; + TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR = 334; + + // Client-side streaming read error, detailed error codes need to be sorted out during implementation + TRPC_STREAM_CLIENT_READ_END = 351; + TRPC_STREAM_CLIENT_READ_CLOSE_ERR = 352; + TRPC_STREAM_CLIENT_READ_EMPTY_ERR = 353; + TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR = 354; + + // Unspecified error + TRPC_INVOKE_UNKNOWN_ERR = 999; + // Unspecified error + TRPC_STREAM_UNKNOWN_ERR = 1000; +} + +// Framework keys already used in trans_info, be careful not to repeat: +// "trpc-dyeing-key": dyeing key + +// Request protocol header +message RequestProtocol { + // Protocol version + // Specific value corresponds to TrpcProtoVersion + uint32 version = 1; + + // Call type of request + // eg: normal call, one-way call + // Specific value corresponds to TrpcCallType + uint32 call_type = 2; + + // Request unique id + uint32 request_id = 3; + + // Request timeout, unit ms + uint32 timeout = 4; + + // Name of the calling service + // Standard format in trpc protocol: trpc.application_name.server_name.proto_service_name, 4 segments + bytes caller = 5; + + // Routing name of the called service + // Standard format in trpc protocol: trpc.application_name.server_name.proto_service_name[.interface_name] + // First 4 segments are mandatory, interface is optional + bytes callee = 6; + + // Interface name of the called service + // Standard format: /package.Service_name/interface_name + bytes func = 7; + + // Message type for framework information transparent transmission + // Such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // Specific value corresponds to TrpcMessageType + uint32 message_type = 8; + + // Key-value pairs for framework transparent transmission information, currently divided into two parts: + // 1. Information to be transparently transmitted by the framework layer, key names must start with 'trpc-' + // 2. Information to be transparently transmitted by the business layer, which can be set by the business itself + map trans_info = 9; + + // Serialization type of request data + // eg: proto/jce/json, default proto + // Specific value corresponds to TrpcContentEncodeType + uint32 content_type = 10; + + // Compression method used for request data + // eg: gzip/snappy/..., default not used + // Specific value corresponds to TrpcCompressType + uint32 content_encoding = 11; +} + +// Response protocol header +message ResponseProtocol { + // Protocol version + // Specific value corresponds to TrpcProtoVersion + uint32 version = 1; + + // Call type of request + // eg: normal call, one-way call + // Specific value corresponds to TrpcCallType + uint32 call_type = 2; + + // Request unique id + uint32 request_id = 3; + + // Error return code at framework layer + // Specific value corresponds to TrpcRetCode + int32 ret = 4; + + // Interface error return code + // It is recommended to identify success and failure when using, 0 represents success, others represent failure + int32 func_ret = 5; + + // Call result information description + // Used when failed + bytes error_msg = 6; + + // Message type for framework information transparent transmission + // Such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // Specific value corresponds to TrpcMessageType + uint32 message_type = 7; + + // Key-value pairs for framework transparent transmission information returned, + // Currently divided into two parts: + // 1. Information transparently transmitted back by the framework layer, key names must start with 'trpc-' + // 2. Information transparently transmitted back by the business layer, which can be set by the business itself + map trans_info = 8; + + // Encoding type of response data + // eg: proto/jce/json, default proto + // Specific value corresponds to TrpcContentEncodeType + uint32 content_type = 9; + + // Compression method used for response data + // eg: gzip/snappy/..., default not used + // Specific value corresponds to TrpcCompressType + uint32 content_encoding = 10; +} \ No newline at end of file diff --git a/trpc/v2/validate/BUILD b/trpc/v2/validate/BUILD new file mode 100644 index 0000000..4e2bc91 --- /dev/null +++ b/trpc/v2/validate/BUILD @@ -0,0 +1,13 @@ +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "validate_proto", + srcs = [ + "validate.proto", + ], + deps = [ + "@com_google_protobuf//:descriptor_proto", + "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) diff --git a/trpc/v2/validate/validate.proto b/trpc/v2/validate/validate.proto new file mode 100644 index 0000000..a0701b5 --- /dev/null +++ b/trpc/v2/validate/validate.proto @@ -0,0 +1,881 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +syntax = "proto2"; +package trpc.v2.validate; + +option go_package = "trpc.group/trpc/trpc-protocol/pb/go/trpc/v2/validate"; +option java_package = "com.tencent.trpc.protobuf.ext"; + +import "google/protobuf/descriptor.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +// Validation rules applied at the message level +extend google.protobuf.MessageOptions { + // Disabled nullifies any validation rules for this message, including any + // message fields associated with it that do support validation. + optional bool disabled = 1155; + // Ignore skips generation of validation methods for this message. + optional bool ignored = 1156; +} + +// Validation rules applied at the oneof level +extend google.protobuf.OneofOptions { + // Required ensures that exactly one the field options in a oneof is set; + // validation fails if no fields in the oneof are set. + optional bool required = 1155; +} + +// Validation rules applied at the field level +extend google.protobuf.FieldOptions { + // Rules specify the validations to be performed on this field. By default, + // no validation is performed against a field. + optional FieldRules rules = 1155; +} + +// FieldRules encapsulates the rules for each type of field. Depending on the +// field, the correct set should be used to ensure proper validations. +message FieldRules { + optional MessageRules message = 17; + oneof type { + // Scalar Field Types + FloatRules float = 1; + DoubleRules double = 2; + Int32Rules int32 = 3; + Int64Rules int64 = 4; + UInt32Rules uint32 = 5; + UInt64Rules uint64 = 6; + SInt32Rules sint32 = 7; + SInt64Rules sint64 = 8; + Fixed32Rules fixed32 = 9; + Fixed64Rules fixed64 = 10; + SFixed32Rules sfixed32 = 11; + SFixed64Rules sfixed64 = 12; + BoolRules bool = 13; + StringRules string = 14; + BytesRules bytes = 15; + + // Complex Field Types + EnumRules enum = 16; + RepeatedRules repeated = 18; + MapRules map = 19; + + // Well-Known Field Types + AnyRules any = 20; + DurationRules duration = 21; + TimestampRules timestamp = 22; + } +} + +// FloatRules describes the constraints applied to `float` values +message FloatRules { + // Const specifies that this field must be exactly the specified value + optional float const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional float lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional float lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional float gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional float gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated float in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated float not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// DoubleRules describes the constraints applied to `double` values +message DoubleRules { + // Const specifies that this field must be exactly the specified value + optional double const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional double lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional double lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional double gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional double gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated double in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated double not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// Int32Rules describes the constraints applied to `int32` values +message Int32Rules { + // Const specifies that this field must be exactly the specified value + optional int32 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional int32 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional int32 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional int32 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional int32 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated int32 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated int32 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// Int64Rules describes the constraints applied to `int64` values +message Int64Rules { + // Const specifies that this field must be exactly the specified value + optional int64 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional int64 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional int64 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional int64 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional int64 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated int64 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated int64 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// UInt32Rules describes the constraints applied to `uint32` values +message UInt32Rules { + // Const specifies that this field must be exactly the specified value + optional uint32 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional uint32 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional uint32 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional uint32 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional uint32 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated uint32 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated uint32 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// UInt64Rules describes the constraints applied to `uint64` values +message UInt64Rules { + // Const specifies that this field must be exactly the specified value + optional uint64 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional uint64 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional uint64 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional uint64 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional uint64 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated uint64 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated uint64 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// SInt32Rules describes the constraints applied to `sint32` values +message SInt32Rules { + // Const specifies that this field must be exactly the specified value + optional sint32 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional sint32 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional sint32 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional sint32 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional sint32 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated sint32 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated sint32 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// SInt64Rules describes the constraints applied to `sint64` values +message SInt64Rules { + // Const specifies that this field must be exactly the specified value + optional sint64 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional sint64 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional sint64 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional sint64 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional sint64 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated sint64 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated sint64 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// Fixed32Rules describes the constraints applied to `fixed32` values +message Fixed32Rules { + // Const specifies that this field must be exactly the specified value + optional fixed32 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional fixed32 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional fixed32 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional fixed32 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional fixed32 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated fixed32 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated fixed32 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// Fixed64Rules describes the constraints applied to `fixed64` values +message Fixed64Rules { + // Const specifies that this field must be exactly the specified value + optional fixed64 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional fixed64 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional fixed64 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional fixed64 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional fixed64 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated fixed64 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated fixed64 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// SFixed32Rules describes the constraints applied to `sfixed32` values +message SFixed32Rules { + // Const specifies that this field must be exactly the specified value + optional sfixed32 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional sfixed32 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional sfixed32 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional sfixed32 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional sfixed32 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated sfixed32 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated sfixed32 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// SFixed64Rules describes the constraints applied to `sfixed64` values +message SFixed64Rules { + // Const specifies that this field must be exactly the specified value + optional sfixed64 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional sfixed64 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional sfixed64 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional sfixed64 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional sfixed64 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated sfixed64 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated sfixed64 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// BoolRules describes the constraints applied to `bool` values +message BoolRules { + // Const specifies that this field must be exactly the specified value + optional bool const = 1; +} + +// StringRules describe the constraints applied to `string` values +message StringRules { + // Const specifies that this field must be exactly the specified value + optional string const = 1; + + // Len specifies that this field must be the specified number of + // characters (Unicode code points). Note that the number of + // characters may differ from the number of bytes in the string. + optional uint64 len = 19; + + // MinLen specifies that this field must be the specified number of + // characters (Unicode code points) at a minimum. Note that the number of + // characters may differ from the number of bytes in the string. + optional uint64 min_len = 2; + + // MaxLen specifies that this field must be the specified number of + // characters (Unicode code points) at a maximum. Note that the number of + // characters may differ from the number of bytes in the string. + optional uint64 max_len = 3; + + // LenBytes specifies that this field must be the specified number of bytes + // at a minimum + optional uint64 len_bytes = 20; + + // MinBytes specifies that this field must be the specified number of bytes + // at a minimum + optional uint64 min_bytes = 4; + + // MaxBytes specifies that this field must be the specified number of bytes + // at a maximum + optional uint64 max_bytes = 5; + + // Pattern specifes that this field must match against the specified + // regular expression (RE2 syntax). The included expression should elide + // any delimiters. + optional string pattern = 6; + + // Prefix specifies that this field must have the specified substring at + // the beginning of the string. + optional string prefix = 7; + + // Suffix specifies that this field must have the specified substring at + // the end of the string. + optional string suffix = 8; + + // Contains specifies that this field must have the specified substring + // anywhere in the string. + optional string contains = 9; + + // NotContains specifies that this field cannot have the specified substring + // anywhere in the string. + optional string not_contains = 23; + + // In specifies that this field must be equal to one of the specified + // values + repeated string in = 10; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated string not_in = 11; + + // WellKnown rules provide advanced constraints against common string + // patterns + oneof well_known { + // Email specifies that the field must be a valid email address as + // defined by RFC 5322 + bool email = 12; + + // Hostname specifies that the field must be a valid hostname as + // defined by RFC 1034. This constraint does not support + // internationalized domain names (IDNs). + bool hostname = 13; + + // Ip specifies that the field must be a valid IP (v4 or v6) address. + // Valid IPv6 addresses should not include surrounding square brackets. + bool ip = 14; + + // Ipv4 specifies that the field must be a valid IPv4 address. + bool ipv4 = 15; + + // Ipv6 specifies that the field must be a valid IPv6 address. Valid + // IPv6 addresses should not include surrounding square brackets. + bool ipv6 = 16; + + // Uri specifies that the field must be a valid, absolute URI as defined + // by RFC 3986 + bool uri = 17; + + // UriRef specifies that the field must be a valid URI as defined by RFC + // 3986 and may be relative or absolute. + bool uri_ref = 18; + + // Address specifies that the field must be either a valid hostname as + // defined by RFC 1034 (which does not support internationalized domain + // names or IDNs), or it can be a valid IP (v4 or v6). + bool address = 21; + + // Uuid specifies that the field must be a valid UUID as defined by + // RFC 4122 + bool uuid = 22; + + // WellKnownRegex specifies a common well known pattern defined as a regex. + KnownRegex well_known_regex = 24; + + // Alphabets specifies that the field can only contain alphabets. e.g. aA + bool alphabets = 27; + + // Alphanums specifies that the field should contain both alphabet(s) and number(s). e.g. aA1 + bool alphanums = 28; + + // Lowercase specifies that the field can only contain lowercase alphabet(s). e.g. aa + bool lowercase = 29; + + // tsecstr specifies that the field can only contain secured strings + bool tsecstr = 30; + } + + // This applies to regexes HTTP_HEADER_NAME and HTTP_HEADER_VALUE to enable + // strict header validation. + // By default, this is true, and HTTP header validations are RFC-compliant. + // Setting to false will enable a looser validations that only disallows + // \r\n\0 characters, which can be used to bypass header matching rules. + optional bool strict = 25 [default = true]; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 26; +} + +// WellKnownRegex contain some well-known patterns. +enum KnownRegex { + UNKNOWN = 0; + + // HTTP header name as defined by RFC 7230. + HTTP_HEADER_NAME = 1; + + // HTTP header value as defined by RFC 7230. + HTTP_HEADER_VALUE = 2; +} + +// BytesRules describe the constraints applied to `bytes` values +message BytesRules { + // Const specifies that this field must be exactly the specified value + optional bytes const = 1; + + // Len specifies that this field must be the specified number of bytes + optional uint64 len = 13; + + // MinLen specifies that this field must be the specified number of bytes + // at a minimum + optional uint64 min_len = 2; + + // MaxLen specifies that this field must be the specified number of bytes + // at a maximum + optional uint64 max_len = 3; + + // Pattern specifes that this field must match against the specified + // regular expression (RE2 syntax). The included expression should elide + // any delimiters. + optional string pattern = 4; + + // Prefix specifies that this field must have the specified bytes at the + // beginning of the string. + optional bytes prefix = 5; + + // Suffix specifies that this field must have the specified bytes at the + // end of the string. + optional bytes suffix = 6; + + // Contains specifies that this field must have the specified bytes + // anywhere in the string. + optional bytes contains = 7; + + // In specifies that this field must be equal to one of the specified + // values + repeated bytes in = 8; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated bytes not_in = 9; + + // WellKnown rules provide advanced constraints against common byte + // patterns + oneof well_known { + // Ip specifies that the field must be a valid IP (v4 or v6) address in + // byte format + bool ip = 10; + + // Ipv4 specifies that the field must be a valid IPv4 address in byte + // format + bool ipv4 = 11; + + // Ipv6 specifies that the field must be a valid IPv6 address in byte + // format + bool ipv6 = 12; + } + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 14; +} + +// EnumRules describe the constraints applied to enum values +message EnumRules { + // Const specifies that this field must be exactly the specified value + optional int32 const = 1; + + // DefinedOnly specifies that this field must be only one of the defined + // values for this enum, failing on any undefined value. + optional bool defined_only = 2; + + // In specifies that this field must be equal to one of the specified + // values + repeated int32 in = 3; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated int32 not_in = 4; +} + +// MessageRules describe the constraints applied to embedded message values. +// For message-type fields, validation is performed recursively. +message MessageRules { + // Skip specifies that the validation rules of this field should not be + // evaluated + optional bool skip = 1; + + // Required specifies that this field must be set + optional bool required = 2; +} + +// RepeatedRules describe the constraints applied to `repeated` values +message RepeatedRules { + // MinItems specifies that this field must have the specified number of + // items at a minimum + optional uint64 min_items = 1; + + // MaxItems specifies that this field must have the specified number of + // items at a maximum + optional uint64 max_items = 2; + + // Unique specifies that all elements in this field must be unique. This + // contraint is only applicable to scalar and enum types (messages are not + // supported). + optional bool unique = 3; + + // Items specifies the contraints to be applied to each item in the field. + // Repeated message fields will still execute validation against each item + // unless skip is specified here. + optional FieldRules items = 4; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 5; +} + +// MapRules describe the constraints applied to `map` values +message MapRules { + // MinPairs specifies that this field must have the specified number of + // KVs at a minimum + optional uint64 min_pairs = 1; + + // MaxPairs specifies that this field must have the specified number of + // KVs at a maximum + optional uint64 max_pairs = 2; + + // NoSparse specifies values in this field cannot be unset. This only + // applies to map's with message value types. + optional bool no_sparse = 3; + + // Keys specifies the constraints to be applied to each key in the field. + optional FieldRules keys = 4; + + // Values specifies the constraints to be applied to the value of each key + // in the field. Message values will still have their validations evaluated + // unless skip is specified here. + optional FieldRules values = 5; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 6; +} + +// AnyRules describe constraints applied exclusively to the +// `google.protobuf.Any` well-known type +message AnyRules { + // Required specifies that this field must be set + optional bool required = 1; + + // In specifies that this field's `type_url` must be equal to one of the + // specified values. + repeated string in = 2; + + // NotIn specifies that this field's `type_url` must not be equal to any of + // the specified values. + repeated string not_in = 3; +} + +// DurationRules describe the constraints applied exclusively to the +// `google.protobuf.Duration` well-known type +message DurationRules { + // Required specifies that this field must be set + optional bool required = 1; + + // Const specifies that this field must be exactly the specified value + optional google.protobuf.Duration const = 2; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional google.protobuf.Duration lt = 3; + + // Lt specifies that this field must be less than the specified value, + // inclusive + optional google.protobuf.Duration lte = 4; + + // Gt specifies that this field must be greater than the specified value, + // exclusive + optional google.protobuf.Duration gt = 5; + + // Gte specifies that this field must be greater than the specified value, + // inclusive + optional google.protobuf.Duration gte = 6; + + // In specifies that this field must be equal to one of the specified + // values + repeated google.protobuf.Duration in = 7; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated google.protobuf.Duration not_in = 8; +} + +// TimestampRules describe the constraints applied exclusively to the +// `google.protobuf.Timestamp` well-known type +message TimestampRules { + // Required specifies that this field must be set + optional bool required = 1; + + // Const specifies that this field must be exactly the specified value + optional google.protobuf.Timestamp const = 2; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional google.protobuf.Timestamp lt = 3; + + // Lte specifies that this field must be less than the specified value, + // inclusive + optional google.protobuf.Timestamp lte = 4; + + // Gt specifies that this field must be greater than the specified value, + // exclusive + optional google.protobuf.Timestamp gt = 5; + + // Gte specifies that this field must be greater than the specified value, + // inclusive + optional google.protobuf.Timestamp gte = 6; + + // LtNow specifies that this must be less than the current time. LtNow + // can only be used with the Within rule. + optional bool lt_now = 7; + + // GtNow specifies that this must be greater than the current time. GtNow + // can only be used with the Within rule. + optional bool gt_now = 8; + + // Within specifies that this field must be within this duration of the + // current time. This constraint can be used alone or with the LtNow and + // GtNow rules. + optional google.protobuf.Duration within = 9; +} \ No newline at end of file