From 154a77534d93751a56572b0e416588b12e1cc8bb Mon Sep 17 00:00:00 2001 From: andrew shan <45474304+andrewshan@users.noreply.github.com> Date: Thu, 15 Aug 2024 15:05:37 +0800 Subject: [PATCH] feat: add go compile sources (#121) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add ratelimit spec & remove temporary proto files * Update version to 1.5.3-SNAPSHOT * fix: change maxAmount to max_amount * feat: add lossless rule specification * feat: lossless支持lables过滤 * feat: restore circuitbreaker fallback & ratelimit add custom response * fix: add json_name * fix: customResponse to custom_response * feat: add go compile sources --- .../v1/fault_tolerance/circuitbreaker.pb.go | 440 ++++++++++--- source/go/api/v1/model/model.pb.go | 283 +------- .../go/api/v1/traffic_manage/lossless.pb.go | 237 +++---- .../go/api/v1/traffic_manage/ratelimit.pb.go | 618 ++++++++++-------- 4 files changed, 809 insertions(+), 769 deletions(-) diff --git a/source/go/api/v1/fault_tolerance/circuitbreaker.pb.go b/source/go/api/v1/fault_tolerance/circuitbreaker.pb.go index dcd23dc..9317146 100644 --- a/source/go/api/v1/fault_tolerance/circuitbreaker.pb.go +++ b/source/go/api/v1/fault_tolerance/circuitbreaker.pb.go @@ -1132,7 +1132,7 @@ type CircuitBreakerRule struct { // fault detection enable config FaultDetectConfig *FaultDetectConfig `protobuf:"bytes,27,opt,name=faultDetectConfig,proto3" json:"faultDetectConfig,omitempty"` // fall back configuration - FallbackConfig *model.FallbackConfig `protobuf:"bytes,28,opt,name=fallbackConfig,proto3" json:"fallbackConfig,omitempty"` + FallbackConfig *FallbackConfig `protobuf:"bytes,28,opt,name=fallbackConfig,proto3" json:"fallbackConfig,omitempty"` // list for block configuration BlockConfigs []*BlockConfig `protobuf:"bytes,29,rep,name=block_configs,proto3" json:"block_configs,omitempty"` // priority rules priority @@ -1287,7 +1287,7 @@ func (x *CircuitBreakerRule) GetFaultDetectConfig() *FaultDetectConfig { return nil } -func (x *CircuitBreakerRule) GetFallbackConfig() *model.FallbackConfig { +func (x *CircuitBreakerRule) GetFallbackConfig() *FallbackConfig { if x != nil { return x.FallbackConfig } @@ -1632,6 +1632,126 @@ func (x *BlockConfig) GetTriggerConditions() []*TriggerCondition { return nil } +// fallback config +type FallbackConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Enable bool `protobuf:"varint,1,opt,name=enable,proto3" json:"enable,omitempty"` + Response *FallbackResponse `protobuf:"bytes,2,opt,name=response,proto3" json:"response,omitempty"` +} + +func (x *FallbackConfig) Reset() { + *x = FallbackConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_circuitbreaker_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FallbackConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FallbackConfig) ProtoMessage() {} + +func (x *FallbackConfig) ProtoReflect() protoreflect.Message { + mi := &file_circuitbreaker_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 FallbackConfig.ProtoReflect.Descriptor instead. +func (*FallbackConfig) Descriptor() ([]byte, []int) { + return file_circuitbreaker_proto_rawDescGZIP(), []int{13} +} + +func (x *FallbackConfig) GetEnable() bool { + if x != nil { + return x.Enable + } + return false +} + +func (x *FallbackConfig) GetResponse() *FallbackResponse { + if x != nil { + return x.Response + } + return nil +} + +// fallback response +type FallbackResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Headers []*FallbackResponse_MessageHeader `protobuf:"bytes,2,rep,name=headers,proto3" json:"headers,omitempty"` + Body string `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"` +} + +func (x *FallbackResponse) Reset() { + *x = FallbackResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_circuitbreaker_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FallbackResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FallbackResponse) ProtoMessage() {} + +func (x *FallbackResponse) ProtoReflect() protoreflect.Message { + mi := &file_circuitbreaker_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 FallbackResponse.ProtoReflect.Descriptor instead. +func (*FallbackResponse) Descriptor() ([]byte, []int) { + return file_circuitbreaker_proto_rawDescGZIP(), []int{14} +} + +func (x *FallbackResponse) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *FallbackResponse) GetHeaders() []*FallbackResponse_MessageHeader { + if x != nil { + return x.Headers + } + return nil +} + +func (x *FallbackResponse) GetBody() string { + if x != nil { + return x.Body + } + return "" +} + // 错误率熔断配置 type CbPolicy_ErrRateConfig struct { state protoimpl.MessageState @@ -1652,7 +1772,7 @@ type CbPolicy_ErrRateConfig struct { func (x *CbPolicy_ErrRateConfig) Reset() { *x = CbPolicy_ErrRateConfig{} if protoimpl.UnsafeEnabled { - mi := &file_circuitbreaker_proto_msgTypes[14] + mi := &file_circuitbreaker_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1665,7 +1785,7 @@ func (x *CbPolicy_ErrRateConfig) String() string { func (*CbPolicy_ErrRateConfig) ProtoMessage() {} func (x *CbPolicy_ErrRateConfig) ProtoReflect() protoreflect.Message { - mi := &file_circuitbreaker_proto_msgTypes[14] + mi := &file_circuitbreaker_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1735,7 +1855,7 @@ type CbPolicy_SlowRateConfig struct { func (x *CbPolicy_SlowRateConfig) Reset() { *x = CbPolicy_SlowRateConfig{} if protoimpl.UnsafeEnabled { - mi := &file_circuitbreaker_proto_msgTypes[15] + mi := &file_circuitbreaker_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1748,7 +1868,7 @@ func (x *CbPolicy_SlowRateConfig) String() string { func (*CbPolicy_SlowRateConfig) ProtoMessage() {} func (x *CbPolicy_SlowRateConfig) ProtoReflect() protoreflect.Message { - mi := &file_circuitbreaker_proto_msgTypes[15] + mi := &file_circuitbreaker_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1809,7 +1929,7 @@ type CbPolicy_ConsecutiveErrConfig struct { func (x *CbPolicy_ConsecutiveErrConfig) Reset() { *x = CbPolicy_ConsecutiveErrConfig{} if protoimpl.UnsafeEnabled { - mi := &file_circuitbreaker_proto_msgTypes[16] + mi := &file_circuitbreaker_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1822,7 +1942,7 @@ func (x *CbPolicy_ConsecutiveErrConfig) String() string { func (*CbPolicy_ConsecutiveErrConfig) ProtoMessage() {} func (x *CbPolicy_ConsecutiveErrConfig) ProtoReflect() protoreflect.Message { - mi := &file_circuitbreaker_proto_msgTypes[16] + mi := &file_circuitbreaker_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1875,7 +1995,7 @@ type CbPolicy_ErrRateConfig_SpecialConfig struct { func (x *CbPolicy_ErrRateConfig_SpecialConfig) Reset() { *x = CbPolicy_ErrRateConfig_SpecialConfig{} if protoimpl.UnsafeEnabled { - mi := &file_circuitbreaker_proto_msgTypes[17] + mi := &file_circuitbreaker_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1888,7 +2008,7 @@ func (x *CbPolicy_ErrRateConfig_SpecialConfig) String() string { func (*CbPolicy_ErrRateConfig_SpecialConfig) ProtoMessage() {} func (x *CbPolicy_ErrRateConfig_SpecialConfig) ProtoReflect() protoreflect.Message { - mi := &file_circuitbreaker_proto_msgTypes[17] + mi := &file_circuitbreaker_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1944,7 +2064,7 @@ type RuleMatcher_SourceService struct { func (x *RuleMatcher_SourceService) Reset() { *x = RuleMatcher_SourceService{} if protoimpl.UnsafeEnabled { - mi := &file_circuitbreaker_proto_msgTypes[19] + mi := &file_circuitbreaker_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1957,7 +2077,7 @@ func (x *RuleMatcher_SourceService) String() string { func (*RuleMatcher_SourceService) ProtoMessage() {} func (x *RuleMatcher_SourceService) ProtoReflect() protoreflect.Message { - mi := &file_circuitbreaker_proto_msgTypes[19] + mi := &file_circuitbreaker_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2003,7 +2123,7 @@ type RuleMatcher_DestinationService struct { func (x *RuleMatcher_DestinationService) Reset() { *x = RuleMatcher_DestinationService{} if protoimpl.UnsafeEnabled { - mi := &file_circuitbreaker_proto_msgTypes[20] + mi := &file_circuitbreaker_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2016,7 +2136,7 @@ func (x *RuleMatcher_DestinationService) String() string { func (*RuleMatcher_DestinationService) ProtoMessage() {} func (x *RuleMatcher_DestinationService) ProtoReflect() protoreflect.Message { - mi := &file_circuitbreaker_proto_msgTypes[20] + mi := &file_circuitbreaker_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2054,6 +2174,61 @@ func (x *RuleMatcher_DestinationService) GetMethod() *model.MatchString { return nil } +type FallbackResponse_MessageHeader struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *FallbackResponse_MessageHeader) Reset() { + *x = FallbackResponse_MessageHeader{} + if protoimpl.UnsafeEnabled { + mi := &file_circuitbreaker_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FallbackResponse_MessageHeader) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FallbackResponse_MessageHeader) ProtoMessage() {} + +func (x *FallbackResponse_MessageHeader) ProtoReflect() protoreflect.Message { + mi := &file_circuitbreaker_proto_msgTypes[24] + 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 FallbackResponse_MessageHeader.ProtoReflect.Descriptor instead. +func (*FallbackResponse_MessageHeader) Descriptor() ([]byte, []int) { + return file_circuitbreaker_proto_rawDescGZIP(), []int{14, 0} +} + +func (x *FallbackResponse_MessageHeader) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *FallbackResponse_MessageHeader) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + var File_circuitbreaker_proto protoreflect.FileDescriptor var file_circuitbreaker_proto_rawDesc = []byte{ @@ -2463,7 +2638,24 @@ var file_circuitbreaker_proto_rawDesc = []byte{ 0x67, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x72, 0x69, 0x67, - 0x67, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0x46, + 0x67, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x5a, + 0x0a, 0x0e, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb1, 0x01, 0x0a, 0x10, 0x46, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x62, 0x6f, 0x64, 0x79, 0x1a, 0x37, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2a, 0x46, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x10, 0x02, 0x12, 0x09, 0x0a, @@ -2494,7 +2686,7 @@ func file_circuitbreaker_proto_rawDescGZIP() []byte { } var file_circuitbreaker_proto_enumTypes = make([]protoimpl.EnumInfo, 7) -var file_circuitbreaker_proto_msgTypes = make([]protoimpl.MessageInfo, 22) +var file_circuitbreaker_proto_msgTypes = make([]protoimpl.MessageInfo, 25) var file_circuitbreaker_proto_goTypes = []interface{}{ (Level)(0), // 0: v1.Level (RecoverConfig_OutlierDetectWhen)(0), // 1: v1.RecoverConfig.OutlierDetectWhen @@ -2516,112 +2708,116 @@ var file_circuitbreaker_proto_goTypes = []interface{}{ (*RecoverCondition)(nil), // 17: v1.RecoverCondition (*FaultDetectConfig)(nil), // 18: v1.FaultDetectConfig (*BlockConfig)(nil), // 19: v1.BlockConfig - nil, // 20: v1.SourceMatcher.LabelsEntry - (*CbPolicy_ErrRateConfig)(nil), // 21: v1.CbPolicy.ErrRateConfig - (*CbPolicy_SlowRateConfig)(nil), // 22: v1.CbPolicy.SlowRateConfig - (*CbPolicy_ConsecutiveErrConfig)(nil), // 23: v1.CbPolicy.ConsecutiveErrConfig - (*CbPolicy_ErrRateConfig_SpecialConfig)(nil), // 24: v1.CbPolicy.ErrRateConfig.SpecialConfig - nil, // 25: v1.DestinationSet.MetadataEntry - (*RuleMatcher_SourceService)(nil), // 26: v1.RuleMatcher.SourceService - (*RuleMatcher_DestinationService)(nil), // 27: v1.RuleMatcher.DestinationService - nil, // 28: v1.CircuitBreakerRule.MetadataEntry - (*wrapperspb.StringValue)(nil), // 29: google.protobuf.StringValue - (*durationpb.Duration)(nil), // 30: google.protobuf.Duration - (*wrapperspb.UInt32Value)(nil), // 31: google.protobuf.UInt32Value - (*model.MatchString)(nil), // 32: v1.MatchString - (*wrapperspb.Int64Value)(nil), // 33: google.protobuf.Int64Value - (*model.FallbackConfig)(nil), // 34: v1.FallbackConfig - (*model.API)(nil), // 35: v1.API - (*wrapperspb.BoolValue)(nil), // 36: google.protobuf.BoolValue + (*FallbackConfig)(nil), // 20: v1.FallbackConfig + (*FallbackResponse)(nil), // 21: v1.FallbackResponse + nil, // 22: v1.SourceMatcher.LabelsEntry + (*CbPolicy_ErrRateConfig)(nil), // 23: v1.CbPolicy.ErrRateConfig + (*CbPolicy_SlowRateConfig)(nil), // 24: v1.CbPolicy.SlowRateConfig + (*CbPolicy_ConsecutiveErrConfig)(nil), // 25: v1.CbPolicy.ConsecutiveErrConfig + (*CbPolicy_ErrRateConfig_SpecialConfig)(nil), // 26: v1.CbPolicy.ErrRateConfig.SpecialConfig + nil, // 27: v1.DestinationSet.MetadataEntry + (*RuleMatcher_SourceService)(nil), // 28: v1.RuleMatcher.SourceService + (*RuleMatcher_DestinationService)(nil), // 29: v1.RuleMatcher.DestinationService + nil, // 30: v1.CircuitBreakerRule.MetadataEntry + (*FallbackResponse_MessageHeader)(nil), // 31: v1.FallbackResponse.MessageHeader + (*wrapperspb.StringValue)(nil), // 32: google.protobuf.StringValue + (*durationpb.Duration)(nil), // 33: google.protobuf.Duration + (*wrapperspb.UInt32Value)(nil), // 34: google.protobuf.UInt32Value + (*model.MatchString)(nil), // 35: v1.MatchString + (*wrapperspb.Int64Value)(nil), // 36: google.protobuf.Int64Value + (*model.API)(nil), // 37: v1.API + (*wrapperspb.BoolValue)(nil), // 38: google.protobuf.BoolValue } var file_circuitbreaker_proto_depIdxs = []int32{ - 29, // 0: v1.CircuitBreaker.id:type_name -> google.protobuf.StringValue - 29, // 1: v1.CircuitBreaker.version:type_name -> google.protobuf.StringValue - 29, // 2: v1.CircuitBreaker.name:type_name -> google.protobuf.StringValue - 29, // 3: v1.CircuitBreaker.namespace:type_name -> google.protobuf.StringValue - 29, // 4: v1.CircuitBreaker.service:type_name -> google.protobuf.StringValue - 29, // 5: v1.CircuitBreaker.service_namespace:type_name -> google.protobuf.StringValue + 32, // 0: v1.CircuitBreaker.id:type_name -> google.protobuf.StringValue + 32, // 1: v1.CircuitBreaker.version:type_name -> google.protobuf.StringValue + 32, // 2: v1.CircuitBreaker.name:type_name -> google.protobuf.StringValue + 32, // 3: v1.CircuitBreaker.namespace:type_name -> google.protobuf.StringValue + 32, // 4: v1.CircuitBreaker.service:type_name -> google.protobuf.StringValue + 32, // 5: v1.CircuitBreaker.service_namespace:type_name -> google.protobuf.StringValue 12, // 6: v1.CircuitBreaker.inbounds:type_name -> v1.CbRule 12, // 7: v1.CircuitBreaker.outbounds:type_name -> v1.CbRule - 29, // 8: v1.CircuitBreaker.token:type_name -> google.protobuf.StringValue - 29, // 9: v1.CircuitBreaker.owners:type_name -> google.protobuf.StringValue - 29, // 10: v1.CircuitBreaker.business:type_name -> google.protobuf.StringValue - 29, // 11: v1.CircuitBreaker.department:type_name -> google.protobuf.StringValue - 29, // 12: v1.CircuitBreaker.comment:type_name -> google.protobuf.StringValue - 29, // 13: v1.CircuitBreaker.ctime:type_name -> google.protobuf.StringValue - 29, // 14: v1.CircuitBreaker.mtime:type_name -> google.protobuf.StringValue - 29, // 15: v1.CircuitBreaker.revision:type_name -> google.protobuf.StringValue + 32, // 8: v1.CircuitBreaker.token:type_name -> google.protobuf.StringValue + 32, // 9: v1.CircuitBreaker.owners:type_name -> google.protobuf.StringValue + 32, // 10: v1.CircuitBreaker.business:type_name -> google.protobuf.StringValue + 32, // 11: v1.CircuitBreaker.department:type_name -> google.protobuf.StringValue + 32, // 12: v1.CircuitBreaker.comment:type_name -> google.protobuf.StringValue + 32, // 13: v1.CircuitBreaker.ctime:type_name -> google.protobuf.StringValue + 32, // 14: v1.CircuitBreaker.mtime:type_name -> google.protobuf.StringValue + 32, // 15: v1.CircuitBreaker.revision:type_name -> google.protobuf.StringValue 14, // 16: v1.CircuitBreaker.rules:type_name -> v1.CircuitBreakerRule - 29, // 17: v1.SourceMatcher.service:type_name -> google.protobuf.StringValue - 29, // 18: v1.SourceMatcher.namespace:type_name -> google.protobuf.StringValue - 20, // 19: v1.SourceMatcher.labels:type_name -> v1.SourceMatcher.LabelsEntry - 30, // 20: v1.RecoverConfig.sleepWindow:type_name -> google.protobuf.Duration - 31, // 21: v1.RecoverConfig.maxRetryAfterHalfOpen:type_name -> google.protobuf.UInt32Value - 31, // 22: v1.RecoverConfig.requestRateAfterHalfOpen:type_name -> google.protobuf.UInt32Value - 31, // 23: v1.RecoverConfig.successRateToClose:type_name -> google.protobuf.UInt32Value - 31, // 24: v1.RecoverConfig.requestCountAfterHalfOpen:type_name -> google.protobuf.UInt32Value + 32, // 17: v1.SourceMatcher.service:type_name -> google.protobuf.StringValue + 32, // 18: v1.SourceMatcher.namespace:type_name -> google.protobuf.StringValue + 22, // 19: v1.SourceMatcher.labels:type_name -> v1.SourceMatcher.LabelsEntry + 33, // 20: v1.RecoverConfig.sleepWindow:type_name -> google.protobuf.Duration + 34, // 21: v1.RecoverConfig.maxRetryAfterHalfOpen:type_name -> google.protobuf.UInt32Value + 34, // 22: v1.RecoverConfig.requestRateAfterHalfOpen:type_name -> google.protobuf.UInt32Value + 34, // 23: v1.RecoverConfig.successRateToClose:type_name -> google.protobuf.UInt32Value + 34, // 24: v1.RecoverConfig.requestCountAfterHalfOpen:type_name -> google.protobuf.UInt32Value 1, // 25: v1.RecoverConfig.outlierDetectWhen:type_name -> v1.RecoverConfig.OutlierDetectWhen - 21, // 26: v1.CbPolicy.errorRate:type_name -> v1.CbPolicy.ErrRateConfig - 22, // 27: v1.CbPolicy.slowRate:type_name -> v1.CbPolicy.SlowRateConfig - 30, // 28: v1.CbPolicy.judgeDuration:type_name -> google.protobuf.Duration - 31, // 29: v1.CbPolicy.maxEjectionPercent:type_name -> google.protobuf.UInt32Value - 23, // 30: v1.CbPolicy.consecutive:type_name -> v1.CbPolicy.ConsecutiveErrConfig - 29, // 31: v1.DestinationSet.service:type_name -> google.protobuf.StringValue - 29, // 32: v1.DestinationSet.namespace:type_name -> google.protobuf.StringValue - 25, // 33: v1.DestinationSet.metadata:type_name -> v1.DestinationSet.MetadataEntry + 23, // 26: v1.CbPolicy.errorRate:type_name -> v1.CbPolicy.ErrRateConfig + 24, // 27: v1.CbPolicy.slowRate:type_name -> v1.CbPolicy.SlowRateConfig + 33, // 28: v1.CbPolicy.judgeDuration:type_name -> google.protobuf.Duration + 34, // 29: v1.CbPolicy.maxEjectionPercent:type_name -> google.protobuf.UInt32Value + 25, // 30: v1.CbPolicy.consecutive:type_name -> v1.CbPolicy.ConsecutiveErrConfig + 32, // 31: v1.DestinationSet.service:type_name -> google.protobuf.StringValue + 32, // 32: v1.DestinationSet.namespace:type_name -> google.protobuf.StringValue + 27, // 33: v1.DestinationSet.metadata:type_name -> v1.DestinationSet.MetadataEntry 2, // 34: v1.DestinationSet.resource:type_name -> v1.DestinationSet.Resource 3, // 35: v1.DestinationSet.type:type_name -> v1.DestinationSet.Type 4, // 36: v1.DestinationSet.scope:type_name -> v1.DestinationSet.Scope - 30, // 37: v1.DestinationSet.metricWindow:type_name -> google.protobuf.Duration - 31, // 38: v1.DestinationSet.metricPrecision:type_name -> google.protobuf.UInt32Value - 30, // 39: v1.DestinationSet.updateInterval:type_name -> google.protobuf.Duration + 33, // 37: v1.DestinationSet.metricWindow:type_name -> google.protobuf.Duration + 34, // 38: v1.DestinationSet.metricPrecision:type_name -> google.protobuf.UInt32Value + 33, // 39: v1.DestinationSet.updateInterval:type_name -> google.protobuf.Duration 9, // 40: v1.DestinationSet.recover:type_name -> v1.RecoverConfig 10, // 41: v1.DestinationSet.policy:type_name -> v1.CbPolicy - 32, // 42: v1.DestinationSet.method:type_name -> v1.MatchString - 33, // 43: v1.DestinationSet.errorCodes:type_name -> google.protobuf.Int64Value + 35, // 42: v1.DestinationSet.method:type_name -> v1.MatchString + 36, // 43: v1.DestinationSet.errorCodes:type_name -> google.protobuf.Int64Value 8, // 44: v1.CbRule.sources:type_name -> v1.SourceMatcher 11, // 45: v1.CbRule.destinations:type_name -> v1.DestinationSet - 26, // 46: v1.RuleMatcher.source:type_name -> v1.RuleMatcher.SourceService - 27, // 47: v1.RuleMatcher.destination:type_name -> v1.RuleMatcher.DestinationService + 28, // 46: v1.RuleMatcher.source:type_name -> v1.RuleMatcher.SourceService + 29, // 47: v1.RuleMatcher.destination:type_name -> v1.RuleMatcher.DestinationService 0, // 48: v1.CircuitBreakerRule.level:type_name -> v1.Level 13, // 49: v1.CircuitBreakerRule.rule_matcher:type_name -> v1.RuleMatcher 15, // 50: v1.CircuitBreakerRule.error_conditions:type_name -> v1.ErrorCondition 16, // 51: v1.CircuitBreakerRule.trigger_condition:type_name -> v1.TriggerCondition 17, // 52: v1.CircuitBreakerRule.recoverCondition:type_name -> v1.RecoverCondition 18, // 53: v1.CircuitBreakerRule.faultDetectConfig:type_name -> v1.FaultDetectConfig - 34, // 54: v1.CircuitBreakerRule.fallbackConfig:type_name -> v1.FallbackConfig + 20, // 54: v1.CircuitBreakerRule.fallbackConfig:type_name -> v1.FallbackConfig 19, // 55: v1.CircuitBreakerRule.block_configs:type_name -> v1.BlockConfig - 28, // 56: v1.CircuitBreakerRule.metadata:type_name -> v1.CircuitBreakerRule.MetadataEntry + 30, // 56: v1.CircuitBreakerRule.metadata:type_name -> v1.CircuitBreakerRule.MetadataEntry 5, // 57: v1.ErrorCondition.input_type:type_name -> v1.ErrorCondition.InputType - 32, // 58: v1.ErrorCondition.condition:type_name -> v1.MatchString + 35, // 58: v1.ErrorCondition.condition:type_name -> v1.MatchString 6, // 59: v1.TriggerCondition.trigger_type:type_name -> v1.TriggerCondition.TriggerType - 35, // 60: v1.BlockConfig.api:type_name -> v1.API + 37, // 60: v1.BlockConfig.api:type_name -> v1.API 15, // 61: v1.BlockConfig.error_conditions:type_name -> v1.ErrorCondition 16, // 62: v1.BlockConfig.trigger_conditions:type_name -> v1.TriggerCondition - 32, // 63: v1.SourceMatcher.LabelsEntry.value:type_name -> v1.MatchString - 36, // 64: v1.CbPolicy.ErrRateConfig.enable:type_name -> google.protobuf.BoolValue - 31, // 65: v1.CbPolicy.ErrRateConfig.requestVolumeThreshold:type_name -> google.protobuf.UInt32Value - 31, // 66: v1.CbPolicy.ErrRateConfig.errorRateToPreserved:type_name -> google.protobuf.UInt32Value - 31, // 67: v1.CbPolicy.ErrRateConfig.errorRateToOpen:type_name -> google.protobuf.UInt32Value - 24, // 68: v1.CbPolicy.ErrRateConfig.specials:type_name -> v1.CbPolicy.ErrRateConfig.SpecialConfig - 36, // 69: v1.CbPolicy.SlowRateConfig.enable:type_name -> google.protobuf.BoolValue - 30, // 70: v1.CbPolicy.SlowRateConfig.maxRt:type_name -> google.protobuf.Duration - 31, // 71: v1.CbPolicy.SlowRateConfig.slowRateToPreserved:type_name -> google.protobuf.UInt32Value - 31, // 72: v1.CbPolicy.SlowRateConfig.slowRateToOpen:type_name -> google.protobuf.UInt32Value - 36, // 73: v1.CbPolicy.ConsecutiveErrConfig.enable:type_name -> google.protobuf.BoolValue - 31, // 74: v1.CbPolicy.ConsecutiveErrConfig.consecutiveErrorToPreserved:type_name -> google.protobuf.UInt32Value - 31, // 75: v1.CbPolicy.ConsecutiveErrConfig.consecutiveErrorToOpen:type_name -> google.protobuf.UInt32Value - 29, // 76: v1.CbPolicy.ErrRateConfig.SpecialConfig.type:type_name -> google.protobuf.StringValue - 33, // 77: v1.CbPolicy.ErrRateConfig.SpecialConfig.errorCodes:type_name -> google.protobuf.Int64Value - 31, // 78: v1.CbPolicy.ErrRateConfig.SpecialConfig.errorRateToPreserved:type_name -> google.protobuf.UInt32Value - 31, // 79: v1.CbPolicy.ErrRateConfig.SpecialConfig.errorRateToOpen:type_name -> google.protobuf.UInt32Value - 32, // 80: v1.DestinationSet.MetadataEntry.value:type_name -> v1.MatchString - 32, // 81: v1.RuleMatcher.DestinationService.method:type_name -> v1.MatchString - 82, // [82:82] is the sub-list for method output_type - 82, // [82:82] is the sub-list for method input_type - 82, // [82:82] is the sub-list for extension type_name - 82, // [82:82] is the sub-list for extension extendee - 0, // [0:82] is the sub-list for field type_name + 21, // 63: v1.FallbackConfig.response:type_name -> v1.FallbackResponse + 31, // 64: v1.FallbackResponse.headers:type_name -> v1.FallbackResponse.MessageHeader + 35, // 65: v1.SourceMatcher.LabelsEntry.value:type_name -> v1.MatchString + 38, // 66: v1.CbPolicy.ErrRateConfig.enable:type_name -> google.protobuf.BoolValue + 34, // 67: v1.CbPolicy.ErrRateConfig.requestVolumeThreshold:type_name -> google.protobuf.UInt32Value + 34, // 68: v1.CbPolicy.ErrRateConfig.errorRateToPreserved:type_name -> google.protobuf.UInt32Value + 34, // 69: v1.CbPolicy.ErrRateConfig.errorRateToOpen:type_name -> google.protobuf.UInt32Value + 26, // 70: v1.CbPolicy.ErrRateConfig.specials:type_name -> v1.CbPolicy.ErrRateConfig.SpecialConfig + 38, // 71: v1.CbPolicy.SlowRateConfig.enable:type_name -> google.protobuf.BoolValue + 33, // 72: v1.CbPolicy.SlowRateConfig.maxRt:type_name -> google.protobuf.Duration + 34, // 73: v1.CbPolicy.SlowRateConfig.slowRateToPreserved:type_name -> google.protobuf.UInt32Value + 34, // 74: v1.CbPolicy.SlowRateConfig.slowRateToOpen:type_name -> google.protobuf.UInt32Value + 38, // 75: v1.CbPolicy.ConsecutiveErrConfig.enable:type_name -> google.protobuf.BoolValue + 34, // 76: v1.CbPolicy.ConsecutiveErrConfig.consecutiveErrorToPreserved:type_name -> google.protobuf.UInt32Value + 34, // 77: v1.CbPolicy.ConsecutiveErrConfig.consecutiveErrorToOpen:type_name -> google.protobuf.UInt32Value + 32, // 78: v1.CbPolicy.ErrRateConfig.SpecialConfig.type:type_name -> google.protobuf.StringValue + 36, // 79: v1.CbPolicy.ErrRateConfig.SpecialConfig.errorCodes:type_name -> google.protobuf.Int64Value + 34, // 80: v1.CbPolicy.ErrRateConfig.SpecialConfig.errorRateToPreserved:type_name -> google.protobuf.UInt32Value + 34, // 81: v1.CbPolicy.ErrRateConfig.SpecialConfig.errorRateToOpen:type_name -> google.protobuf.UInt32Value + 35, // 82: v1.DestinationSet.MetadataEntry.value:type_name -> v1.MatchString + 35, // 83: v1.RuleMatcher.DestinationService.method:type_name -> v1.MatchString + 84, // [84:84] is the sub-list for method output_type + 84, // [84:84] is the sub-list for method input_type + 84, // [84:84] is the sub-list for extension type_name + 84, // [84:84] is the sub-list for extension extendee + 0, // [0:84] is the sub-list for field type_name } func init() { file_circuitbreaker_proto_init() } @@ -2786,7 +2982,31 @@ func file_circuitbreaker_proto_init() { return nil } } + file_circuitbreaker_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FallbackConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } file_circuitbreaker_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FallbackResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_circuitbreaker_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CbPolicy_ErrRateConfig); i { case 0: return &v.state @@ -2798,7 +3018,7 @@ func file_circuitbreaker_proto_init() { return nil } } - file_circuitbreaker_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_circuitbreaker_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CbPolicy_SlowRateConfig); i { case 0: return &v.state @@ -2810,7 +3030,7 @@ func file_circuitbreaker_proto_init() { return nil } } - file_circuitbreaker_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_circuitbreaker_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CbPolicy_ConsecutiveErrConfig); i { case 0: return &v.state @@ -2822,7 +3042,7 @@ func file_circuitbreaker_proto_init() { return nil } } - file_circuitbreaker_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_circuitbreaker_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CbPolicy_ErrRateConfig_SpecialConfig); i { case 0: return &v.state @@ -2834,7 +3054,7 @@ func file_circuitbreaker_proto_init() { return nil } } - file_circuitbreaker_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_circuitbreaker_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleMatcher_SourceService); i { case 0: return &v.state @@ -2846,7 +3066,7 @@ func file_circuitbreaker_proto_init() { return nil } } - file_circuitbreaker_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_circuitbreaker_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleMatcher_DestinationService); i { case 0: return &v.state @@ -2858,6 +3078,18 @@ func file_circuitbreaker_proto_init() { return nil } } + file_circuitbreaker_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FallbackResponse_MessageHeader); 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{ @@ -2865,7 +3097,7 @@ func file_circuitbreaker_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_circuitbreaker_proto_rawDesc, NumEnums: 7, - NumMessages: 22, + NumMessages: 25, NumExtensions: 0, NumServices: 0, }, diff --git a/source/go/api/v1/model/model.pb.go b/source/go/api/v1/model/model.pb.go index 80ba654..e82b867 100644 --- a/source/go/api/v1/model/model.pb.go +++ b/source/go/api/v1/model/model.pb.go @@ -496,181 +496,6 @@ func (x *API) GetPath() *MatchString { return nil } -// fallback config -type FallbackConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Enable bool `protobuf:"varint,1,opt,name=enable,proto3" json:"enable,omitempty"` - Response *FallbackResponse `protobuf:"bytes,2,opt,name=response,proto3" json:"response,omitempty"` -} - -func (x *FallbackConfig) Reset() { - *x = FallbackConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_model_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FallbackConfig) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FallbackConfig) ProtoMessage() {} - -func (x *FallbackConfig) ProtoReflect() protoreflect.Message { - mi := &file_model_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 FallbackConfig.ProtoReflect.Descriptor instead. -func (*FallbackConfig) Descriptor() ([]byte, []int) { - return file_model_proto_rawDescGZIP(), []int{6} -} - -func (x *FallbackConfig) GetEnable() bool { - if x != nil { - return x.Enable - } - return false -} - -func (x *FallbackConfig) GetResponse() *FallbackResponse { - if x != nil { - return x.Response - } - return nil -} - -// fallback response -type FallbackResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` - Headers []*FallbackResponse_MessageHeader `protobuf:"bytes,2,rep,name=headers,proto3" json:"headers,omitempty"` - Body string `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"` -} - -func (x *FallbackResponse) Reset() { - *x = FallbackResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_model_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FallbackResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FallbackResponse) ProtoMessage() {} - -func (x *FallbackResponse) ProtoReflect() protoreflect.Message { - mi := &file_model_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 FallbackResponse.ProtoReflect.Descriptor instead. -func (*FallbackResponse) Descriptor() ([]byte, []int) { - return file_model_proto_rawDescGZIP(), []int{7} -} - -func (x *FallbackResponse) GetCode() int32 { - if x != nil { - return x.Code - } - return 0 -} - -func (x *FallbackResponse) GetHeaders() []*FallbackResponse_MessageHeader { - if x != nil { - return x.Headers - } - return nil -} - -func (x *FallbackResponse) GetBody() string { - if x != nil { - return x.Body - } - return "" -} - -type FallbackResponse_MessageHeader struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` -} - -func (x *FallbackResponse_MessageHeader) Reset() { - *x = FallbackResponse_MessageHeader{} - if protoimpl.UnsafeEnabled { - mi := &file_model_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FallbackResponse_MessageHeader) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FallbackResponse_MessageHeader) ProtoMessage() {} - -func (x *FallbackResponse_MessageHeader) ProtoReflect() protoreflect.Message { - mi := &file_model_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 FallbackResponse_MessageHeader.ProtoReflect.Descriptor instead. -func (*FallbackResponse_MessageHeader) Descriptor() ([]byte, []int) { - return file_model_proto_rawDescGZIP(), []int{7, 0} -} - -func (x *FallbackResponse_MessageHeader) GetKey() string { - if x != nil { - return x.Key - } - return "" -} - -func (x *FallbackResponse_MessageHeader) GetValue() string { - if x != nil { - return x.Value - } - return "" -} - var File_model_proto protoreflect.FileDescriptor var file_model_proto_rawDesc = []byte{ @@ -731,24 +556,7 @@ var file_model_proto_rawDesc = []byte{ 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x23, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x5a, - 0x0a, 0x0e, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x31, 0x2e, - 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb1, 0x01, 0x0a, 0x10, 0x46, - 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, - 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x62, 0x6f, 0x64, 0x79, 0x1a, 0x37, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x79, + 0x63, 0x68, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x79, 0x0a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x6f, 0x6c, 0x61, 0x72, 0x69, 0x73, 0x2e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, @@ -773,37 +581,32 @@ func file_model_proto_rawDescGZIP() []byte { } var file_model_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_model_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_model_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_model_proto_goTypes = []interface{}{ - (MatchString_MatchStringType)(0), // 0: v1.MatchString.MatchStringType - (MatchString_ValueType)(0), // 1: v1.MatchString.ValueType - (*Location)(nil), // 2: v1.Location - (*MatchString)(nil), // 3: v1.MatchString - (*StringList)(nil), // 4: v1.StringList - (*Summary)(nil), // 5: v1.Summary - (*ClientLabel)(nil), // 6: v1.ClientLabel - (*API)(nil), // 7: v1.API - (*FallbackConfig)(nil), // 8: v1.FallbackConfig - (*FallbackResponse)(nil), // 9: v1.FallbackResponse - (*FallbackResponse_MessageHeader)(nil), // 10: v1.FallbackResponse.MessageHeader - (*wrapperspb.StringValue)(nil), // 11: google.protobuf.StringValue + (MatchString_MatchStringType)(0), // 0: v1.MatchString.MatchStringType + (MatchString_ValueType)(0), // 1: v1.MatchString.ValueType + (*Location)(nil), // 2: v1.Location + (*MatchString)(nil), // 3: v1.MatchString + (*StringList)(nil), // 4: v1.StringList + (*Summary)(nil), // 5: v1.Summary + (*ClientLabel)(nil), // 6: v1.ClientLabel + (*API)(nil), // 7: v1.API + (*wrapperspb.StringValue)(nil), // 8: google.protobuf.StringValue } var file_model_proto_depIdxs = []int32{ - 11, // 0: v1.Location.region:type_name -> google.protobuf.StringValue - 11, // 1: v1.Location.zone:type_name -> google.protobuf.StringValue - 11, // 2: v1.Location.campus:type_name -> google.protobuf.StringValue - 0, // 3: v1.MatchString.type:type_name -> v1.MatchString.MatchStringType - 11, // 4: v1.MatchString.value:type_name -> google.protobuf.StringValue - 1, // 5: v1.MatchString.value_type:type_name -> v1.MatchString.ValueType - 3, // 6: v1.ClientLabel.value:type_name -> v1.MatchString - 3, // 7: v1.API.path:type_name -> v1.MatchString - 9, // 8: v1.FallbackConfig.response:type_name -> v1.FallbackResponse - 10, // 9: v1.FallbackResponse.headers:type_name -> v1.FallbackResponse.MessageHeader - 10, // [10:10] is the sub-list for method output_type - 10, // [10:10] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + 8, // 0: v1.Location.region:type_name -> google.protobuf.StringValue + 8, // 1: v1.Location.zone:type_name -> google.protobuf.StringValue + 8, // 2: v1.Location.campus:type_name -> google.protobuf.StringValue + 0, // 3: v1.MatchString.type:type_name -> v1.MatchString.MatchStringType + 8, // 4: v1.MatchString.value:type_name -> google.protobuf.StringValue + 1, // 5: v1.MatchString.value_type:type_name -> v1.MatchString.ValueType + 3, // 6: v1.ClientLabel.value:type_name -> v1.MatchString + 3, // 7: v1.API.path:type_name -> v1.MatchString + 8, // [8:8] is the sub-list for method output_type + 8, // [8:8] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name } func init() { file_model_proto_init() } @@ -884,42 +687,6 @@ func file_model_proto_init() { return nil } } - file_model_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FallbackConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_model_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FallbackResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_model_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FallbackResponse_MessageHeader); 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{ @@ -927,7 +694,7 @@ func file_model_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_model_proto_rawDesc, NumEnums: 2, - NumMessages: 9, + NumMessages: 6, NumExtensions: 0, NumServices: 0, }, diff --git a/source/go/api/v1/traffic_manage/lossless.pb.go b/source/go/api/v1/traffic_manage/lossless.pb.go index 2d21010..e9f0ee0 100644 --- a/source/go/api/v1/traffic_manage/lossless.pb.go +++ b/source/go/api/v1/traffic_manage/lossless.pb.go @@ -7,7 +7,7 @@ package traffic_manage import ( - model "github.com/polarismesh/specification/source/go/api/v1/model" + _ "github.com/polarismesh/specification/source/go/api/v1/model" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" _ "google.golang.org/protobuf/types/known/durationpb" @@ -83,20 +83,18 @@ type LosslessRule struct { Service string `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"` // namespace for rule belongs to Namespace string `protobuf:"bytes,3,opt,name=namespace,proto3" json:"namespace,omitempty"` - // match rules by labels - Labels map[string]*model.MatchString `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // revision routing version - Revision string `protobuf:"bytes,5,opt,name=revision,proto3" json:"revision,omitempty"` + Revision string `protobuf:"bytes,4,opt,name=revision,proto3" json:"revision,omitempty"` // ctime create time of the rules - Ctime string `protobuf:"bytes,6,opt,name=ctime,proto3" json:"ctime,omitempty"` + Ctime string `protobuf:"bytes,5,opt,name=ctime,proto3" json:"ctime,omitempty"` // mtime modify time of the rules - Mtime string `protobuf:"bytes,7,opt,name=mtime,proto3" json:"mtime,omitempty"` + Mtime string `protobuf:"bytes,6,opt,name=mtime,proto3" json:"mtime,omitempty"` // configuration for lossless online - LosslessOnline *LosslessOnline `protobuf:"bytes,8,opt,name=losslessOnline,json=lossless_online,proto3" json:"losslessOnline,omitempty"` + LosslessOnline *LosslessOnline `protobuf:"bytes,7,opt,name=losslessOnline,json=lossless_online,proto3" json:"losslessOnline,omitempty"` // configuration for lossless offline - LosslessOffline *LosslessOffline `protobuf:"bytes,9,opt,name=losslessOffline,json=lossless_offline,proto3" json:"losslessOffline,omitempty"` + LosslessOffline *LosslessOffline `protobuf:"bytes,8,opt,name=losslessOffline,json=lossless_offline,proto3" json:"losslessOffline,omitempty"` // rule labels - Metadata map[string]string `protobuf:"bytes,10,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Metadata map[string]string `protobuf:"bytes,9,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *LosslessRule) Reset() { @@ -152,13 +150,6 @@ func (x *LosslessRule) GetNamespace() string { return "" } -func (x *LosslessRule) GetLabels() map[string]*model.MatchString { - if x != nil { - return x.Labels - } - return nil -} - func (x *LosslessRule) GetRevision() string { if x != nil { return x.Revision @@ -558,105 +549,97 @@ var file_lossless_proto_rawDesc = []byte{ 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, 0x0b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0x96, 0x04, 0x0a, 0x0c, 0x4c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x75, + 0x6f, 0x22, 0x94, 0x03, 0x0a, 0x0c, 0x4c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, - 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x74, 0x69, - 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0e, 0x6c, 0x6f, 0x73, 0x73, - 0x6c, 0x65, 0x73, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x4f, 0x6e, - 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x0f, 0x6c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x6f, - 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3e, 0x0a, 0x0f, 0x6c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, - 0x73, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x4f, 0x66, 0x66, 0x6c, - 0x69, 0x6e, 0x65, 0x52, 0x10, 0x6c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x6f, 0x66, - 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x73, - 0x73, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x1a, 0x4a, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, - 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9b, 0x01, 0x0a, 0x0e, 0x4c, - 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x38, 0x0a, - 0x0d, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0e, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x06, 0x77, 0x61, 0x72, 0x6d, 0x75, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x61, 0x72, - 0x6d, 0x75, 0x70, 0x52, 0x06, 0x77, 0x61, 0x72, 0x6d, 0x75, 0x70, 0x12, 0x2b, 0x0a, 0x09, 0x72, - 0x65, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x09, 0x72, - 0x65, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x22, 0x9d, 0x03, 0x0a, 0x0d, 0x44, 0x65, 0x6c, - 0x61, 0x79, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x74, 0x69, + 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0e, 0x6c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x4f, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x0f, + 0x6c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, + 0x3e, 0x0a, 0x0f, 0x6c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x4f, 0x66, 0x66, 0x6c, 0x69, + 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, + 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x10, 0x6c, + 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x12, + 0x3a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x52, + 0x75, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9b, 0x01, 0x0a, 0x0e, 0x4c, 0x6f, 0x73, + 0x73, 0x6c, 0x65, 0x73, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x38, 0x0a, 0x0d, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0e, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x06, 0x77, 0x61, 0x72, 0x6d, 0x75, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x61, 0x72, 0x6d, 0x75, + 0x70, 0x52, 0x06, 0x77, 0x61, 0x72, 0x6d, 0x75, 0x70, 0x12, 0x2b, 0x0a, 0x09, 0x72, 0x65, 0x61, + 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x09, 0x72, 0x65, 0x61, + 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x22, 0x9d, 0x03, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x61, 0x79, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x12, 0x3b, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x79, 0x52, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x27, 0x0a, + 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x15, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x2e, 0x0a, 0x11, 0x68, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x2a, 0x0a, 0x0f, 0x68, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x12, 0x3f, 0x0a, 0x19, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x68, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x22, 0x3d, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x61, 0x79, + 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x45, 0x4c, 0x41, + 0x59, 0x5f, 0x42, 0x59, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x44, + 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x59, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x43, + 0x48, 0x45, 0x43, 0x4b, 0x10, 0x01, 0x22, 0xe9, 0x01, 0x0a, 0x06, 0x57, 0x61, 0x72, 0x6d, 0x75, + 0x70, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x12, 0x3c, 0x0a, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x76, 0x65, 0x72, + 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x76, 0x65, + 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x42, 0x0a, 0x1b, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x22, 0x23, 0x0a, 0x09, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x0f, 0x4c, 0x6f, 0x73, 0x73, 0x6c, + 0x65, 0x73, 0x73, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x72, - 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, - 0x27, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x2e, 0x0a, 0x11, - 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x2a, 0x0a, 0x0f, - 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x12, 0x3f, 0x0a, 0x19, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x68, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, - 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x22, 0x3d, 0x0a, 0x0d, 0x44, 0x65, 0x6c, - 0x61, 0x79, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x45, - 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x59, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x00, 0x12, 0x19, 0x0a, - 0x15, 0x44, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x59, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, - 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x10, 0x01, 0x22, 0xe9, 0x01, 0x0a, 0x06, 0x57, 0x61, 0x72, - 0x6d, 0x75, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x3c, 0x0a, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x76, - 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, - 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x1b, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, - 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, - 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x75, 0x72, 0x76, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x75, 0x72, 0x76, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x22, 0x23, 0x0a, 0x09, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, - 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x0f, 0x4c, 0x6f, 0x73, - 0x73, 0x6c, 0x65, 0x73, 0x73, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x42, 0x8e, 0x01, 0x0a, 0x37, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, - 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x6f, 0x6c, 0x61, 0x72, 0x69, 0x73, 0x2e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x42, 0x0d, 0x4c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x5a, - 0x44, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6c, 0x61, - 0x72, 0x69, 0x73, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2f, 0x67, 0x6f, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x6d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6c, 0x65, 0x42, 0x8e, 0x01, 0x0a, 0x37, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, + 0x6e, 0x74, 0x2e, 0x70, 0x6f, 0x6c, 0x61, 0x72, 0x69, 0x73, 0x2e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x42, 0x0d, + 0x4c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x5a, 0x44, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6c, 0x61, 0x72, 0x69, + 0x73, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -672,7 +655,7 @@ func file_lossless_proto_rawDescGZIP() []byte { } var file_lossless_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_lossless_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_lossless_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_lossless_proto_goTypes = []interface{}{ (DelayRegister_DelayStrategy)(0), // 0: v1.DelayRegister.DelayStrategy (*LosslessRule)(nil), // 1: v1.LosslessRule @@ -681,25 +664,21 @@ var file_lossless_proto_goTypes = []interface{}{ (*Warmup)(nil), // 4: v1.Warmup (*Readiness)(nil), // 5: v1.Readiness (*LosslessOffline)(nil), // 6: v1.LosslessOffline - nil, // 7: v1.LosslessRule.LabelsEntry - nil, // 8: v1.LosslessRule.MetadataEntry - (*model.MatchString)(nil), // 9: v1.MatchString + nil, // 7: v1.LosslessRule.MetadataEntry } var file_lossless_proto_depIdxs = []int32{ - 7, // 0: v1.LosslessRule.labels:type_name -> v1.LosslessRule.LabelsEntry - 2, // 1: v1.LosslessRule.losslessOnline:type_name -> v1.LosslessOnline - 6, // 2: v1.LosslessRule.losslessOffline:type_name -> v1.LosslessOffline - 8, // 3: v1.LosslessRule.metadata:type_name -> v1.LosslessRule.MetadataEntry - 3, // 4: v1.LosslessOnline.delayRegister:type_name -> v1.DelayRegister - 4, // 5: v1.LosslessOnline.warmup:type_name -> v1.Warmup - 5, // 6: v1.LosslessOnline.readiness:type_name -> v1.Readiness - 0, // 7: v1.DelayRegister.strategy:type_name -> v1.DelayRegister.DelayStrategy - 9, // 8: v1.LosslessRule.LabelsEntry.value:type_name -> v1.MatchString - 9, // [9:9] is the sub-list for method output_type - 9, // [9:9] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name + 2, // 0: v1.LosslessRule.losslessOnline:type_name -> v1.LosslessOnline + 6, // 1: v1.LosslessRule.losslessOffline:type_name -> v1.LosslessOffline + 7, // 2: v1.LosslessRule.metadata:type_name -> v1.LosslessRule.MetadataEntry + 3, // 3: v1.LosslessOnline.delayRegister:type_name -> v1.DelayRegister + 4, // 4: v1.LosslessOnline.warmup:type_name -> v1.Warmup + 5, // 5: v1.LosslessOnline.readiness:type_name -> v1.Readiness + 0, // 6: v1.DelayRegister.strategy:type_name -> v1.DelayRegister.DelayStrategy + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name } func init() { file_lossless_proto_init() } @@ -787,7 +766,7 @@ func file_lossless_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_lossless_proto_rawDesc, NumEnums: 1, - NumMessages: 8, + NumMessages: 7, NumExtensions: 0, NumServices: 0, }, diff --git a/source/go/api/v1/traffic_manage/ratelimit.pb.go b/source/go/api/v1/traffic_manage/ratelimit.pb.go index 8f038cf..e0036e2 100644 --- a/source/go/api/v1/traffic_manage/ratelimit.pb.go +++ b/source/go/api/v1/traffic_manage/ratelimit.pb.go @@ -400,7 +400,7 @@ type Rule struct { // amount for concurrency rate-limit ConcurrencyAmount *ConcurrencyAmount `protobuf:"bytes,27,opt,name=concurrencyAmount,json=concurrency_amount,proto3" json:"concurrencyAmount,omitempty"` // fallback configuration - FallbackConfig *model.FallbackConfig `protobuf:"bytes,28,opt,name=fallbackConfig,json=fallback_config,proto3" json:"fallbackConfig,omitempty"` + CustomResponse *CustomResponse `protobuf:"bytes,28,opt,name=customResponse,json=custom_response,proto3" json:"customResponse,omitempty"` // 限流规则标签数据 Metadata map[string]string `protobuf:"bytes,29,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } @@ -626,9 +626,9 @@ func (x *Rule) GetConcurrencyAmount() *ConcurrencyAmount { return nil } -func (x *Rule) GetFallbackConfig() *model.FallbackConfig { +func (x *Rule) GetCustomResponse() *CustomResponse { if x != nil { - return x.FallbackConfig + return x.CustomResponse } return nil } @@ -753,6 +753,54 @@ func (x *ConcurrencyAmount) GetMaxAmount() uint32 { return 0 } +// custom response text when limited +type CustomResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Body string `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"` +} + +func (x *CustomResponse) Reset() { + *x = CustomResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ratelimit_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CustomResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CustomResponse) ProtoMessage() {} + +func (x *CustomResponse) ProtoReflect() protoreflect.Message { + mi := &file_ratelimit_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 CustomResponse.ProtoReflect.Descriptor instead. +func (*CustomResponse) Descriptor() ([]byte, []int) { + return file_ratelimit_proto_rawDescGZIP(), []int{4} +} + +func (x *CustomResponse) GetBody() string { + if x != nil { + return x.Body + } + return "" +} + // 分布式限流服务集群 type RateLimitCluster struct { state protoimpl.MessageState @@ -767,7 +815,7 @@ type RateLimitCluster struct { func (x *RateLimitCluster) Reset() { *x = RateLimitCluster{} if protoimpl.UnsafeEnabled { - mi := &file_ratelimit_proto_msgTypes[4] + mi := &file_ratelimit_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -780,7 +828,7 @@ func (x *RateLimitCluster) String() string { func (*RateLimitCluster) ProtoMessage() {} func (x *RateLimitCluster) ProtoReflect() protoreflect.Message { - mi := &file_ratelimit_proto_msgTypes[4] + mi := &file_ratelimit_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -793,7 +841,7 @@ func (x *RateLimitCluster) ProtoReflect() protoreflect.Message { // Deprecated: Use RateLimitCluster.ProtoReflect.Descriptor instead. func (*RateLimitCluster) Descriptor() ([]byte, []int) { - return file_ratelimit_proto_rawDescGZIP(), []int{4} + return file_ratelimit_proto_rawDescGZIP(), []int{5} } func (x *RateLimitCluster) GetService() *wrapperspb.StringValue { @@ -831,7 +879,7 @@ type Amount struct { func (x *Amount) Reset() { *x = Amount{} if protoimpl.UnsafeEnabled { - mi := &file_ratelimit_proto_msgTypes[5] + mi := &file_ratelimit_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -844,7 +892,7 @@ func (x *Amount) String() string { func (*Amount) ProtoMessage() {} func (x *Amount) ProtoReflect() protoreflect.Message { - mi := &file_ratelimit_proto_msgTypes[5] + mi := &file_ratelimit_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -857,7 +905,7 @@ func (x *Amount) ProtoReflect() protoreflect.Message { // Deprecated: Use Amount.ProtoReflect.Descriptor instead. func (*Amount) Descriptor() ([]byte, []int) { - return file_ratelimit_proto_rawDescGZIP(), []int{5} + return file_ratelimit_proto_rawDescGZIP(), []int{6} } func (x *Amount) GetMaxAmount() *wrapperspb.UInt32Value { @@ -910,7 +958,7 @@ type Report struct { func (x *Report) Reset() { *x = Report{} if protoimpl.UnsafeEnabled { - mi := &file_ratelimit_proto_msgTypes[6] + mi := &file_ratelimit_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -923,7 +971,7 @@ func (x *Report) String() string { func (*Report) ProtoMessage() {} func (x *Report) ProtoReflect() protoreflect.Message { - mi := &file_ratelimit_proto_msgTypes[6] + mi := &file_ratelimit_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -936,7 +984,7 @@ func (x *Report) ProtoReflect() protoreflect.Message { // Deprecated: Use Report.ProtoReflect.Descriptor instead. func (*Report) Descriptor() ([]byte, []int) { - return file_ratelimit_proto_rawDescGZIP(), []int{6} + return file_ratelimit_proto_rawDescGZIP(), []int{7} } func (x *Report) GetInterval() *durationpb.Duration { @@ -965,7 +1013,7 @@ type AmountAdjuster struct { func (x *AmountAdjuster) Reset() { *x = AmountAdjuster{} if protoimpl.UnsafeEnabled { - mi := &file_ratelimit_proto_msgTypes[7] + mi := &file_ratelimit_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -978,7 +1026,7 @@ func (x *AmountAdjuster) String() string { func (*AmountAdjuster) ProtoMessage() {} func (x *AmountAdjuster) ProtoReflect() protoreflect.Message { - mi := &file_ratelimit_proto_msgTypes[7] + mi := &file_ratelimit_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -991,7 +1039,7 @@ func (x *AmountAdjuster) ProtoReflect() protoreflect.Message { // Deprecated: Use AmountAdjuster.ProtoReflect.Descriptor instead. func (*AmountAdjuster) Descriptor() ([]byte, []int) { - return file_ratelimit_proto_rawDescGZIP(), []int{7} + return file_ratelimit_proto_rawDescGZIP(), []int{8} } func (x *AmountAdjuster) GetClimb() *ClimbConfig { @@ -1016,7 +1064,7 @@ type ClimbConfig struct { func (x *ClimbConfig) Reset() { *x = ClimbConfig{} if protoimpl.UnsafeEnabled { - mi := &file_ratelimit_proto_msgTypes[8] + mi := &file_ratelimit_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1029,7 +1077,7 @@ func (x *ClimbConfig) String() string { func (*ClimbConfig) ProtoMessage() {} func (x *ClimbConfig) ProtoReflect() protoreflect.Message { - mi := &file_ratelimit_proto_msgTypes[8] + mi := &file_ratelimit_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1042,7 +1090,7 @@ func (x *ClimbConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ClimbConfig.ProtoReflect.Descriptor instead. func (*ClimbConfig) Descriptor() ([]byte, []int) { - return file_ratelimit_proto_rawDescGZIP(), []int{8} + return file_ratelimit_proto_rawDescGZIP(), []int{9} } func (x *ClimbConfig) GetEnable() *wrapperspb.BoolValue { @@ -1090,7 +1138,7 @@ type ClimbConfig_MetricConfig struct { func (x *ClimbConfig_MetricConfig) Reset() { *x = ClimbConfig_MetricConfig{} if protoimpl.UnsafeEnabled { - mi := &file_ratelimit_proto_msgTypes[12] + mi := &file_ratelimit_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1103,7 +1151,7 @@ func (x *ClimbConfig_MetricConfig) String() string { func (*ClimbConfig_MetricConfig) ProtoMessage() {} func (x *ClimbConfig_MetricConfig) ProtoReflect() protoreflect.Message { - mi := &file_ratelimit_proto_msgTypes[12] + mi := &file_ratelimit_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1116,7 +1164,7 @@ func (x *ClimbConfig_MetricConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ClimbConfig_MetricConfig.ProtoReflect.Descriptor instead. func (*ClimbConfig_MetricConfig) Descriptor() ([]byte, []int) { - return file_ratelimit_proto_rawDescGZIP(), []int{8, 0} + return file_ratelimit_proto_rawDescGZIP(), []int{9, 0} } func (x *ClimbConfig_MetricConfig) GetWindow() *durationpb.Duration { @@ -1153,7 +1201,7 @@ type ClimbConfig_TriggerPolicy struct { func (x *ClimbConfig_TriggerPolicy) Reset() { *x = ClimbConfig_TriggerPolicy{} if protoimpl.UnsafeEnabled { - mi := &file_ratelimit_proto_msgTypes[13] + mi := &file_ratelimit_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1166,7 +1214,7 @@ func (x *ClimbConfig_TriggerPolicy) String() string { func (*ClimbConfig_TriggerPolicy) ProtoMessage() {} func (x *ClimbConfig_TriggerPolicy) ProtoReflect() protoreflect.Message { - mi := &file_ratelimit_proto_msgTypes[13] + mi := &file_ratelimit_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1179,7 +1227,7 @@ func (x *ClimbConfig_TriggerPolicy) ProtoReflect() protoreflect.Message { // Deprecated: Use ClimbConfig_TriggerPolicy.ProtoReflect.Descriptor instead. func (*ClimbConfig_TriggerPolicy) Descriptor() ([]byte, []int) { - return file_ratelimit_proto_rawDescGZIP(), []int{8, 1} + return file_ratelimit_proto_rawDescGZIP(), []int{9, 1} } func (x *ClimbConfig_TriggerPolicy) GetErrorRate() *ClimbConfig_TriggerPolicy_ErrorRate { @@ -1215,7 +1263,7 @@ type ClimbConfig_ClimbThrottling struct { func (x *ClimbConfig_ClimbThrottling) Reset() { *x = ClimbConfig_ClimbThrottling{} if protoimpl.UnsafeEnabled { - mi := &file_ratelimit_proto_msgTypes[14] + mi := &file_ratelimit_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1228,7 +1276,7 @@ func (x *ClimbConfig_ClimbThrottling) String() string { func (*ClimbConfig_ClimbThrottling) ProtoMessage() {} func (x *ClimbConfig_ClimbThrottling) ProtoReflect() protoreflect.Message { - mi := &file_ratelimit_proto_msgTypes[14] + mi := &file_ratelimit_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1241,7 +1289,7 @@ func (x *ClimbConfig_ClimbThrottling) ProtoReflect() protoreflect.Message { // Deprecated: Use ClimbConfig_ClimbThrottling.ProtoReflect.Descriptor instead. func (*ClimbConfig_ClimbThrottling) Descriptor() ([]byte, []int) { - return file_ratelimit_proto_rawDescGZIP(), []int{8, 2} + return file_ratelimit_proto_rawDescGZIP(), []int{9, 2} } func (x *ClimbConfig_ClimbThrottling) GetColdBelowTuneDownRate() *wrapperspb.Int32Value { @@ -1315,7 +1363,7 @@ type ClimbConfig_TriggerPolicy_ErrorRate struct { func (x *ClimbConfig_TriggerPolicy_ErrorRate) Reset() { *x = ClimbConfig_TriggerPolicy_ErrorRate{} if protoimpl.UnsafeEnabled { - mi := &file_ratelimit_proto_msgTypes[15] + mi := &file_ratelimit_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1328,7 +1376,7 @@ func (x *ClimbConfig_TriggerPolicy_ErrorRate) String() string { func (*ClimbConfig_TriggerPolicy_ErrorRate) ProtoMessage() {} func (x *ClimbConfig_TriggerPolicy_ErrorRate) ProtoReflect() protoreflect.Message { - mi := &file_ratelimit_proto_msgTypes[15] + mi := &file_ratelimit_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1341,7 +1389,7 @@ func (x *ClimbConfig_TriggerPolicy_ErrorRate) ProtoReflect() protoreflect.Messag // Deprecated: Use ClimbConfig_TriggerPolicy_ErrorRate.ProtoReflect.Descriptor instead. func (*ClimbConfig_TriggerPolicy_ErrorRate) Descriptor() ([]byte, []int) { - return file_ratelimit_proto_rawDescGZIP(), []int{8, 1, 0} + return file_ratelimit_proto_rawDescGZIP(), []int{9, 1, 0} } func (x *ClimbConfig_TriggerPolicy_ErrorRate) GetEnable() *wrapperspb.BoolValue { @@ -1386,7 +1434,7 @@ type ClimbConfig_TriggerPolicy_SlowRate struct { func (x *ClimbConfig_TriggerPolicy_SlowRate) Reset() { *x = ClimbConfig_TriggerPolicy_SlowRate{} if protoimpl.UnsafeEnabled { - mi := &file_ratelimit_proto_msgTypes[16] + mi := &file_ratelimit_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1399,7 +1447,7 @@ func (x *ClimbConfig_TriggerPolicy_SlowRate) String() string { func (*ClimbConfig_TriggerPolicy_SlowRate) ProtoMessage() {} func (x *ClimbConfig_TriggerPolicy_SlowRate) ProtoReflect() protoreflect.Message { - mi := &file_ratelimit_proto_msgTypes[16] + mi := &file_ratelimit_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1412,7 +1460,7 @@ func (x *ClimbConfig_TriggerPolicy_SlowRate) ProtoReflect() protoreflect.Message // Deprecated: Use ClimbConfig_TriggerPolicy_SlowRate.ProtoReflect.Descriptor instead. func (*ClimbConfig_TriggerPolicy_SlowRate) Descriptor() ([]byte, []int) { - return file_ratelimit_proto_rawDescGZIP(), []int{8, 1, 1} + return file_ratelimit_proto_rawDescGZIP(), []int{9, 1, 1} } func (x *ClimbConfig_TriggerPolicy_SlowRate) GetEnable() *wrapperspb.BoolValue { @@ -1450,7 +1498,7 @@ type ClimbConfig_TriggerPolicy_ErrorRate_SpecialConfig struct { func (x *ClimbConfig_TriggerPolicy_ErrorRate_SpecialConfig) Reset() { *x = ClimbConfig_TriggerPolicy_ErrorRate_SpecialConfig{} if protoimpl.UnsafeEnabled { - mi := &file_ratelimit_proto_msgTypes[17] + mi := &file_ratelimit_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1463,7 +1511,7 @@ func (x *ClimbConfig_TriggerPolicy_ErrorRate_SpecialConfig) String() string { func (*ClimbConfig_TriggerPolicy_ErrorRate_SpecialConfig) ProtoMessage() {} func (x *ClimbConfig_TriggerPolicy_ErrorRate_SpecialConfig) ProtoReflect() protoreflect.Message { - mi := &file_ratelimit_proto_msgTypes[17] + mi := &file_ratelimit_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1476,7 +1524,7 @@ func (x *ClimbConfig_TriggerPolicy_ErrorRate_SpecialConfig) ProtoReflect() proto // Deprecated: Use ClimbConfig_TriggerPolicy_ErrorRate_SpecialConfig.ProtoReflect.Descriptor instead. func (*ClimbConfig_TriggerPolicy_ErrorRate_SpecialConfig) Descriptor() ([]byte, []int) { - return file_ratelimit_proto_rawDescGZIP(), []int{8, 1, 0, 0} + return file_ratelimit_proto_rawDescGZIP(), []int{9, 1, 0, 0} } func (x *ClimbConfig_TriggerPolicy_ErrorRate_SpecialConfig) GetType() *wrapperspb.StringValue { @@ -1604,10 +1652,10 @@ var file_ratelimit_proto_rawDesc = []byte{ 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x3b, 0x0a, 0x0e, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x46, - 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0f, 0x66, - 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, + 0x74, 0x12, 0x3b, 0x0a, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0f, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, @@ -1653,174 +1701,176 @@ var file_ratelimit_proto_rawDesc = []byte{ 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x86, 0x01, 0x0a, 0x10, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x22, 0x24, 0x0a, 0x0e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x86, 0x01, 0x0a, 0x10, 0x52, 0x61, 0x74, 0x65, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x07, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3a, 0x0a, - 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0xbd, 0x02, 0x0a, 0x06, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, + 0xbd, 0x02, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x6d, 0x61, + 0x78, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6d, 0x61, 0x78, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x83, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x01, 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, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x12, 0x42, 0x0a, 0x0d, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x63, 0x65, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, + 0x72, 0x63, 0x65, 0x6e, 0x74, 0x22, 0x37, 0x0a, 0x0e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x64, 0x6a, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x05, 0x63, 0x6c, 0x69, 0x6d, 0x62, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x6d, + 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x63, 0x6c, 0x69, 0x6d, 0x62, 0x22, 0xd0, + 0x0e, 0x0a, 0x0b, 0x43, 0x6c, 0x69, 0x6d, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, + 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x6d, 0x62, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x35, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, + 0x69, 0x6d, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, + 0x3f, 0x0a, 0x0a, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x6d, 0x62, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6c, 0x69, 0x6d, 0x62, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, + 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x69, 0x6e, 0x67, + 0x1a, 0xc0, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x31, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x01, 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, + 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x3a, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x3f, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 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, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x3a, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, - 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, - 0x09, 0x6d, 0x69, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, - 0x6d, 0x69, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x06, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x18, 0x01, 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, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x42, 0x0a, 0x0d, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x41, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 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, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x1a, 0xa7, 0x06, 0x0a, 0x0d, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x45, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, + 0x69, 0x6d, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, + 0x65, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x08, + 0x73, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x6d, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, + 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x53, 0x6c, + 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x52, 0x08, 0x73, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, + 0x1a, 0xdf, 0x03, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x32, + 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x54, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x0d, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x22, - 0x37, 0x0a, 0x0e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x12, 0x25, 0x0a, 0x05, 0x63, 0x6c, 0x69, 0x6d, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x6d, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x05, 0x63, 0x6c, 0x69, 0x6d, 0x62, 0x22, 0xd0, 0x0e, 0x0a, 0x0b, 0x43, 0x6c, 0x69, - 0x6d, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x34, 0x0a, 0x06, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x6d, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x12, 0x35, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x6d, 0x62, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3f, 0x0a, 0x0a, 0x74, 0x68, 0x72, - 0x6f, 0x74, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x6d, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, - 0x6c, 0x69, 0x6d, 0x62, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x0a, - 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x1a, 0xc0, 0x01, 0x0a, 0x0c, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x31, 0x0a, 0x06, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x01, 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, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x3a, - 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0e, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x52, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x52, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, + 0x61, 0x74, 0x65, 0x12, 0x51, 0x0a, 0x08, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x6d, 0x62, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x2e, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x08, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x61, 0x6c, 0x73, 0x1a, 0xb9, 0x01, 0x0a, 0x0d, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x52, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, + 0x74, 0x65, 0x1a, 0xa8, 0x01, 0x0a, 0x08, 0x53, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x12, + 0x32, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x6d, 0x61, 0x78, 0x52, 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, 0x0e, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x1a, 0xa7, 0x06, - 0x0a, 0x0d, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, - 0x45, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x6d, 0x62, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x52, 0x09, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x08, 0x73, 0x6c, 0x6f, 0x77, 0x52, 0x61, - 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, - 0x69, 0x6d, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x53, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, - 0x52, 0x08, 0x73, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x1a, 0xdf, 0x03, 0x0a, 0x09, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x54, 0x0a, 0x16, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x51, 0x0a, - 0x08, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x35, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x6d, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x08, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x73, - 0x1a, 0xb9, 0x01, 0x0a, 0x0d, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, - 0x73, 0x12, 0x39, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x1a, 0xa8, 0x01, 0x0a, - 0x08, 0x53, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2f, 0x0a, - 0x05, 0x6d, 0x61, 0x78, 0x52, 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, 0x6d, 0x61, 0x78, 0x52, 0x74, 0x12, 0x37, - 0x0a, 0x08, 0x73, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x6d, + 0x61, 0x78, 0x52, 0x74, 0x12, 0x37, 0x0a, 0x08, 0x73, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x08, 0x73, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x1a, 0xf1, 0x04, + 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x6d, 0x62, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x69, 0x6e, + 0x67, 0x12, 0x51, 0x0a, 0x15, 0x63, 0x6f, 0x6c, 0x64, 0x42, 0x65, 0x6c, 0x6f, 0x77, 0x54, 0x75, + 0x6e, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x73, - 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x1a, 0xf1, 0x04, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x6d, - 0x62, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x51, 0x0a, 0x15, 0x63, + 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x63, 0x6f, 0x6c, 0x64, 0x42, 0x65, 0x6c, 0x6f, 0x77, 0x54, 0x75, 0x6e, 0x65, 0x44, 0x6f, 0x77, 0x6e, - 0x52, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, - 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x63, 0x6f, 0x6c, 0x64, 0x42, 0x65, 0x6c, - 0x6f, 0x77, 0x54, 0x75, 0x6e, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x4d, - 0x0a, 0x13, 0x63, 0x6f, 0x6c, 0x64, 0x42, 0x65, 0x6c, 0x6f, 0x77, 0x54, 0x75, 0x6e, 0x65, 0x55, - 0x70, 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, - 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x63, 0x6f, 0x6c, 0x64, 0x42, 0x65, - 0x6c, 0x6f, 0x77, 0x54, 0x75, 0x6e, 0x65, 0x55, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, 0x51, 0x0a, + 0x52, 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x13, 0x63, 0x6f, 0x6c, 0x64, 0x42, 0x65, 0x6c, 0x6f, + 0x77, 0x54, 0x75, 0x6e, 0x65, 0x55, 0x70, 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, + 0x63, 0x6f, 0x6c, 0x64, 0x42, 0x65, 0x6c, 0x6f, 0x77, 0x54, 0x75, 0x6e, 0x65, 0x55, 0x70, 0x52, + 0x61, 0x74, 0x65, 0x12, 0x51, 0x0a, 0x15, 0x63, 0x6f, 0x6c, 0x64, 0x41, 0x62, 0x6f, 0x76, 0x65, + 0x54, 0x75, 0x6e, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x63, 0x6f, 0x6c, 0x64, 0x41, 0x62, 0x6f, 0x76, 0x65, 0x54, 0x75, 0x6e, 0x65, 0x44, 0x6f, - 0x77, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, - 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x63, 0x6f, 0x6c, 0x64, 0x41, - 0x62, 0x6f, 0x76, 0x65, 0x54, 0x75, 0x6e, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x61, 0x74, 0x65, - 0x12, 0x4d, 0x0a, 0x13, 0x63, 0x6f, 0x6c, 0x64, 0x41, 0x62, 0x6f, 0x76, 0x65, 0x54, 0x75, 0x6e, - 0x65, 0x55, 0x70, 0x52, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x63, 0x6f, 0x6c, 0x64, - 0x41, 0x62, 0x6f, 0x76, 0x65, 0x54, 0x75, 0x6e, 0x65, 0x55, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, - 0x53, 0x0a, 0x16, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, - 0x64, 0x54, 0x6f, 0x54, 0x75, 0x6e, 0x65, 0x55, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x6f, 0x54, 0x75, - 0x6e, 0x65, 0x55, 0x70, 0x12, 0x3f, 0x0a, 0x0d, 0x6a, 0x75, 0x64, 0x67, 0x65, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x0d, 0x6a, 0x75, 0x64, 0x67, 0x65, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0c, 0x74, 0x75, 0x6e, 0x65, 0x55, 0x70, 0x50, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, - 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x74, 0x75, 0x6e, 0x65, 0x55, 0x70, - 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x43, 0x0a, 0x0e, 0x74, 0x75, 0x6e, 0x65, 0x44, 0x6f, - 0x77, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x74, 0x75, 0x6e, - 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x8f, 0x01, 0x0a, 0x37, - 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x6f, 0x6c, 0x61, - 0x72, 0x69, 0x73, 0x2e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, - 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x42, 0x0e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x5a, 0x44, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6c, 0x61, 0x72, 0x69, 0x73, 0x6d, 0x65, 0x73, 0x68, 0x2f, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x74, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x77, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x13, 0x63, 0x6f, 0x6c, 0x64, 0x41, 0x62, + 0x6f, 0x76, 0x65, 0x54, 0x75, 0x6e, 0x65, 0x55, 0x70, 0x52, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x13, 0x63, 0x6f, 0x6c, 0x64, 0x41, 0x62, 0x6f, 0x76, 0x65, 0x54, 0x75, 0x6e, 0x65, 0x55, + 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, 0x53, 0x0a, 0x16, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x54, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x6f, 0x54, 0x75, 0x6e, 0x65, 0x55, 0x70, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x16, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x54, 0x6f, 0x54, 0x75, 0x6e, 0x65, 0x55, 0x70, 0x12, 0x3f, 0x0a, 0x0d, 0x6a, 0x75, + 0x64, 0x67, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x0d, 0x6a, 0x75, + 0x64, 0x67, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0c, 0x74, + 0x75, 0x6e, 0x65, 0x55, 0x70, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, + 0x74, 0x75, 0x6e, 0x65, 0x55, 0x70, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x43, 0x0a, 0x0e, + 0x74, 0x75, 0x6e, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0e, 0x74, 0x75, 0x6e, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x42, 0x8f, 0x01, 0x0a, 0x37, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, + 0x74, 0x2e, 0x70, 0x6f, 0x6c, 0x61, 0x72, 0x69, 0x73, 0x2e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x74, + 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x42, 0x0e, 0x52, + 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x5a, 0x44, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6c, 0x61, 0x72, 0x69, + 0x73, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1836,7 +1886,7 @@ func file_ratelimit_proto_rawDescGZIP() []byte { } var file_ratelimit_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_ratelimit_proto_msgTypes = make([]protoimpl.MessageInfo, 18) +var file_ratelimit_proto_msgTypes = make([]protoimpl.MessageInfo, 19) var file_ratelimit_proto_goTypes = []interface{}{ (Rule_Resource)(0), // 0: v1.Rule.Resource (Rule_Type)(0), // 1: v1.Rule.Type @@ -1847,84 +1897,84 @@ var file_ratelimit_proto_goTypes = []interface{}{ (*Rule)(nil), // 6: v1.Rule (*MatchArgument)(nil), // 7: v1.MatchArgument (*ConcurrencyAmount)(nil), // 8: v1.ConcurrencyAmount - (*RateLimitCluster)(nil), // 9: v1.RateLimitCluster - (*Amount)(nil), // 10: v1.Amount - (*Report)(nil), // 11: v1.Report - (*AmountAdjuster)(nil), // 12: v1.AmountAdjuster - (*ClimbConfig)(nil), // 13: v1.ClimbConfig - nil, // 14: v1.Rule.SubsetEntry - nil, // 15: v1.Rule.LabelsEntry - nil, // 16: v1.Rule.MetadataEntry - (*ClimbConfig_MetricConfig)(nil), // 17: v1.ClimbConfig.MetricConfig - (*ClimbConfig_TriggerPolicy)(nil), // 18: v1.ClimbConfig.TriggerPolicy - (*ClimbConfig_ClimbThrottling)(nil), // 19: v1.ClimbConfig.ClimbThrottling - (*ClimbConfig_TriggerPolicy_ErrorRate)(nil), // 20: v1.ClimbConfig.TriggerPolicy.ErrorRate - (*ClimbConfig_TriggerPolicy_SlowRate)(nil), // 21: v1.ClimbConfig.TriggerPolicy.SlowRate - (*ClimbConfig_TriggerPolicy_ErrorRate_SpecialConfig)(nil), // 22: v1.ClimbConfig.TriggerPolicy.ErrorRate.SpecialConfig - (*wrapperspb.StringValue)(nil), // 23: google.protobuf.StringValue - (*wrapperspb.UInt32Value)(nil), // 24: google.protobuf.UInt32Value - (*wrapperspb.BoolValue)(nil), // 25: google.protobuf.BoolValue - (*model.MatchString)(nil), // 26: v1.MatchString - (*model.FallbackConfig)(nil), // 27: v1.FallbackConfig + (*CustomResponse)(nil), // 9: v1.CustomResponse + (*RateLimitCluster)(nil), // 10: v1.RateLimitCluster + (*Amount)(nil), // 11: v1.Amount + (*Report)(nil), // 12: v1.Report + (*AmountAdjuster)(nil), // 13: v1.AmountAdjuster + (*ClimbConfig)(nil), // 14: v1.ClimbConfig + nil, // 15: v1.Rule.SubsetEntry + nil, // 16: v1.Rule.LabelsEntry + nil, // 17: v1.Rule.MetadataEntry + (*ClimbConfig_MetricConfig)(nil), // 18: v1.ClimbConfig.MetricConfig + (*ClimbConfig_TriggerPolicy)(nil), // 19: v1.ClimbConfig.TriggerPolicy + (*ClimbConfig_ClimbThrottling)(nil), // 20: v1.ClimbConfig.ClimbThrottling + (*ClimbConfig_TriggerPolicy_ErrorRate)(nil), // 21: v1.ClimbConfig.TriggerPolicy.ErrorRate + (*ClimbConfig_TriggerPolicy_SlowRate)(nil), // 22: v1.ClimbConfig.TriggerPolicy.SlowRate + (*ClimbConfig_TriggerPolicy_ErrorRate_SpecialConfig)(nil), // 23: v1.ClimbConfig.TriggerPolicy.ErrorRate.SpecialConfig + (*wrapperspb.StringValue)(nil), // 24: google.protobuf.StringValue + (*wrapperspb.UInt32Value)(nil), // 25: google.protobuf.UInt32Value + (*wrapperspb.BoolValue)(nil), // 26: google.protobuf.BoolValue + (*model.MatchString)(nil), // 27: v1.MatchString (*durationpb.Duration)(nil), // 28: google.protobuf.Duration (*wrapperspb.Int32Value)(nil), // 29: google.protobuf.Int32Value (*wrapperspb.Int64Value)(nil), // 30: google.protobuf.Int64Value } var file_ratelimit_proto_depIdxs = []int32{ 6, // 0: v1.RateLimit.rules:type_name -> v1.Rule - 23, // 1: v1.RateLimit.revision:type_name -> google.protobuf.StringValue - 23, // 2: v1.Rule.id:type_name -> google.protobuf.StringValue - 23, // 3: v1.Rule.service:type_name -> google.protobuf.StringValue - 23, // 4: v1.Rule.namespace:type_name -> google.protobuf.StringValue - 14, // 5: v1.Rule.subset:type_name -> v1.Rule.SubsetEntry - 24, // 6: v1.Rule.priority:type_name -> google.protobuf.UInt32Value + 24, // 1: v1.RateLimit.revision:type_name -> google.protobuf.StringValue + 24, // 2: v1.Rule.id:type_name -> google.protobuf.StringValue + 24, // 3: v1.Rule.service:type_name -> google.protobuf.StringValue + 24, // 4: v1.Rule.namespace:type_name -> google.protobuf.StringValue + 15, // 5: v1.Rule.subset:type_name -> v1.Rule.SubsetEntry + 25, // 6: v1.Rule.priority:type_name -> google.protobuf.UInt32Value 0, // 7: v1.Rule.resource:type_name -> v1.Rule.Resource 1, // 8: v1.Rule.type:type_name -> v1.Rule.Type - 15, // 9: v1.Rule.labels:type_name -> v1.Rule.LabelsEntry - 10, // 10: v1.Rule.amounts:type_name -> v1.Amount - 23, // 11: v1.Rule.action:type_name -> google.protobuf.StringValue - 25, // 12: v1.Rule.disable:type_name -> google.protobuf.BoolValue - 11, // 13: v1.Rule.report:type_name -> v1.Report - 23, // 14: v1.Rule.ctime:type_name -> google.protobuf.StringValue - 23, // 15: v1.Rule.mtime:type_name -> google.protobuf.StringValue - 23, // 16: v1.Rule.revision:type_name -> google.protobuf.StringValue - 23, // 17: v1.Rule.service_token:type_name -> google.protobuf.StringValue - 12, // 18: v1.Rule.adjuster:type_name -> v1.AmountAdjuster - 25, // 19: v1.Rule.regex_combine:type_name -> google.protobuf.BoolValue + 16, // 9: v1.Rule.labels:type_name -> v1.Rule.LabelsEntry + 11, // 10: v1.Rule.amounts:type_name -> v1.Amount + 24, // 11: v1.Rule.action:type_name -> google.protobuf.StringValue + 26, // 12: v1.Rule.disable:type_name -> google.protobuf.BoolValue + 12, // 13: v1.Rule.report:type_name -> v1.Report + 24, // 14: v1.Rule.ctime:type_name -> google.protobuf.StringValue + 24, // 15: v1.Rule.mtime:type_name -> google.protobuf.StringValue + 24, // 16: v1.Rule.revision:type_name -> google.protobuf.StringValue + 24, // 17: v1.Rule.service_token:type_name -> google.protobuf.StringValue + 13, // 18: v1.Rule.adjuster:type_name -> v1.AmountAdjuster + 26, // 19: v1.Rule.regex_combine:type_name -> google.protobuf.BoolValue 2, // 20: v1.Rule.amount_mode:type_name -> v1.Rule.AmountMode 3, // 21: v1.Rule.failover:type_name -> v1.Rule.FailoverType - 9, // 22: v1.Rule.cluster:type_name -> v1.RateLimitCluster - 26, // 23: v1.Rule.method:type_name -> v1.MatchString + 10, // 22: v1.Rule.cluster:type_name -> v1.RateLimitCluster + 27, // 23: v1.Rule.method:type_name -> v1.MatchString 7, // 24: v1.Rule.arguments:type_name -> v1.MatchArgument - 23, // 25: v1.Rule.name:type_name -> google.protobuf.StringValue - 23, // 26: v1.Rule.etime:type_name -> google.protobuf.StringValue - 24, // 27: v1.Rule.max_queue_delay:type_name -> google.protobuf.UInt32Value + 24, // 25: v1.Rule.name:type_name -> google.protobuf.StringValue + 24, // 26: v1.Rule.etime:type_name -> google.protobuf.StringValue + 25, // 27: v1.Rule.max_queue_delay:type_name -> google.protobuf.UInt32Value 8, // 28: v1.Rule.concurrencyAmount:type_name -> v1.ConcurrencyAmount - 27, // 29: v1.Rule.fallbackConfig:type_name -> v1.FallbackConfig - 16, // 30: v1.Rule.metadata:type_name -> v1.Rule.MetadataEntry + 9, // 29: v1.Rule.customResponse:type_name -> v1.CustomResponse + 17, // 30: v1.Rule.metadata:type_name -> v1.Rule.MetadataEntry 4, // 31: v1.MatchArgument.type:type_name -> v1.MatchArgument.Type - 26, // 32: v1.MatchArgument.value:type_name -> v1.MatchString - 23, // 33: v1.RateLimitCluster.service:type_name -> google.protobuf.StringValue - 23, // 34: v1.RateLimitCluster.namespace:type_name -> google.protobuf.StringValue - 24, // 35: v1.Amount.maxAmount:type_name -> google.protobuf.UInt32Value + 27, // 32: v1.MatchArgument.value:type_name -> v1.MatchString + 24, // 33: v1.RateLimitCluster.service:type_name -> google.protobuf.StringValue + 24, // 34: v1.RateLimitCluster.namespace:type_name -> google.protobuf.StringValue + 25, // 35: v1.Amount.maxAmount:type_name -> google.protobuf.UInt32Value 28, // 36: v1.Amount.validDuration:type_name -> google.protobuf.Duration - 24, // 37: v1.Amount.precision:type_name -> google.protobuf.UInt32Value - 24, // 38: v1.Amount.startAmount:type_name -> google.protobuf.UInt32Value - 24, // 39: v1.Amount.minAmount:type_name -> google.protobuf.UInt32Value + 25, // 37: v1.Amount.precision:type_name -> google.protobuf.UInt32Value + 25, // 38: v1.Amount.startAmount:type_name -> google.protobuf.UInt32Value + 25, // 39: v1.Amount.minAmount:type_name -> google.protobuf.UInt32Value 28, // 40: v1.Report.interval:type_name -> google.protobuf.Duration - 24, // 41: v1.Report.amountPercent:type_name -> google.protobuf.UInt32Value - 13, // 42: v1.AmountAdjuster.climb:type_name -> v1.ClimbConfig - 25, // 43: v1.ClimbConfig.enable:type_name -> google.protobuf.BoolValue - 17, // 44: v1.ClimbConfig.metric:type_name -> v1.ClimbConfig.MetricConfig - 18, // 45: v1.ClimbConfig.policy:type_name -> v1.ClimbConfig.TriggerPolicy - 19, // 46: v1.ClimbConfig.throttling:type_name -> v1.ClimbConfig.ClimbThrottling - 26, // 47: v1.Rule.SubsetEntry.value:type_name -> v1.MatchString - 26, // 48: v1.Rule.LabelsEntry.value:type_name -> v1.MatchString + 25, // 41: v1.Report.amountPercent:type_name -> google.protobuf.UInt32Value + 14, // 42: v1.AmountAdjuster.climb:type_name -> v1.ClimbConfig + 26, // 43: v1.ClimbConfig.enable:type_name -> google.protobuf.BoolValue + 18, // 44: v1.ClimbConfig.metric:type_name -> v1.ClimbConfig.MetricConfig + 19, // 45: v1.ClimbConfig.policy:type_name -> v1.ClimbConfig.TriggerPolicy + 20, // 46: v1.ClimbConfig.throttling:type_name -> v1.ClimbConfig.ClimbThrottling + 27, // 47: v1.Rule.SubsetEntry.value:type_name -> v1.MatchString + 27, // 48: v1.Rule.LabelsEntry.value:type_name -> v1.MatchString 28, // 49: v1.ClimbConfig.MetricConfig.window:type_name -> google.protobuf.Duration - 24, // 50: v1.ClimbConfig.MetricConfig.precision:type_name -> google.protobuf.UInt32Value + 25, // 50: v1.ClimbConfig.MetricConfig.precision:type_name -> google.protobuf.UInt32Value 28, // 51: v1.ClimbConfig.MetricConfig.reportInterval:type_name -> google.protobuf.Duration - 20, // 52: v1.ClimbConfig.TriggerPolicy.errorRate:type_name -> v1.ClimbConfig.TriggerPolicy.ErrorRate - 21, // 53: v1.ClimbConfig.TriggerPolicy.slowRate:type_name -> v1.ClimbConfig.TriggerPolicy.SlowRate + 21, // 52: v1.ClimbConfig.TriggerPolicy.errorRate:type_name -> v1.ClimbConfig.TriggerPolicy.ErrorRate + 22, // 53: v1.ClimbConfig.TriggerPolicy.slowRate:type_name -> v1.ClimbConfig.TriggerPolicy.SlowRate 29, // 54: v1.ClimbConfig.ClimbThrottling.coldBelowTuneDownRate:type_name -> google.protobuf.Int32Value 29, // 55: v1.ClimbConfig.ClimbThrottling.coldBelowTuneUpRate:type_name -> google.protobuf.Int32Value 29, // 56: v1.ClimbConfig.ClimbThrottling.coldAboveTuneDownRate:type_name -> google.protobuf.Int32Value @@ -1933,14 +1983,14 @@ var file_ratelimit_proto_depIdxs = []int32{ 28, // 59: v1.ClimbConfig.ClimbThrottling.judgeDuration:type_name -> google.protobuf.Duration 29, // 60: v1.ClimbConfig.ClimbThrottling.tuneUpPeriod:type_name -> google.protobuf.Int32Value 29, // 61: v1.ClimbConfig.ClimbThrottling.tuneDownPeriod:type_name -> google.protobuf.Int32Value - 25, // 62: v1.ClimbConfig.TriggerPolicy.ErrorRate.enable:type_name -> google.protobuf.BoolValue - 24, // 63: v1.ClimbConfig.TriggerPolicy.ErrorRate.requestVolumeThreshold:type_name -> google.protobuf.UInt32Value + 26, // 62: v1.ClimbConfig.TriggerPolicy.ErrorRate.enable:type_name -> google.protobuf.BoolValue + 25, // 63: v1.ClimbConfig.TriggerPolicy.ErrorRate.requestVolumeThreshold:type_name -> google.protobuf.UInt32Value 29, // 64: v1.ClimbConfig.TriggerPolicy.ErrorRate.errorRate:type_name -> google.protobuf.Int32Value - 22, // 65: v1.ClimbConfig.TriggerPolicy.ErrorRate.specials:type_name -> v1.ClimbConfig.TriggerPolicy.ErrorRate.SpecialConfig - 25, // 66: v1.ClimbConfig.TriggerPolicy.SlowRate.enable:type_name -> google.protobuf.BoolValue + 23, // 65: v1.ClimbConfig.TriggerPolicy.ErrorRate.specials:type_name -> v1.ClimbConfig.TriggerPolicy.ErrorRate.SpecialConfig + 26, // 66: v1.ClimbConfig.TriggerPolicy.SlowRate.enable:type_name -> google.protobuf.BoolValue 28, // 67: v1.ClimbConfig.TriggerPolicy.SlowRate.maxRt:type_name -> google.protobuf.Duration 29, // 68: v1.ClimbConfig.TriggerPolicy.SlowRate.slowRate:type_name -> google.protobuf.Int32Value - 23, // 69: v1.ClimbConfig.TriggerPolicy.ErrorRate.SpecialConfig.type:type_name -> google.protobuf.StringValue + 24, // 69: v1.ClimbConfig.TriggerPolicy.ErrorRate.SpecialConfig.type:type_name -> google.protobuf.StringValue 30, // 70: v1.ClimbConfig.TriggerPolicy.ErrorRate.SpecialConfig.errorCodes:type_name -> google.protobuf.Int64Value 29, // 71: v1.ClimbConfig.TriggerPolicy.ErrorRate.SpecialConfig.errorRate:type_name -> google.protobuf.Int32Value 72, // [72:72] is the sub-list for method output_type @@ -2005,7 +2055,7 @@ func file_ratelimit_proto_init() { } } file_ratelimit_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RateLimitCluster); i { + switch v := v.(*CustomResponse); i { case 0: return &v.state case 1: @@ -2017,7 +2067,7 @@ func file_ratelimit_proto_init() { } } file_ratelimit_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Amount); i { + switch v := v.(*RateLimitCluster); i { case 0: return &v.state case 1: @@ -2029,7 +2079,7 @@ func file_ratelimit_proto_init() { } } file_ratelimit_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Report); i { + switch v := v.(*Amount); i { case 0: return &v.state case 1: @@ -2041,7 +2091,7 @@ func file_ratelimit_proto_init() { } } file_ratelimit_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AmountAdjuster); i { + switch v := v.(*Report); i { case 0: return &v.state case 1: @@ -2053,6 +2103,18 @@ func file_ratelimit_proto_init() { } } file_ratelimit_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AmountAdjuster); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ratelimit_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClimbConfig); i { case 0: return &v.state @@ -2064,7 +2126,7 @@ func file_ratelimit_proto_init() { return nil } } - file_ratelimit_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_ratelimit_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClimbConfig_MetricConfig); i { case 0: return &v.state @@ -2076,7 +2138,7 @@ func file_ratelimit_proto_init() { return nil } } - file_ratelimit_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_ratelimit_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClimbConfig_TriggerPolicy); i { case 0: return &v.state @@ -2088,7 +2150,7 @@ func file_ratelimit_proto_init() { return nil } } - file_ratelimit_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_ratelimit_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClimbConfig_ClimbThrottling); i { case 0: return &v.state @@ -2100,7 +2162,7 @@ func file_ratelimit_proto_init() { return nil } } - file_ratelimit_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_ratelimit_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClimbConfig_TriggerPolicy_ErrorRate); i { case 0: return &v.state @@ -2112,7 +2174,7 @@ func file_ratelimit_proto_init() { return nil } } - file_ratelimit_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_ratelimit_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClimbConfig_TriggerPolicy_SlowRate); i { case 0: return &v.state @@ -2124,7 +2186,7 @@ func file_ratelimit_proto_init() { return nil } } - file_ratelimit_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_ratelimit_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClimbConfig_TriggerPolicy_ErrorRate_SpecialConfig); i { case 0: return &v.state @@ -2143,7 +2205,7 @@ func file_ratelimit_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_ratelimit_proto_rawDesc, NumEnums: 5, - NumMessages: 18, + NumMessages: 19, NumExtensions: 0, NumServices: 0, },