From 2ab9a1d68edf39bbd634f700d2667e9f895bcd8b Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Fri, 1 Oct 2021 16:25:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=87=AA=E5=8A=A8=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2=E5=9B=BE=E5=83=8F=E6=96=87=E4=BB=B6=E4=B8=BAWebP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/rpc/pb/service_http_web.pb.go | 794 +++++++++++--------- pkg/rpc/protos/service_http_web.proto | 9 + pkg/serverconfigs/http_web_config.go | 21 +- pkg/serverconfigs/image_webp_config.go | 140 ++++ pkg/serverconfigs/image_webp_config_test.go | 21 + 5 files changed, 640 insertions(+), 345 deletions(-) create mode 100644 pkg/serverconfigs/image_webp_config.go create mode 100644 pkg/serverconfigs/image_webp_config_test.go diff --git a/pkg/rpc/pb/service_http_web.pb.go b/pkg/rpc/pb/service_http_web.pb.go index 2fce00d..6291ebb 100644 --- a/pkg/rpc/pb/service_http_web.pb.go +++ b/pkg/rpc/pb/service_http_web.pb.go @@ -426,6 +426,62 @@ func (x *UpdateHTTPWebCompressionRequest) GetCompressionJSON() []byte { return nil } +// 更改WebP配置 +type UpdateHTTPWebWebPRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WebId int64 `protobuf:"varint,1,opt,name=webId,proto3" json:"webId,omitempty"` + WebpJSON []byte `protobuf:"bytes,2,opt,name=webpJSON,proto3" json:"webpJSON,omitempty"` +} + +func (x *UpdateHTTPWebWebPRequest) Reset() { + *x = UpdateHTTPWebWebPRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_http_web_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateHTTPWebWebPRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateHTTPWebWebPRequest) ProtoMessage() {} + +func (x *UpdateHTTPWebWebPRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_http_web_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 UpdateHTTPWebWebPRequest.ProtoReflect.Descriptor instead. +func (*UpdateHTTPWebWebPRequest) Descriptor() ([]byte, []int) { + return file_service_http_web_proto_rawDescGZIP(), []int{8} +} + +func (x *UpdateHTTPWebWebPRequest) GetWebId() int64 { + if x != nil { + return x.WebId + } + return 0 +} + +func (x *UpdateHTTPWebWebPRequest) GetWebpJSON() []byte { + if x != nil { + return x.WebpJSON + } + return nil +} + // 更改字符集配置 type UpdateHTTPWebCharsetRequest struct { state protoimpl.MessageState @@ -439,7 +495,7 @@ type UpdateHTTPWebCharsetRequest struct { func (x *UpdateHTTPWebCharsetRequest) Reset() { *x = UpdateHTTPWebCharsetRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[8] + mi := &file_service_http_web_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -452,7 +508,7 @@ func (x *UpdateHTTPWebCharsetRequest) String() string { func (*UpdateHTTPWebCharsetRequest) ProtoMessage() {} func (x *UpdateHTTPWebCharsetRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[8] + mi := &file_service_http_web_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -465,7 +521,7 @@ func (x *UpdateHTTPWebCharsetRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateHTTPWebCharsetRequest.ProtoReflect.Descriptor instead. func (*UpdateHTTPWebCharsetRequest) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{8} + return file_service_http_web_proto_rawDescGZIP(), []int{9} } func (x *UpdateHTTPWebCharsetRequest) GetWebId() int64 { @@ -495,7 +551,7 @@ type UpdateHTTPWebRequestHeaderRequest struct { func (x *UpdateHTTPWebRequestHeaderRequest) Reset() { *x = UpdateHTTPWebRequestHeaderRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[9] + mi := &file_service_http_web_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -508,7 +564,7 @@ func (x *UpdateHTTPWebRequestHeaderRequest) String() string { func (*UpdateHTTPWebRequestHeaderRequest) ProtoMessage() {} func (x *UpdateHTTPWebRequestHeaderRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[9] + mi := &file_service_http_web_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -521,7 +577,7 @@ func (x *UpdateHTTPWebRequestHeaderRequest) ProtoReflect() protoreflect.Message // Deprecated: Use UpdateHTTPWebRequestHeaderRequest.ProtoReflect.Descriptor instead. func (*UpdateHTTPWebRequestHeaderRequest) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{9} + return file_service_http_web_proto_rawDescGZIP(), []int{10} } func (x *UpdateHTTPWebRequestHeaderRequest) GetWebId() int64 { @@ -551,7 +607,7 @@ type UpdateHTTPWebResponseHeaderRequest struct { func (x *UpdateHTTPWebResponseHeaderRequest) Reset() { *x = UpdateHTTPWebResponseHeaderRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[10] + mi := &file_service_http_web_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -564,7 +620,7 @@ func (x *UpdateHTTPWebResponseHeaderRequest) String() string { func (*UpdateHTTPWebResponseHeaderRequest) ProtoMessage() {} func (x *UpdateHTTPWebResponseHeaderRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[10] + mi := &file_service_http_web_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -577,7 +633,7 @@ func (x *UpdateHTTPWebResponseHeaderRequest) ProtoReflect() protoreflect.Message // Deprecated: Use UpdateHTTPWebResponseHeaderRequest.ProtoReflect.Descriptor instead. func (*UpdateHTTPWebResponseHeaderRequest) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{10} + return file_service_http_web_proto_rawDescGZIP(), []int{11} } func (x *UpdateHTTPWebResponseHeaderRequest) GetWebId() int64 { @@ -607,7 +663,7 @@ type UpdateHTTPWebShutdownRequest struct { func (x *UpdateHTTPWebShutdownRequest) Reset() { *x = UpdateHTTPWebShutdownRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[11] + mi := &file_service_http_web_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -620,7 +676,7 @@ func (x *UpdateHTTPWebShutdownRequest) String() string { func (*UpdateHTTPWebShutdownRequest) ProtoMessage() {} func (x *UpdateHTTPWebShutdownRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[11] + mi := &file_service_http_web_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -633,7 +689,7 @@ func (x *UpdateHTTPWebShutdownRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateHTTPWebShutdownRequest.ProtoReflect.Descriptor instead. func (*UpdateHTTPWebShutdownRequest) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{11} + return file_service_http_web_proto_rawDescGZIP(), []int{12} } func (x *UpdateHTTPWebShutdownRequest) GetWebId() int64 { @@ -663,7 +719,7 @@ type UpdateHTTPWebPagesRequest struct { func (x *UpdateHTTPWebPagesRequest) Reset() { *x = UpdateHTTPWebPagesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[12] + mi := &file_service_http_web_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -676,7 +732,7 @@ func (x *UpdateHTTPWebPagesRequest) String() string { func (*UpdateHTTPWebPagesRequest) ProtoMessage() {} func (x *UpdateHTTPWebPagesRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[12] + mi := &file_service_http_web_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -689,7 +745,7 @@ func (x *UpdateHTTPWebPagesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateHTTPWebPagesRequest.ProtoReflect.Descriptor instead. func (*UpdateHTTPWebPagesRequest) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{12} + return file_service_http_web_proto_rawDescGZIP(), []int{13} } func (x *UpdateHTTPWebPagesRequest) GetWebId() int64 { @@ -719,7 +775,7 @@ type UpdateHTTPWebAccessLogRequest struct { func (x *UpdateHTTPWebAccessLogRequest) Reset() { *x = UpdateHTTPWebAccessLogRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[13] + mi := &file_service_http_web_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -732,7 +788,7 @@ func (x *UpdateHTTPWebAccessLogRequest) String() string { func (*UpdateHTTPWebAccessLogRequest) ProtoMessage() {} func (x *UpdateHTTPWebAccessLogRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[13] + mi := &file_service_http_web_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -745,7 +801,7 @@ func (x *UpdateHTTPWebAccessLogRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateHTTPWebAccessLogRequest.ProtoReflect.Descriptor instead. func (*UpdateHTTPWebAccessLogRequest) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{13} + return file_service_http_web_proto_rawDescGZIP(), []int{14} } func (x *UpdateHTTPWebAccessLogRequest) GetWebId() int64 { @@ -775,7 +831,7 @@ type UpdateHTTPWebStatRequest struct { func (x *UpdateHTTPWebStatRequest) Reset() { *x = UpdateHTTPWebStatRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[14] + mi := &file_service_http_web_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -788,7 +844,7 @@ func (x *UpdateHTTPWebStatRequest) String() string { func (*UpdateHTTPWebStatRequest) ProtoMessage() {} func (x *UpdateHTTPWebStatRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[14] + mi := &file_service_http_web_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -801,7 +857,7 @@ func (x *UpdateHTTPWebStatRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateHTTPWebStatRequest.ProtoReflect.Descriptor instead. func (*UpdateHTTPWebStatRequest) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{14} + return file_service_http_web_proto_rawDescGZIP(), []int{15} } func (x *UpdateHTTPWebStatRequest) GetWebId() int64 { @@ -831,7 +887,7 @@ type UpdateHTTPWebCacheRequest struct { func (x *UpdateHTTPWebCacheRequest) Reset() { *x = UpdateHTTPWebCacheRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[15] + mi := &file_service_http_web_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -844,7 +900,7 @@ func (x *UpdateHTTPWebCacheRequest) String() string { func (*UpdateHTTPWebCacheRequest) ProtoMessage() {} func (x *UpdateHTTPWebCacheRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[15] + mi := &file_service_http_web_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -857,7 +913,7 @@ func (x *UpdateHTTPWebCacheRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateHTTPWebCacheRequest.ProtoReflect.Descriptor instead. func (*UpdateHTTPWebCacheRequest) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{15} + return file_service_http_web_proto_rawDescGZIP(), []int{16} } func (x *UpdateHTTPWebCacheRequest) GetWebId() int64 { @@ -887,7 +943,7 @@ type UpdateHTTPWebFirewallRequest struct { func (x *UpdateHTTPWebFirewallRequest) Reset() { *x = UpdateHTTPWebFirewallRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[16] + mi := &file_service_http_web_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -900,7 +956,7 @@ func (x *UpdateHTTPWebFirewallRequest) String() string { func (*UpdateHTTPWebFirewallRequest) ProtoMessage() {} func (x *UpdateHTTPWebFirewallRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[16] + mi := &file_service_http_web_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -913,7 +969,7 @@ func (x *UpdateHTTPWebFirewallRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateHTTPWebFirewallRequest.ProtoReflect.Descriptor instead. func (*UpdateHTTPWebFirewallRequest) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{16} + return file_service_http_web_proto_rawDescGZIP(), []int{17} } func (x *UpdateHTTPWebFirewallRequest) GetWebId() int64 { @@ -943,7 +999,7 @@ type UpdateHTTPWebLocationsRequest struct { func (x *UpdateHTTPWebLocationsRequest) Reset() { *x = UpdateHTTPWebLocationsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[17] + mi := &file_service_http_web_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -956,7 +1012,7 @@ func (x *UpdateHTTPWebLocationsRequest) String() string { func (*UpdateHTTPWebLocationsRequest) ProtoMessage() {} func (x *UpdateHTTPWebLocationsRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[17] + mi := &file_service_http_web_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -969,7 +1025,7 @@ func (x *UpdateHTTPWebLocationsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateHTTPWebLocationsRequest.ProtoReflect.Descriptor instead. func (*UpdateHTTPWebLocationsRequest) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{17} + return file_service_http_web_proto_rawDescGZIP(), []int{18} } func (x *UpdateHTTPWebLocationsRequest) GetWebId() int64 { @@ -999,7 +1055,7 @@ type UpdateHTTPWebRedirectToHTTPSRequest struct { func (x *UpdateHTTPWebRedirectToHTTPSRequest) Reset() { *x = UpdateHTTPWebRedirectToHTTPSRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[18] + mi := &file_service_http_web_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1012,7 +1068,7 @@ func (x *UpdateHTTPWebRedirectToHTTPSRequest) String() string { func (*UpdateHTTPWebRedirectToHTTPSRequest) ProtoMessage() {} func (x *UpdateHTTPWebRedirectToHTTPSRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[18] + mi := &file_service_http_web_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1025,7 +1081,7 @@ func (x *UpdateHTTPWebRedirectToHTTPSRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use UpdateHTTPWebRedirectToHTTPSRequest.ProtoReflect.Descriptor instead. func (*UpdateHTTPWebRedirectToHTTPSRequest) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{18} + return file_service_http_web_proto_rawDescGZIP(), []int{19} } func (x *UpdateHTTPWebRedirectToHTTPSRequest) GetWebId() int64 { @@ -1055,7 +1111,7 @@ type UpdateHTTPWebWebsocketRequest struct { func (x *UpdateHTTPWebWebsocketRequest) Reset() { *x = UpdateHTTPWebWebsocketRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[19] + mi := &file_service_http_web_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1068,7 +1124,7 @@ func (x *UpdateHTTPWebWebsocketRequest) String() string { func (*UpdateHTTPWebWebsocketRequest) ProtoMessage() {} func (x *UpdateHTTPWebWebsocketRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[19] + mi := &file_service_http_web_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1081,7 +1137,7 @@ func (x *UpdateHTTPWebWebsocketRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateHTTPWebWebsocketRequest.ProtoReflect.Descriptor instead. func (*UpdateHTTPWebWebsocketRequest) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{19} + return file_service_http_web_proto_rawDescGZIP(), []int{20} } func (x *UpdateHTTPWebWebsocketRequest) GetWebId() int64 { @@ -1111,7 +1167,7 @@ type UpdateHTTPWebFastcgiRequest struct { func (x *UpdateHTTPWebFastcgiRequest) Reset() { *x = UpdateHTTPWebFastcgiRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[20] + mi := &file_service_http_web_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1124,7 +1180,7 @@ func (x *UpdateHTTPWebFastcgiRequest) String() string { func (*UpdateHTTPWebFastcgiRequest) ProtoMessage() {} func (x *UpdateHTTPWebFastcgiRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[20] + mi := &file_service_http_web_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1137,7 +1193,7 @@ func (x *UpdateHTTPWebFastcgiRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateHTTPWebFastcgiRequest.ProtoReflect.Descriptor instead. func (*UpdateHTTPWebFastcgiRequest) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{20} + return file_service_http_web_proto_rawDescGZIP(), []int{21} } func (x *UpdateHTTPWebFastcgiRequest) GetWebId() int64 { @@ -1167,7 +1223,7 @@ type UpdateHTTPWebRewriteRulesRequest struct { func (x *UpdateHTTPWebRewriteRulesRequest) Reset() { *x = UpdateHTTPWebRewriteRulesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[21] + mi := &file_service_http_web_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1180,7 +1236,7 @@ func (x *UpdateHTTPWebRewriteRulesRequest) String() string { func (*UpdateHTTPWebRewriteRulesRequest) ProtoMessage() {} func (x *UpdateHTTPWebRewriteRulesRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[21] + mi := &file_service_http_web_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1193,7 +1249,7 @@ func (x *UpdateHTTPWebRewriteRulesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateHTTPWebRewriteRulesRequest.ProtoReflect.Descriptor instead. func (*UpdateHTTPWebRewriteRulesRequest) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{21} + return file_service_http_web_proto_rawDescGZIP(), []int{22} } func (x *UpdateHTTPWebRewriteRulesRequest) GetWebId() int64 { @@ -1223,7 +1279,7 @@ type UpdateHTTPWebHostRedirectsRequest struct { func (x *UpdateHTTPWebHostRedirectsRequest) Reset() { *x = UpdateHTTPWebHostRedirectsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[22] + mi := &file_service_http_web_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1236,7 +1292,7 @@ func (x *UpdateHTTPWebHostRedirectsRequest) String() string { func (*UpdateHTTPWebHostRedirectsRequest) ProtoMessage() {} func (x *UpdateHTTPWebHostRedirectsRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[22] + mi := &file_service_http_web_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1249,7 +1305,7 @@ func (x *UpdateHTTPWebHostRedirectsRequest) ProtoReflect() protoreflect.Message // Deprecated: Use UpdateHTTPWebHostRedirectsRequest.ProtoReflect.Descriptor instead. func (*UpdateHTTPWebHostRedirectsRequest) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{22} + return file_service_http_web_proto_rawDescGZIP(), []int{23} } func (x *UpdateHTTPWebHostRedirectsRequest) GetWebId() int64 { @@ -1278,7 +1334,7 @@ type FindHTTPWebHostRedirectsRequest struct { func (x *FindHTTPWebHostRedirectsRequest) Reset() { *x = FindHTTPWebHostRedirectsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[23] + mi := &file_service_http_web_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1291,7 +1347,7 @@ func (x *FindHTTPWebHostRedirectsRequest) String() string { func (*FindHTTPWebHostRedirectsRequest) ProtoMessage() {} func (x *FindHTTPWebHostRedirectsRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[23] + mi := &file_service_http_web_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1304,7 +1360,7 @@ func (x *FindHTTPWebHostRedirectsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FindHTTPWebHostRedirectsRequest.ProtoReflect.Descriptor instead. func (*FindHTTPWebHostRedirectsRequest) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{23} + return file_service_http_web_proto_rawDescGZIP(), []int{24} } func (x *FindHTTPWebHostRedirectsRequest) GetWebId() int64 { @@ -1325,7 +1381,7 @@ type FindHTTPWebHostRedirectsResponse struct { func (x *FindHTTPWebHostRedirectsResponse) Reset() { *x = FindHTTPWebHostRedirectsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[24] + mi := &file_service_http_web_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1338,7 +1394,7 @@ func (x *FindHTTPWebHostRedirectsResponse) String() string { func (*FindHTTPWebHostRedirectsResponse) ProtoMessage() {} func (x *FindHTTPWebHostRedirectsResponse) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[24] + mi := &file_service_http_web_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1351,7 +1407,7 @@ func (x *FindHTTPWebHostRedirectsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use FindHTTPWebHostRedirectsResponse.ProtoReflect.Descriptor instead. func (*FindHTTPWebHostRedirectsResponse) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{24} + return file_service_http_web_proto_rawDescGZIP(), []int{25} } func (x *FindHTTPWebHostRedirectsResponse) GetHostRedirectsJSON() []byte { @@ -1374,7 +1430,7 @@ type UpdateHTTPWebAuthRequest struct { func (x *UpdateHTTPWebAuthRequest) Reset() { *x = UpdateHTTPWebAuthRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_http_web_proto_msgTypes[25] + mi := &file_service_http_web_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1387,7 +1443,7 @@ func (x *UpdateHTTPWebAuthRequest) String() string { func (*UpdateHTTPWebAuthRequest) ProtoMessage() {} func (x *UpdateHTTPWebAuthRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_http_web_proto_msgTypes[25] + mi := &file_service_http_web_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1400,7 +1456,7 @@ func (x *UpdateHTTPWebAuthRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateHTTPWebAuthRequest.ProtoReflect.Descriptor instead. func (*UpdateHTTPWebAuthRequest) Descriptor() ([]byte, []int) { - return file_service_http_web_proto_rawDescGZIP(), []int{25} + return file_service_http_web_proto_rawDescGZIP(), []int{26} } func (x *UpdateHTTPWebAuthRequest) GetWebId() int64 { @@ -1456,217 +1512,226 @@ var file_service_http_web_proto_rawDesc = []byte{ 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x55, 0x0a, 0x1b, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x68, 0x61, 0x72, - 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, - 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, - 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x4a, 0x53, - 0x4f, 0x4e, 0x22, 0x59, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, - 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4c, 0x0a, 0x18, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x57, 0x65, 0x62, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x5a, 0x0a, - 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x77, 0x65, 0x62, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x77, 0x65, 0x62, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x55, 0x0a, 0x1b, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x68, 0x61, 0x72, 0x73, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x4a, 0x53, 0x4f, 0x4e, + 0x22, 0x59, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, + 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x5a, 0x0a, 0x22, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x58, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x22, 0x0a, + 0x0c, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x4a, 0x53, 0x4f, + 0x4e, 0x22, 0x4f, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, + 0x65, 0x62, 0x50, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, + 0x65, 0x62, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x73, 0x4a, 0x53, 0x4f, + 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x73, 0x4a, 0x53, + 0x4f, 0x4e, 0x22, 0x5b, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, + 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x58, 0x0a, 0x1c, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, - 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, - 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x4a, 0x53, 0x4f, 0x4e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x4a, - 0x53, 0x4f, 0x4e, 0x22, 0x4f, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, - 0x50, 0x57, 0x65, 0x62, 0x50, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x73, 0x4a, - 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x73, - 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x5b, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, - 0x54, 0x50, 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x61, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x4a, 0x53, 0x4f, - 0x4e, 0x22, 0x4c, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, - 0x65, 0x62, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, - 0x62, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x22, - 0x4f, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, - 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x4a, 0x53, 0x4f, 0x4e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x4a, 0x53, 0x4f, 0x4e, - 0x22, 0x58, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, - 0x62, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x65, 0x77, 0x61, - 0x6c, 0x6c, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x66, 0x69, - 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x5b, 0x0a, 0x1d, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, + 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x22, + 0x4c, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, + 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, - 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4a, 0x53, - 0x4f, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x6d, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x54, 0x6f, 0x48, 0x54, 0x54, 0x50, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4f, 0x0a, + 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, + 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x58, + 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x46, + 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, - 0x65, 0x62, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x54, 0x6f, 0x48, 0x54, 0x54, 0x50, 0x53, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x13, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x48, 0x54, 0x54, - 0x50, 0x53, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x5b, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x24, 0x0a, - 0x0d, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4a, - 0x53, 0x4f, 0x4e, 0x22, 0x55, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, - 0x50, 0x57, 0x65, 0x62, 0x46, 0x61, 0x73, 0x74, 0x63, 0x67, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x61, 0x73, 0x74, - 0x63, 0x67, 0x69, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x66, - 0x61, 0x73, 0x74, 0x63, 0x67, 0x69, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x64, 0x0a, 0x20, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x77, 0x72, 0x69, - 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, - 0x65, 0x62, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, - 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, - 0x22, 0x67, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, - 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x68, - 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x4a, 0x53, 0x4f, 0x4e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x68, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x37, 0x0a, 0x1f, 0x46, 0x69, 0x6e, - 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, - 0x49, 0x64, 0x22, 0x50, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, - 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x68, 0x6f, 0x73, 0x74, 0x52, 0x65, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x11, 0x68, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, - 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4c, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, - 0x54, 0x50, 0x57, 0x65, 0x62, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4a, 0x53, - 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4a, 0x53, - 0x4f, 0x4e, 0x32, 0xd1, 0x0d, 0x0a, 0x0e, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, - 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, - 0x57, 0x65, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x66, - 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, - 0x62, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x65, 0x0a, 0x18, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, - 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x2e, 0x70, - 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, - 0x50, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x12, 0x4f, 0x0a, 0x18, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, - 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, - 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, - 0x62, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x12, 0x47, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, - 0x50, 0x57, 0x65, 0x62, 0x43, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x12, 0x1f, 0x2e, 0x70, 0x62, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x68, - 0x61, 0x72, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, - 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x53, 0x0a, 0x1a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x12, 0x55, 0x0a, 0x1b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, - 0x65, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, - 0x57, 0x65, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, - 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x15, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, - 0x6e, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, - 0x50, 0x57, 0x65, 0x62, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, - 0x50, 0x57, 0x65, 0x62, 0x50, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x50, 0x61, 0x67, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, - 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4b, 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, - 0x6f, 0x67, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, - 0x54, 0x50, 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x41, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, - 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x74, 0x61, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, - 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x1d, - 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, - 0x62, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, - 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, - 0x15, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x46, 0x69, - 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, - 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4b, 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, + 0x65, 0x62, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, + 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x66, 0x69, 0x72, 0x65, + 0x77, 0x61, 0x6c, 0x6c, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x5b, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, - 0x54, 0x50, 0x57, 0x65, 0x62, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x57, 0x0a, 0x1c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, + 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4a, 0x53, 0x4f, 0x4e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x6d, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x6f, - 0x48, 0x54, 0x54, 0x50, 0x53, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x54, 0x6f, 0x48, 0x54, 0x54, 0x50, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, - 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4b, - 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x57, - 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x57, 0x65, 0x62, 0x73, 0x6f, - 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, - 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x47, 0x0a, 0x14, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x46, 0x61, 0x73, 0x74, - 0x63, 0x67, 0x69, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, - 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x46, 0x61, 0x73, 0x74, 0x63, 0x67, 0x69, 0x52, 0x65, 0x71, + 0x48, 0x54, 0x54, 0x50, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, + 0x49, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x6f, + 0x48, 0x54, 0x54, 0x50, 0x53, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x13, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x48, 0x54, 0x54, 0x50, 0x53, + 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x5b, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, + 0x54, 0x50, 0x57, 0x65, 0x62, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x77, + 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0d, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4a, 0x53, 0x4f, + 0x4e, 0x22, 0x55, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, + 0x65, 0x62, 0x46, 0x61, 0x73, 0x74, 0x63, 0x67, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x61, 0x73, 0x74, 0x63, 0x67, + 0x69, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x66, 0x61, 0x73, + 0x74, 0x63, 0x67, 0x69, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x64, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, + 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x72, 0x65, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x67, + 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, + 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x68, 0x6f, 0x73, + 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x68, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x37, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x64, 0x48, + 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, + 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, + 0x22, 0x50, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, + 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x68, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x11, 0x68, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x4a, 0x53, + 0x4f, 0x4e, 0x22, 0x4c, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, + 0x57, 0x65, 0x62, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, + 0x65, 0x62, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4a, 0x53, 0x4f, 0x4e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4a, 0x53, 0x4f, 0x4e, + 0x32, 0x94, 0x0e, 0x0a, 0x0e, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, + 0x50, 0x57, 0x65, 0x62, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, + 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, + 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x66, 0x69, 0x6e, + 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x12, + 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, + 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, + 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, + 0x0a, 0x18, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, + 0x50, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, + 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, + 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, + 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x12, 0x4f, 0x0a, 0x18, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, + 0x62, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x2e, 0x70, + 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x12, 0x41, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, + 0x65, 0x62, 0x57, 0x65, 0x62, 0x50, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x57, 0x65, 0x62, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x12, 0x51, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, - 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, - 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, - 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x53, 0x0a, 0x1a, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, - 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x65, 0x0a, 0x18, - 0x66, 0x69, 0x6e, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, - 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, - 0x6e, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, - 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, - 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, - 0x50, 0x57, 0x65, 0x62, 0x41, 0x75, 0x74, 0x68, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x41, 0x75, 0x74, 0x68, 0x52, + 0x63, 0x65, 0x73, 0x73, 0x12, 0x47, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, + 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x12, 0x1f, 0x2e, 0x70, + 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, + 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, + 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x53, 0x0a, + 0x1a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x25, 0x2e, 0x70, 0x62, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x12, 0x55, 0x0a, 0x1b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, + 0x57, 0x65, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, + 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, + 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x15, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, + 0x77, 0x6e, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, + 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, + 0x54, 0x50, 0x57, 0x65, 0x62, 0x50, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x50, 0x61, 0x67, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, + 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4b, 0x0a, 0x16, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x4c, 0x6f, 0x67, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, + 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, - 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x41, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x62, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x74, + 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, + 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x12, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, + 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, + 0x65, 0x62, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, + 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, + 0x0a, 0x15, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x46, + 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, + 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, + 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4b, 0x0a, 0x16, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, + 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x57, 0x0a, 0x1c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, + 0x6f, 0x48, 0x54, 0x54, 0x50, 0x53, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x54, 0x6f, 0x48, 0x54, 0x54, 0x50, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, + 0x4b, 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, + 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x57, 0x65, 0x62, 0x73, + 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, + 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x47, 0x0a, 0x14, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x46, 0x61, 0x73, + 0x74, 0x63, 0x67, 0x69, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x46, 0x61, 0x73, 0x74, 0x63, 0x67, 0x69, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x51, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, + 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, + 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, + 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x53, 0x0a, 0x1a, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, + 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x65, 0x0a, + 0x18, 0x66, 0x69, 0x6e, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, + 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, + 0x69, 0x6e, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, + 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, + 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, + 0x54, 0x50, 0x57, 0x65, 0x62, 0x41, 0x75, 0x74, 0x68, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x41, 0x75, 0x74, 0x68, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, + 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1681,7 +1746,7 @@ func file_service_http_web_proto_rawDescGZIP() []byte { return file_service_http_web_proto_rawDescData } -var file_service_http_web_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_service_http_web_proto_msgTypes = make([]protoimpl.MessageInfo, 27) var file_service_http_web_proto_goTypes = []interface{}{ (*CreateHTTPWebRequest)(nil), // 0: pb.CreateHTTPWebRequest (*CreateHTTPWebResponse)(nil), // 1: pb.CreateHTTPWebResponse @@ -1691,75 +1756,78 @@ var file_service_http_web_proto_goTypes = []interface{}{ (*FindEnabledHTTPWebConfigResponse)(nil), // 5: pb.FindEnabledHTTPWebConfigResponse (*UpdateHTTPWebRequest)(nil), // 6: pb.UpdateHTTPWebRequest (*UpdateHTTPWebCompressionRequest)(nil), // 7: pb.UpdateHTTPWebCompressionRequest - (*UpdateHTTPWebCharsetRequest)(nil), // 8: pb.UpdateHTTPWebCharsetRequest - (*UpdateHTTPWebRequestHeaderRequest)(nil), // 9: pb.UpdateHTTPWebRequestHeaderRequest - (*UpdateHTTPWebResponseHeaderRequest)(nil), // 10: pb.UpdateHTTPWebResponseHeaderRequest - (*UpdateHTTPWebShutdownRequest)(nil), // 11: pb.UpdateHTTPWebShutdownRequest - (*UpdateHTTPWebPagesRequest)(nil), // 12: pb.UpdateHTTPWebPagesRequest - (*UpdateHTTPWebAccessLogRequest)(nil), // 13: pb.UpdateHTTPWebAccessLogRequest - (*UpdateHTTPWebStatRequest)(nil), // 14: pb.UpdateHTTPWebStatRequest - (*UpdateHTTPWebCacheRequest)(nil), // 15: pb.UpdateHTTPWebCacheRequest - (*UpdateHTTPWebFirewallRequest)(nil), // 16: pb.UpdateHTTPWebFirewallRequest - (*UpdateHTTPWebLocationsRequest)(nil), // 17: pb.UpdateHTTPWebLocationsRequest - (*UpdateHTTPWebRedirectToHTTPSRequest)(nil), // 18: pb.UpdateHTTPWebRedirectToHTTPSRequest - (*UpdateHTTPWebWebsocketRequest)(nil), // 19: pb.UpdateHTTPWebWebsocketRequest - (*UpdateHTTPWebFastcgiRequest)(nil), // 20: pb.UpdateHTTPWebFastcgiRequest - (*UpdateHTTPWebRewriteRulesRequest)(nil), // 21: pb.UpdateHTTPWebRewriteRulesRequest - (*UpdateHTTPWebHostRedirectsRequest)(nil), // 22: pb.UpdateHTTPWebHostRedirectsRequest - (*FindHTTPWebHostRedirectsRequest)(nil), // 23: pb.FindHTTPWebHostRedirectsRequest - (*FindHTTPWebHostRedirectsResponse)(nil), // 24: pb.FindHTTPWebHostRedirectsResponse - (*UpdateHTTPWebAuthRequest)(nil), // 25: pb.UpdateHTTPWebAuthRequest - (*HTTPWeb)(nil), // 26: pb.HTTPWeb - (*RPCSuccess)(nil), // 27: pb.RPCSuccess + (*UpdateHTTPWebWebPRequest)(nil), // 8: pb.UpdateHTTPWebWebPRequest + (*UpdateHTTPWebCharsetRequest)(nil), // 9: pb.UpdateHTTPWebCharsetRequest + (*UpdateHTTPWebRequestHeaderRequest)(nil), // 10: pb.UpdateHTTPWebRequestHeaderRequest + (*UpdateHTTPWebResponseHeaderRequest)(nil), // 11: pb.UpdateHTTPWebResponseHeaderRequest + (*UpdateHTTPWebShutdownRequest)(nil), // 12: pb.UpdateHTTPWebShutdownRequest + (*UpdateHTTPWebPagesRequest)(nil), // 13: pb.UpdateHTTPWebPagesRequest + (*UpdateHTTPWebAccessLogRequest)(nil), // 14: pb.UpdateHTTPWebAccessLogRequest + (*UpdateHTTPWebStatRequest)(nil), // 15: pb.UpdateHTTPWebStatRequest + (*UpdateHTTPWebCacheRequest)(nil), // 16: pb.UpdateHTTPWebCacheRequest + (*UpdateHTTPWebFirewallRequest)(nil), // 17: pb.UpdateHTTPWebFirewallRequest + (*UpdateHTTPWebLocationsRequest)(nil), // 18: pb.UpdateHTTPWebLocationsRequest + (*UpdateHTTPWebRedirectToHTTPSRequest)(nil), // 19: pb.UpdateHTTPWebRedirectToHTTPSRequest + (*UpdateHTTPWebWebsocketRequest)(nil), // 20: pb.UpdateHTTPWebWebsocketRequest + (*UpdateHTTPWebFastcgiRequest)(nil), // 21: pb.UpdateHTTPWebFastcgiRequest + (*UpdateHTTPWebRewriteRulesRequest)(nil), // 22: pb.UpdateHTTPWebRewriteRulesRequest + (*UpdateHTTPWebHostRedirectsRequest)(nil), // 23: pb.UpdateHTTPWebHostRedirectsRequest + (*FindHTTPWebHostRedirectsRequest)(nil), // 24: pb.FindHTTPWebHostRedirectsRequest + (*FindHTTPWebHostRedirectsResponse)(nil), // 25: pb.FindHTTPWebHostRedirectsResponse + (*UpdateHTTPWebAuthRequest)(nil), // 26: pb.UpdateHTTPWebAuthRequest + (*HTTPWeb)(nil), // 27: pb.HTTPWeb + (*RPCSuccess)(nil), // 28: pb.RPCSuccess } var file_service_http_web_proto_depIdxs = []int32{ - 26, // 0: pb.FindEnabledHTTPWebResponse.web:type_name -> pb.HTTPWeb + 27, // 0: pb.FindEnabledHTTPWebResponse.web:type_name -> pb.HTTPWeb 0, // 1: pb.HTTPWebService.createHTTPWeb:input_type -> pb.CreateHTTPWebRequest 2, // 2: pb.HTTPWebService.findEnabledHTTPWeb:input_type -> pb.FindEnabledHTTPWebRequest 4, // 3: pb.HTTPWebService.findEnabledHTTPWebConfig:input_type -> pb.FindEnabledHTTPWebConfigRequest 6, // 4: pb.HTTPWebService.updateHTTPWeb:input_type -> pb.UpdateHTTPWebRequest 7, // 5: pb.HTTPWebService.updateHTTPWebCompression:input_type -> pb.UpdateHTTPWebCompressionRequest - 8, // 6: pb.HTTPWebService.updateHTTPWebCharset:input_type -> pb.UpdateHTTPWebCharsetRequest - 9, // 7: pb.HTTPWebService.updateHTTPWebRequestHeader:input_type -> pb.UpdateHTTPWebRequestHeaderRequest - 10, // 8: pb.HTTPWebService.updateHTTPWebResponseHeader:input_type -> pb.UpdateHTTPWebResponseHeaderRequest - 11, // 9: pb.HTTPWebService.updateHTTPWebShutdown:input_type -> pb.UpdateHTTPWebShutdownRequest - 12, // 10: pb.HTTPWebService.updateHTTPWebPages:input_type -> pb.UpdateHTTPWebPagesRequest - 13, // 11: pb.HTTPWebService.updateHTTPWebAccessLog:input_type -> pb.UpdateHTTPWebAccessLogRequest - 14, // 12: pb.HTTPWebService.updateHTTPWebStat:input_type -> pb.UpdateHTTPWebStatRequest - 15, // 13: pb.HTTPWebService.updateHTTPWebCache:input_type -> pb.UpdateHTTPWebCacheRequest - 16, // 14: pb.HTTPWebService.updateHTTPWebFirewall:input_type -> pb.UpdateHTTPWebFirewallRequest - 17, // 15: pb.HTTPWebService.updateHTTPWebLocations:input_type -> pb.UpdateHTTPWebLocationsRequest - 18, // 16: pb.HTTPWebService.updateHTTPWebRedirectToHTTPS:input_type -> pb.UpdateHTTPWebRedirectToHTTPSRequest - 19, // 17: pb.HTTPWebService.updateHTTPWebWebsocket:input_type -> pb.UpdateHTTPWebWebsocketRequest - 20, // 18: pb.HTTPWebService.updateHTTPWebFastcgi:input_type -> pb.UpdateHTTPWebFastcgiRequest - 21, // 19: pb.HTTPWebService.updateHTTPWebRewriteRules:input_type -> pb.UpdateHTTPWebRewriteRulesRequest - 22, // 20: pb.HTTPWebService.updateHTTPWebHostRedirects:input_type -> pb.UpdateHTTPWebHostRedirectsRequest - 23, // 21: pb.HTTPWebService.findHTTPWebHostRedirects:input_type -> pb.FindHTTPWebHostRedirectsRequest - 25, // 22: pb.HTTPWebService.updateHTTPWebAuth:input_type -> pb.UpdateHTTPWebAuthRequest - 1, // 23: pb.HTTPWebService.createHTTPWeb:output_type -> pb.CreateHTTPWebResponse - 3, // 24: pb.HTTPWebService.findEnabledHTTPWeb:output_type -> pb.FindEnabledHTTPWebResponse - 5, // 25: pb.HTTPWebService.findEnabledHTTPWebConfig:output_type -> pb.FindEnabledHTTPWebConfigResponse - 27, // 26: pb.HTTPWebService.updateHTTPWeb:output_type -> pb.RPCSuccess - 27, // 27: pb.HTTPWebService.updateHTTPWebCompression:output_type -> pb.RPCSuccess - 27, // 28: pb.HTTPWebService.updateHTTPWebCharset:output_type -> pb.RPCSuccess - 27, // 29: pb.HTTPWebService.updateHTTPWebRequestHeader:output_type -> pb.RPCSuccess - 27, // 30: pb.HTTPWebService.updateHTTPWebResponseHeader:output_type -> pb.RPCSuccess - 27, // 31: pb.HTTPWebService.updateHTTPWebShutdown:output_type -> pb.RPCSuccess - 27, // 32: pb.HTTPWebService.updateHTTPWebPages:output_type -> pb.RPCSuccess - 27, // 33: pb.HTTPWebService.updateHTTPWebAccessLog:output_type -> pb.RPCSuccess - 27, // 34: pb.HTTPWebService.updateHTTPWebStat:output_type -> pb.RPCSuccess - 27, // 35: pb.HTTPWebService.updateHTTPWebCache:output_type -> pb.RPCSuccess - 27, // 36: pb.HTTPWebService.updateHTTPWebFirewall:output_type -> pb.RPCSuccess - 27, // 37: pb.HTTPWebService.updateHTTPWebLocations:output_type -> pb.RPCSuccess - 27, // 38: pb.HTTPWebService.updateHTTPWebRedirectToHTTPS:output_type -> pb.RPCSuccess - 27, // 39: pb.HTTPWebService.updateHTTPWebWebsocket:output_type -> pb.RPCSuccess - 27, // 40: pb.HTTPWebService.updateHTTPWebFastcgi:output_type -> pb.RPCSuccess - 27, // 41: pb.HTTPWebService.updateHTTPWebRewriteRules:output_type -> pb.RPCSuccess - 27, // 42: pb.HTTPWebService.updateHTTPWebHostRedirects:output_type -> pb.RPCSuccess - 24, // 43: pb.HTTPWebService.findHTTPWebHostRedirects:output_type -> pb.FindHTTPWebHostRedirectsResponse - 27, // 44: pb.HTTPWebService.updateHTTPWebAuth:output_type -> pb.RPCSuccess - 23, // [23:45] is the sub-list for method output_type - 1, // [1:23] is the sub-list for method input_type + 8, // 6: pb.HTTPWebService.updateHTTPWebWebP:input_type -> pb.UpdateHTTPWebWebPRequest + 9, // 7: pb.HTTPWebService.updateHTTPWebCharset:input_type -> pb.UpdateHTTPWebCharsetRequest + 10, // 8: pb.HTTPWebService.updateHTTPWebRequestHeader:input_type -> pb.UpdateHTTPWebRequestHeaderRequest + 11, // 9: pb.HTTPWebService.updateHTTPWebResponseHeader:input_type -> pb.UpdateHTTPWebResponseHeaderRequest + 12, // 10: pb.HTTPWebService.updateHTTPWebShutdown:input_type -> pb.UpdateHTTPWebShutdownRequest + 13, // 11: pb.HTTPWebService.updateHTTPWebPages:input_type -> pb.UpdateHTTPWebPagesRequest + 14, // 12: pb.HTTPWebService.updateHTTPWebAccessLog:input_type -> pb.UpdateHTTPWebAccessLogRequest + 15, // 13: pb.HTTPWebService.updateHTTPWebStat:input_type -> pb.UpdateHTTPWebStatRequest + 16, // 14: pb.HTTPWebService.updateHTTPWebCache:input_type -> pb.UpdateHTTPWebCacheRequest + 17, // 15: pb.HTTPWebService.updateHTTPWebFirewall:input_type -> pb.UpdateHTTPWebFirewallRequest + 18, // 16: pb.HTTPWebService.updateHTTPWebLocations:input_type -> pb.UpdateHTTPWebLocationsRequest + 19, // 17: pb.HTTPWebService.updateHTTPWebRedirectToHTTPS:input_type -> pb.UpdateHTTPWebRedirectToHTTPSRequest + 20, // 18: pb.HTTPWebService.updateHTTPWebWebsocket:input_type -> pb.UpdateHTTPWebWebsocketRequest + 21, // 19: pb.HTTPWebService.updateHTTPWebFastcgi:input_type -> pb.UpdateHTTPWebFastcgiRequest + 22, // 20: pb.HTTPWebService.updateHTTPWebRewriteRules:input_type -> pb.UpdateHTTPWebRewriteRulesRequest + 23, // 21: pb.HTTPWebService.updateHTTPWebHostRedirects:input_type -> pb.UpdateHTTPWebHostRedirectsRequest + 24, // 22: pb.HTTPWebService.findHTTPWebHostRedirects:input_type -> pb.FindHTTPWebHostRedirectsRequest + 26, // 23: pb.HTTPWebService.updateHTTPWebAuth:input_type -> pb.UpdateHTTPWebAuthRequest + 1, // 24: pb.HTTPWebService.createHTTPWeb:output_type -> pb.CreateHTTPWebResponse + 3, // 25: pb.HTTPWebService.findEnabledHTTPWeb:output_type -> pb.FindEnabledHTTPWebResponse + 5, // 26: pb.HTTPWebService.findEnabledHTTPWebConfig:output_type -> pb.FindEnabledHTTPWebConfigResponse + 28, // 27: pb.HTTPWebService.updateHTTPWeb:output_type -> pb.RPCSuccess + 28, // 28: pb.HTTPWebService.updateHTTPWebCompression:output_type -> pb.RPCSuccess + 28, // 29: pb.HTTPWebService.updateHTTPWebWebP:output_type -> pb.RPCSuccess + 28, // 30: pb.HTTPWebService.updateHTTPWebCharset:output_type -> pb.RPCSuccess + 28, // 31: pb.HTTPWebService.updateHTTPWebRequestHeader:output_type -> pb.RPCSuccess + 28, // 32: pb.HTTPWebService.updateHTTPWebResponseHeader:output_type -> pb.RPCSuccess + 28, // 33: pb.HTTPWebService.updateHTTPWebShutdown:output_type -> pb.RPCSuccess + 28, // 34: pb.HTTPWebService.updateHTTPWebPages:output_type -> pb.RPCSuccess + 28, // 35: pb.HTTPWebService.updateHTTPWebAccessLog:output_type -> pb.RPCSuccess + 28, // 36: pb.HTTPWebService.updateHTTPWebStat:output_type -> pb.RPCSuccess + 28, // 37: pb.HTTPWebService.updateHTTPWebCache:output_type -> pb.RPCSuccess + 28, // 38: pb.HTTPWebService.updateHTTPWebFirewall:output_type -> pb.RPCSuccess + 28, // 39: pb.HTTPWebService.updateHTTPWebLocations:output_type -> pb.RPCSuccess + 28, // 40: pb.HTTPWebService.updateHTTPWebRedirectToHTTPS:output_type -> pb.RPCSuccess + 28, // 41: pb.HTTPWebService.updateHTTPWebWebsocket:output_type -> pb.RPCSuccess + 28, // 42: pb.HTTPWebService.updateHTTPWebFastcgi:output_type -> pb.RPCSuccess + 28, // 43: pb.HTTPWebService.updateHTTPWebRewriteRules:output_type -> pb.RPCSuccess + 28, // 44: pb.HTTPWebService.updateHTTPWebHostRedirects:output_type -> pb.RPCSuccess + 25, // 45: pb.HTTPWebService.findHTTPWebHostRedirects:output_type -> pb.FindHTTPWebHostRedirectsResponse + 28, // 46: pb.HTTPWebService.updateHTTPWebAuth:output_type -> pb.RPCSuccess + 24, // [24:47] is the sub-list for method output_type + 1, // [1:24] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 1, // [1:1] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name @@ -1870,7 +1938,7 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateHTTPWebCharsetRequest); i { + switch v := v.(*UpdateHTTPWebWebPRequest); i { case 0: return &v.state case 1: @@ -1882,7 +1950,7 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateHTTPWebRequestHeaderRequest); i { + switch v := v.(*UpdateHTTPWebCharsetRequest); i { case 0: return &v.state case 1: @@ -1894,7 +1962,7 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateHTTPWebResponseHeaderRequest); i { + switch v := v.(*UpdateHTTPWebRequestHeaderRequest); i { case 0: return &v.state case 1: @@ -1906,7 +1974,7 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateHTTPWebShutdownRequest); i { + switch v := v.(*UpdateHTTPWebResponseHeaderRequest); i { case 0: return &v.state case 1: @@ -1918,7 +1986,7 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateHTTPWebPagesRequest); i { + switch v := v.(*UpdateHTTPWebShutdownRequest); i { case 0: return &v.state case 1: @@ -1930,7 +1998,7 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateHTTPWebAccessLogRequest); i { + switch v := v.(*UpdateHTTPWebPagesRequest); i { case 0: return &v.state case 1: @@ -1942,7 +2010,7 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateHTTPWebStatRequest); i { + switch v := v.(*UpdateHTTPWebAccessLogRequest); i { case 0: return &v.state case 1: @@ -1954,7 +2022,7 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateHTTPWebCacheRequest); i { + switch v := v.(*UpdateHTTPWebStatRequest); i { case 0: return &v.state case 1: @@ -1966,7 +2034,7 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateHTTPWebFirewallRequest); i { + switch v := v.(*UpdateHTTPWebCacheRequest); i { case 0: return &v.state case 1: @@ -1978,7 +2046,7 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateHTTPWebLocationsRequest); i { + switch v := v.(*UpdateHTTPWebFirewallRequest); i { case 0: return &v.state case 1: @@ -1990,7 +2058,7 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateHTTPWebRedirectToHTTPSRequest); i { + switch v := v.(*UpdateHTTPWebLocationsRequest); i { case 0: return &v.state case 1: @@ -2002,7 +2070,7 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateHTTPWebWebsocketRequest); i { + switch v := v.(*UpdateHTTPWebRedirectToHTTPSRequest); i { case 0: return &v.state case 1: @@ -2014,7 +2082,7 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateHTTPWebFastcgiRequest); i { + switch v := v.(*UpdateHTTPWebWebsocketRequest); i { case 0: return &v.state case 1: @@ -2026,7 +2094,7 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateHTTPWebRewriteRulesRequest); i { + switch v := v.(*UpdateHTTPWebFastcgiRequest); i { case 0: return &v.state case 1: @@ -2038,7 +2106,7 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateHTTPWebHostRedirectsRequest); i { + switch v := v.(*UpdateHTTPWebRewriteRulesRequest); i { case 0: return &v.state case 1: @@ -2050,7 +2118,7 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FindHTTPWebHostRedirectsRequest); i { + switch v := v.(*UpdateHTTPWebHostRedirectsRequest); i { case 0: return &v.state case 1: @@ -2062,7 +2130,7 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FindHTTPWebHostRedirectsResponse); i { + switch v := v.(*FindHTTPWebHostRedirectsRequest); i { case 0: return &v.state case 1: @@ -2074,6 +2142,18 @@ func file_service_http_web_proto_init() { } } file_service_http_web_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindHTTPWebHostRedirectsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_http_web_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateHTTPWebAuthRequest); i { case 0: return &v.state @@ -2092,7 +2172,7 @@ func file_service_http_web_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_service_http_web_proto_rawDesc, NumEnums: 0, - NumMessages: 26, + NumMessages: 27, NumExtensions: 0, NumServices: 1, }, @@ -2128,6 +2208,8 @@ type HTTPWebServiceClient interface { UpdateHTTPWeb(ctx context.Context, in *UpdateHTTPWebRequest, opts ...grpc.CallOption) (*RPCSuccess, error) // 更改压缩配置 UpdateHTTPWebCompression(ctx context.Context, in *UpdateHTTPWebCompressionRequest, opts ...grpc.CallOption) (*RPCSuccess, error) + // 更改WebP配置 + UpdateHTTPWebWebP(ctx context.Context, in *UpdateHTTPWebWebPRequest, opts ...grpc.CallOption) (*RPCSuccess, error) // 更改字符集配置 UpdateHTTPWebCharset(ctx context.Context, in *UpdateHTTPWebCharsetRequest, opts ...grpc.CallOption) (*RPCSuccess, error) // 更改请求Header策略 @@ -2217,6 +2299,15 @@ func (c *hTTPWebServiceClient) UpdateHTTPWebCompression(ctx context.Context, in return out, nil } +func (c *hTTPWebServiceClient) UpdateHTTPWebWebP(ctx context.Context, in *UpdateHTTPWebWebPRequest, opts ...grpc.CallOption) (*RPCSuccess, error) { + out := new(RPCSuccess) + err := c.cc.Invoke(ctx, "/pb.HTTPWebService/updateHTTPWebWebP", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *hTTPWebServiceClient) UpdateHTTPWebCharset(ctx context.Context, in *UpdateHTTPWebCharsetRequest, opts ...grpc.CallOption) (*RPCSuccess, error) { out := new(RPCSuccess) err := c.cc.Invoke(ctx, "/pb.HTTPWebService/updateHTTPWebCharset", in, out, opts...) @@ -2382,6 +2473,8 @@ type HTTPWebServiceServer interface { UpdateHTTPWeb(context.Context, *UpdateHTTPWebRequest) (*RPCSuccess, error) // 更改压缩配置 UpdateHTTPWebCompression(context.Context, *UpdateHTTPWebCompressionRequest) (*RPCSuccess, error) + // 更改WebP配置 + UpdateHTTPWebWebP(context.Context, *UpdateHTTPWebWebPRequest) (*RPCSuccess, error) // 更改字符集配置 UpdateHTTPWebCharset(context.Context, *UpdateHTTPWebCharsetRequest) (*RPCSuccess, error) // 更改请求Header策略 @@ -2437,6 +2530,9 @@ func (*UnimplementedHTTPWebServiceServer) UpdateHTTPWeb(context.Context, *Update func (*UnimplementedHTTPWebServiceServer) UpdateHTTPWebCompression(context.Context, *UpdateHTTPWebCompressionRequest) (*RPCSuccess, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateHTTPWebCompression not implemented") } +func (*UnimplementedHTTPWebServiceServer) UpdateHTTPWebWebP(context.Context, *UpdateHTTPWebWebPRequest) (*RPCSuccess, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateHTTPWebWebP not implemented") +} func (*UnimplementedHTTPWebServiceServer) UpdateHTTPWebCharset(context.Context, *UpdateHTTPWebCharsetRequest) (*RPCSuccess, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateHTTPWebCharset not implemented") } @@ -2583,6 +2679,24 @@ func _HTTPWebService_UpdateHTTPWebCompression_Handler(srv interface{}, ctx conte return interceptor(ctx, in, info, handler) } +func _HTTPWebService_UpdateHTTPWebWebP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateHTTPWebWebPRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HTTPWebServiceServer).UpdateHTTPWebWebP(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.HTTPWebService/UpdateHTTPWebWebP", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HTTPWebServiceServer).UpdateHTTPWebWebP(ctx, req.(*UpdateHTTPWebWebPRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _HTTPWebService_UpdateHTTPWebCharset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UpdateHTTPWebCharsetRequest) if err := dec(in); err != nil { @@ -2913,6 +3027,10 @@ var _HTTPWebService_serviceDesc = grpc.ServiceDesc{ MethodName: "updateHTTPWebCompression", Handler: _HTTPWebService_UpdateHTTPWebCompression_Handler, }, + { + MethodName: "updateHTTPWebWebP", + Handler: _HTTPWebService_UpdateHTTPWebWebP_Handler, + }, { MethodName: "updateHTTPWebCharset", Handler: _HTTPWebService_UpdateHTTPWebCharset_Handler, diff --git a/pkg/rpc/protos/service_http_web.proto b/pkg/rpc/protos/service_http_web.proto index 1a8b5c9..417332c 100644 --- a/pkg/rpc/protos/service_http_web.proto +++ b/pkg/rpc/protos/service_http_web.proto @@ -22,6 +22,9 @@ service HTTPWebService { // 更改压缩配置 rpc updateHTTPWebCompression (UpdateHTTPWebCompressionRequest) returns (RPCSuccess); + // 更改WebP配置 + rpc updateHTTPWebWebP (UpdateHTTPWebWebPRequest) returns (RPCSuccess); + // 更改字符集配置 rpc updateHTTPWebCharset (UpdateHTTPWebCharsetRequest) returns (RPCSuccess); @@ -113,6 +116,12 @@ message UpdateHTTPWebCompressionRequest { bytes compressionJSON = 2; } +// 更改WebP配置 +message UpdateHTTPWebWebPRequest { + int64 webId = 1; + bytes webpJSON = 2; +} + // 更改字符集配置 message UpdateHTTPWebCharsetRequest { int64 webId = 1; diff --git a/pkg/serverconfigs/http_web_config.go b/pkg/serverconfigs/http_web_config.go index 5f57a91..c961e8e 100644 --- a/pkg/serverconfigs/http_web_config.go +++ b/pkg/serverconfigs/http_web_config.go @@ -6,13 +6,12 @@ import ( ) type HTTPWebConfig struct { - Id int64 `yaml:"id" json:"id"` // ID - IsOn bool `yaml:"isOn" json:"isOn"` // 是否启用 - Locations []*HTTPLocationConfig `yaml:"locations" json:"locations"` // 路径规则 TODO - LocationRefs []*HTTPLocationRef `yaml:"locationRefs" json:"locationRefs"` // 路径规则应用 - //GzipRef *HTTPGzipRef `yaml:"gzipRef" json:"gzipRef"` // Gzip引用 - //Gzip *HTTPCompressGzipConfig `yaml:"gzip" json:"gzip"` // Gzip配置 - Compression *HTTPCompressionConfig `yaml:"compression" json:"compression"` // + Id int64 `yaml:"id" json:"id"` // ID + IsOn bool `yaml:"isOn" json:"isOn"` // 是否启用 + Locations []*HTTPLocationConfig `yaml:"locations" json:"locations"` // 路径规则 TODO + LocationRefs []*HTTPLocationRef `yaml:"locationRefs" json:"locationRefs"` // 路径规则应用 + Compression *HTTPCompressionConfig `yaml:"compression" json:"compression"` // 压缩配置 + WebP *WebPImageConfig `yaml:"webp" json:"webp"` // WebP配置 Charset *HTTPCharsetConfig `yaml:"charset" json:"charset"` // 字符编码 Shutdown *HTTPShutdownConfig `yaml:"shutdown" json:"shutdown"` // 临时关闭配置 Pages []*HTTPPageConfig `yaml:"pages" json:"pages"` // 特殊页面配置 @@ -234,6 +233,14 @@ func (this *HTTPWebConfig) Init() error { } } + // webp + if this.WebP != nil { + err := this.WebP.Init() + if err != nil { + return err + } + } + return nil } diff --git a/pkg/serverconfigs/image_webp_config.go b/pkg/serverconfigs/image_webp_config.go new file mode 100644 index 0000000..d6fb2e2 --- /dev/null +++ b/pkg/serverconfigs/image_webp_config.go @@ -0,0 +1,140 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package serverconfigs + +import ( + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" + "strings" +) + +// WebPImageConfig WebP配置 +type WebPImageConfig struct { + IsPrior bool `yaml:"isPrior" json:"isPrior"` + IsOn bool `yaml:"isOn" json:"isOn"` + + Quality int `yaml:"quality" json:"quality"` // 0-100 + + MinLength *shared.SizeCapacity `yaml:"minLength" json:"minLength"` // 最小压缩对象比如4m, 24k + MaxLength *shared.SizeCapacity `yaml:"maxLength" json:"maxLength"` // 最大压缩对象 + MimeTypes []string `yaml:"mimeTypes" json:"mimeTypes"` // 支持的MimeType,支持image/*这样的通配符使用 + Extensions []string `yaml:"extensions" json:"extensions"` // 文件扩展名,包含点符号,不区分大小写 + Conds *shared.HTTPRequestCondsConfig `yaml:"conds" json:"conds"` // 匹配条件 + + minLength int64 + maxLength int64 + mimeTypeRules []*shared.MimeTypeRule + extensions []string +} + +func (this *WebPImageConfig) Init() error { + if this.MinLength != nil { + this.minLength = this.MinLength.Bytes() + } + if this.MaxLength != nil { + this.maxLength = this.MaxLength.Bytes() + } + + if this.Conds != nil { + err := this.Conds.Init() + if err != nil { + return err + } + } + + // mime types + this.mimeTypeRules = []*shared.MimeTypeRule{} + for _, mimeType := range this.MimeTypes { + rule, err := shared.NewMimeTypeRule(mimeType) + if err != nil { + return err + } + this.mimeTypeRules = append(this.mimeTypeRules, rule) + } + + // extensions + this.extensions = []string{} + for _, ext := range this.Extensions { + ext = strings.ToLower(ext) + if len(ext) > 0 && ext[0] != '.' { + ext = "." + ext + } + this.extensions = append(this.extensions, ext) + } + + return nil +} + +// MatchResponse 是否匹配响应 +func (this *WebPImageConfig) MatchResponse(mimeType string, contentLength int64, requestExt string, formatter shared.Formatter) bool { + if this.Conds != nil && formatter != nil { + if !this.Conds.MatchRequest(formatter) { + return false + } + if !this.Conds.MatchResponse(formatter) { + return false + } + } + + // min length + if this.minLength > 0 && contentLength < this.minLength { + return false + } + + // max length + if this.maxLength > 0 && contentLength > this.maxLength { + return false + } + + // extensions + if len(this.extensions) > 0 { + if len(requestExt) > 0 { + for _, ext := range this.extensions { + if ext == requestExt { + if strings.Contains(mimeType, "image/") { + return true + } + } + } + } + } + + // mime types + if len(this.mimeTypeRules) > 0 { + if len(mimeType) > 0 { + var index = strings.Index(mimeType, ";") + if index >= 0 { + mimeType = mimeType[:index] + } + for _, rule := range this.mimeTypeRules { + if rule.Match(mimeType) { + return true + } + } + } + } + + // 如果没有指定条件,则所有的都能压缩 + if len(this.extensions) == 0 && len(this.mimeTypeRules) == 0 { + return true + } + + return false +} + +// MatchAccept 检查客户端是否能接受WebP +func (this *WebPImageConfig) MatchAccept(acceptContentTypes string) bool { + var t = "image/webp" + var index = strings.Index(acceptContentTypes, t) + if index < 0 { + return false + } + var l = len(acceptContentTypes) + if index > 0 && acceptContentTypes[index-1] != ',' { + return false + } + + if index+len(t) < l && acceptContentTypes[index+len(t)] != ',' { + return false + } + return true +} diff --git a/pkg/serverconfigs/image_webp_config_test.go b/pkg/serverconfigs/image_webp_config_test.go new file mode 100644 index 0000000..451f3b6 --- /dev/null +++ b/pkg/serverconfigs/image_webp_config_test.go @@ -0,0 +1,21 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package serverconfigs + +import ( + "github.com/iwind/TeaGo/assert" + "testing" +) + +func TestWebPImageConfig_MatchAccept(t *testing.T) { + var a = assert.NewAssertion(t) + { + var c = &WebPImageConfig{} + a.IsFalse(c.MatchAccept("")) + a.IsTrue(c.MatchAccept("image/webp")) + a.IsTrue(c.MatchAccept("image/webp,image/png")) + a.IsTrue(c.MatchAccept("image/jpeg,image/webp,image/png")) + a.IsFalse(c.MatchAccept("mimage/webp")) + a.IsFalse(c.MatchAccept("image/webpm")) + } +}