From 2bdb5c232aa2b95daa30d4bec93ddc17e0c70310 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Wed, 23 Sep 2020 18:43:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E5=A4=84=E5=A2=9E=E5=8A=A0=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E7=8B=AC=E7=AB=8B=E9=85=8D=E7=BD=AE=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/rpc/pb/model_http_web.pb.go | 51 +- pkg/rpc/pb/service_http_web.pb.go | 573 +++++++++++------- pkg/rpc/protos/model_http_web.proto | 3 - pkg/rpc/protos/service_http_web.proto | 23 +- pkg/serverconfigs/http_access_log_ref.go | 3 +- pkg/serverconfigs/http_cache_ref.go | 1 + pkg/serverconfigs/http_charset_config.go | 7 + pkg/serverconfigs/http_firewall_ref.go | 1 + pkg/serverconfigs/http_gzip_ref.go | 5 +- .../http_redirect_to_https_config.go | 3 +- pkg/serverconfigs/http_stat_config.go | 3 +- pkg/serverconfigs/http_web_config.go | 19 +- pkg/serverconfigs/http_websocket_config.go | 3 +- pkg/serverconfigs/http_websocket_ref.go | 3 +- pkg/serverconfigs/reverse_proxy_ref.go | 1 + .../shared/http_header_policy_ref.go | 7 + .../shared/http_headers_config.go | 6 +- 17 files changed, 416 insertions(+), 296 deletions(-) create mode 100644 pkg/serverconfigs/http_charset_config.go create mode 100644 pkg/serverconfigs/shared/http_header_policy_ref.go diff --git a/pkg/rpc/pb/model_http_web.pb.go b/pkg/rpc/pb/model_http_web.pb.go index dd560db..b67636f 100644 --- a/pkg/rpc/pb/model_http_web.pb.go +++ b/pkg/rpc/pb/model_http_web.pb.go @@ -30,12 +30,9 @@ type HTTPWeb struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - IsOn bool `protobuf:"varint,2,opt,name=isOn,proto3" json:"isOn,omitempty"` - Root string `protobuf:"bytes,3,opt,name=root,proto3" json:"root,omitempty"` - Charset string `protobuf:"bytes,4,opt,name=charset,proto3" json:"charset,omitempty"` - RequestHeaderPolicyId int64 `protobuf:"varint,5,opt,name=requestHeaderPolicyId,proto3" json:"requestHeaderPolicyId,omitempty"` - ResponseHeaderPolicyId int64 `protobuf:"varint,6,opt,name=responseHeaderPolicyId,proto3" json:"responseHeaderPolicyId,omitempty"` + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + IsOn bool `protobuf:"varint,2,opt,name=isOn,proto3" json:"isOn,omitempty"` + Root string `protobuf:"bytes,3,opt,name=root,proto3" json:"root,omitempty"` } func (x *HTTPWeb) Reset() { @@ -91,46 +88,16 @@ func (x *HTTPWeb) GetRoot() string { return "" } -func (x *HTTPWeb) GetCharset() string { - if x != nil { - return x.Charset - } - return "" -} - -func (x *HTTPWeb) GetRequestHeaderPolicyId() int64 { - if x != nil { - return x.RequestHeaderPolicyId - } - return 0 -} - -func (x *HTTPWeb) GetResponseHeaderPolicyId() int64 { - if x != nil { - return x.ResponseHeaderPolicyId - } - return 0 -} - var File_model_http_web_proto protoreflect.FileDescriptor var file_model_http_web_proto_rawDesc = []byte{ 0x0a, 0x14, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x77, 0x65, 0x62, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0xc9, 0x01, 0x0a, 0x07, 0x48, - 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, - 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x36, - 0x0a, 0x16, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x41, 0x0a, 0x07, 0x48, 0x54, + 0x54, 0x50, 0x57, 0x65, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x42, 0x06, 0x5a, + 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pkg/rpc/pb/service_http_web.pb.go b/pkg/rpc/pb/service_http_web.pb.go index 630394a..4df3784 100644 --- a/pkg/rpc/pb/service_http_web.pb.go +++ b/pkg/rpc/pb/service_http_web.pb.go @@ -432,8 +432,8 @@ type UpdateHTTPWebCharsetRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WebId int64 `protobuf:"varint,1,opt,name=webId,proto3" json:"webId,omitempty"` - Charset string `protobuf:"bytes,2,opt,name=charset,proto3" json:"charset,omitempty"` + WebId int64 `protobuf:"varint,1,opt,name=webId,proto3" json:"webId,omitempty"` + CharsetJSON []byte `protobuf:"bytes,2,opt,name=charsetJSON,proto3" json:"charsetJSON,omitempty"` } func (x *UpdateHTTPWebCharsetRequest) Reset() { @@ -475,25 +475,25 @@ func (x *UpdateHTTPWebCharsetRequest) GetWebId() int64 { return 0 } -func (x *UpdateHTTPWebCharsetRequest) GetCharset() string { +func (x *UpdateHTTPWebCharsetRequest) GetCharsetJSON() []byte { if x != nil { - return x.Charset + return x.CharsetJSON } - return "" + return nil } // 更改请求Header策略 -type UpdateHTTPWebRequestHeaderPolicyRequest struct { +type UpdateHTTPWebRequestHeaderRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WebId int64 `protobuf:"varint,1,opt,name=webId,proto3" json:"webId,omitempty"` - HeaderPolicyId int64 `protobuf:"varint,2,opt,name=headerPolicyId,proto3" json:"headerPolicyId,omitempty"` + WebId int64 `protobuf:"varint,1,opt,name=webId,proto3" json:"webId,omitempty"` + HeaderJSON []byte `protobuf:"bytes,2,opt,name=headerJSON,proto3" json:"headerJSON,omitempty"` } -func (x *UpdateHTTPWebRequestHeaderPolicyRequest) Reset() { - *x = UpdateHTTPWebRequestHeaderPolicyRequest{} +func (x *UpdateHTTPWebRequestHeaderRequest) Reset() { + *x = UpdateHTTPWebRequestHeaderRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_http_web_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -501,13 +501,13 @@ func (x *UpdateHTTPWebRequestHeaderPolicyRequest) Reset() { } } -func (x *UpdateHTTPWebRequestHeaderPolicyRequest) String() string { +func (x *UpdateHTTPWebRequestHeaderRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateHTTPWebRequestHeaderPolicyRequest) ProtoMessage() {} +func (*UpdateHTTPWebRequestHeaderRequest) ProtoMessage() {} -func (x *UpdateHTTPWebRequestHeaderPolicyRequest) ProtoReflect() protoreflect.Message { +func (x *UpdateHTTPWebRequestHeaderRequest) ProtoReflect() protoreflect.Message { mi := &file_service_http_web_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -519,37 +519,37 @@ func (x *UpdateHTTPWebRequestHeaderPolicyRequest) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use UpdateHTTPWebRequestHeaderPolicyRequest.ProtoReflect.Descriptor instead. -func (*UpdateHTTPWebRequestHeaderPolicyRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use UpdateHTTPWebRequestHeaderRequest.ProtoReflect.Descriptor instead. +func (*UpdateHTTPWebRequestHeaderRequest) Descriptor() ([]byte, []int) { return file_service_http_web_proto_rawDescGZIP(), []int{9} } -func (x *UpdateHTTPWebRequestHeaderPolicyRequest) GetWebId() int64 { +func (x *UpdateHTTPWebRequestHeaderRequest) GetWebId() int64 { if x != nil { return x.WebId } return 0 } -func (x *UpdateHTTPWebRequestHeaderPolicyRequest) GetHeaderPolicyId() int64 { +func (x *UpdateHTTPWebRequestHeaderRequest) GetHeaderJSON() []byte { if x != nil { - return x.HeaderPolicyId + return x.HeaderJSON } - return 0 + return nil } // 更改响应Header策略 -type UpdateHTTPWebResponseHeaderPolicyRequest struct { +type UpdateHTTPWebResponseHeaderRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WebId int64 `protobuf:"varint,1,opt,name=webId,proto3" json:"webId,omitempty"` - HeaderPolicyId int64 `protobuf:"varint,2,opt,name=headerPolicyId,proto3" json:"headerPolicyId,omitempty"` + WebId int64 `protobuf:"varint,1,opt,name=webId,proto3" json:"webId,omitempty"` + HeaderJSON []byte `protobuf:"bytes,2,opt,name=headerJSON,proto3" json:"headerJSON,omitempty"` } -func (x *UpdateHTTPWebResponseHeaderPolicyRequest) Reset() { - *x = UpdateHTTPWebResponseHeaderPolicyRequest{} +func (x *UpdateHTTPWebResponseHeaderRequest) Reset() { + *x = UpdateHTTPWebResponseHeaderRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_http_web_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -557,13 +557,13 @@ func (x *UpdateHTTPWebResponseHeaderPolicyRequest) Reset() { } } -func (x *UpdateHTTPWebResponseHeaderPolicyRequest) String() string { +func (x *UpdateHTTPWebResponseHeaderRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateHTTPWebResponseHeaderPolicyRequest) ProtoMessage() {} +func (*UpdateHTTPWebResponseHeaderRequest) ProtoMessage() {} -func (x *UpdateHTTPWebResponseHeaderPolicyRequest) ProtoReflect() protoreflect.Message { +func (x *UpdateHTTPWebResponseHeaderRequest) ProtoReflect() protoreflect.Message { mi := &file_service_http_web_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -575,23 +575,23 @@ func (x *UpdateHTTPWebResponseHeaderPolicyRequest) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use UpdateHTTPWebResponseHeaderPolicyRequest.ProtoReflect.Descriptor instead. -func (*UpdateHTTPWebResponseHeaderPolicyRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use UpdateHTTPWebResponseHeaderRequest.ProtoReflect.Descriptor instead. +func (*UpdateHTTPWebResponseHeaderRequest) Descriptor() ([]byte, []int) { return file_service_http_web_proto_rawDescGZIP(), []int{10} } -func (x *UpdateHTTPWebResponseHeaderPolicyRequest) GetWebId() int64 { +func (x *UpdateHTTPWebResponseHeaderRequest) GetWebId() int64 { if x != nil { return x.WebId } return 0 } -func (x *UpdateHTTPWebResponseHeaderPolicyRequest) GetHeaderPolicyId() int64 { +func (x *UpdateHTTPWebResponseHeaderRequest) GetHeaderJSON() []byte { if x != nil { - return x.HeaderPolicyId + return x.HeaderJSON } - return 0 + return nil } // 更改Shutdown @@ -986,6 +986,62 @@ func (x *UpdateHTTPWebLocationsRequest) GetLocationsJSON() []byte { return nil } +// 跳转到HTTPS +type UpdateHTTPWebRedirectToHTTPSRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WebId int64 `protobuf:"varint,1,opt,name=webId,proto3" json:"webId,omitempty"` + RedirectToHTTPSJSON []byte `protobuf:"bytes,2,opt,name=redirectToHTTPSJSON,proto3" json:"redirectToHTTPSJSON,omitempty"` +} + +func (x *UpdateHTTPWebRedirectToHTTPSRequest) Reset() { + *x = UpdateHTTPWebRedirectToHTTPSRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_http_web_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateHTTPWebRedirectToHTTPSRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateHTTPWebRedirectToHTTPSRequest) ProtoMessage() {} + +func (x *UpdateHTTPWebRedirectToHTTPSRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_http_web_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateHTTPWebRedirectToHTTPSRequest.ProtoReflect.Descriptor instead. +func (*UpdateHTTPWebRedirectToHTTPSRequest) Descriptor() ([]byte, []int) { + return file_service_http_web_proto_rawDescGZIP(), []int{18} +} + +func (x *UpdateHTTPWebRedirectToHTTPSRequest) GetWebId() int64 { + if x != nil { + return x.WebId + } + return 0 +} + +func (x *UpdateHTTPWebRedirectToHTTPSRequest) GetRedirectToHTTPSJSON() []byte { + if x != nil { + return x.RedirectToHTTPSJSON + } + return nil +} + var File_service_http_web_proto protoreflect.FileDescriptor var file_service_http_web_proto_rawDesc = []byte{ @@ -1022,142 +1078,152 @@ var file_service_http_web_proto_rawDesc = []byte{ 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, 0x67, 0x7a, 0x69, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x67, 0x7a, 0x69, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4d, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, + 0x67, 0x7a, 0x69, 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, 0x18, 0x0a, - 0x07, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x22, 0x67, 0x0a, 0x27, 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, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 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, 0x26, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, - 0x22, 0x68, 0x0a, 0x28, 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, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 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, 0x26, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 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, + 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, 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, + 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, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, + 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, 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, 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, 0x32, 0xe2, 0x09, 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, + 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, 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, 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, 0x32, 0xa9, 0x0a, 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, 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, 0x3f, 0x0a, - 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x12, 0x18, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x47, 0x0a, 0x11, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x47, 0x7a, 0x69, 0x70, 0x12, 0x1c, 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, - 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x47, - 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x47, - 0x7a, 0x69, 0x70, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, - 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x47, 0x7a, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4d, 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, - 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x65, 0x0a, 0x20, 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, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2b, 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, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x67, 0x0a, - 0x21, 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, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x12, 0x2c, 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, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, - 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4f, 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 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, 0x14, 0x2e, 0x70, + 0x62, 0x47, 0x7a, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x12, 0x51, 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, - 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x47, 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, - 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, - 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, + 0x73, 0x73, 0x12, 0x4d, 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, 0x14, 0x2e, 0x70, 0x62, + 0x2e, 0x52, 0x50, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x12, 0x59, 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x5b, 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4f, 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, + 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x51, 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, + 0x61, 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 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, + 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x51, 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x47, 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, 0x14, 0x2e, 0x70, 0x62, + 0x2e, 0x52, 0x50, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x12, 0x49, 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4f, 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x06, 0x5a, - 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x51, 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, + 0x52, 0x50, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x12, 0x5d, 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, + 0x50, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, + 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1172,39 +1238,40 @@ 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, 18) +var file_service_http_web_proto_msgTypes = make([]protoimpl.MessageInfo, 19) var file_service_http_web_proto_goTypes = []interface{}{ - (*CreateHTTPWebRequest)(nil), // 0: pb.CreateHTTPWebRequest - (*CreateHTTPWebResponse)(nil), // 1: pb.CreateHTTPWebResponse - (*FindEnabledHTTPWebRequest)(nil), // 2: pb.FindEnabledHTTPWebRequest - (*FindEnabledHTTPWebResponse)(nil), // 3: pb.FindEnabledHTTPWebResponse - (*FindEnabledHTTPWebConfigRequest)(nil), // 4: pb.FindEnabledHTTPWebConfigRequest - (*FindEnabledHTTPWebConfigResponse)(nil), // 5: pb.FindEnabledHTTPWebConfigResponse - (*UpdateHTTPWebRequest)(nil), // 6: pb.UpdateHTTPWebRequest - (*UpdateHTTPWebGzipRequest)(nil), // 7: pb.UpdateHTTPWebGzipRequest - (*UpdateHTTPWebCharsetRequest)(nil), // 8: pb.UpdateHTTPWebCharsetRequest - (*UpdateHTTPWebRequestHeaderPolicyRequest)(nil), // 9: pb.UpdateHTTPWebRequestHeaderPolicyRequest - (*UpdateHTTPWebResponseHeaderPolicyRequest)(nil), // 10: pb.UpdateHTTPWebResponseHeaderPolicyRequest - (*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 - (*HTTPWeb)(nil), // 18: pb.HTTPWeb - (*RPCUpdateSuccess)(nil), // 19: pb.RPCUpdateSuccess + (*CreateHTTPWebRequest)(nil), // 0: pb.CreateHTTPWebRequest + (*CreateHTTPWebResponse)(nil), // 1: pb.CreateHTTPWebResponse + (*FindEnabledHTTPWebRequest)(nil), // 2: pb.FindEnabledHTTPWebRequest + (*FindEnabledHTTPWebResponse)(nil), // 3: pb.FindEnabledHTTPWebResponse + (*FindEnabledHTTPWebConfigRequest)(nil), // 4: pb.FindEnabledHTTPWebConfigRequest + (*FindEnabledHTTPWebConfigResponse)(nil), // 5: pb.FindEnabledHTTPWebConfigResponse + (*UpdateHTTPWebRequest)(nil), // 6: pb.UpdateHTTPWebRequest + (*UpdateHTTPWebGzipRequest)(nil), // 7: pb.UpdateHTTPWebGzipRequest + (*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 + (*HTTPWeb)(nil), // 19: pb.HTTPWeb + (*RPCUpdateSuccess)(nil), // 20: pb.RPCUpdateSuccess } var file_service_http_web_proto_depIdxs = []int32{ - 18, // 0: pb.FindEnabledHTTPWebResponse.web:type_name -> pb.HTTPWeb + 19, // 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.updateHTTPWebGzip:input_type -> pb.UpdateHTTPWebGzipRequest 8, // 6: pb.HTTPWebService.updateHTTPWebCharset:input_type -> pb.UpdateHTTPWebCharsetRequest - 9, // 7: pb.HTTPWebService.updateHTTPWebRequestHeaderPolicy:input_type -> pb.UpdateHTTPWebRequestHeaderPolicyRequest - 10, // 8: pb.HTTPWebService.updateHTTPWebResponseHeaderPolicy:input_type -> pb.UpdateHTTPWebResponseHeaderPolicyRequest + 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 @@ -1212,23 +1279,25 @@ var file_service_http_web_proto_depIdxs = []int32{ 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 - 1, // 16: pb.HTTPWebService.createHTTPWeb:output_type -> pb.CreateHTTPWebResponse - 3, // 17: pb.HTTPWebService.findEnabledHTTPWeb:output_type -> pb.FindEnabledHTTPWebResponse - 5, // 18: pb.HTTPWebService.findEnabledHTTPWebConfig:output_type -> pb.FindEnabledHTTPWebConfigResponse - 19, // 19: pb.HTTPWebService.updateHTTPWeb:output_type -> pb.RPCUpdateSuccess - 19, // 20: pb.HTTPWebService.updateHTTPWebGzip:output_type -> pb.RPCUpdateSuccess - 19, // 21: pb.HTTPWebService.updateHTTPWebCharset:output_type -> pb.RPCUpdateSuccess - 19, // 22: pb.HTTPWebService.updateHTTPWebRequestHeaderPolicy:output_type -> pb.RPCUpdateSuccess - 19, // 23: pb.HTTPWebService.updateHTTPWebResponseHeaderPolicy:output_type -> pb.RPCUpdateSuccess - 19, // 24: pb.HTTPWebService.updateHTTPWebShutdown:output_type -> pb.RPCUpdateSuccess - 19, // 25: pb.HTTPWebService.updateHTTPWebPages:output_type -> pb.RPCUpdateSuccess - 19, // 26: pb.HTTPWebService.updateHTTPWebAccessLog:output_type -> pb.RPCUpdateSuccess - 19, // 27: pb.HTTPWebService.updateHTTPWebStat:output_type -> pb.RPCUpdateSuccess - 19, // 28: pb.HTTPWebService.updateHTTPWebCache:output_type -> pb.RPCUpdateSuccess - 19, // 29: pb.HTTPWebService.updateHTTPWebFirewall:output_type -> pb.RPCUpdateSuccess - 19, // 30: pb.HTTPWebService.updateHTTPWebLocations:output_type -> pb.RPCUpdateSuccess - 16, // [16:31] is the sub-list for method output_type - 1, // [1:16] is the sub-list for method input_type + 18, // 16: pb.HTTPWebService.updateHTTPWebRedirectToHTTPS:input_type -> pb.UpdateHTTPWebRedirectToHTTPSRequest + 1, // 17: pb.HTTPWebService.createHTTPWeb:output_type -> pb.CreateHTTPWebResponse + 3, // 18: pb.HTTPWebService.findEnabledHTTPWeb:output_type -> pb.FindEnabledHTTPWebResponse + 5, // 19: pb.HTTPWebService.findEnabledHTTPWebConfig:output_type -> pb.FindEnabledHTTPWebConfigResponse + 20, // 20: pb.HTTPWebService.updateHTTPWeb:output_type -> pb.RPCUpdateSuccess + 20, // 21: pb.HTTPWebService.updateHTTPWebGzip:output_type -> pb.RPCUpdateSuccess + 20, // 22: pb.HTTPWebService.updateHTTPWebCharset:output_type -> pb.RPCUpdateSuccess + 20, // 23: pb.HTTPWebService.updateHTTPWebRequestHeader:output_type -> pb.RPCUpdateSuccess + 20, // 24: pb.HTTPWebService.updateHTTPWebResponseHeader:output_type -> pb.RPCUpdateSuccess + 20, // 25: pb.HTTPWebService.updateHTTPWebShutdown:output_type -> pb.RPCUpdateSuccess + 20, // 26: pb.HTTPWebService.updateHTTPWebPages:output_type -> pb.RPCUpdateSuccess + 20, // 27: pb.HTTPWebService.updateHTTPWebAccessLog:output_type -> pb.RPCUpdateSuccess + 20, // 28: pb.HTTPWebService.updateHTTPWebStat:output_type -> pb.RPCUpdateSuccess + 20, // 29: pb.HTTPWebService.updateHTTPWebCache:output_type -> pb.RPCUpdateSuccess + 20, // 30: pb.HTTPWebService.updateHTTPWebFirewall:output_type -> pb.RPCUpdateSuccess + 20, // 31: pb.HTTPWebService.updateHTTPWebLocations:output_type -> pb.RPCUpdateSuccess + 20, // 32: pb.HTTPWebService.updateHTTPWebRedirectToHTTPS:output_type -> pb.RPCUpdateSuccess + 17, // [17:33] is the sub-list for method output_type + 1, // [1:17] 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 @@ -1351,7 +1420,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.(*UpdateHTTPWebRequestHeaderPolicyRequest); i { + switch v := v.(*UpdateHTTPWebRequestHeaderRequest); i { case 0: return &v.state case 1: @@ -1363,7 +1432,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.(*UpdateHTTPWebResponseHeaderPolicyRequest); i { + switch v := v.(*UpdateHTTPWebResponseHeaderRequest); i { case 0: return &v.state case 1: @@ -1458,6 +1527,18 @@ func file_service_http_web_proto_init() { return nil } } + file_service_http_web_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateHTTPWebRedirectToHTTPSRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -1465,7 +1546,7 @@ func file_service_http_web_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_service_http_web_proto_rawDesc, NumEnums: 0, - NumMessages: 18, + NumMessages: 19, NumExtensions: 0, NumServices: 1, }, @@ -1504,9 +1585,9 @@ type HTTPWebServiceClient interface { // 更改字符集配置 UpdateHTTPWebCharset(ctx context.Context, in *UpdateHTTPWebCharsetRequest, opts ...grpc.CallOption) (*RPCUpdateSuccess, error) // 更改请求Header策略 - UpdateHTTPWebRequestHeaderPolicy(ctx context.Context, in *UpdateHTTPWebRequestHeaderPolicyRequest, opts ...grpc.CallOption) (*RPCUpdateSuccess, error) + UpdateHTTPWebRequestHeader(ctx context.Context, in *UpdateHTTPWebRequestHeaderRequest, opts ...grpc.CallOption) (*RPCUpdateSuccess, error) // 更改响应Header策略 - UpdateHTTPWebResponseHeaderPolicy(ctx context.Context, in *UpdateHTTPWebResponseHeaderPolicyRequest, opts ...grpc.CallOption) (*RPCUpdateSuccess, error) + UpdateHTTPWebResponseHeader(ctx context.Context, in *UpdateHTTPWebResponseHeaderRequest, opts ...grpc.CallOption) (*RPCUpdateSuccess, error) // 更改Shutdown UpdateHTTPWebShutdown(ctx context.Context, in *UpdateHTTPWebShutdownRequest, opts ...grpc.CallOption) (*RPCUpdateSuccess, error) // 更改Pages @@ -1521,6 +1602,8 @@ type HTTPWebServiceClient interface { UpdateHTTPWebFirewall(ctx context.Context, in *UpdateHTTPWebFirewallRequest, opts ...grpc.CallOption) (*RPCUpdateSuccess, error) // 更改路径规则配置 UpdateHTTPWebLocations(ctx context.Context, in *UpdateHTTPWebLocationsRequest, opts ...grpc.CallOption) (*RPCUpdateSuccess, error) + // 跳转到HTTPS + UpdateHTTPWebRedirectToHTTPS(ctx context.Context, in *UpdateHTTPWebRedirectToHTTPSRequest, opts ...grpc.CallOption) (*RPCUpdateSuccess, error) } type hTTPWebServiceClient struct { @@ -1585,18 +1668,18 @@ func (c *hTTPWebServiceClient) UpdateHTTPWebCharset(ctx context.Context, in *Upd return out, nil } -func (c *hTTPWebServiceClient) UpdateHTTPWebRequestHeaderPolicy(ctx context.Context, in *UpdateHTTPWebRequestHeaderPolicyRequest, opts ...grpc.CallOption) (*RPCUpdateSuccess, error) { +func (c *hTTPWebServiceClient) UpdateHTTPWebRequestHeader(ctx context.Context, in *UpdateHTTPWebRequestHeaderRequest, opts ...grpc.CallOption) (*RPCUpdateSuccess, error) { out := new(RPCUpdateSuccess) - err := c.cc.Invoke(ctx, "/pb.HTTPWebService/updateHTTPWebRequestHeaderPolicy", in, out, opts...) + err := c.cc.Invoke(ctx, "/pb.HTTPWebService/updateHTTPWebRequestHeader", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *hTTPWebServiceClient) UpdateHTTPWebResponseHeaderPolicy(ctx context.Context, in *UpdateHTTPWebResponseHeaderPolicyRequest, opts ...grpc.CallOption) (*RPCUpdateSuccess, error) { +func (c *hTTPWebServiceClient) UpdateHTTPWebResponseHeader(ctx context.Context, in *UpdateHTTPWebResponseHeaderRequest, opts ...grpc.CallOption) (*RPCUpdateSuccess, error) { out := new(RPCUpdateSuccess) - err := c.cc.Invoke(ctx, "/pb.HTTPWebService/updateHTTPWebResponseHeaderPolicy", in, out, opts...) + err := c.cc.Invoke(ctx, "/pb.HTTPWebService/updateHTTPWebResponseHeader", in, out, opts...) if err != nil { return nil, err } @@ -1666,6 +1749,15 @@ func (c *hTTPWebServiceClient) UpdateHTTPWebLocations(ctx context.Context, in *U return out, nil } +func (c *hTTPWebServiceClient) UpdateHTTPWebRedirectToHTTPS(ctx context.Context, in *UpdateHTTPWebRedirectToHTTPSRequest, opts ...grpc.CallOption) (*RPCUpdateSuccess, error) { + out := new(RPCUpdateSuccess) + err := c.cc.Invoke(ctx, "/pb.HTTPWebService/updateHTTPWebRedirectToHTTPS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // HTTPWebServiceServer is the server API for HTTPWebService service. type HTTPWebServiceServer interface { // 创建Web配置 @@ -1681,9 +1773,9 @@ type HTTPWebServiceServer interface { // 更改字符集配置 UpdateHTTPWebCharset(context.Context, *UpdateHTTPWebCharsetRequest) (*RPCUpdateSuccess, error) // 更改请求Header策略 - UpdateHTTPWebRequestHeaderPolicy(context.Context, *UpdateHTTPWebRequestHeaderPolicyRequest) (*RPCUpdateSuccess, error) + UpdateHTTPWebRequestHeader(context.Context, *UpdateHTTPWebRequestHeaderRequest) (*RPCUpdateSuccess, error) // 更改响应Header策略 - UpdateHTTPWebResponseHeaderPolicy(context.Context, *UpdateHTTPWebResponseHeaderPolicyRequest) (*RPCUpdateSuccess, error) + UpdateHTTPWebResponseHeader(context.Context, *UpdateHTTPWebResponseHeaderRequest) (*RPCUpdateSuccess, error) // 更改Shutdown UpdateHTTPWebShutdown(context.Context, *UpdateHTTPWebShutdownRequest) (*RPCUpdateSuccess, error) // 更改Pages @@ -1698,6 +1790,8 @@ type HTTPWebServiceServer interface { UpdateHTTPWebFirewall(context.Context, *UpdateHTTPWebFirewallRequest) (*RPCUpdateSuccess, error) // 更改路径规则配置 UpdateHTTPWebLocations(context.Context, *UpdateHTTPWebLocationsRequest) (*RPCUpdateSuccess, error) + // 跳转到HTTPS + UpdateHTTPWebRedirectToHTTPS(context.Context, *UpdateHTTPWebRedirectToHTTPSRequest) (*RPCUpdateSuccess, error) } // UnimplementedHTTPWebServiceServer can be embedded to have forward compatible implementations. @@ -1722,11 +1816,11 @@ func (*UnimplementedHTTPWebServiceServer) UpdateHTTPWebGzip(context.Context, *Up func (*UnimplementedHTTPWebServiceServer) UpdateHTTPWebCharset(context.Context, *UpdateHTTPWebCharsetRequest) (*RPCUpdateSuccess, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateHTTPWebCharset not implemented") } -func (*UnimplementedHTTPWebServiceServer) UpdateHTTPWebRequestHeaderPolicy(context.Context, *UpdateHTTPWebRequestHeaderPolicyRequest) (*RPCUpdateSuccess, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateHTTPWebRequestHeaderPolicy not implemented") +func (*UnimplementedHTTPWebServiceServer) UpdateHTTPWebRequestHeader(context.Context, *UpdateHTTPWebRequestHeaderRequest) (*RPCUpdateSuccess, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateHTTPWebRequestHeader not implemented") } -func (*UnimplementedHTTPWebServiceServer) UpdateHTTPWebResponseHeaderPolicy(context.Context, *UpdateHTTPWebResponseHeaderPolicyRequest) (*RPCUpdateSuccess, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateHTTPWebResponseHeaderPolicy not implemented") +func (*UnimplementedHTTPWebServiceServer) UpdateHTTPWebResponseHeader(context.Context, *UpdateHTTPWebResponseHeaderRequest) (*RPCUpdateSuccess, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateHTTPWebResponseHeader not implemented") } func (*UnimplementedHTTPWebServiceServer) UpdateHTTPWebShutdown(context.Context, *UpdateHTTPWebShutdownRequest) (*RPCUpdateSuccess, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateHTTPWebShutdown not implemented") @@ -1749,6 +1843,9 @@ func (*UnimplementedHTTPWebServiceServer) UpdateHTTPWebFirewall(context.Context, func (*UnimplementedHTTPWebServiceServer) UpdateHTTPWebLocations(context.Context, *UpdateHTTPWebLocationsRequest) (*RPCUpdateSuccess, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateHTTPWebLocations not implemented") } +func (*UnimplementedHTTPWebServiceServer) UpdateHTTPWebRedirectToHTTPS(context.Context, *UpdateHTTPWebRedirectToHTTPSRequest) (*RPCUpdateSuccess, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateHTTPWebRedirectToHTTPS not implemented") +} func RegisterHTTPWebServiceServer(s *grpc.Server, srv HTTPWebServiceServer) { s.RegisterService(&_HTTPWebService_serviceDesc, srv) @@ -1862,38 +1959,38 @@ func _HTTPWebService_UpdateHTTPWebCharset_Handler(srv interface{}, ctx context.C return interceptor(ctx, in, info, handler) } -func _HTTPWebService_UpdateHTTPWebRequestHeaderPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdateHTTPWebRequestHeaderPolicyRequest) +func _HTTPWebService_UpdateHTTPWebRequestHeader_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateHTTPWebRequestHeaderRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(HTTPWebServiceServer).UpdateHTTPWebRequestHeaderPolicy(ctx, in) + return srv.(HTTPWebServiceServer).UpdateHTTPWebRequestHeader(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/pb.HTTPWebService/UpdateHTTPWebRequestHeaderPolicy", + FullMethod: "/pb.HTTPWebService/UpdateHTTPWebRequestHeader", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HTTPWebServiceServer).UpdateHTTPWebRequestHeaderPolicy(ctx, req.(*UpdateHTTPWebRequestHeaderPolicyRequest)) + return srv.(HTTPWebServiceServer).UpdateHTTPWebRequestHeader(ctx, req.(*UpdateHTTPWebRequestHeaderRequest)) } return interceptor(ctx, in, info, handler) } -func _HTTPWebService_UpdateHTTPWebResponseHeaderPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdateHTTPWebResponseHeaderPolicyRequest) +func _HTTPWebService_UpdateHTTPWebResponseHeader_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateHTTPWebResponseHeaderRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(HTTPWebServiceServer).UpdateHTTPWebResponseHeaderPolicy(ctx, in) + return srv.(HTTPWebServiceServer).UpdateHTTPWebResponseHeader(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/pb.HTTPWebService/UpdateHTTPWebResponseHeaderPolicy", + FullMethod: "/pb.HTTPWebService/UpdateHTTPWebResponseHeader", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HTTPWebServiceServer).UpdateHTTPWebResponseHeaderPolicy(ctx, req.(*UpdateHTTPWebResponseHeaderPolicyRequest)) + return srv.(HTTPWebServiceServer).UpdateHTTPWebResponseHeader(ctx, req.(*UpdateHTTPWebResponseHeaderRequest)) } return interceptor(ctx, in, info, handler) } @@ -2024,6 +2121,24 @@ func _HTTPWebService_UpdateHTTPWebLocations_Handler(srv interface{}, ctx context return interceptor(ctx, in, info, handler) } +func _HTTPWebService_UpdateHTTPWebRedirectToHTTPS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateHTTPWebRedirectToHTTPSRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HTTPWebServiceServer).UpdateHTTPWebRedirectToHTTPS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.HTTPWebService/UpdateHTTPWebRedirectToHTTPS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HTTPWebServiceServer).UpdateHTTPWebRedirectToHTTPS(ctx, req.(*UpdateHTTPWebRedirectToHTTPSRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _HTTPWebService_serviceDesc = grpc.ServiceDesc{ ServiceName: "pb.HTTPWebService", HandlerType: (*HTTPWebServiceServer)(nil), @@ -2053,12 +2168,12 @@ var _HTTPWebService_serviceDesc = grpc.ServiceDesc{ Handler: _HTTPWebService_UpdateHTTPWebCharset_Handler, }, { - MethodName: "updateHTTPWebRequestHeaderPolicy", - Handler: _HTTPWebService_UpdateHTTPWebRequestHeaderPolicy_Handler, + MethodName: "updateHTTPWebRequestHeader", + Handler: _HTTPWebService_UpdateHTTPWebRequestHeader_Handler, }, { - MethodName: "updateHTTPWebResponseHeaderPolicy", - Handler: _HTTPWebService_UpdateHTTPWebResponseHeaderPolicy_Handler, + MethodName: "updateHTTPWebResponseHeader", + Handler: _HTTPWebService_UpdateHTTPWebResponseHeader_Handler, }, { MethodName: "updateHTTPWebShutdown", @@ -2088,6 +2203,10 @@ var _HTTPWebService_serviceDesc = grpc.ServiceDesc{ MethodName: "updateHTTPWebLocations", Handler: _HTTPWebService_UpdateHTTPWebLocations_Handler, }, + { + MethodName: "updateHTTPWebRedirectToHTTPS", + Handler: _HTTPWebService_UpdateHTTPWebRedirectToHTTPS_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "service_http_web.proto", diff --git a/pkg/rpc/protos/model_http_web.proto b/pkg/rpc/protos/model_http_web.proto index 4e62f3b..633ada1 100644 --- a/pkg/rpc/protos/model_http_web.proto +++ b/pkg/rpc/protos/model_http_web.proto @@ -7,7 +7,4 @@ message HTTPWeb { int64 id = 1; bool isOn = 2; string root = 3; - string charset = 4; - int64 requestHeaderPolicyId = 5; - int64 responseHeaderPolicyId = 6; } \ No newline at end of file diff --git a/pkg/rpc/protos/service_http_web.proto b/pkg/rpc/protos/service_http_web.proto index 131c116..2ab88ed 100644 --- a/pkg/rpc/protos/service_http_web.proto +++ b/pkg/rpc/protos/service_http_web.proto @@ -26,10 +26,10 @@ service HTTPWebService { rpc updateHTTPWebCharset (UpdateHTTPWebCharsetRequest) returns (RPCUpdateSuccess); // 更改请求Header策略 - rpc updateHTTPWebRequestHeaderPolicy (UpdateHTTPWebRequestHeaderPolicyRequest) returns (RPCUpdateSuccess); + rpc updateHTTPWebRequestHeader (UpdateHTTPWebRequestHeaderRequest) returns (RPCUpdateSuccess); // 更改响应Header策略 - rpc updateHTTPWebResponseHeaderPolicy (UpdateHTTPWebResponseHeaderPolicyRequest) returns (RPCUpdateSuccess); + rpc updateHTTPWebResponseHeader (UpdateHTTPWebResponseHeaderRequest) returns (RPCUpdateSuccess); // 更改Shutdown rpc updateHTTPWebShutdown (UpdateHTTPWebShutdownRequest) returns (RPCUpdateSuccess); @@ -51,6 +51,9 @@ service HTTPWebService { // 更改路径规则配置 rpc updateHTTPWebLocations (UpdateHTTPWebLocationsRequest) returns (RPCUpdateSuccess); + + // 跳转到HTTPS + rpc updateHTTPWebRedirectToHTTPS (UpdateHTTPWebRedirectToHTTPSRequest) returns (RPCUpdateSuccess); } // 创建Web配置 @@ -95,19 +98,19 @@ message UpdateHTTPWebGzipRequest { // 更改字符集配置 message UpdateHTTPWebCharsetRequest { int64 webId = 1; - string charset = 2; + bytes charsetJSON = 2; } // 更改请求Header策略 -message UpdateHTTPWebRequestHeaderPolicyRequest { +message UpdateHTTPWebRequestHeaderRequest { int64 webId = 1; - int64 headerPolicyId = 2; + bytes headerJSON = 2; } // 更改响应Header策略 -message UpdateHTTPWebResponseHeaderPolicyRequest { +message UpdateHTTPWebResponseHeaderRequest { int64 webId = 1; - int64 headerPolicyId = 2; + bytes headerJSON = 2; } // 更改Shutdown @@ -151,3 +154,9 @@ message UpdateHTTPWebLocationsRequest { int64 webId = 1; bytes locationsJSON = 3; } + +// 跳转到HTTPS +message UpdateHTTPWebRedirectToHTTPSRequest { + int64 webId = 1; + bytes redirectToHTTPSJSON = 2; +} \ No newline at end of file diff --git a/pkg/serverconfigs/http_access_log_ref.go b/pkg/serverconfigs/http_access_log_ref.go index 9efc804..c9d0e3f 100644 --- a/pkg/serverconfigs/http_access_log_ref.go +++ b/pkg/serverconfigs/http_access_log_ref.go @@ -2,7 +2,8 @@ package serverconfigs // 代理访问日志配置 type HTTPAccessLogRef struct { - IsOn bool `yaml:"isOn" json:"isOn"` + IsPrior bool `yaml:"isPrior" json:"isPrior"` // 是否覆盖 + IsOn bool `yaml:"isOn" json:"isOn"` // 是否启用 Fields []int `yaml:"fields" json:"fields"` // 记录的字段 diff --git a/pkg/serverconfigs/http_cache_ref.go b/pkg/serverconfigs/http_cache_ref.go index 532c7b9..8db4938 100644 --- a/pkg/serverconfigs/http_cache_ref.go +++ b/pkg/serverconfigs/http_cache_ref.go @@ -1,6 +1,7 @@ package serverconfigs type HTTPCacheRef struct { + IsPrior bool `yaml:"isPrior" json:"isPrior"` // 是否覆盖 IsOn bool `yaml:"isOn" json:"isOn"` // 是否开启 CachePolicyId int64 `yaml:"cachePolicyId" json:"cachePolicyId"` // 缓存策略ID } diff --git a/pkg/serverconfigs/http_charset_config.go b/pkg/serverconfigs/http_charset_config.go new file mode 100644 index 0000000..26a1b8e --- /dev/null +++ b/pkg/serverconfigs/http_charset_config.go @@ -0,0 +1,7 @@ +package serverconfigs + +type HTTPCharsetConfig struct { + IsPrior bool `yaml:"isPrior" json:"isPrior"` // 是否覆盖 + IsOn bool `yaml:"isOn" json:"isOn"` // 是否启用 + Charset string `yaml:"charset" json:"charset"` // 字符集 +} diff --git a/pkg/serverconfigs/http_firewall_ref.go b/pkg/serverconfigs/http_firewall_ref.go index b0e77c9..e5cb4db 100644 --- a/pkg/serverconfigs/http_firewall_ref.go +++ b/pkg/serverconfigs/http_firewall_ref.go @@ -1,6 +1,7 @@ package serverconfigs type HTTPFirewallRef struct { + IsPrior bool `yaml:"isPrior" json:"isPrior"` IsOn bool `yaml:"isOn" json:"isOn"` FirewallPolicyId int64 `yaml:"firewallPolicyId" json:"firewallPolicyId"` } diff --git a/pkg/serverconfigs/http_gzip_ref.go b/pkg/serverconfigs/http_gzip_ref.go index e994712..378f21d 100644 --- a/pkg/serverconfigs/http_gzip_ref.go +++ b/pkg/serverconfigs/http_gzip_ref.go @@ -1,6 +1,7 @@ package serverconfigs type HTTPGzipRef struct { - IsOn bool `yaml:"isOn" json:"isOn"` - GzipId int64 `yaml:"gzipId" json:"gzipId"` + IsPrior bool `yaml:"isPrior" json:"isPrior"` // 是否覆盖 + IsOn bool `yaml:"isOn" json:"isOn"` // 是否开启 + GzipId int64 `yaml:"gzipId" json:"gzipId"` // 使用的配置ID } diff --git a/pkg/serverconfigs/http_redirect_to_https_config.go b/pkg/serverconfigs/http_redirect_to_https_config.go index 5b9f6ae..9131929 100644 --- a/pkg/serverconfigs/http_redirect_to_https_config.go +++ b/pkg/serverconfigs/http_redirect_to_https_config.go @@ -3,5 +3,6 @@ package serverconfigs // 跳转到HTTPS配置 // TODO 支持跳转的状态码选择 type HTTPRedirectToHTTPSConfig struct { - IsOn bool `yaml:"isOn" json:"isOn"` + IsPrior bool `yaml:"isPrior" json:"isPrior"` // 是否覆盖 + IsOn bool `yaml:"isOn" json:"isOn"` // 是否开启 } diff --git a/pkg/serverconfigs/http_stat_config.go b/pkg/serverconfigs/http_stat_config.go index 9301595..f10617c 100644 --- a/pkg/serverconfigs/http_stat_config.go +++ b/pkg/serverconfigs/http_stat_config.go @@ -1,7 +1,8 @@ package serverconfigs type HTTPStatRef struct { - IsOn bool `yaml:"isOn" json:"isOn"` // 是否开启 + IsPrior bool `yaml:"isPrior" json:"isPrior"` // 是否覆盖 + IsOn bool `yaml:"isOn" json:"isOn"` // 是否开启 } func (this *HTTPStatRef) Init() error { diff --git a/pkg/serverconfigs/http_web_config.go b/pkg/serverconfigs/http_web_config.go index f518096..b461cb5 100644 --- a/pkg/serverconfigs/http_web_config.go +++ b/pkg/serverconfigs/http_web_config.go @@ -3,27 +3,30 @@ package serverconfigs import "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" 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"` + 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 *HTTPGzipConfig `yaml:"gzip" json:"gzip"` // Gzip配置 - Charset string `yaml:"charset" json:"charset"` // 字符编码 + Charset *HTTPCharsetConfig `yaml:"charset" json:"charset"` // 字符编码 Shutdown *HTTPShutdownConfig `yaml:"shutdown" json:"shutdown"` // 临时关闭配置 Pages []*HTTPPageConfig `yaml:"pages" json:"pages"` // 特殊页面配置 RedirectToHttps *HTTPRedirectToHTTPSConfig `yaml:"redirectToHttps" json:"redirectToHttps"` // 是否自动跳转到Https Root string `yaml:"root" json:"root"` // 资源根目录 TODO Indexes []string `yaml:"indexes" json:"indexes"` // 默认首页文件 MaxRequestBodySize string `yaml:"maxRequestBodySize" json:"maxRequestBodySize"` // 请求body最大尺寸 - RequestHeaders *shared.HTTPHeaderPolicy `yaml:"requestHeaders" json:"requestHeaders"` // 请求Header - ResponseHeaders *shared.HTTPHeaderPolicy `yaml:"responseHeaders" json:"responseHeaders"` // 响应Header` AccessLogRef *HTTPAccessLogRef `yaml:"accessLog" json:"accessLog"` // 访问日志配置 StatRef *HTTPStatRef `yaml:"statRef" json:"statRef"` // 统计配置 CacheRef *HTTPCacheRef `yaml:"cacheRef" json:"cacheRef"` // 缓存配置 FirewallRef *HTTPFirewallRef `yaml:"firewallRef" json:"firewallRef"` // 防火墙设置 WebsocketRef *HTTPWebsocketRef `yaml:"websocketRef" json:"websocketRef"` // Websocket应用配置 Websocket *HTTPWebsocketConfig `yaml:"websocket" json:"websocket"` // Websocket配置 + + RequestHeaderPolicyRef *shared.HTTPHeaderPolicyRef `yaml:"requestHeaderPolicyRef" json:"requestHeaderPolicyRef"` // 请求Header + RequestHeaderPolicy *shared.HTTPHeaderPolicy `yaml:"requestHeaderPolicy" json:"requestHeaderPolicy"` // 请求Header策略 + ResponseHeaderPolicyRef *shared.HTTPHeaderPolicyRef `yaml:"responseHeaderPolicyRef" json:"responseHeaderPolicyRef"` // 响应Header` + ResponseHeaderPolicy *shared.HTTPHeaderPolicy `yaml:"responseHeaderPolicy" json:"responseHeaderPolicy"` // 响应Header策略 } func (this *HTTPWebConfig) Init() error { diff --git a/pkg/serverconfigs/http_websocket_config.go b/pkg/serverconfigs/http_websocket_config.go index 89c711d..d870643 100644 --- a/pkg/serverconfigs/http_websocket_config.go +++ b/pkg/serverconfigs/http_websocket_config.go @@ -9,7 +9,8 @@ import ( // websocket设置 type HTTPWebsocketConfig struct { - IsOn bool `yaml:"isOn" json:"isOn"` // 是否开启 + Id int64 `yaml:"id" json:"id"` // ID + IsOn bool `yaml:"isOn" json:"isOn"` // 是否开启 // 握手超时时间 HandshakeTimeout *shared.TimeDuration `yaml:"handshakeTimeout" json:"handshakeTimeout"` diff --git a/pkg/serverconfigs/http_websocket_ref.go b/pkg/serverconfigs/http_websocket_ref.go index 9839a69..9d3001d 100644 --- a/pkg/serverconfigs/http_websocket_ref.go +++ b/pkg/serverconfigs/http_websocket_ref.go @@ -1,6 +1,7 @@ package serverconfigs type HTTPWebsocketRef struct { + IsPrior bool `yaml:"isPrior" json:"isPrior"` IsOn bool `yaml:"isOn" json:"isOn"` - WebsocketId int64 `yaml:"websocketId" json:"websocketIs"` + WebsocketId int64 `yaml:"websocketId" json:"websocketId"` } diff --git a/pkg/serverconfigs/reverse_proxy_ref.go b/pkg/serverconfigs/reverse_proxy_ref.go index 281995c..2a241c4 100644 --- a/pkg/serverconfigs/reverse_proxy_ref.go +++ b/pkg/serverconfigs/reverse_proxy_ref.go @@ -2,6 +2,7 @@ package serverconfigs // 反向代理引用 type ReverseProxyRef struct { + IsPrior bool `yaml:"isPrior" json:"isPrior"` // 是否覆盖 IsOn bool `yaml:"isOn" json:"isOn"` // 是否启用 ReverseProxyId int64 `yaml:"reverseProxyId" json:"reverseProxyId"` // 反向代理ID } diff --git a/pkg/serverconfigs/shared/http_header_policy_ref.go b/pkg/serverconfigs/shared/http_header_policy_ref.go new file mode 100644 index 0000000..6dcf497 --- /dev/null +++ b/pkg/serverconfigs/shared/http_header_policy_ref.go @@ -0,0 +1,7 @@ +package shared + +type HTTPHeaderPolicyRef struct { + IsPrior bool `yaml:"isPrior" json:"isPrior"` + IsOn bool `yaml:"isOn" json:"isOn"` + HeaderPolicyId int64 `yaml:"headerPolicyId" json:"headerPolicyId"` +} diff --git a/pkg/serverconfigs/shared/http_headers_config.go b/pkg/serverconfigs/shared/http_headers_config.go index a399ee3..9107f1e 100644 --- a/pkg/serverconfigs/shared/http_headers_config.go +++ b/pkg/serverconfigs/shared/http_headers_config.go @@ -2,8 +2,10 @@ package shared // HeaderList定义 type HTTPHeaderPolicy struct { - Id int64 `yaml:"id" json:"id"` - IsOn bool `yaml:"isOn" json:"isOn"` // TODO + Id int64 `yaml:"id" json:"id"` // ID + Name string `yaml:"name" json:"name"` // 名称 TODO + IsOn bool `yaml:"isOn" json:"isOn"` // 是否启用 TODO + Description string `yaml:"description" json:"description"` // 描述 TODO AddHeaders []*HTTPHeaderConfig `yaml:"addHeaders" json:"addHeaders"` // TODO AddTrailers []*HTTPHeaderConfig `yaml:"addTrailers" json:"addTrailers"` // TODO