Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
41ea2d0dda | ||
|
|
a4b68cd21c | ||
|
|
70d864191e | ||
|
|
9fdbaf92cc | ||
|
|
a75e57a8f7 | ||
|
|
9b187dadbe | ||
|
|
3ab783bbd0 | ||
|
|
0e95a5a4bc | ||
|
|
dcec62a1a2 | ||
|
|
9117af3021 | ||
|
|
65095d1290 | ||
|
|
380bf3e1c2 | ||
|
|
0090cf1e30 | ||
|
|
a24cbe43b6 | ||
|
|
0976b35357 | ||
|
|
84f8a7192e | ||
|
|
22479278b9 | ||
|
|
f27a55c2b6 | ||
|
|
106bd2ae87 | ||
|
|
ef4eb23226 | ||
|
|
d9a2284936 | ||
|
|
62027e95b2 | ||
|
|
551cb2f3c1 | ||
|
|
75dcaa7e7e | ||
|
|
c6952e794a | ||
|
|
7ad94bff2f |
@@ -1,5 +1,23 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
echo "starting ..."
|
||||
|
||||
#rm -f ../pkg/rpc/pb/*.pb.go
|
||||
|
||||
protoc --go_out=plugins=grpc:../pkg/rpc --proto_path=../pkg/rpc/protos ../pkg/rpc/protos/*.proto
|
||||
protoc --go_out=plugins=grpc:../pkg/rpc --proto_path=../pkg/rpc/protos ../pkg/rpc/protos/models/*.proto
|
||||
RESULT=$?
|
||||
if [ "${RESULT}" != "0" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
RESULT=`protoc --go_out=plugins=grpc:../pkg/rpc --proto_path=../pkg/rpc/protos ../pkg/rpc/protos/models/*.proto`
|
||||
RESULT=$?
|
||||
if [ "${RESULT}" != "0" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
# generate rpc.json
|
||||
./proto-json.sh --quiet
|
||||
|
||||
echo "ok"
|
||||
3
build/proto-json.sh
Executable file
3
build/proto-json.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
go run ../cmd/proto-json/main.go $1
|
||||
13514
build/rpc.json
Normal file
13514
build/rpc.json
Normal file
File diff suppressed because it is too large
Load Diff
273
cmd/proto-json/main.go
Normal file
273
cmd/proto-json/main.go
Normal file
@@ -0,0 +1,273 @@
|
||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"flag"
|
||||
"fmt"
|
||||
"github.com/iwind/TeaGo/Tea"
|
||||
_ "github.com/iwind/TeaGo/bootstrap"
|
||||
"github.com/iwind/TeaGo/types"
|
||||
"io/ioutil"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type ServiceInfo struct {
|
||||
Name string `json:"name"`
|
||||
Methods []*MethodInfo `json:"methods"`
|
||||
Filename string `json:"filename"`
|
||||
Doc string `json:"doc"`
|
||||
}
|
||||
|
||||
type MethodInfo struct {
|
||||
Name string `json:"name"`
|
||||
RequestMessageName string `json:"requestMessageName"`
|
||||
ResponseMessageName string `json:"responseMessageName"`
|
||||
Code string `json:"code"`
|
||||
Doc string `json:"doc"`
|
||||
}
|
||||
|
||||
type MessageInfo struct {
|
||||
Name string `json:"name"`
|
||||
Code string `json:"code"`
|
||||
Doc string `json:"doc"`
|
||||
}
|
||||
|
||||
type LinkInfo struct {
|
||||
Name string `json:"name"`
|
||||
Content string `json:"content"`
|
||||
}
|
||||
|
||||
type RPCList struct {
|
||||
Services []*ServiceInfo `json:"services"`
|
||||
Messages []*MessageInfo `json:"messages"`
|
||||
Links []*LinkInfo `json:"links"`
|
||||
}
|
||||
|
||||
func readComments(data []byte) string {
|
||||
var lines = bytes.Split(data, []byte{'\n'})
|
||||
var comments = [][]byte{}
|
||||
for i := len(lines) - 1; i >= 0; i-- {
|
||||
var line = bytes.TrimLeft(lines[i], " \t")
|
||||
if len(line) == 0 {
|
||||
comments = append([][]byte{{' '}}, comments...)
|
||||
continue
|
||||
}
|
||||
|
||||
if bytes.HasPrefix(line, []byte("//")) {
|
||||
line = bytes.TrimSpace(bytes.TrimLeft(line, "/"))
|
||||
comments = append([][]byte{line}, comments...)
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
return string(bytes.TrimSpace(bytes.Join(comments, []byte{'\n'})))
|
||||
}
|
||||
|
||||
// 生成JSON格式API列表
|
||||
func main() {
|
||||
var quiet = false
|
||||
flag.BoolVar(&quiet, "quiet", false, "")
|
||||
flag.Parse()
|
||||
|
||||
var services = []*ServiceInfo{}
|
||||
var messages = []*MessageInfo{}
|
||||
|
||||
{
|
||||
var dirs = []string{Tea.Root + "/../pkg/rpc/protos/", Tea.Root + "/../pkg/rpc/protos/models"}
|
||||
for _, dir := range dirs {
|
||||
func(dir string) {
|
||||
dir = filepath.Clean(dir)
|
||||
|
||||
files, err := filepath.Glob(dir + "/*.proto")
|
||||
if err != nil {
|
||||
fmt.Println("[ERROR]list proto files failed: " + err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
for _, path := range files {
|
||||
func(path string) {
|
||||
data, err := ioutil.ReadFile(path)
|
||||
if err != nil {
|
||||
fmt.Println("[ERROR]" + err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
// 先将rpc代码替换成临时代码
|
||||
var methodCodeMap = map[string][]byte{} // code => method
|
||||
var methodIndex = 0
|
||||
var methodReg = regexp.MustCompile(`rpc\s+(\w+)\s*\(\s*(\w+)\s*\)\s*returns\s*\(\s*(\w+)\s*\)\s*;`)
|
||||
data = methodReg.ReplaceAllFunc(data, func(methodData []byte) []byte {
|
||||
methodIndex++
|
||||
var code = "METHOD" + types.String(methodIndex)
|
||||
methodCodeMap[code] = methodData
|
||||
return []byte("\n" + code)
|
||||
})
|
||||
|
||||
// 服务列表
|
||||
// TODO 这里需要改进一下,当前实现方法如果方法注释里有括号(}),就会导致部分方法解析不到
|
||||
var serviceNameReg = regexp.MustCompile(`(?sU)\n\s*service\s+(\w+)\s*\{(.+)}`)
|
||||
var serviceMatches = serviceNameReg.FindAllSubmatch(data, -1)
|
||||
var serviceNamePositions = serviceNameReg.FindAllIndex(data, -1)
|
||||
for serviceMatchIndex, serviceMatch := range serviceMatches {
|
||||
var serviceName = string(serviceMatch[1])
|
||||
var serviceNamePosition = serviceNamePositions[serviceMatchIndex][0]
|
||||
var comment = readComments(data[:serviceNamePosition])
|
||||
|
||||
// 方法列表
|
||||
var methods = []*MethodInfo{}
|
||||
var serviceData = serviceMatch[2]
|
||||
var methodCodeReg = regexp.MustCompile(`\b(METHOD\d+)\b`)
|
||||
var methodCodeMatches = methodCodeReg.FindAllSubmatch(serviceData, -1)
|
||||
var methodCodePositions = methodCodeReg.FindAllIndex(serviceData, -1)
|
||||
for methodMatchIndex, methodMatch := range methodCodeMatches {
|
||||
var methodCode = string(methodMatch[1])
|
||||
var methodData = methodCodeMap[methodCode]
|
||||
var methodPieces = methodReg.FindSubmatch(methodData)
|
||||
var methodCodePosition = methodCodePositions[methodMatchIndex]
|
||||
|
||||
methods = append(methods, &MethodInfo{
|
||||
Name: string(methodPieces[1]),
|
||||
RequestMessageName: string(methodPieces[2]),
|
||||
ResponseMessageName: string(methodPieces[3]),
|
||||
Code: string(methodData),
|
||||
Doc: readComments(serviceData[:methodCodePosition[0]]),
|
||||
})
|
||||
}
|
||||
|
||||
services = append(services, &ServiceInfo{
|
||||
Name: serviceName,
|
||||
Methods: methods,
|
||||
Filename: filepath.Base(path),
|
||||
Doc: comment,
|
||||
})
|
||||
}
|
||||
|
||||
// 消息列表
|
||||
var topMessageCodeMap = map[string][]byte{} // code => message
|
||||
var allMessageCodeMap = map[string][]byte{}
|
||||
var messageCodeIndex = 0
|
||||
var messagesReg = regexp.MustCompile(`(?sU)\n\s*message\s+(\w+)\s*\{([^{}]+)\n\s*}`)
|
||||
var firstMessagesReg = regexp.MustCompile(`message\s+(\w+)`)
|
||||
var messageCodeREG = regexp.MustCompile(`MESSAGE\d+`)
|
||||
for {
|
||||
var hasMessage = false
|
||||
|
||||
data = messagesReg.ReplaceAllFunc(data, func(messageData []byte) []byte {
|
||||
messageCodeIndex++
|
||||
hasMessage = true
|
||||
|
||||
// 是否包含子Message
|
||||
var subMatches = messageCodeREG.FindAllSubmatch(messageData, -1)
|
||||
for _, subMatch := range subMatches {
|
||||
var subMatchCode = string(subMatch[0])
|
||||
delete(topMessageCodeMap, subMatchCode)
|
||||
}
|
||||
|
||||
var code = "MESSAGE" + types.String(messageCodeIndex)
|
||||
topMessageCodeMap[code] = messageData
|
||||
allMessageCodeMap[code] = messageData
|
||||
return []byte("\n" + code)
|
||||
})
|
||||
if !hasMessage {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
for messageCode, messageData := range topMessageCodeMap {
|
||||
// 替换其中的子Message
|
||||
for {
|
||||
if messageCodeREG.Match(messageData) {
|
||||
messageData = messageCodeREG.ReplaceAllFunc(messageData, func(messageCodeData []byte) []byte {
|
||||
return allMessageCodeMap[string(messageCodeData)]
|
||||
})
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// 注释
|
||||
var index = bytes.Index(data, []byte(messageCode))
|
||||
var messageName = string(firstMessagesReg.FindSubmatch(messageData)[1])
|
||||
messages = append(messages, &MessageInfo{
|
||||
Name: messageName,
|
||||
Code: string(bytes.TrimSpace(messageData)),
|
||||
Doc: readComments(data[:index]),
|
||||
})
|
||||
}
|
||||
}(path)
|
||||
}
|
||||
}(dir)
|
||||
}
|
||||
}
|
||||
|
||||
var countServices = len(services)
|
||||
var countMethods = 0
|
||||
var countMessages = len(messages)
|
||||
for _, service := range services {
|
||||
countMethods += len(service.Methods)
|
||||
}
|
||||
|
||||
// 链接
|
||||
var links = []*LinkInfo{}
|
||||
|
||||
// json links
|
||||
{
|
||||
var dirs = []string{Tea.Root + "/../pkg/rpc/jsons"}
|
||||
for _, dir := range dirs {
|
||||
func(dir string) {
|
||||
dir = filepath.Clean(dir)
|
||||
|
||||
files, err := filepath.Glob(dir + "/*.md")
|
||||
if err != nil {
|
||||
fmt.Println("[ERROR]list .md files failed: " + err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
for _, path := range files {
|
||||
func(path string) {
|
||||
var name = strings.TrimSuffix(filepath.Base(path), ".md")
|
||||
data, err := ioutil.ReadFile(path)
|
||||
if err != nil {
|
||||
fmt.Println("[ERROR]read '" + path + "' failed: " + err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
links = append(links, &LinkInfo{
|
||||
Name: "json:" + name,
|
||||
Content: string(data),
|
||||
})
|
||||
}(path)
|
||||
}
|
||||
}(dir)
|
||||
}
|
||||
}
|
||||
|
||||
var rpcList = &RPCList{
|
||||
Services: services,
|
||||
Messages: messages,
|
||||
Links: links,
|
||||
}
|
||||
jsonData, err := json.MarshalIndent(rpcList, "", " ")
|
||||
if err != nil {
|
||||
fmt.Println("[ERROR]marshal to json failed: " + err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
var jsonFile = Tea.Root + "/rpc.json"
|
||||
err = ioutil.WriteFile(jsonFile, jsonData, 0666)
|
||||
if err != nil {
|
||||
fmt.Println("[ERROR]write json to file failed: " + err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if !quiet {
|
||||
fmt.Println("services:", countServices, "methods:", countMethods, "messages:", countMessages)
|
||||
fmt.Println("===")
|
||||
fmt.Println("generated " + filepath.Base(jsonFile) + " successfully")
|
||||
}
|
||||
}
|
||||
11
go.mod
11
go.mod
@@ -1,15 +1,18 @@
|
||||
module github.com/TeaOSLab/EdgeCommon
|
||||
|
||||
go 1.15
|
||||
go 1.18
|
||||
|
||||
require (
|
||||
github.com/cespare/xxhash/v2 v2.1.1
|
||||
github.com/golang/protobuf v1.5.2
|
||||
github.com/iwind/TeaGo v0.0.0-20220304043459-0dd944a5b475
|
||||
golang.org/x/net v0.0.0-20220225172249-27dd8689420f
|
||||
golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8 // indirect
|
||||
google.golang.org/genproto v0.0.0-20220317150908-0efb43f6373e // indirect
|
||||
google.golang.org/grpc v1.45.0
|
||||
google.golang.org/protobuf v1.27.1
|
||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
|
||||
)
|
||||
|
||||
require (
|
||||
golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8 // indirect
|
||||
golang.org/x/text v0.3.7 // indirect
|
||||
google.golang.org/genproto v0.0.0-20220317150908-0efb43f6373e // indirect
|
||||
)
|
||||
|
||||
4
go.sum
4
go.sum
@@ -7,7 +7,6 @@ github.com/DataDog/sketches-go v0.0.0-20190923095040-43f19ad77ff7/go.mod h1:Q5Db
|
||||
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
||||
github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM=
|
||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||
github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
|
||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||
@@ -137,12 +136,9 @@ golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8 h1:OH54vjqzRWmbJ62fjuhxy7AxFFgoHN0/DPc/UrL8cAs=
|
||||
golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
|
||||
@@ -2,27 +2,71 @@ package configutils
|
||||
|
||||
import (
|
||||
"encoding/binary"
|
||||
"github.com/cespare/xxhash/v2"
|
||||
"math"
|
||||
"math/big"
|
||||
"net"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// IP2Long 将IP转换为整型
|
||||
// IPString2Long 将IP转换为整型
|
||||
// 注意IPv6没有顺序
|
||||
func IP2Long(ip string) uint64 {
|
||||
func IPString2Long(ip string) uint64 {
|
||||
if len(ip) == 0 {
|
||||
return 0
|
||||
}
|
||||
s := net.ParseIP(ip)
|
||||
if len(s) == 0 {
|
||||
var netIP = net.ParseIP(ip)
|
||||
if len(netIP) == 0 {
|
||||
return 0
|
||||
}
|
||||
return IP2Long(netIP)
|
||||
}
|
||||
|
||||
// IP2Long 将IP对象转换为整型
|
||||
func IP2Long(netIP net.IP) uint64 {
|
||||
if len(netIP) == 0 {
|
||||
return 0
|
||||
}
|
||||
|
||||
if strings.Contains(ip, ":") {
|
||||
return math.MaxUint32 + xxhash.Sum64(s)
|
||||
var b4 = netIP.To4()
|
||||
if b4 != nil {
|
||||
return uint64(binary.BigEndian.Uint32(b4.To4()))
|
||||
}
|
||||
return uint64(binary.BigEndian.Uint32(s.To4()))
|
||||
|
||||
var i = big.NewInt(0)
|
||||
i.SetBytes(netIP.To16())
|
||||
return i.Uint64()
|
||||
}
|
||||
|
||||
// IsIPv4 检查是否为IPv4
|
||||
func IsIPv4(netIP net.IP) bool {
|
||||
if len(netIP) == 0 {
|
||||
return false
|
||||
}
|
||||
return netIP.To4() != nil
|
||||
}
|
||||
|
||||
// IsIPv6 检查是否为IPv6
|
||||
func IsIPv6(netIP net.IP) bool {
|
||||
if len(netIP) == 0 {
|
||||
return false
|
||||
}
|
||||
return netIP.To4() == nil && netIP.To16() != nil
|
||||
}
|
||||
|
||||
// IPVersion 获取IP版本号
|
||||
func IPVersion(netIP net.IP) int {
|
||||
if len(netIP) == 0 {
|
||||
return 0
|
||||
}
|
||||
|
||||
if netIP.To4() != nil {
|
||||
return 4
|
||||
}
|
||||
|
||||
if netIP.To16() != nil {
|
||||
return 6
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
// ParseCIDR 计算CIDR最大值
|
||||
|
||||
@@ -1,11 +1,41 @@
|
||||
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
|
||||
|
||||
package configutils
|
||||
package configutils_test
|
||||
|
||||
import "testing"
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/configutils"
|
||||
"github.com/iwind/TeaGo/assert"
|
||||
"net"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestParseCIDR(t *testing.T) {
|
||||
t.Log(ParseCIDR("192.168.1.1/32"))
|
||||
t.Log(ParseCIDR("192.168.1.1/24"))
|
||||
t.Log(ParseCIDR("192.168.1.1/16"))
|
||||
t.Log(configutils.ParseCIDR("192.168.1.1/32"))
|
||||
t.Log(configutils.ParseCIDR("192.168.1.1/24"))
|
||||
t.Log(configutils.ParseCIDR("192.168.1.1/16"))
|
||||
}
|
||||
|
||||
func TestIPString2Long(t *testing.T) {
|
||||
for _, ip := range []string{"127.0.0.1", "192.168.1.100", "::1", "fd00:6868:6868:0:10ac:d056:3bf6:7452", "fd00:6868:6868:0:10ac:d056:3bf6:7453", "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "wrong ip"} {
|
||||
t.Log(fmt.Sprintf("%42s", ip), "=>", configutils.IPString2Long(ip))
|
||||
}
|
||||
}
|
||||
|
||||
func TestIsIPv4(t *testing.T) {
|
||||
t.Log(configutils.IsIPv4(net.ParseIP("192.168.1.100")))
|
||||
t.Log(configutils.IsIPv4(net.ParseIP("::1")))
|
||||
}
|
||||
|
||||
func TestIsIPv6(t *testing.T) {
|
||||
t.Log(configutils.IsIPv6(net.ParseIP("192.168.1.100")))
|
||||
t.Log(configutils.IsIPv6(net.ParseIP("::1")))
|
||||
}
|
||||
|
||||
func TestIPVersion(t *testing.T) {
|
||||
var a = assert.NewAssertion(t)
|
||||
a.IsTrue(configutils.IPVersion(net.ParseIP("192.168.1.100")) == 4)
|
||||
a.IsTrue(configutils.IPVersion(net.ParseIP("1.2.3")) == 0)
|
||||
a.IsTrue(configutils.IPVersion(net.ParseIP("::1")) == 6)
|
||||
a.IsTrue(configutils.IPVersion(net.ParseIP("2001:0db8:85a3:0000:0000:8a2e:0370:7334")) == 6)
|
||||
}
|
||||
|
||||
@@ -2,8 +2,9 @@ package dnsconfigs
|
||||
|
||||
// ClusterDNSConfig 集群的DNS设置
|
||||
type ClusterDNSConfig struct {
|
||||
CNameRecords []string `yaml:"cnameRecords" json:"cnameRecords"` // 自动加入的CNAME
|
||||
TTL int32 `yaml:"ttl" json:"ttl"` // 默认TTL,各个DNS服务商对记录的TTL的限制各有不同
|
||||
CNameRecords []string `yaml:"cnameRecords" json:"cnameRecords"` // 自动加入的CNAME
|
||||
TTL int32 `yaml:"ttl" json:"ttl"` // 默认TTL,各个DNS服务商对记录的TTL的限制各有不同
|
||||
CNameAsDomain bool `yaml:"cnameAsDomain" json:"cnameAsDomain"` // 是否可以像域名一样直接访问CNAME
|
||||
|
||||
NodesAutoSync bool `yaml:"nodesAutoSync" json:"nodesAutoSync"` // 是否自动同步节点状态
|
||||
ServersAutoSync bool `yaml:"serversAutoSync" json:"serversAutoSync"` // 是否自动同步服务状态
|
||||
|
||||
@@ -2,31 +2,107 @@
|
||||
|
||||
package dnsconfigs
|
||||
|
||||
import "github.com/TeaOSLab/EdgeCommon/pkg/configutils"
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/configutils"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared"
|
||||
"github.com/iwind/TeaGo/maps"
|
||||
"net"
|
||||
)
|
||||
|
||||
type RouteRangeType = string
|
||||
|
||||
const (
|
||||
RouteRangeTypeIP RouteRangeType = "ipRange"
|
||||
RouteRangeTypeIP RouteRangeType = "ipRange" // IP范围
|
||||
RouteRangeTypeCIDR RouteRangeType = "cidr" // CIDR
|
||||
RouteRangeTypeRegion RouteRangeType = "region" // 区域
|
||||
)
|
||||
|
||||
func AllRouteRangeTypes() []*shared.Definition {
|
||||
return []*shared.Definition{
|
||||
{
|
||||
Name: "IP范围",
|
||||
Code: RouteRangeTypeIP,
|
||||
},
|
||||
{
|
||||
Name: "CIDR",
|
||||
Code: RouteRangeTypeCIDR,
|
||||
},
|
||||
{
|
||||
Name: "区域",
|
||||
Code: RouteRangeTypeRegion,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// RouteRegionResolver 解析IP接口
|
||||
type RouteRegionResolver interface {
|
||||
Resolve(ip net.IP) (countryId int64, provinceId int64, cityId int64, providerId int64)
|
||||
}
|
||||
|
||||
// RouteRangeInterface 线路范围接口
|
||||
type RouteRangeInterface interface {
|
||||
// Init 初始化
|
||||
Init() error
|
||||
Contains(ip uint64) bool
|
||||
|
||||
// Contains 判断是否包含
|
||||
Contains(ip net.IP) bool
|
||||
|
||||
// SetRegionResolver 设置IP解析接口
|
||||
SetRegionResolver(resolver RouteRegionResolver)
|
||||
|
||||
// IsExcluding 是否为排除
|
||||
IsExcluding() bool
|
||||
}
|
||||
|
||||
type BaseRouteRange struct {
|
||||
IsReverse bool `json:"isReverse"`
|
||||
|
||||
routeRegionResolver RouteRegionResolver
|
||||
}
|
||||
|
||||
func (this *BaseRouteRange) SetRegionResolver(resolver RouteRegionResolver) {
|
||||
this.routeRegionResolver = resolver
|
||||
}
|
||||
|
||||
func (this *BaseRouteRange) IsExcluding() bool {
|
||||
return this.IsReverse
|
||||
}
|
||||
|
||||
// RouteRangeIPRange IP范围配置
|
||||
// IPv4和IPv6不能混用
|
||||
type RouteRangeIPRange struct {
|
||||
BaseRouteRange
|
||||
|
||||
IPFrom string `json:"ipFrom"`
|
||||
IPTo string `json:"ipTo"`
|
||||
|
||||
ipFromLong uint64
|
||||
ipToLong uint64
|
||||
|
||||
ipVersion int // 4|6
|
||||
}
|
||||
|
||||
func (this *RouteRangeIPRange) Init() error {
|
||||
this.ipFromLong = configutils.IP2Long(this.IPFrom)
|
||||
this.ipToLong = configutils.IP2Long(this.IPTo)
|
||||
var ipFrom = net.ParseIP(this.IPFrom)
|
||||
var ipTo = net.ParseIP(this.IPTo)
|
||||
if ipFrom == nil {
|
||||
return errors.New("invalid ipFrom '" + this.IPFrom + "'")
|
||||
}
|
||||
if ipTo == nil {
|
||||
return errors.New("invalid ipTo '" + this.IPTo + "'")
|
||||
}
|
||||
|
||||
var ipFromVersion = configutils.IPVersion(ipFrom)
|
||||
var ipToVersion = configutils.IPVersion(ipTo)
|
||||
if ipFromVersion != ipToVersion {
|
||||
return errors.New("ipFrom and ipTo version are not same")
|
||||
}
|
||||
this.ipVersion = ipFromVersion
|
||||
|
||||
this.ipFromLong = configutils.IP2Long(ipFrom)
|
||||
this.ipToLong = configutils.IP2Long(ipTo)
|
||||
|
||||
if this.ipFromLong > this.ipToLong {
|
||||
this.ipFromLong, this.ipToLong = this.ipToLong, this.ipFromLong
|
||||
@@ -35,6 +111,152 @@ func (this *RouteRangeIPRange) Init() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (this *RouteRangeIPRange) Contains(ip uint64) bool {
|
||||
return this.ipFromLong <= ip && this.ipToLong >= ip
|
||||
func (this *RouteRangeIPRange) Contains(netIP net.IP) bool {
|
||||
if len(netIP) == 0 {
|
||||
return false
|
||||
}
|
||||
|
||||
var version = configutils.IPVersion(netIP)
|
||||
if version != this.ipVersion {
|
||||
return false
|
||||
}
|
||||
|
||||
var ipLong = configutils.IP2Long(netIP)
|
||||
return ipLong >= this.ipFromLong && ipLong <= this.ipToLong
|
||||
}
|
||||
|
||||
// RouteRangeCIDR CIDR范围配置
|
||||
type RouteRangeCIDR struct {
|
||||
BaseRouteRange
|
||||
|
||||
CIDR string `json:"cidr"`
|
||||
|
||||
cidr *net.IPNet
|
||||
}
|
||||
|
||||
func (this *RouteRangeCIDR) Init() error {
|
||||
_, ipNet, err := net.ParseCIDR(this.CIDR)
|
||||
if err != nil {
|
||||
return errors.New("parse cidr failed: " + err.Error())
|
||||
}
|
||||
|
||||
this.cidr = ipNet
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (this *RouteRangeCIDR) Contains(netIP net.IP) bool {
|
||||
if netIP == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
if this.cidr == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
return this.cidr.Contains(netIP)
|
||||
}
|
||||
|
||||
// RouteRangeRegion 区域范围
|
||||
// country:ID, province:ID, city:ID, isp:ID
|
||||
type RouteRangeRegion struct {
|
||||
BaseRouteRange
|
||||
|
||||
Regions []*routeRegion `json:"regions"`
|
||||
}
|
||||
|
||||
func (this *RouteRangeRegion) Init() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (this *RouteRangeRegion) Contains(netIP net.IP) bool {
|
||||
if this.routeRegionResolver == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
if len(this.Regions) == 0 {
|
||||
return false
|
||||
}
|
||||
|
||||
countryId, provinceId, cityId, providerId := this.routeRegionResolver.Resolve(netIP)
|
||||
if countryId <= 0 && provinceId <= 0 && cityId <= 0 && providerId <= 0 {
|
||||
return false
|
||||
}
|
||||
|
||||
for _, region := range this.Regions {
|
||||
if region.Id <= 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
switch region.Type {
|
||||
case "country":
|
||||
if region.Id == countryId {
|
||||
return true
|
||||
}
|
||||
case "province":
|
||||
if region.Id == provinceId {
|
||||
return true
|
||||
}
|
||||
case "city":
|
||||
if region.Id == cityId {
|
||||
return true
|
||||
}
|
||||
case "isp":
|
||||
if region.Id == providerId {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
type routeRegion struct {
|
||||
Type string `json:"type"` // country|province|city|isp
|
||||
Id int64 `json:"id"`
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
// InitRangesFromJSON 从JSON中初始化线路范围
|
||||
func InitRangesFromJSON(rangesJSON []byte) (ranges []RouteRangeInterface, err error) {
|
||||
if len(rangesJSON) == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
var rangeMaps = []maps.Map{}
|
||||
err = json.Unmarshal(rangesJSON, &rangeMaps)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, rangeMap := range rangeMaps {
|
||||
var rangeType = rangeMap.GetString("type")
|
||||
paramsJSON, err := json.Marshal(rangeMap.Get("params"))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var r RouteRangeInterface
|
||||
|
||||
switch rangeType {
|
||||
case RouteRangeTypeIP:
|
||||
r = &RouteRangeIPRange{}
|
||||
case RouteRangeTypeCIDR:
|
||||
r = &RouteRangeCIDR{}
|
||||
case RouteRangeTypeRegion:
|
||||
r = &RouteRangeRegion{}
|
||||
default:
|
||||
return nil, errors.New("invalid route line type '" + rangeType + "'")
|
||||
}
|
||||
|
||||
err = json.Unmarshal(paramsJSON, r)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = r.Init()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
ranges = append(ranges, r)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
98
pkg/dnsconfigs/route_ranges_test.go
Normal file
98
pkg/dnsconfigs/route_ranges_test.go
Normal file
@@ -0,0 +1,98 @@
|
||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||
|
||||
package dnsconfigs
|
||||
|
||||
import (
|
||||
"github.com/iwind/TeaGo/assert"
|
||||
"net"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestRouteRangeIPRange_Contains(t *testing.T) {
|
||||
var a = assert.NewAssertion(t)
|
||||
|
||||
// ipv4
|
||||
{
|
||||
var r = &RouteRangeIPRange{
|
||||
IPFrom: "192.168.1.100",
|
||||
IPTo: "192.168.3.200",
|
||||
}
|
||||
err := r.Init()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
a.IsFalse(r.Contains(net.ParseIP("aaa")))
|
||||
a.IsTrue(r.Contains(net.ParseIP("192.168.1.200")))
|
||||
a.IsTrue(r.Contains(net.ParseIP("192.168.3.200")))
|
||||
a.IsFalse(r.Contains(net.ParseIP("192.168.4.1")))
|
||||
a.IsFalse(r.Contains(net.ParseIP("::1")))
|
||||
}
|
||||
|
||||
// ipv6
|
||||
{
|
||||
var prefix = "1:2:3:4:5:6"
|
||||
var r = &RouteRangeIPRange{
|
||||
IPFrom: prefix + ":1:8",
|
||||
IPTo: prefix + ":5:10",
|
||||
}
|
||||
err := r.Init()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
a.IsFalse(r.Contains(net.ParseIP("aaa")))
|
||||
a.IsTrue(r.Contains(net.ParseIP(prefix + ":3:4")))
|
||||
a.IsTrue(r.Contains(net.ParseIP(prefix + ":5:9")))
|
||||
a.IsTrue(r.Contains(net.ParseIP(prefix + ":5:10")))
|
||||
a.IsTrue(r.Contains(net.ParseIP(prefix + ":4:8")))
|
||||
a.IsFalse(r.Contains(net.ParseIP(prefix + ":5:11")))
|
||||
}
|
||||
|
||||
{
|
||||
var r = &RouteRangeCIDR{
|
||||
CIDR: "192.168.2.1/24",
|
||||
}
|
||||
err := r.Init()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
a.IsFalse(r.Contains(net.ParseIP("aaa")))
|
||||
a.IsTrue(r.Contains(net.ParseIP("192.168.2.1")))
|
||||
a.IsTrue(r.Contains(net.ParseIP("192.168.2.254")))
|
||||
a.IsTrue(r.Contains(net.ParseIP("192.168.2.100")))
|
||||
a.IsFalse(r.Contains(net.ParseIP("192.168.3.1")))
|
||||
a.IsFalse(r.Contains(net.ParseIP("192.168.1.1")))
|
||||
}
|
||||
|
||||
// reverse ipv4
|
||||
{
|
||||
var r = &RouteRangeIPRange{
|
||||
IPFrom: "192.168.1.100",
|
||||
IPTo: "192.168.3.200",
|
||||
}
|
||||
err := r.Init()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
a.IsFalse(r.Contains(net.ParseIP("aaa")))
|
||||
a.IsTrue(r.Contains(net.ParseIP("192.168.1.200")))
|
||||
a.IsTrue(r.Contains(net.ParseIP("192.168.3.200")))
|
||||
a.IsFalse(r.Contains(net.ParseIP("192.168.4.1")))
|
||||
}
|
||||
|
||||
// reverse cidr
|
||||
{
|
||||
var r = &RouteRangeCIDR{
|
||||
CIDR: "192.168.2.1/24",
|
||||
}
|
||||
err := r.Init()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
a.IsFalse(r.Contains(net.ParseIP("aaa")))
|
||||
a.IsTrue(r.Contains(net.ParseIP("192.168.2.1")))
|
||||
a.IsTrue(r.Contains(net.ParseIP("192.168.2.254")))
|
||||
a.IsTrue(r.Contains(net.ParseIP("192.168.2.100")))
|
||||
a.IsFalse(r.Contains(net.ParseIP("192.168.3.1")))
|
||||
a.IsFalse(r.Contains(net.ParseIP("192.168.1.1")))
|
||||
}
|
||||
}
|
||||
@@ -120,12 +120,12 @@ var AllDefaultChinaProvinceRoutes = []*Route{
|
||||
{
|
||||
Name: "河北省",
|
||||
Code: "china:province:heibei",
|
||||
AliasNames: []string{"河北省"},
|
||||
AliasNames: []string{"河北省", "河北"},
|
||||
},
|
||||
{
|
||||
Name: "山西省",
|
||||
Code: "china:province:shanxi",
|
||||
AliasNames: []string{"山西省"},
|
||||
AliasNames: []string{"山西省", "山西"},
|
||||
},
|
||||
{
|
||||
Name: "内蒙古自治区",
|
||||
@@ -135,17 +135,17 @@ var AllDefaultChinaProvinceRoutes = []*Route{
|
||||
{
|
||||
Name: "辽宁省",
|
||||
Code: "china:province:liaoning",
|
||||
AliasNames: []string{"辽宁省"},
|
||||
AliasNames: []string{"辽宁省", "辽宁"},
|
||||
},
|
||||
{
|
||||
Name: "吉林省",
|
||||
Code: "china:jilin",
|
||||
AliasNames: []string{"吉林省"},
|
||||
AliasNames: []string{"吉林省", "吉林"},
|
||||
},
|
||||
{
|
||||
Name: "黑龙江省",
|
||||
Code: "china:province:heilongjiang",
|
||||
AliasNames: []string{"黑龙江省"},
|
||||
AliasNames: []string{"黑龙江省", "黑龙江"},
|
||||
},
|
||||
{
|
||||
Name: "上海市",
|
||||
@@ -155,52 +155,52 @@ var AllDefaultChinaProvinceRoutes = []*Route{
|
||||
{
|
||||
Name: "江苏省",
|
||||
Code: "china:province:jiangsu",
|
||||
AliasNames: []string{"江苏省"},
|
||||
AliasNames: []string{"江苏省", "江苏"},
|
||||
},
|
||||
{
|
||||
Name: "浙江省",
|
||||
Code: "china:province:zhejiang",
|
||||
AliasNames: []string{"浙江省"},
|
||||
AliasNames: []string{"浙江省", "浙江"},
|
||||
},
|
||||
{
|
||||
Name: "安徽省",
|
||||
Code: "china:province:anhui",
|
||||
AliasNames: []string{"安徽省"},
|
||||
AliasNames: []string{"安徽省", "安徽"},
|
||||
},
|
||||
{
|
||||
Name: "福建省",
|
||||
Code: "china:province:fujian",
|
||||
AliasNames: []string{"福建省"},
|
||||
AliasNames: []string{"福建省", "福建"},
|
||||
},
|
||||
{
|
||||
Name: "江西省",
|
||||
Code: "china:province:jiangxi",
|
||||
AliasNames: []string{"江西省"},
|
||||
AliasNames: []string{"江西省", "江西"},
|
||||
},
|
||||
{
|
||||
Name: "山东省",
|
||||
Code: "china:province:shandong",
|
||||
AliasNames: []string{"山东省"},
|
||||
AliasNames: []string{"山东省", "山东"},
|
||||
},
|
||||
{
|
||||
Name: "河南省",
|
||||
Code: "china:province:henan",
|
||||
AliasNames: []string{"河南省"},
|
||||
AliasNames: []string{"河南省", "河南"},
|
||||
},
|
||||
{
|
||||
Name: "湖北省",
|
||||
Code: "china:province:hubei",
|
||||
AliasNames: []string{"湖北省"},
|
||||
AliasNames: []string{"湖北省", "湖北"},
|
||||
},
|
||||
{
|
||||
Name: "湖南省",
|
||||
Code: "china:province:hunan",
|
||||
AliasNames: []string{"湖南省"},
|
||||
AliasNames: []string{"湖南省", "湖南"},
|
||||
},
|
||||
{
|
||||
Name: "广东省",
|
||||
Code: "china:province:guangdong",
|
||||
AliasNames: []string{"广东省"},
|
||||
AliasNames: []string{"广东省", "广东"},
|
||||
},
|
||||
{
|
||||
Name: "广西壮族自治区",
|
||||
@@ -210,7 +210,7 @@ var AllDefaultChinaProvinceRoutes = []*Route{
|
||||
{
|
||||
Name: "海南省",
|
||||
Code: "china:province:hainan",
|
||||
AliasNames: []string{"海南省"},
|
||||
AliasNames: []string{"海南省", "海南"},
|
||||
},
|
||||
{
|
||||
Name: "重庆市",
|
||||
@@ -220,17 +220,17 @@ var AllDefaultChinaProvinceRoutes = []*Route{
|
||||
{
|
||||
Name: "四川省",
|
||||
Code: "china:province:sichuan",
|
||||
AliasNames: []string{"四川省"},
|
||||
AliasNames: []string{"四川省", "四川"},
|
||||
},
|
||||
{
|
||||
Name: "贵州省",
|
||||
Code: "china:province:guizhou",
|
||||
AliasNames: []string{"贵州省"},
|
||||
AliasNames: []string{"贵州省", "贵州"},
|
||||
},
|
||||
{
|
||||
Name: "云南省",
|
||||
Code: "china:province:yunnan",
|
||||
AliasNames: []string{"云南省"},
|
||||
AliasNames: []string{"云南省", "云南"},
|
||||
},
|
||||
{
|
||||
Name: "西藏自治区",
|
||||
@@ -240,17 +240,17 @@ var AllDefaultChinaProvinceRoutes = []*Route{
|
||||
{
|
||||
Name: "陕西省",
|
||||
Code: "china:province:shaanxi",
|
||||
AliasNames: []string{"陕西省"},
|
||||
AliasNames: []string{"陕西省", "陕西"},
|
||||
},
|
||||
{
|
||||
Name: "甘肃省",
|
||||
Code: "china:province:gansu",
|
||||
AliasNames: []string{"甘肃省"},
|
||||
AliasNames: []string{"甘肃省", "甘肃"},
|
||||
},
|
||||
{
|
||||
Name: "青海省",
|
||||
Code: "china:province:qinghai",
|
||||
AliasNames: []string{"青海省"},
|
||||
AliasNames: []string{"青海省", "青海"},
|
||||
},
|
||||
{
|
||||
Name: "宁夏回族自治区",
|
||||
@@ -275,7 +275,7 @@ var AllDefaultChinaProvinceRoutes = []*Route{
|
||||
{
|
||||
Name: "台湾省",
|
||||
Code: "china:province:tw",
|
||||
AliasNames: []string{"台湾省"},
|
||||
AliasNames: []string{"台湾省", "台湾"},
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ type NodeConfig struct {
|
||||
MaxCacheDiskCapacity *shared.SizeCapacity `yaml:"maxCacheDiskCapacity" json:"maxCacheDiskCapacity"` // 文件缓存容量
|
||||
MaxCacheMemoryCapacity *shared.SizeCapacity `yaml:"maxCacheMemoryCapacity" json:"maxCacheMemoryCapacity"` // 内容缓存容量
|
||||
MaxThreads int `yaml:"maxThreads" json:"maxThreads"` // 最大线程数
|
||||
DDOSProtection *ddosconfigs.ProtectionConfig `yaml:"ddosProtection" json:"ddosProtection"`
|
||||
DDoSProtection *ddosconfigs.ProtectionConfig `yaml:"ddosProtection" json:"ddosProtection"`
|
||||
|
||||
// 级别
|
||||
Level int32 `yaml:"level" json:"level"`
|
||||
@@ -78,6 +78,9 @@ type NodeConfig struct {
|
||||
// WebP
|
||||
WebPImagePolicies map[int64]*WebPImagePolicy `yaml:"webpImagePolicies" json:"webpImagePolicies"` // clusterId => *WebPImagePolicy
|
||||
|
||||
// UAM相关配置
|
||||
UAMPolicies map[int64]*UAMPolicy `yaml:"uamPolicies" yaml:"uamPolicies" json:"uamPolicies"` // clusterId => *UAMPolicy
|
||||
|
||||
// DNS
|
||||
DNSResolver *DNSResolverConfig `yaml:"dnsResolver" json:"dnsResolver"`
|
||||
|
||||
@@ -310,6 +313,16 @@ func (this *NodeConfig) Init() (err error, serverErrors []*ServerError) {
|
||||
}
|
||||
}
|
||||
|
||||
// uam policy
|
||||
if this.UAMPolicies != nil {
|
||||
for _, policy := range this.UAMPolicies {
|
||||
err = policy.Init()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// dns resolver
|
||||
if this.DNSResolver != nil {
|
||||
err = this.DNSResolver.Init()
|
||||
@@ -508,6 +521,14 @@ func (this *NodeConfig) FindWebPImagePolicyWithClusterId(clusterId int64) *WebPI
|
||||
return this.WebPImagePolicies[clusterId]
|
||||
}
|
||||
|
||||
// FindUAMPolicyWithClusterId 使用集群ID查找UAM策略
|
||||
func (this *NodeConfig) FindUAMPolicyWithClusterId(clusterId int64) *UAMPolicy {
|
||||
if this.UAMPolicies == nil {
|
||||
return nil
|
||||
}
|
||||
return this.UAMPolicies[clusterId]
|
||||
}
|
||||
|
||||
// SecretHash 对Id和Secret的Hash计算
|
||||
func (this *NodeConfig) SecretHash() string {
|
||||
return this.secretHash
|
||||
|
||||
@@ -25,6 +25,7 @@ type NodeStatus struct {
|
||||
Load5m float64 `json:"load5m"`
|
||||
Load15m float64 `json:"load15m"`
|
||||
ConnectionCount int `json:"connectionCount"` // 连接数
|
||||
ExePath string `json:"exePath"` // 可执行文件路径
|
||||
|
||||
TrafficInBytes uint64 `json:"trafficInBytes"`
|
||||
TrafficOutBytes uint64 `json:"trafficOutBytes"`
|
||||
|
||||
28
pkg/nodeconfigs/uam_policy.go
Normal file
28
pkg/nodeconfigs/uam_policy.go
Normal file
@@ -0,0 +1,28 @@
|
||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||
|
||||
package nodeconfigs
|
||||
|
||||
func init() {
|
||||
_ = DefaultUAMPolicy.Init()
|
||||
}
|
||||
|
||||
var DefaultUAMPolicy = &UAMPolicy{
|
||||
IsOn: true,
|
||||
AllowSearchEngines: true,
|
||||
DenySpiders: true,
|
||||
UITitle: "",
|
||||
UIBody: "",
|
||||
}
|
||||
|
||||
type UAMPolicy struct {
|
||||
IsOn bool `yaml:"isOn" json:"isOn"`
|
||||
AllowSearchEngines bool `yaml:"allowSearchEngines" json:"allowSearchEngines"` // 直接跳过常见搜索引擎
|
||||
DenySpiders bool `yaml:"denySpiders" json:"denySpiders"` // 拦截常见爬虫
|
||||
|
||||
UITitle string `yaml:"uiTitle" json:"uiTitle"` // 页面标题
|
||||
UIBody string `yaml:"uiBody" json:"uiBody"` // 页面内容
|
||||
}
|
||||
|
||||
func (this *UAMPolicy) Init() error {
|
||||
return nil
|
||||
}
|
||||
43
pkg/rpc/jsons/http_access_log_ref.md
Normal file
43
pkg/rpc/jsons/http_access_log_ref.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# 访问日志引用
|
||||
## 定义
|
||||
~~~json
|
||||
{
|
||||
"isPrior": "是否覆盖父级应用",
|
||||
"isOn": "是否启用配置",
|
||||
"fields": ["字段1", "字段2", ...] // 可以留空
|
||||
"status1": "是否启用状态1xx",
|
||||
"status2": "是否启用状态2xx",
|
||||
"status3": "是否启用状态3xx",
|
||||
"status4": "是否启用状态4xx",
|
||||
"status5": "是否启用状态5xx",
|
||||
"enableClientClosed": "是否记录客户端关闭事件",
|
||||
"firewallOnly": "是否只记录防火墙(WAF)相关日志"
|
||||
}
|
||||
~~~
|
||||
|
||||
### 字段值
|
||||
* `1` - 请求Header
|
||||
* `2` - 响应Header
|
||||
* `3` - 请求URL参数
|
||||
* `4` - Cookie
|
||||
* `5` - 扩展信息
|
||||
* `6` - Referer
|
||||
* `7` - UserAgent
|
||||
* `8` - 请求Body
|
||||
* `9` - 响应Body(目前不支持)
|
||||
|
||||
## 示例
|
||||
~~~json
|
||||
{
|
||||
"isPrior": true,
|
||||
"isOn": true,
|
||||
"fields": [],
|
||||
"status1": true,
|
||||
"status2": true,
|
||||
"status3": true,
|
||||
"status4": true,
|
||||
"status5": true,
|
||||
"enableClientClosed": true,
|
||||
"firewallOnly": true
|
||||
}
|
||||
~~~
|
||||
92
pkg/rpc/jsons/http_cache_config.md
Normal file
92
pkg/rpc/jsons/http_cache_config.md
Normal file
@@ -0,0 +1,92 @@
|
||||
# HTTP缓存配置
|
||||
## 定义
|
||||
~~~json
|
||||
{
|
||||
"isPrior": "是否覆盖上级配置",
|
||||
"isOn": "是否启用配置",
|
||||
"addStatusHeader": "是否增加命中状态Header(X-Cache)",
|
||||
"addAgeHeader": "是否增加Age Header",
|
||||
"enableCacheControlMaxAge": "是否支持Cache-Control: max-age=...",
|
||||
"disablePolicyRefs": "是否停用策略中定义的条件",
|
||||
"purgeIsOn": "是否允许使用Purge方法清理",
|
||||
"purgeKey": "Purge时使用的X-Edge-Purge-Key",
|
||||
"stale": "陈旧缓存使用策略",
|
||||
"cacheRefs": ["缓存条件1", "缓存条件2", ...]
|
||||
}
|
||||
~~~
|
||||
其中:
|
||||
* `缓存条件` - 参考 {json:http_cache_ref}
|
||||
|
||||
## 示例
|
||||
### 无缓存条件
|
||||
~~~json
|
||||
{
|
||||
"isPrior": true,
|
||||
"isOn": true,
|
||||
"addStatusHeader": true,
|
||||
"addAgeHeader": true,
|
||||
"enableCacheControlMaxAge": true,
|
||||
"disablePolicyRefs": false,
|
||||
"purgeIsOn": false,
|
||||
"purgeKey": "",
|
||||
"stale": null,
|
||||
"cacheRefs": []
|
||||
}
|
||||
~~~
|
||||
|
||||
### 加入缓存条件
|
||||
~~~json
|
||||
{
|
||||
"isPrior": true,
|
||||
"isOn": true,
|
||||
"addStatusHeader": true,
|
||||
"addAgeHeader": true,
|
||||
"enableCacheControlMaxAge": true,
|
||||
"disablePolicyRefs": false,
|
||||
"purgeIsOn": false,
|
||||
"purgeKey": "",
|
||||
"stale": null,
|
||||
"cacheRefs": [
|
||||
{
|
||||
"id": 0,
|
||||
"isOn": true,
|
||||
"key": "${scheme}://${host}${requestPath}${isArgs}${args}",
|
||||
"life": {"count": 2, "unit": "hour"},
|
||||
"status": [200],
|
||||
"maxSize": {"count": 32, "unit": "mb"},
|
||||
"minSize": {"count": 0, "unit": "kb"},
|
||||
"skipCacheControlValues": ["private", "no-cache", "no-store"],
|
||||
"skipSetCookie": true,
|
||||
"enableRequestCachePragma": false,
|
||||
"conds": {
|
||||
"isOn": true,
|
||||
"connector": "or",
|
||||
"groups": [
|
||||
{
|
||||
"isOn": true,
|
||||
"connector": "and",
|
||||
"conds": [
|
||||
{
|
||||
"type": "url-extension",
|
||||
"isRequest": true,
|
||||
"param": "${requestPathExtension}",
|
||||
"operator": "in",
|
||||
"value": "[\".css\",\".png\",\".js\",\".woff2\"]",
|
||||
"isReverse": false,
|
||||
"isCaseInsensitive": false,
|
||||
"typeName": "URL扩展名"
|
||||
}
|
||||
],
|
||||
"isReverse": false,
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
"allowChunkedEncoding": true,
|
||||
"allowPartialContent": false,
|
||||
"isReverse": false,
|
||||
"methods": []
|
||||
}
|
||||
]
|
||||
}
|
||||
~~~
|
||||
91
pkg/rpc/jsons/http_cache_ref.md
Normal file
91
pkg/rpc/jsons/http_cache_ref.md
Normal file
@@ -0,0 +1,91 @@
|
||||
# 缓存条件设置
|
||||
## 定义
|
||||
~~~json
|
||||
{
|
||||
"isOn": "是否启用配置",
|
||||
"key": "每个缓存的Key规则,里面可以有变量",
|
||||
"life": "缓存时长",
|
||||
"expiresTime": "客户端过期时间",
|
||||
"status": ["缓存的状态码1", "缓存的状态码2", ...],
|
||||
"minSize": "能够缓存的最小尺寸",
|
||||
"maxSize": "能够缓存的最大尺寸",
|
||||
"methods": ["支持的请求方法1", "支持的请求方法2", ...],
|
||||
"skipCacheControlValues": "可以跳过的响应的Cache-Control值",
|
||||
"skipSetCookie": "是否跳过响应的Set-Cookie Header",
|
||||
"enableRequestCachePragma": "是否支持客户端的Pragma: no-cache",
|
||||
"allowChunkedEncoding": "是否允许分片内容",
|
||||
"allowPartialContent": "支持分段内容缓存",
|
||||
"conds": "请求条件",
|
||||
"isReverse": "是否为反向条件,反向条件的不缓存"
|
||||
}
|
||||
~~~
|
||||
|
||||
## 示例
|
||||
~~~json
|
||||
{
|
||||
"isOn": true,
|
||||
"key": "${scheme}://${host}${requestURI}",
|
||||
"life": {
|
||||
"count": 1,
|
||||
"unit": "day"
|
||||
},
|
||||
"expiresTime": {
|
||||
"isPrior": true,
|
||||
"isOn": true,
|
||||
"overwrite": true,
|
||||
"autoCalculate": false,
|
||||
"duration": {
|
||||
"count": 1,
|
||||
"unit": "day"
|
||||
}
|
||||
},
|
||||
"status": [
|
||||
200
|
||||
],
|
||||
"minSize": {
|
||||
"count": 0,
|
||||
"unit": "kb"
|
||||
},
|
||||
"maxSize": {
|
||||
"count": 32,
|
||||
"unit": "mb"
|
||||
},
|
||||
"methods": [],
|
||||
"skipCacheControlValues": [
|
||||
"private",
|
||||
"no-cache",
|
||||
"no-store"
|
||||
],
|
||||
"skipSetCookie": true,
|
||||
"enableRequestCachePragma": false,
|
||||
"allowChunkedEncoding": true,
|
||||
"allowPartialContent": false,
|
||||
"conds": {
|
||||
"isOn": true,
|
||||
"connector": "or",
|
||||
"groups": [
|
||||
{
|
||||
"isOn": true,
|
||||
"connector": "and",
|
||||
"conds": [
|
||||
{
|
||||
"type": "url-extension",
|
||||
"isRequest": true,
|
||||
"param": "${requestPathExtension}",
|
||||
"operator": "in",
|
||||
"value": "[\".css\",\".png\",\".js\",\".woff2\"]",
|
||||
"isReverse": false,
|
||||
"isCaseInsensitive": false,
|
||||
"typeName": "URL扩展名"
|
||||
}
|
||||
],
|
||||
"isReverse": false,
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
"cachePolicy": null,
|
||||
"isReverse": false,
|
||||
"id": 1
|
||||
}
|
||||
~~~
|
||||
18
pkg/rpc/jsons/http_firewall_ref.md
Normal file
18
pkg/rpc/jsons/http_firewall_ref.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# HTTP防火墙(即WAF)引用
|
||||
## 定义
|
||||
~~~json
|
||||
{
|
||||
"isPrior": "是否覆盖上级配置",
|
||||
"isOn": "是否启用配置",
|
||||
"firewallPolicyId": "WAF策略ID"
|
||||
}
|
||||
~~~
|
||||
|
||||
## 示例
|
||||
~~~json
|
||||
{
|
||||
"isPrior": true,
|
||||
"isOn": true,
|
||||
"firewallPolicyId": 123
|
||||
}
|
||||
~~~
|
||||
31
pkg/rpc/jsons/http_remote_addr_config.md
Normal file
31
pkg/rpc/jsons/http_remote_addr_config.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# HTTP获取客户端IP地址方式配置
|
||||
## 定义
|
||||
~~~json
|
||||
{
|
||||
"isPrior": "是否覆盖父级应用",
|
||||
"isOn": "是否启用配置",
|
||||
"value": "自定义值变量",
|
||||
"isCustomized": "是否自定义"
|
||||
}
|
||||
~~~
|
||||
|
||||
## 示例
|
||||
### 不启用自定义
|
||||
~~~json
|
||||
{
|
||||
"isPrior": false,
|
||||
"isOn": false,
|
||||
"value": "",
|
||||
"isCustomized": false
|
||||
}
|
||||
~~~
|
||||
|
||||
### 启用自定义
|
||||
~~~json
|
||||
{
|
||||
"isPrior": true,
|
||||
"isOn": true,
|
||||
"value": "${remoteAddr}",
|
||||
"isCustomized": true
|
||||
}
|
||||
~~~
|
||||
16
pkg/rpc/jsons/http_stat_stat_ref.md
Normal file
16
pkg/rpc/jsons/http_stat_stat_ref.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# 统计引用
|
||||
## 定义
|
||||
~~~json
|
||||
{
|
||||
"isPrior": "是否覆盖父级配置",
|
||||
"isOn": "是否启用配置"
|
||||
}
|
||||
~~~
|
||||
|
||||
## 示例
|
||||
~~~json
|
||||
{
|
||||
"isPrior": true,
|
||||
"isOn": true
|
||||
}
|
||||
~~~
|
||||
21
pkg/rpc/jsons/http_websocket_ref.md
Normal file
21
pkg/rpc/jsons/http_websocket_ref.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# WebSocket引用
|
||||
|
||||
## 定义
|
||||
~~~json
|
||||
{
|
||||
"isPrior": "是否覆盖上级配置,true|false",
|
||||
"isOn": "是否启用,true|false",
|
||||
"websocketId": "Websocket配置ID"
|
||||
}
|
||||
~~~
|
||||
其中:
|
||||
* `Websocket配置ID` - 需要调用 `HTTPWebsocketService.CreateHTTPWebsocketRequest()` 生成
|
||||
|
||||
## 示例
|
||||
~~~json
|
||||
{
|
||||
"isPrior": true,
|
||||
"isOn": true,
|
||||
"websocketId": 123
|
||||
}
|
||||
~~~
|
||||
9
pkg/rpc/jsons/server_name.md
Normal file
9
pkg/rpc/jsons/server_name.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# 域名信息
|
||||
|
||||
## 示例
|
||||
~~~json
|
||||
{
|
||||
"name": "example.com",
|
||||
"type": "full"
|
||||
}
|
||||
~~~
|
||||
48
pkg/rpc/jsons/server_names.md
Normal file
48
pkg/rpc/jsons/server_names.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# 域名信息列表
|
||||
|
||||
## 定义
|
||||
~~~
|
||||
[ 域名信息1, 域名信息2, ... ]
|
||||
~~~
|
||||
其中 `域名信息N` 等是单个域名信息定义,具体请参考 {json:server_name}
|
||||
|
||||
## 示例
|
||||
### 示例1:单个域名
|
||||
~~~json
|
||||
[
|
||||
{
|
||||
"name": "example.com",
|
||||
"type": "full"
|
||||
}
|
||||
]
|
||||
~~~
|
||||
|
||||
### 示例2:多个域名
|
||||
~~~json
|
||||
[
|
||||
{
|
||||
"name": "example.com",
|
||||
"type": "full"
|
||||
},
|
||||
{
|
||||
"name": "google.com",
|
||||
"type": "full"
|
||||
},
|
||||
{
|
||||
"name": "facebook.com",
|
||||
"type": "full"
|
||||
}
|
||||
]
|
||||
~~~
|
||||
|
||||
### 示例3:域名合集
|
||||
域名合集效果跟多个域名是一样的,只不过在界面上以一个目录的形式呈现。
|
||||
~~~json
|
||||
[
|
||||
{
|
||||
"name": "",
|
||||
"type": "full",
|
||||
"subNames": ["example.com", "google.com", "facebook.com"]
|
||||
}
|
||||
]
|
||||
~~~
|
||||
18
pkg/rpc/jsons/ssl_cert_refs.md
Normal file
18
pkg/rpc/jsons/ssl_cert_refs.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# SSL证书引用
|
||||
|
||||
## 示例
|
||||
~~~
|
||||
[
|
||||
{
|
||||
"isOn": true,
|
||||
"certId": 12345
|
||||
},
|
||||
{
|
||||
"isOn": true,
|
||||
"certId": 12346
|
||||
}
|
||||
]
|
||||
~~~
|
||||
|
||||
其中:
|
||||
* `certId` - 证书的ID
|
||||
@@ -47,6 +47,7 @@ type APINode struct {
|
||||
StatusJSON []byte `protobuf:"bytes,12,opt,name=statusJSON,proto3" json:"statusJSON,omitempty"`
|
||||
IsPrimary bool `protobuf:"varint,16,opt,name=isPrimary,proto3" json:"isPrimary,omitempty"`
|
||||
Debug bool `protobuf:"varint,30,opt,name=debug,proto3" json:"debug,omitempty"`
|
||||
InstanceCode string `protobuf:"bytes,31,opt,name=instanceCode,proto3" json:"instanceCode,omitempty"`
|
||||
}
|
||||
|
||||
func (x *APINode) Reset() {
|
||||
@@ -200,12 +201,19 @@ func (x *APINode) GetDebug() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *APINode) GetInstanceCode() string {
|
||||
if x != nil {
|
||||
return x.InstanceCode
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
var File_models_model_api_node_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_models_model_api_node_proto_rawDesc = []byte{
|
||||
0x0a, 0x1b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x61,
|
||||
0x70, 0x69, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70,
|
||||
0x62, 0x22, 0xfd, 0x03, 0x0a, 0x07, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a,
|
||||
0x62, 0x22, 0xa1, 0x04, 0x0a, 0x07, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 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, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
|
||||
@@ -237,8 +245,10 @@ var file_models_model_api_node_proto_rawDesc = []byte{
|
||||
0x09, 0x69, 0x73, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08,
|
||||
0x52, 0x09, 0x69, 0x73, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x64,
|
||||
0x65, 0x62, 0x75, 0x67, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x64, 0x65, 0x62, 0x75,
|
||||
0x67, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x33,
|
||||
0x67, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x64,
|
||||
0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
|
||||
0x65, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
||||
@@ -35,6 +35,8 @@ type File struct {
|
||||
Size int64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"`
|
||||
CreatedAt int64 `protobuf:"varint,4,opt,name=createdAt,proto3" json:"createdAt,omitempty"`
|
||||
IsPublic bool `protobuf:"varint,5,opt,name=isPublic,proto3" json:"isPublic,omitempty"`
|
||||
MimeType string `protobuf:"bytes,6,opt,name=mimeType,proto3" json:"mimeType,omitempty"`
|
||||
Type string `protobuf:"bytes,7,opt,name=type,proto3" json:"type,omitempty"`
|
||||
}
|
||||
|
||||
func (x *File) Reset() {
|
||||
@@ -104,11 +106,25 @@ func (x *File) GetIsPublic() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *File) GetMimeType() string {
|
||||
if x != nil {
|
||||
return x.MimeType
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *File) GetType() string {
|
||||
if x != nil {
|
||||
return x.Type
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
var File_models_model_file_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_models_model_file_proto_rawDesc = []byte{
|
||||
0x0a, 0x17, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x66,
|
||||
0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x80, 0x01,
|
||||
0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0xb0, 0x01,
|
||||
0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61,
|
||||
0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61,
|
||||
@@ -117,6 +133,9 @@ var file_models_model_file_proto_rawDesc = []byte{
|
||||
0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74,
|
||||
0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63,
|
||||
0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63,
|
||||
0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04,
|
||||
0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
|
||||
0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ type Origin struct {
|
||||
Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
|
||||
Domains []string `protobuf:"bytes,6,rep,name=domains,proto3" json:"domains,omitempty"`
|
||||
Host string `protobuf:"bytes,7,opt,name=host,proto3" json:"host,omitempty"`
|
||||
FollowPort bool `protobuf:"varint,8,opt,name=followPort,proto3" json:"followPort,omitempty"`
|
||||
}
|
||||
|
||||
func (x *Origin) Reset() {
|
||||
@@ -120,6 +121,13 @@ func (x *Origin) GetHost() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *Origin) GetFollowPort() bool {
|
||||
if x != nil {
|
||||
return x.FollowPort
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
var File_models_model_origin_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_models_model_origin_proto_rawDesc = []byte{
|
||||
@@ -127,7 +135,7 @@ var file_models_model_origin_proto_rawDesc = []byte{
|
||||
0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a,
|
||||
0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x65,
|
||||
0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x22, 0xb8, 0x01, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x0e,
|
||||
0x6f, 0x74, 0x6f, 0x22, 0xd8, 0x01, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 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, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
|
||||
@@ -138,7 +146,9 @@ var file_models_model_origin_proto_rawDesc = []byte{
|
||||
0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x12, 0x18, 0x0a, 0x07, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28,
|
||||
0x09, 0x52, 0x07, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f,
|
||||
0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x42, 0x06,
|
||||
0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1e,
|
||||
0x0a, 0x0a, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01,
|
||||
0x28, 0x08, 0x52, 0x0a, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x06,
|
||||
0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
|
||||
196
pkg/rpc/pb/model_server_bandwidth_stat.pb.go
Normal file
196
pkg/rpc/pb/model_server_bandwidth_stat.pb.go
Normal file
@@ -0,0 +1,196 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.25.0
|
||||
// protoc v3.19.4
|
||||
// source: models/model_server_bandwidth_stat.proto
|
||||
|
||||
package pb
|
||||
|
||||
import (
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
// This is a compile-time assertion that a sufficiently up-to-date version
|
||||
// of the legacy proto package is being used.
|
||||
const _ = proto.ProtoPackageIsVersion4
|
||||
|
||||
// 带宽统计数据
|
||||
type ServerBandwidthStat struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
UserId int64 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"`
|
||||
ServerId int64 `protobuf:"varint,3,opt,name=serverId,proto3" json:"serverId,omitempty"`
|
||||
Day string `protobuf:"bytes,4,opt,name=day,proto3" json:"day,omitempty"`
|
||||
TimeAt string `protobuf:"bytes,5,opt,name=timeAt,proto3" json:"timeAt,omitempty"`
|
||||
Bytes int64 `protobuf:"varint,6,opt,name=bytes,proto3" json:"bytes,omitempty"`
|
||||
}
|
||||
|
||||
func (x *ServerBandwidthStat) Reset() {
|
||||
*x = ServerBandwidthStat{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_models_model_server_bandwidth_stat_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *ServerBandwidthStat) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*ServerBandwidthStat) ProtoMessage() {}
|
||||
|
||||
func (x *ServerBandwidthStat) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_models_model_server_bandwidth_stat_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use ServerBandwidthStat.ProtoReflect.Descriptor instead.
|
||||
func (*ServerBandwidthStat) Descriptor() ([]byte, []int) {
|
||||
return file_models_model_server_bandwidth_stat_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *ServerBandwidthStat) GetId() int64 {
|
||||
if x != nil {
|
||||
return x.Id
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *ServerBandwidthStat) GetUserId() int64 {
|
||||
if x != nil {
|
||||
return x.UserId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *ServerBandwidthStat) GetServerId() int64 {
|
||||
if x != nil {
|
||||
return x.ServerId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *ServerBandwidthStat) GetDay() string {
|
||||
if x != nil {
|
||||
return x.Day
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *ServerBandwidthStat) GetTimeAt() string {
|
||||
if x != nil {
|
||||
return x.TimeAt
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *ServerBandwidthStat) GetBytes() int64 {
|
||||
if x != nil {
|
||||
return x.Bytes
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
var File_models_model_server_bandwidth_stat_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_models_model_server_bandwidth_stat_proto_rawDesc = []byte{
|
||||
0x0a, 0x28, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73,
|
||||
0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f,
|
||||
0x73, 0x74, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x99,
|
||||
0x01, 0x0a, 0x13, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64,
|
||||
0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a,
|
||||
0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
|
||||
0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61,
|
||||
0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06,
|
||||
0x74, 0x69, 0x6d, 0x65, 0x41, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69,
|
||||
0x6d, 0x65, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f,
|
||||
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_models_model_server_bandwidth_stat_proto_rawDescOnce sync.Once
|
||||
file_models_model_server_bandwidth_stat_proto_rawDescData = file_models_model_server_bandwidth_stat_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_models_model_server_bandwidth_stat_proto_rawDescGZIP() []byte {
|
||||
file_models_model_server_bandwidth_stat_proto_rawDescOnce.Do(func() {
|
||||
file_models_model_server_bandwidth_stat_proto_rawDescData = protoimpl.X.CompressGZIP(file_models_model_server_bandwidth_stat_proto_rawDescData)
|
||||
})
|
||||
return file_models_model_server_bandwidth_stat_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_models_model_server_bandwidth_stat_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_models_model_server_bandwidth_stat_proto_goTypes = []interface{}{
|
||||
(*ServerBandwidthStat)(nil), // 0: pb.ServerBandwidthStat
|
||||
}
|
||||
var file_models_model_server_bandwidth_stat_proto_depIdxs = []int32{
|
||||
0, // [0:0] is the sub-list for method output_type
|
||||
0, // [0:0] is the sub-list for method input_type
|
||||
0, // [0:0] is the sub-list for extension type_name
|
||||
0, // [0:0] is the sub-list for extension extendee
|
||||
0, // [0:0] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_models_model_server_bandwidth_stat_proto_init() }
|
||||
func file_models_model_server_bandwidth_stat_proto_init() {
|
||||
if File_models_model_server_bandwidth_stat_proto != nil {
|
||||
return
|
||||
}
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_models_model_server_bandwidth_stat_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*ServerBandwidthStat); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_models_model_server_bandwidth_stat_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 1,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_models_model_server_bandwidth_stat_proto_goTypes,
|
||||
DependencyIndexes: file_models_model_server_bandwidth_stat_proto_depIdxs,
|
||||
MessageInfos: file_models_model_server_bandwidth_stat_proto_msgTypes,
|
||||
}.Build()
|
||||
File_models_model_server_bandwidth_stat_proto = out.File
|
||||
file_models_model_server_bandwidth_stat_proto_rawDesc = nil
|
||||
file_models_model_server_bandwidth_stat_proto_goTypes = nil
|
||||
file_models_model_server_bandwidth_stat_proto_depIdxs = nil
|
||||
}
|
||||
@@ -30,22 +30,25 @@ type User struct {
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
|
||||
Fullname string `protobuf:"bytes,3,opt,name=fullname,proto3" json:"fullname,omitempty"`
|
||||
Mobile string `protobuf:"bytes,4,opt,name=mobile,proto3" json:"mobile,omitempty"`
|
||||
Tel string `protobuf:"bytes,5,opt,name=tel,proto3" json:"tel,omitempty"`
|
||||
Email string `protobuf:"bytes,6,opt,name=email,proto3" json:"email,omitempty"`
|
||||
Remark string `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark,omitempty"`
|
||||
IsOn bool `protobuf:"varint,8,opt,name=isOn,proto3" json:"isOn,omitempty"`
|
||||
CreatedAt int64 `protobuf:"varint,9,opt,name=createdAt,proto3" json:"createdAt,omitempty"`
|
||||
RegisteredIP string `protobuf:"bytes,12,opt,name=registeredIP,proto3" json:"registeredIP,omitempty"`
|
||||
IsVerified bool `protobuf:"varint,13,opt,name=isVerified,proto3" json:"isVerified,omitempty"`
|
||||
IsRejected bool `protobuf:"varint,14,opt,name=isRejected,proto3" json:"isRejected,omitempty"`
|
||||
RejectReason string `protobuf:"bytes,15,opt,name=rejectReason,proto3" json:"rejectReason,omitempty"`
|
||||
IsDeleted bool `protobuf:"varint,16,opt,name=isDeleted,proto3" json:"isDeleted,omitempty"`
|
||||
NodeCluster *NodeCluster `protobuf:"bytes,10,opt,name=nodeCluster,proto3" json:"nodeCluster,omitempty"`
|
||||
Features []*UserFeature `protobuf:"bytes,11,rep,name=features,proto3" json:"features,omitempty"`
|
||||
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
|
||||
Fullname string `protobuf:"bytes,3,opt,name=fullname,proto3" json:"fullname,omitempty"`
|
||||
Mobile string `protobuf:"bytes,4,opt,name=mobile,proto3" json:"mobile,omitempty"`
|
||||
Tel string `protobuf:"bytes,5,opt,name=tel,proto3" json:"tel,omitempty"`
|
||||
Email string `protobuf:"bytes,6,opt,name=email,proto3" json:"email,omitempty"`
|
||||
Remark string `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark,omitempty"`
|
||||
IsOn bool `protobuf:"varint,8,opt,name=isOn,proto3" json:"isOn,omitempty"`
|
||||
CreatedAt int64 `protobuf:"varint,9,opt,name=createdAt,proto3" json:"createdAt,omitempty"`
|
||||
RegisteredIP string `protobuf:"bytes,12,opt,name=registeredIP,proto3" json:"registeredIP,omitempty"`
|
||||
IsVerified bool `protobuf:"varint,13,opt,name=isVerified,proto3" json:"isVerified,omitempty"`
|
||||
IsRejected bool `protobuf:"varint,14,opt,name=isRejected,proto3" json:"isRejected,omitempty"`
|
||||
RejectReason string `protobuf:"bytes,15,opt,name=rejectReason,proto3" json:"rejectReason,omitempty"`
|
||||
IsDeleted bool `protobuf:"varint,16,opt,name=isDeleted,proto3" json:"isDeleted,omitempty"`
|
||||
IsIndividualIdentified bool `protobuf:"varint,17,opt,name=isIndividualIdentified,proto3" json:"isIndividualIdentified,omitempty"`
|
||||
IsEnterpriseIdentified bool `protobuf:"varint,18,opt,name=isEnterpriseIdentified,proto3" json:"isEnterpriseIdentified,omitempty"`
|
||||
OtpLogin *Login `protobuf:"bytes,19,opt,name=otpLogin,proto3" json:"otpLogin,omitempty"` // OTP认证
|
||||
NodeCluster *NodeCluster `protobuf:"bytes,10,opt,name=nodeCluster,proto3" json:"nodeCluster,omitempty"`
|
||||
Features []*UserFeature `protobuf:"bytes,11,rep,name=features,proto3" json:"features,omitempty"`
|
||||
}
|
||||
|
||||
func (x *User) Reset() {
|
||||
@@ -178,6 +181,27 @@ func (x *User) GetIsDeleted() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *User) GetIsIndividualIdentified() bool {
|
||||
if x != nil {
|
||||
return x.IsIndividualIdentified
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *User) GetIsEnterpriseIdentified() bool {
|
||||
if x != nil {
|
||||
return x.IsEnterpriseIdentified
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *User) GetOtpLogin() *Login {
|
||||
if x != nil {
|
||||
return x.OtpLogin
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *User) GetNodeCluster() *NodeCluster {
|
||||
if x != nil {
|
||||
return x.NodeCluster
|
||||
@@ -200,38 +224,50 @@ var file_models_model_user_proto_rawDesc = []byte{
|
||||
0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65,
|
||||
0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f,
|
||||
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x75, 0x73, 0x65,
|
||||
0x72, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
|
||||
0xde, 0x03, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72,
|
||||
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72,
|
||||
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65,
|
||||
0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x65, 0x6c, 0x18,
|
||||
0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d,
|
||||
0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c,
|
||||
0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e,
|
||||
0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x12, 0x1c, 0x0a, 0x09,
|
||||
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||
0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65,
|
||||
0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x49, 0x50, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x49, 0x50, 0x12, 0x1e,
|
||||
0x0a, 0x0a, 0x69, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01,
|
||||
0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1e,
|
||||
0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01,
|
||||
0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x22,
|
||||
0x0a, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0f,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73,
|
||||
0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18,
|
||||
0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64,
|
||||
0x12, 0x31, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18,
|
||||
0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43,
|
||||
0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73,
|
||||
0x74, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18,
|
||||
0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46,
|
||||
0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73,
|
||||
0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x72, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
|
||||
0x18, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6c, 0x6f,
|
||||
0x67, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf5, 0x04, 0x0a, 0x04, 0x55, 0x73,
|
||||
0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02,
|
||||
0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a,
|
||||
0x0a, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f,
|
||||
0x62, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69,
|
||||
0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x03, 0x74, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65,
|
||||
0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61,
|
||||
0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08,
|
||||
0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
|
||||
0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74,
|
||||
0x65, 0x64, 0x41, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
|
||||
0x65, 0x64, 0x49, 0x50, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x67, 0x69,
|
||||
0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x49, 0x50, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x56, 0x65,
|
||||
0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73,
|
||||
0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65,
|
||||
0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73,
|
||||
0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x6a, 0x65,
|
||||
0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
|
||||
0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09,
|
||||
0x69, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52,
|
||||
0x09, 0x69, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x73,
|
||||
0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69,
|
||||
0x66, 0x69, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x69, 0x73, 0x49, 0x6e,
|
||||
0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69,
|
||||
0x65, 0x64, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x73, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69,
|
||||
0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01,
|
||||
0x28, 0x08, 0x52, 0x16, 0x69, 0x73, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65,
|
||||
0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x08, 0x6f, 0x74,
|
||||
0x70, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x70,
|
||||
0x62, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x08, 0x6f, 0x74, 0x70, 0x4c, 0x6f, 0x67, 0x69,
|
||||
0x6e, 0x12, 0x31, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
|
||||
0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65,
|
||||
0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75,
|
||||
0x73, 0x74, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73,
|
||||
0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72,
|
||||
0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
|
||||
0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@@ -249,17 +285,19 @@ func file_models_model_user_proto_rawDescGZIP() []byte {
|
||||
var file_models_model_user_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_models_model_user_proto_goTypes = []interface{}{
|
||||
(*User)(nil), // 0: pb.User
|
||||
(*NodeCluster)(nil), // 1: pb.NodeCluster
|
||||
(*UserFeature)(nil), // 2: pb.UserFeature
|
||||
(*Login)(nil), // 1: pb.Login
|
||||
(*NodeCluster)(nil), // 2: pb.NodeCluster
|
||||
(*UserFeature)(nil), // 3: pb.UserFeature
|
||||
}
|
||||
var file_models_model_user_proto_depIdxs = []int32{
|
||||
1, // 0: pb.User.nodeCluster:type_name -> pb.NodeCluster
|
||||
2, // 1: pb.User.features:type_name -> pb.UserFeature
|
||||
2, // [2:2] is the sub-list for method output_type
|
||||
2, // [2:2] is the sub-list for method input_type
|
||||
2, // [2:2] is the sub-list for extension type_name
|
||||
2, // [2:2] is the sub-list for extension extendee
|
||||
0, // [0:2] is the sub-list for field type_name
|
||||
1, // 0: pb.User.otpLogin:type_name -> pb.Login
|
||||
2, // 1: pb.User.nodeCluster:type_name -> pb.NodeCluster
|
||||
3, // 2: pb.User.features:type_name -> pb.UserFeature
|
||||
3, // [3:3] is the sub-list for method output_type
|
||||
3, // [3:3] is the sub-list for method input_type
|
||||
3, // [3:3] is the sub-list for extension type_name
|
||||
3, // [3:3] is the sub-list for extension extendee
|
||||
0, // [0:3] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_models_model_user_proto_init() }
|
||||
@@ -269,6 +307,7 @@ func file_models_model_user_proto_init() {
|
||||
}
|
||||
file_models_model_node_cluster_proto_init()
|
||||
file_models_model_user_feature_proto_init()
|
||||
file_models_model_login_proto_init()
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_models_model_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*User); i {
|
||||
|
||||
186
pkg/rpc/pb/model_user_bandwidth_stat.pb.go
Normal file
186
pkg/rpc/pb/model_user_bandwidth_stat.pb.go
Normal file
@@ -0,0 +1,186 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.25.0
|
||||
// protoc v3.19.4
|
||||
// source: models/model_user_bandwidth_stat.proto
|
||||
|
||||
package pb
|
||||
|
||||
import (
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
// This is a compile-time assertion that a sufficiently up-to-date version
|
||||
// of the legacy proto package is being used.
|
||||
const _ = proto.ProtoPackageIsVersion4
|
||||
|
||||
// 带宽统计数据
|
||||
type UserBandwidthStat struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
UserId int64 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"`
|
||||
Day string `protobuf:"bytes,3,opt,name=day,proto3" json:"day,omitempty"`
|
||||
TimeAt string `protobuf:"bytes,4,opt,name=timeAt,proto3" json:"timeAt,omitempty"`
|
||||
Bytes int64 `protobuf:"varint,5,opt,name=bytes,proto3" json:"bytes,omitempty"`
|
||||
}
|
||||
|
||||
func (x *UserBandwidthStat) Reset() {
|
||||
*x = UserBandwidthStat{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_models_model_user_bandwidth_stat_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *UserBandwidthStat) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*UserBandwidthStat) ProtoMessage() {}
|
||||
|
||||
func (x *UserBandwidthStat) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_models_model_user_bandwidth_stat_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use UserBandwidthStat.ProtoReflect.Descriptor instead.
|
||||
func (*UserBandwidthStat) Descriptor() ([]byte, []int) {
|
||||
return file_models_model_user_bandwidth_stat_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *UserBandwidthStat) GetId() int64 {
|
||||
if x != nil {
|
||||
return x.Id
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *UserBandwidthStat) GetUserId() int64 {
|
||||
if x != nil {
|
||||
return x.UserId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *UserBandwidthStat) GetDay() string {
|
||||
if x != nil {
|
||||
return x.Day
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UserBandwidthStat) GetTimeAt() string {
|
||||
if x != nil {
|
||||
return x.TimeAt
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UserBandwidthStat) GetBytes() int64 {
|
||||
if x != nil {
|
||||
return x.Bytes
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
var File_models_model_user_bandwidth_stat_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_models_model_user_bandwidth_stat_proto_rawDesc = []byte{
|
||||
0x0a, 0x26, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x75,
|
||||
0x73, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x74,
|
||||
0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x7b, 0x0a, 0x11,
|
||||
0x55, 0x73, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x74, 0x61,
|
||||
0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69,
|
||||
0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74,
|
||||
0x69, 0x6d, 0x65, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x6d,
|
||||
0x65, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70,
|
||||
0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_models_model_user_bandwidth_stat_proto_rawDescOnce sync.Once
|
||||
file_models_model_user_bandwidth_stat_proto_rawDescData = file_models_model_user_bandwidth_stat_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_models_model_user_bandwidth_stat_proto_rawDescGZIP() []byte {
|
||||
file_models_model_user_bandwidth_stat_proto_rawDescOnce.Do(func() {
|
||||
file_models_model_user_bandwidth_stat_proto_rawDescData = protoimpl.X.CompressGZIP(file_models_model_user_bandwidth_stat_proto_rawDescData)
|
||||
})
|
||||
return file_models_model_user_bandwidth_stat_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_models_model_user_bandwidth_stat_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_models_model_user_bandwidth_stat_proto_goTypes = []interface{}{
|
||||
(*UserBandwidthStat)(nil), // 0: pb.UserBandwidthStat
|
||||
}
|
||||
var file_models_model_user_bandwidth_stat_proto_depIdxs = []int32{
|
||||
0, // [0:0] is the sub-list for method output_type
|
||||
0, // [0:0] is the sub-list for method input_type
|
||||
0, // [0:0] is the sub-list for extension type_name
|
||||
0, // [0:0] is the sub-list for extension extendee
|
||||
0, // [0:0] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_models_model_user_bandwidth_stat_proto_init() }
|
||||
func file_models_model_user_bandwidth_stat_proto_init() {
|
||||
if File_models_model_user_bandwidth_stat_proto != nil {
|
||||
return
|
||||
}
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_models_model_user_bandwidth_stat_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*UserBandwidthStat); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_models_model_user_bandwidth_stat_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 1,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_models_model_user_bandwidth_stat_proto_goTypes,
|
||||
DependencyIndexes: file_models_model_user_bandwidth_stat_proto_depIdxs,
|
||||
MessageInfos: file_models_model_user_bandwidth_stat_proto_msgTypes,
|
||||
}.Build()
|
||||
File_models_model_user_bandwidth_stat_proto = out.File
|
||||
file_models_model_user_bandwidth_stat_proto_rawDesc = nil
|
||||
file_models_model_user_bandwidth_stat_proto_goTypes = nil
|
||||
file_models_model_user_bandwidth_stat_proto_depIdxs = nil
|
||||
}
|
||||
264
pkg/rpc/pb/model_user_identity.pb.go
Normal file
264
pkg/rpc/pb/model_user_identity.pb.go
Normal file
@@ -0,0 +1,264 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.25.0
|
||||
// protoc v3.19.4
|
||||
// source: models/model_user_identity.proto
|
||||
|
||||
package pb
|
||||
|
||||
import (
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
// This is a compile-time assertion that a sufficiently up-to-date version
|
||||
// of the legacy proto package is being used.
|
||||
const _ = proto.ProtoPackageIsVersion4
|
||||
|
||||
type UserIdentity struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
OrgType string `protobuf:"bytes,2,opt,name=orgType,proto3" json:"orgType,omitempty"`
|
||||
Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
|
||||
RealName string `protobuf:"bytes,4,opt,name=realName,proto3" json:"realName,omitempty"`
|
||||
Number string `protobuf:"bytes,5,opt,name=number,proto3" json:"number,omitempty"`
|
||||
FileIds []int64 `protobuf:"varint,6,rep,packed,name=fileIds,proto3" json:"fileIds,omitempty"`
|
||||
Status string `protobuf:"bytes,7,opt,name=status,proto3" json:"status,omitempty"`
|
||||
CreatedAt int64 `protobuf:"varint,8,opt,name=createdAt,proto3" json:"createdAt,omitempty"`
|
||||
UpdatedAt int64 `protobuf:"varint,9,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"`
|
||||
SubmittedAt int64 `protobuf:"varint,10,opt,name=submittedAt,proto3" json:"submittedAt,omitempty"`
|
||||
RejectedAt int64 `protobuf:"varint,11,opt,name=rejectedAt,proto3" json:"rejectedAt,omitempty"`
|
||||
VerifiedAt int64 `protobuf:"varint,12,opt,name=verifiedAt,proto3" json:"verifiedAt,omitempty"`
|
||||
RejectReason string `protobuf:"bytes,13,opt,name=rejectReason,proto3" json:"rejectReason,omitempty"`
|
||||
}
|
||||
|
||||
func (x *UserIdentity) Reset() {
|
||||
*x = UserIdentity{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_models_model_user_identity_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *UserIdentity) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*UserIdentity) ProtoMessage() {}
|
||||
|
||||
func (x *UserIdentity) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_models_model_user_identity_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use UserIdentity.ProtoReflect.Descriptor instead.
|
||||
func (*UserIdentity) Descriptor() ([]byte, []int) {
|
||||
return file_models_model_user_identity_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *UserIdentity) GetId() int64 {
|
||||
if x != nil {
|
||||
return x.Id
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *UserIdentity) GetOrgType() string {
|
||||
if x != nil {
|
||||
return x.OrgType
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UserIdentity) GetType() string {
|
||||
if x != nil {
|
||||
return x.Type
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UserIdentity) GetRealName() string {
|
||||
if x != nil {
|
||||
return x.RealName
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UserIdentity) GetNumber() string {
|
||||
if x != nil {
|
||||
return x.Number
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UserIdentity) GetFileIds() []int64 {
|
||||
if x != nil {
|
||||
return x.FileIds
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *UserIdentity) GetStatus() string {
|
||||
if x != nil {
|
||||
return x.Status
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UserIdentity) GetCreatedAt() int64 {
|
||||
if x != nil {
|
||||
return x.CreatedAt
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *UserIdentity) GetUpdatedAt() int64 {
|
||||
if x != nil {
|
||||
return x.UpdatedAt
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *UserIdentity) GetSubmittedAt() int64 {
|
||||
if x != nil {
|
||||
return x.SubmittedAt
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *UserIdentity) GetRejectedAt() int64 {
|
||||
if x != nil {
|
||||
return x.RejectedAt
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *UserIdentity) GetVerifiedAt() int64 {
|
||||
if x != nil {
|
||||
return x.VerifiedAt
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *UserIdentity) GetRejectReason() string {
|
||||
if x != nil {
|
||||
return x.RejectReason
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
var File_models_model_user_identity_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_models_model_user_identity_proto_rawDesc = []byte{
|
||||
0x0a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x75,
|
||||
0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0xf4, 0x02, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x49,
|
||||
0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x67, 0x54, 0x79,
|
||||
0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x67, 0x54, 0x79, 0x70,
|
||||
0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d,
|
||||
0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d,
|
||||
0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c,
|
||||
0x65, 0x49, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65,
|
||||
0x49, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63,
|
||||
0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
|
||||
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64,
|
||||
0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70,
|
||||
0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69,
|
||||
0x74, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x75,
|
||||
0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x6a,
|
||||
0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72,
|
||||
0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x65, 0x72,
|
||||
0x69, 0x66, 0x69, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x76,
|
||||
0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x41, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x6a,
|
||||
0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0x5a,
|
||||
0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_models_model_user_identity_proto_rawDescOnce sync.Once
|
||||
file_models_model_user_identity_proto_rawDescData = file_models_model_user_identity_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_models_model_user_identity_proto_rawDescGZIP() []byte {
|
||||
file_models_model_user_identity_proto_rawDescOnce.Do(func() {
|
||||
file_models_model_user_identity_proto_rawDescData = protoimpl.X.CompressGZIP(file_models_model_user_identity_proto_rawDescData)
|
||||
})
|
||||
return file_models_model_user_identity_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_models_model_user_identity_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_models_model_user_identity_proto_goTypes = []interface{}{
|
||||
(*UserIdentity)(nil), // 0: pb.UserIdentity
|
||||
}
|
||||
var file_models_model_user_identity_proto_depIdxs = []int32{
|
||||
0, // [0:0] is the sub-list for method output_type
|
||||
0, // [0:0] is the sub-list for method input_type
|
||||
0, // [0:0] is the sub-list for extension type_name
|
||||
0, // [0:0] is the sub-list for extension extendee
|
||||
0, // [0:0] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_models_model_user_identity_proto_init() }
|
||||
func file_models_model_user_identity_proto_init() {
|
||||
if File_models_model_user_identity_proto != nil {
|
||||
return
|
||||
}
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_models_model_user_identity_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*UserIdentity); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_models_model_user_identity_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 1,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_models_model_user_identity_proto_goTypes,
|
||||
DependencyIndexes: file_models_model_user_identity_proto_depIdxs,
|
||||
MessageInfos: file_models_model_user_identity_proto_msgTypes,
|
||||
}.Build()
|
||||
File_models_model_user_identity_proto = out.File
|
||||
file_models_model_user_identity_proto_rawDesc = nil
|
||||
file_models_model_user_identity_proto_goTypes = nil
|
||||
file_models_model_user_identity_proto_depIdxs = nil
|
||||
}
|
||||
@@ -2153,8 +2153,8 @@ type ComposeAdminDashboardResponse_UpgradeInfo struct {
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
CountNodes int64 `protobuf:"varint,1,opt,name=countNodes,proto3" json:"countNodes,omitempty"`
|
||||
NewVersion string `protobuf:"bytes,2,opt,name=newVersion,proto3" json:"newVersion,omitempty"`
|
||||
CountNodes int64 `protobuf:"varint,1,opt,name=countNodes,proto3" json:"countNodes,omitempty"` // 节点数
|
||||
NewVersion string `protobuf:"bytes,2,opt,name=newVersion,proto3" json:"newVersion,omitempty"` // 新版本
|
||||
}
|
||||
|
||||
func (x *ComposeAdminDashboardResponse_UpgradeInfo) Reset() {
|
||||
|
||||
@@ -133,6 +133,8 @@ type CreateFileRequest struct {
|
||||
Filename string `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"`
|
||||
Size int64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"`
|
||||
IsPublic bool `protobuf:"varint,3,opt,name=isPublic,proto3" json:"isPublic,omitempty"`
|
||||
MimeType string `protobuf:"bytes,4,opt,name=mimeType,proto3" json:"mimeType,omitempty"`
|
||||
Type string `protobuf:"bytes,5,opt,name=type,proto3" json:"type,omitempty"`
|
||||
}
|
||||
|
||||
func (x *CreateFileRequest) Reset() {
|
||||
@@ -188,6 +190,20 @@ func (x *CreateFileRequest) GetIsPublic() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *CreateFileRequest) GetMimeType() string {
|
||||
if x != nil {
|
||||
return x.MimeType
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *CreateFileRequest) GetType() string {
|
||||
if x != nil {
|
||||
return x.Type
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type CreateFileResponse struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@@ -297,34 +313,37 @@ var file_service_file_proto_rawDesc = []byte{
|
||||
0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x69, 0x6c,
|
||||
0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x04, 0x66, 0x69, 0x6c,
|
||||
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6c,
|
||||
0x65, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x5f, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74,
|
||||
0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08,
|
||||
0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
|
||||
0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08,
|
||||
0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
|
||||
0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x22, 0x2c, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61,
|
||||
0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16,
|
||||
0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
|
||||
0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x33, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
|
||||
0x46, 0x69, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x32, 0xdb, 0x01, 0x0a, 0x0b,
|
||||
0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x66,
|
||||
0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a,
|
||||
0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46,
|
||||
0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x2e,
|
||||
0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
|
||||
0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
|
||||
0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70,
|
||||
0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69,
|
||||
0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e,
|
||||
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68,
|
||||
0x65, 0x64, 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,
|
||||
0x65, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61,
|
||||
0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a,
|
||||
0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a,
|
||||
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a,
|
||||
0x08, 0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
|
||||
0x08, 0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6d,
|
||||
0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d,
|
||||
0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2c, 0x0a, 0x12, 0x43, 0x72, 0x65,
|
||||
0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
|
||||
0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||
0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x33, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74,
|
||||
0x65, 0x46, 0x69, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x32, 0xdb, 0x01, 0x0a,
|
||||
0x0b, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x0f,
|
||||
0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12,
|
||||
0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
|
||||
0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x62,
|
||||
0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61,
|
||||
0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61,
|
||||
0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e,
|
||||
0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46,
|
||||
0x69, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x1d, 0x2e, 0x70, 0x62,
|
||||
0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73,
|
||||
0x68, 0x65, 0x64, 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 (
|
||||
|
||||
@@ -489,7 +489,7 @@ type UpdateHTTPWebRemoteAddrRequest struct {
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
HttpWebId int64 `protobuf:"varint,1,opt,name=httpWebId,proto3" json:"httpWebId,omitempty"`
|
||||
RemoteAddrJSON []byte `protobuf:"bytes,2,opt,name=remoteAddrJSON,proto3" json:"remoteAddrJSON,omitempty"`
|
||||
RemoteAddrJSON []byte `protobuf:"bytes,2,opt,name=remoteAddrJSON,proto3" json:"remoteAddrJSON,omitempty"` // @link json:http_remote_addr_config
|
||||
}
|
||||
|
||||
func (x *UpdateHTTPWebRemoteAddrRequest) Reset() {
|
||||
@@ -825,7 +825,7 @@ type UpdateHTTPWebAccessLogRequest struct {
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
HttpWebId int64 `protobuf:"varint,1,opt,name=httpWebId,proto3" json:"httpWebId,omitempty"`
|
||||
AccessLogJSON []byte `protobuf:"bytes,2,opt,name=accessLogJSON,proto3" json:"accessLogJSON,omitempty"`
|
||||
AccessLogJSON []byte `protobuf:"bytes,2,opt,name=accessLogJSON,proto3" json:"accessLogJSON,omitempty"` // @link json:http_access_log_ref
|
||||
}
|
||||
|
||||
func (x *UpdateHTTPWebAccessLogRequest) Reset() {
|
||||
@@ -881,7 +881,7 @@ type UpdateHTTPWebStatRequest struct {
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
HttpWebId int64 `protobuf:"varint,1,opt,name=httpWebId,proto3" json:"httpWebId,omitempty"`
|
||||
StatJSON []byte `protobuf:"bytes,2,opt,name=statJSON,proto3" json:"statJSON,omitempty"`
|
||||
StatJSON []byte `protobuf:"bytes,2,opt,name=statJSON,proto3" json:"statJSON,omitempty"` // @link json:http_stat_stat_ref
|
||||
}
|
||||
|
||||
func (x *UpdateHTTPWebStatRequest) Reset() {
|
||||
@@ -937,7 +937,7 @@ type UpdateHTTPWebCacheRequest struct {
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
HttpWebId int64 `protobuf:"varint,1,opt,name=httpWebId,proto3" json:"httpWebId,omitempty"`
|
||||
CacheJSON []byte `protobuf:"bytes,2,opt,name=cacheJSON,proto3" json:"cacheJSON,omitempty"`
|
||||
CacheJSON []byte `protobuf:"bytes,2,opt,name=cacheJSON,proto3" json:"cacheJSON,omitempty"` // @link json:http_cache_config
|
||||
}
|
||||
|
||||
func (x *UpdateHTTPWebCacheRequest) Reset() {
|
||||
@@ -993,7 +993,7 @@ type UpdateHTTPWebFirewallRequest struct {
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
HttpWebId int64 `protobuf:"varint,1,opt,name=httpWebId,proto3" json:"httpWebId,omitempty"`
|
||||
FirewallJSON []byte `protobuf:"bytes,2,opt,name=firewallJSON,proto3" json:"firewallJSON,omitempty"`
|
||||
FirewallJSON []byte `protobuf:"bytes,2,opt,name=firewallJSON,proto3" json:"firewallJSON,omitempty"` // @link json:http_firewall_ref
|
||||
}
|
||||
|
||||
func (x *UpdateHTTPWebFirewallRequest) Reset() {
|
||||
@@ -1161,7 +1161,7 @@ type UpdateHTTPWebWebsocketRequest struct {
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
HttpWebId int64 `protobuf:"varint,1,opt,name=httpWebId,proto3" json:"httpWebId,omitempty"`
|
||||
WebsocketJSON []byte `protobuf:"bytes,2,opt,name=websocketJSON,proto3" json:"websocketJSON,omitempty"`
|
||||
WebsocketJSON []byte `protobuf:"bytes,2,opt,name=websocketJSON,proto3" json:"websocketJSON,omitempty"` // @link json:http_websocket_ref
|
||||
}
|
||||
|
||||
func (x *UpdateHTTPWebWebsocketRequest) Reset() {
|
||||
|
||||
@@ -36,6 +36,7 @@ type FindEnabledLoginRequest struct {
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
AdminId int64 `protobuf:"varint,1,opt,name=adminId,proto3" json:"adminId,omitempty"`
|
||||
UserId int64 `protobuf:"varint,3,opt,name=userId,proto3" json:"userId,omitempty"`
|
||||
Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
|
||||
}
|
||||
|
||||
@@ -78,6 +79,13 @@ func (x *FindEnabledLoginRequest) GetAdminId() int64 {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *FindEnabledLoginRequest) GetUserId() int64 {
|
||||
if x != nil {
|
||||
return x.UserId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *FindEnabledLoginRequest) GetType() string {
|
||||
if x != nil {
|
||||
return x.Type
|
||||
@@ -187,30 +195,31 @@ var file_service_login_proto_rawDesc = []byte{
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x18, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
|
||||
0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x5f,
|
||||
0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x47,
|
||||
0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5f,
|
||||
0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4c, 0x6f, 0x67,
|
||||
0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x6d,
|
||||
0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x64, 0x6d, 0x69,
|
||||
0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3b, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x45,
|
||||
0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x05, 0x6c,
|
||||
0x6f, 0x67, 0x69, 0x6e, 0x22, 0x35, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x6f,
|
||||
0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x05, 0x6c, 0x6f,
|
||||
0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x4c,
|
||||
0x6f, 0x67, 0x69, 0x6e, 0x52, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x32, 0x94, 0x01, 0x0a, 0x0c,
|
||||
0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x10,
|
||||
0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e,
|
||||
0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
|
||||
0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e,
|
||||
0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4c, 0x6f,
|
||||
0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x75,
|
||||
0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e,
|
||||
0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74,
|
||||
0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22,
|
||||
0x3b, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4c, 0x6f,
|
||||
0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x05, 0x6c,
|
||||
0x6f, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x2e,
|
||||
0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x22, 0x35, 0x0a, 0x12,
|
||||
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 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,
|
||||
0x73, 0x74, 0x12, 0x1f, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x0b, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x05, 0x6c, 0x6f,
|
||||
0x67, 0x69, 0x6e, 0x32, 0x94, 0x01, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72,
|
||||
0x76, 0x69, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62,
|
||||
0x6c, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69,
|
||||
0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45,
|
||||
0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67,
|
||||
0x69, 0x6e, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x6f,
|
||||
0x67, 0x69, 0x6e, 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 (
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -48,6 +48,7 @@ type CreateOriginRequest struct {
|
||||
Domains []string `protobuf:"bytes,11,rep,name=domains,proto3" json:"domains,omitempty"`
|
||||
CertRefJSON []byte `protobuf:"bytes,12,opt,name=certRefJSON,proto3" json:"certRefJSON,omitempty"`
|
||||
Host string `protobuf:"bytes,13,opt,name=host,proto3" json:"host,omitempty"`
|
||||
FollowPort bool `protobuf:"varint,14,opt,name=followPort,proto3" json:"followPort,omitempty"`
|
||||
}
|
||||
|
||||
func (x *CreateOriginRequest) Reset() {
|
||||
@@ -173,6 +174,13 @@ func (x *CreateOriginRequest) GetHost() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *CreateOriginRequest) GetFollowPort() bool {
|
||||
if x != nil {
|
||||
return x.FollowPort
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
type CreateOriginResponse struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@@ -240,6 +248,7 @@ type UpdateOriginRequest struct {
|
||||
Domains []string `protobuf:"bytes,12,rep,name=domains,proto3" json:"domains,omitempty"`
|
||||
CertRefJSON []byte `protobuf:"bytes,13,opt,name=certRefJSON,proto3" json:"certRefJSON,omitempty"`
|
||||
Host string `protobuf:"bytes,14,opt,name=host,proto3" json:"host,omitempty"`
|
||||
FollowPort bool `protobuf:"varint,15,opt,name=followPort,proto3" json:"followPort,omitempty"`
|
||||
}
|
||||
|
||||
func (x *UpdateOriginRequest) Reset() {
|
||||
@@ -372,6 +381,13 @@ func (x *UpdateOriginRequest) GetHost() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UpdateOriginRequest) GetFollowPort() bool {
|
||||
if x != nil {
|
||||
return x.FollowPort
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// 查找单个源站信息
|
||||
type FindEnabledOriginRequest struct {
|
||||
state protoimpl.MessageState
|
||||
@@ -572,7 +588,7 @@ var file_service_origin_proto_rawDesc = []byte{
|
||||
0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72,
|
||||
0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
|
||||
0x73, 0x2f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x22, 0xad, 0x03, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcd, 0x03, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f,
|
||||
0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04,
|
||||
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
|
||||
0x12, 0x26, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
|
||||
@@ -599,10 +615,12 @@ var file_service_origin_proto_rawDesc = []byte{
|
||||
0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x52, 0x65, 0x66, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0c, 0x20,
|
||||
0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x52, 0x65, 0x66, 0x4a, 0x53, 0x4f, 0x4e,
|
||||
0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
|
||||
0x68, 0x6f, 0x73, 0x74, 0x22, 0x32, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72,
|
||||
0x68, 0x6f, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x6f,
|
||||
0x72, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77,
|
||||
0x50, 0x6f, 0x72, 0x74, 0x22, 0x32, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72,
|
||||
0x69, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08,
|
||||
0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08,
|
||||
0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x22, 0xc9, 0x03, 0x0a, 0x13, 0x55, 0x70, 0x64,
|
||||
0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x22, 0xe9, 0x03, 0x0a, 0x13, 0x55, 0x70, 0x64,
|
||||
0x61, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04,
|
||||
@@ -631,7 +649,9 @@ var file_service_origin_proto_rawDesc = []byte{
|
||||
0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x52, 0x65, 0x66, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0d, 0x20,
|
||||
0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x52, 0x65, 0x66, 0x4a, 0x53, 0x4f, 0x4e,
|
||||
0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
|
||||
0x68, 0x6f, 0x73, 0x74, 0x22, 0x36, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62,
|
||||
0x68, 0x6f, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x6f,
|
||||
0x72, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77,
|
||||
0x50, 0x6f, 0x72, 0x74, 0x22, 0x36, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62,
|
||||
0x6c, 0x65, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x19,
|
||||
|
||||
@@ -504,20 +504,21 @@ type UpdateReverseProxyRequest struct {
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
ReverseProxyId int64 `protobuf:"varint,1,opt,name=reverseProxyId,proto3" json:"reverseProxyId,omitempty"`
|
||||
RequestHostType int32 `protobuf:"varint,6,opt,name=requestHostType,proto3" json:"requestHostType,omitempty"`
|
||||
RequestHost string `protobuf:"bytes,2,opt,name=requestHost,proto3" json:"requestHost,omitempty"`
|
||||
RequestURI string `protobuf:"bytes,3,opt,name=requestURI,proto3" json:"requestURI,omitempty"`
|
||||
StripPrefix string `protobuf:"bytes,4,opt,name=stripPrefix,proto3" json:"stripPrefix,omitempty"`
|
||||
AutoFlush bool `protobuf:"varint,5,opt,name=autoFlush,proto3" json:"autoFlush,omitempty"`
|
||||
AddHeaders []string `protobuf:"bytes,7,rep,name=addHeaders,proto3" json:"addHeaders,omitempty"`
|
||||
ConnTimeoutJSON []byte `protobuf:"bytes,8,opt,name=connTimeoutJSON,proto3" json:"connTimeoutJSON,omitempty"`
|
||||
ReadTimeoutJSON []byte `protobuf:"bytes,9,opt,name=readTimeoutJSON,proto3" json:"readTimeoutJSON,omitempty"`
|
||||
IdleTimeoutJSON []byte `protobuf:"bytes,10,opt,name=idleTimeoutJSON,proto3" json:"idleTimeoutJSON,omitempty"`
|
||||
MaxConns int32 `protobuf:"varint,11,opt,name=maxConns,proto3" json:"maxConns,omitempty"`
|
||||
MaxIdleConns int32 `protobuf:"varint,12,opt,name=maxIdleConns,proto3" json:"maxIdleConns,omitempty"`
|
||||
ProxyProtocolJSON []byte `protobuf:"bytes,13,opt,name=proxyProtocolJSON,proto3" json:"proxyProtocolJSON,omitempty"`
|
||||
FollowRedirects bool `protobuf:"varint,14,opt,name=followRedirects,proto3" json:"followRedirects,omitempty"`
|
||||
ReverseProxyId int64 `protobuf:"varint,1,opt,name=reverseProxyId,proto3" json:"reverseProxyId,omitempty"`
|
||||
RequestHostType int32 `protobuf:"varint,6,opt,name=requestHostType,proto3" json:"requestHostType,omitempty"`
|
||||
RequestHost string `protobuf:"bytes,2,opt,name=requestHost,proto3" json:"requestHost,omitempty"`
|
||||
RequestHostExcludingPort bool `protobuf:"varint,15,opt,name=requestHostExcludingPort,proto3" json:"requestHostExcludingPort,omitempty"`
|
||||
RequestURI string `protobuf:"bytes,3,opt,name=requestURI,proto3" json:"requestURI,omitempty"`
|
||||
StripPrefix string `protobuf:"bytes,4,opt,name=stripPrefix,proto3" json:"stripPrefix,omitempty"`
|
||||
AutoFlush bool `protobuf:"varint,5,opt,name=autoFlush,proto3" json:"autoFlush,omitempty"`
|
||||
AddHeaders []string `protobuf:"bytes,7,rep,name=addHeaders,proto3" json:"addHeaders,omitempty"`
|
||||
ConnTimeoutJSON []byte `protobuf:"bytes,8,opt,name=connTimeoutJSON,proto3" json:"connTimeoutJSON,omitempty"`
|
||||
ReadTimeoutJSON []byte `protobuf:"bytes,9,opt,name=readTimeoutJSON,proto3" json:"readTimeoutJSON,omitempty"`
|
||||
IdleTimeoutJSON []byte `protobuf:"bytes,10,opt,name=idleTimeoutJSON,proto3" json:"idleTimeoutJSON,omitempty"`
|
||||
MaxConns int32 `protobuf:"varint,11,opt,name=maxConns,proto3" json:"maxConns,omitempty"`
|
||||
MaxIdleConns int32 `protobuf:"varint,12,opt,name=maxIdleConns,proto3" json:"maxIdleConns,omitempty"`
|
||||
ProxyProtocolJSON []byte `protobuf:"bytes,13,opt,name=proxyProtocolJSON,proto3" json:"proxyProtocolJSON,omitempty"`
|
||||
FollowRedirects bool `protobuf:"varint,14,opt,name=followRedirects,proto3" json:"followRedirects,omitempty"`
|
||||
}
|
||||
|
||||
func (x *UpdateReverseProxyRequest) Reset() {
|
||||
@@ -573,6 +574,13 @@ func (x *UpdateReverseProxyRequest) GetRequestHost() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UpdateReverseProxyRequest) GetRequestHostExcludingPort() bool {
|
||||
if x != nil {
|
||||
return x.RequestHostExcludingPort
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *UpdateReverseProxyRequest) GetRequestURI() string {
|
||||
if x != nil {
|
||||
return x.RequestURI
|
||||
@@ -716,7 +724,7 @@ var file_service_reverse_proxy_proto_rawDesc = []byte{
|
||||
0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x49, 0x64, 0x12, 0x20,
|
||||
0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x0c, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x4a, 0x53, 0x4f, 0x4e,
|
||||
0x22, 0xa5, 0x04, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72,
|
||||
0x22, 0xe1, 0x04, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72,
|
||||
0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26,
|
||||
0x0a, 0x0e, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x49, 0x64,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50,
|
||||
@@ -725,75 +733,79 @@ var file_service_reverse_proxy_proto_rawDesc = []byte{
|
||||
0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65,
|
||||
0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x6f,
|
||||
0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x55, 0x52, 0x49,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x55,
|
||||
0x52, 0x49, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69,
|
||||
0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x70, 0x50, 0x72,
|
||||
0x65, 0x66, 0x69, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x46, 0x6c, 0x75, 0x73,
|
||||
0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x46, 0x6c, 0x75,
|
||||
0x73, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x64, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
|
||||
0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65,
|
||||
0x72, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75,
|
||||
0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x63, 0x6f, 0x6e,
|
||||
0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x28, 0x0a, 0x0f,
|
||||
0x72, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x18,
|
||||
0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x6f,
|
||||
0x75, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x64, 0x6c, 0x65, 0x54, 0x69,
|
||||
0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52,
|
||||
0x0f, 0x69, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4a, 0x53, 0x4f, 0x4e,
|
||||
0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x01,
|
||||
0x28, 0x05, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x0c,
|
||||
0x6d, 0x61, 0x78, 0x49, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x01,
|
||||
0x28, 0x05, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x49, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x73,
|
||||
0x12, 0x2c, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
|
||||
0x6c, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x70, 0x72, 0x6f,
|
||||
0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x28,
|
||||
0x0a, 0x0f, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
|
||||
0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x52,
|
||||
0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x32, 0xa2, 0x05, 0x0a, 0x13, 0x52, 0x65, 0x76,
|
||||
0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
|
||||
0x12, 0x53, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73,
|
||||
0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61,
|
||||
0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
|
||||
0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61,
|
||||
0x73, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x6f, 0x73,
|
||||
0x74, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x0f,
|
||||
0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x6f, 0x73,
|
||||
0x74, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1e,
|
||||
0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x55, 0x52, 0x49, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x55, 0x52, 0x49, 0x12, 0x20,
|
||||
0x0a, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78,
|
||||
0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x18, 0x05, 0x20,
|
||||
0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x12, 0x1e,
|
||||
0x0a, 0x0a, 0x61, 0x64, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03,
|
||||
0x28, 0x09, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x28,
|
||||
0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4a, 0x53, 0x4f,
|
||||
0x4e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x54, 0x69, 0x6d,
|
||||
0x65, 0x6f, 0x75, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x61, 0x64,
|
||||
0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28,
|
||||
0x0c, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4a, 0x53,
|
||||
0x4f, 0x4e, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75,
|
||||
0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x69, 0x64, 0x6c,
|
||||
0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x1a, 0x0a, 0x08,
|
||||
0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
|
||||
0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x49,
|
||||
0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c,
|
||||
0x6d, 0x61, 0x78, 0x49, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x11,
|
||||
0x70, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4a, 0x53, 0x4f,
|
||||
0x4e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x6f,
|
||||
0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x18, 0x0e, 0x20,
|
||||
0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x64, 0x69, 0x72,
|
||||
0x65, 0x63, 0x74, 0x73, 0x32, 0xa2, 0x05, 0x0a, 0x13, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65,
|
||||
0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x12,
|
||||
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f,
|
||||
0x78, 0x79, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65,
|
||||
0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76,
|
||||
0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x12, 0x62, 0x0a, 0x17, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
|
||||
0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x22, 0x2e, 0x70,
|
||||
0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x76,
|
||||
0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x1a, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
|
||||
0x64, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x1d, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61,
|
||||
0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79,
|
||||
0x12, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
|
||||
0x64, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e,
|
||||
0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78,
|
||||
0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x1d, 0x66, 0x69, 0x6e,
|
||||
0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50,
|
||||
0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x2e,
|
||||
0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x76, 0x65, 0x72,
|
||||
0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e,
|
||||
0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78,
|
||||
0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
|
||||
0x57, 0x0a, 0x1c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65,
|
||||
0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x12,
|
||||
0x27, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72,
|
||||
0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e,
|
||||
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, 0x5f, 0x0a, 0x20, 0x75, 0x70, 0x64, 0x61,
|
||||
0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72,
|
||||
0x69, 0x6d, 0x61, 0x72, 0x79, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x70,
|
||||
0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50,
|
||||
0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4f, 0x72, 0x69, 0x67, 0x69,
|
||||
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, 0x5d, 0x0a, 0x1f, 0x75, 0x70, 0x64,
|
||||
0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x42,
|
||||
0x61, 0x63, 0x6b, 0x75, 0x70, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x2a, 0x2e, 0x70,
|
||||
0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50,
|
||||
0x72, 0x6f, 0x78, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4f, 0x72, 0x69, 0x67, 0x69, 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, 0x43, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61,
|
||||
0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x1d,
|
||||
0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73,
|
||||
0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 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,
|
||||
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64,
|
||||
0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72,
|
||||
0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x1a, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
|
||||
0x64, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e,
|
||||
0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x1c, 0x75,
|
||||
0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78,
|
||||
0x79, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x2e, 0x70, 0x62,
|
||||
0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72,
|
||||
0x6f, 0x78, 0x79, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 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, 0x5f, 0x0a, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65,
|
||||
0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72,
|
||||
0x79, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70,
|
||||
0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79,
|
||||
0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4f, 0x72, 0x69, 0x67, 0x69, 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, 0x5d, 0x0a, 0x1f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52,
|
||||
0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x75,
|
||||
0x70, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x2a, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70,
|
||||
0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79,
|
||||
0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4f, 0x72, 0x69, 0x67, 0x69, 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, 0x43, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65,
|
||||
0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e,
|
||||
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f,
|
||||
0x78, 0x79, 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 (
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
258
pkg/rpc/pb/service_server_bandwidth_stat.pb.go
Normal file
258
pkg/rpc/pb/service_server_bandwidth_stat.pb.go
Normal file
@@ -0,0 +1,258 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.25.0
|
||||
// protoc v3.19.4
|
||||
// source: service_server_bandwidth_stat.proto
|
||||
|
||||
package pb
|
||||
|
||||
import (
|
||||
context "context"
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
// This is a compile-time assertion that a sufficiently up-to-date version
|
||||
// of the legacy proto package is being used.
|
||||
const _ = proto.ProtoPackageIsVersion4
|
||||
|
||||
// 上传带宽统计
|
||||
type UploadServerBandwidthStatsRequest struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
ServerBandwidthStats []*ServerBandwidthStat `protobuf:"bytes,1,rep,name=serverBandwidthStats,proto3" json:"serverBandwidthStats,omitempty"`
|
||||
}
|
||||
|
||||
func (x *UploadServerBandwidthStatsRequest) Reset() {
|
||||
*x = UploadServerBandwidthStatsRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_service_server_bandwidth_stat_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *UploadServerBandwidthStatsRequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*UploadServerBandwidthStatsRequest) ProtoMessage() {}
|
||||
|
||||
func (x *UploadServerBandwidthStatsRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_service_server_bandwidth_stat_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use UploadServerBandwidthStatsRequest.ProtoReflect.Descriptor instead.
|
||||
func (*UploadServerBandwidthStatsRequest) Descriptor() ([]byte, []int) {
|
||||
return file_service_server_bandwidth_stat_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *UploadServerBandwidthStatsRequest) GetServerBandwidthStats() []*ServerBandwidthStat {
|
||||
if x != nil {
|
||||
return x.ServerBandwidthStats
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var File_service_server_bandwidth_stat_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_service_server_bandwidth_stat_proto_rawDesc = []byte{
|
||||
0x0a, 0x23, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
|
||||
0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x2e,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
|
||||
0x73, 0x2f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64,
|
||||
0x65, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69,
|
||||
0x64, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x70,
|
||||
0x0a, 0x21, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61,
|
||||
0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x14, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61, 0x6e,
|
||||
0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
|
||||
0x0b, 0x32, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61, 0x6e,
|
||||
0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x52, 0x14, 0x73, 0x65, 0x72, 0x76,
|
||||
0x65, 0x72, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x73,
|
||||
0x32, 0x71, 0x0a, 0x1a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69,
|
||||
0x64, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53,
|
||||
0x0a, 0x1a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61,
|
||||
0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x70,
|
||||
0x62, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61,
|
||||
0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x74, 0x61, 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, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_service_server_bandwidth_stat_proto_rawDescOnce sync.Once
|
||||
file_service_server_bandwidth_stat_proto_rawDescData = file_service_server_bandwidth_stat_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_service_server_bandwidth_stat_proto_rawDescGZIP() []byte {
|
||||
file_service_server_bandwidth_stat_proto_rawDescOnce.Do(func() {
|
||||
file_service_server_bandwidth_stat_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_server_bandwidth_stat_proto_rawDescData)
|
||||
})
|
||||
return file_service_server_bandwidth_stat_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_service_server_bandwidth_stat_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_service_server_bandwidth_stat_proto_goTypes = []interface{}{
|
||||
(*UploadServerBandwidthStatsRequest)(nil), // 0: pb.UploadServerBandwidthStatsRequest
|
||||
(*ServerBandwidthStat)(nil), // 1: pb.ServerBandwidthStat
|
||||
(*RPCSuccess)(nil), // 2: pb.RPCSuccess
|
||||
}
|
||||
var file_service_server_bandwidth_stat_proto_depIdxs = []int32{
|
||||
1, // 0: pb.UploadServerBandwidthStatsRequest.serverBandwidthStats:type_name -> pb.ServerBandwidthStat
|
||||
0, // 1: pb.ServerBandwidthStatService.uploadServerBandwidthStats:input_type -> pb.UploadServerBandwidthStatsRequest
|
||||
2, // 2: pb.ServerBandwidthStatService.uploadServerBandwidthStats:output_type -> pb.RPCSuccess
|
||||
2, // [2:3] is the sub-list for method output_type
|
||||
1, // [1:2] is the sub-list for method input_type
|
||||
1, // [1:1] is the sub-list for extension type_name
|
||||
1, // [1:1] is the sub-list for extension extendee
|
||||
0, // [0:1] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_service_server_bandwidth_stat_proto_init() }
|
||||
func file_service_server_bandwidth_stat_proto_init() {
|
||||
if File_service_server_bandwidth_stat_proto != nil {
|
||||
return
|
||||
}
|
||||
file_models_rpc_messages_proto_init()
|
||||
file_models_model_server_bandwidth_stat_proto_init()
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_service_server_bandwidth_stat_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*UploadServerBandwidthStatsRequest); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_service_server_bandwidth_stat_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 1,
|
||||
NumExtensions: 0,
|
||||
NumServices: 1,
|
||||
},
|
||||
GoTypes: file_service_server_bandwidth_stat_proto_goTypes,
|
||||
DependencyIndexes: file_service_server_bandwidth_stat_proto_depIdxs,
|
||||
MessageInfos: file_service_server_bandwidth_stat_proto_msgTypes,
|
||||
}.Build()
|
||||
File_service_server_bandwidth_stat_proto = out.File
|
||||
file_service_server_bandwidth_stat_proto_rawDesc = nil
|
||||
file_service_server_bandwidth_stat_proto_goTypes = nil
|
||||
file_service_server_bandwidth_stat_proto_depIdxs = nil
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
var _ context.Context
|
||||
var _ grpc.ClientConnInterface
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
const _ = grpc.SupportPackageIsVersion6
|
||||
|
||||
// ServerBandwidthStatServiceClient is the client API for ServerBandwidthStatService service.
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
|
||||
type ServerBandwidthStatServiceClient interface {
|
||||
// 上传带宽统计
|
||||
UploadServerBandwidthStats(ctx context.Context, in *UploadServerBandwidthStatsRequest, opts ...grpc.CallOption) (*RPCSuccess, error)
|
||||
}
|
||||
|
||||
type serverBandwidthStatServiceClient struct {
|
||||
cc grpc.ClientConnInterface
|
||||
}
|
||||
|
||||
func NewServerBandwidthStatServiceClient(cc grpc.ClientConnInterface) ServerBandwidthStatServiceClient {
|
||||
return &serverBandwidthStatServiceClient{cc}
|
||||
}
|
||||
|
||||
func (c *serverBandwidthStatServiceClient) UploadServerBandwidthStats(ctx context.Context, in *UploadServerBandwidthStatsRequest, opts ...grpc.CallOption) (*RPCSuccess, error) {
|
||||
out := new(RPCSuccess)
|
||||
err := c.cc.Invoke(ctx, "/pb.ServerBandwidthStatService/uploadServerBandwidthStats", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// ServerBandwidthStatServiceServer is the server API for ServerBandwidthStatService service.
|
||||
type ServerBandwidthStatServiceServer interface {
|
||||
// 上传带宽统计
|
||||
UploadServerBandwidthStats(context.Context, *UploadServerBandwidthStatsRequest) (*RPCSuccess, error)
|
||||
}
|
||||
|
||||
// UnimplementedServerBandwidthStatServiceServer can be embedded to have forward compatible implementations.
|
||||
type UnimplementedServerBandwidthStatServiceServer struct {
|
||||
}
|
||||
|
||||
func (*UnimplementedServerBandwidthStatServiceServer) UploadServerBandwidthStats(context.Context, *UploadServerBandwidthStatsRequest) (*RPCSuccess, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method UploadServerBandwidthStats not implemented")
|
||||
}
|
||||
|
||||
func RegisterServerBandwidthStatServiceServer(s *grpc.Server, srv ServerBandwidthStatServiceServer) {
|
||||
s.RegisterService(&_ServerBandwidthStatService_serviceDesc, srv)
|
||||
}
|
||||
|
||||
func _ServerBandwidthStatService_UploadServerBandwidthStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(UploadServerBandwidthStatsRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(ServerBandwidthStatServiceServer).UploadServerBandwidthStats(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/pb.ServerBandwidthStatService/UploadServerBandwidthStats",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(ServerBandwidthStatServiceServer).UploadServerBandwidthStats(ctx, req.(*UploadServerBandwidthStatsRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
var _ServerBandwidthStatService_serviceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "pb.ServerBandwidthStatService",
|
||||
HandlerType: (*ServerBandwidthStatServiceServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
MethodName: "uploadServerBandwidthStats",
|
||||
Handler: _ServerBandwidthStatService_UploadServerBandwidthStats_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "service_server_bandwidth_stat.proto",
|
||||
}
|
||||
@@ -591,11 +591,17 @@ type ComposeServerStatBoardResponse struct {
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
DailyTrafficStats []*ComposeServerStatBoardResponse_DailyTrafficStat `protobuf:"bytes,30,rep,name=dailyTrafficStats,proto3" json:"dailyTrafficStats,omitempty"`
|
||||
HourlyTrafficStats []*ComposeServerStatBoardResponse_HourlyTrafficStat `protobuf:"bytes,31,rep,name=hourlyTrafficStats,proto3" json:"hourlyTrafficStats,omitempty"`
|
||||
TopNodeStats []*ComposeServerStatBoardResponse_NodeStat `protobuf:"bytes,32,rep,name=topNodeStats,proto3" json:"topNodeStats,omitempty"`
|
||||
TopCountryStats []*ComposeServerStatBoardResponse_CountryStat `protobuf:"bytes,35,rep,name=topCountryStats,proto3" json:"topCountryStats,omitempty"`
|
||||
MetricDataCharts []*MetricDataChart `protobuf:"bytes,34,rep,name=metricDataCharts,proto3" json:"metricDataCharts,omitempty"`
|
||||
MinutelyPeekBandwidthBytes int64 `protobuf:"varint,5,opt,name=minutelyPeekBandwidthBytes,proto3" json:"minutelyPeekBandwidthBytes,omitempty"` // 当前带宽(N分钟峰值)
|
||||
DailyPeekBandwidthBytes int64 `protobuf:"varint,2,opt,name=dailyPeekBandwidthBytes,proto3" json:"dailyPeekBandwidthBytes,omitempty"` // 当天带宽峰值
|
||||
MonthlyPeekBandwidthBytes int64 `protobuf:"varint,3,opt,name=monthlyPeekBandwidthBytes,proto3" json:"monthlyPeekBandwidthBytes,omitempty"` // 当月带宽峰值
|
||||
LastMonthlyPeekBandwidthBytes int64 `protobuf:"varint,4,opt,name=lastMonthlyPeekBandwidthBytes,proto3" json:"lastMonthlyPeekBandwidthBytes,omitempty"` // 上个月带宽峰值
|
||||
MinutelyBandwidthStats []*ServerBandwidthStat `protobuf:"bytes,1,rep,name=minutelyBandwidthStats,proto3" json:"minutelyBandwidthStats,omitempty"` // 分钟级的带宽统计
|
||||
DailyBandwidthStats []*ServerBandwidthStat `protobuf:"bytes,6,rep,name=dailyBandwidthStats,proto3" json:"dailyBandwidthStats,omitempty"` // 按天的带宽统计
|
||||
DailyTrafficStats []*ComposeServerStatBoardResponse_DailyTrafficStat `protobuf:"bytes,30,rep,name=dailyTrafficStats,proto3" json:"dailyTrafficStats,omitempty"`
|
||||
HourlyTrafficStats []*ComposeServerStatBoardResponse_HourlyTrafficStat `protobuf:"bytes,31,rep,name=hourlyTrafficStats,proto3" json:"hourlyTrafficStats,omitempty"`
|
||||
TopNodeStats []*ComposeServerStatBoardResponse_NodeStat `protobuf:"bytes,32,rep,name=topNodeStats,proto3" json:"topNodeStats,omitempty"`
|
||||
TopCountryStats []*ComposeServerStatBoardResponse_CountryStat `protobuf:"bytes,35,rep,name=topCountryStats,proto3" json:"topCountryStats,omitempty"`
|
||||
MetricDataCharts []*MetricDataChart `protobuf:"bytes,34,rep,name=metricDataCharts,proto3" json:"metricDataCharts,omitempty"`
|
||||
}
|
||||
|
||||
func (x *ComposeServerStatBoardResponse) Reset() {
|
||||
@@ -630,6 +636,48 @@ func (*ComposeServerStatBoardResponse) Descriptor() ([]byte, []int) {
|
||||
return file_service_server_stat_board_proto_rawDescGZIP(), []int{7}
|
||||
}
|
||||
|
||||
func (x *ComposeServerStatBoardResponse) GetMinutelyPeekBandwidthBytes() int64 {
|
||||
if x != nil {
|
||||
return x.MinutelyPeekBandwidthBytes
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *ComposeServerStatBoardResponse) GetDailyPeekBandwidthBytes() int64 {
|
||||
if x != nil {
|
||||
return x.DailyPeekBandwidthBytes
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *ComposeServerStatBoardResponse) GetMonthlyPeekBandwidthBytes() int64 {
|
||||
if x != nil {
|
||||
return x.MonthlyPeekBandwidthBytes
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *ComposeServerStatBoardResponse) GetLastMonthlyPeekBandwidthBytes() int64 {
|
||||
if x != nil {
|
||||
return x.LastMonthlyPeekBandwidthBytes
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *ComposeServerStatBoardResponse) GetMinutelyBandwidthStats() []*ServerBandwidthStat {
|
||||
if x != nil {
|
||||
return x.MinutelyBandwidthStats
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *ComposeServerStatBoardResponse) GetDailyBandwidthStats() []*ServerBandwidthStat {
|
||||
if x != nil {
|
||||
return x.DailyBandwidthStats
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *ComposeServerStatBoardResponse) GetDailyTrafficStats() []*ComposeServerStatBoardResponse_DailyTrafficStat {
|
||||
if x != nil {
|
||||
return x.DailyTrafficStats
|
||||
@@ -1565,68 +1613,275 @@ var file_service_server_stat_board_proto_rawDesc = []byte{
|
||||
0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f,
|
||||
0x63, 0x68, 0x61, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x6d, 0x6f, 0x64,
|
||||
0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
|
||||
0x5f, 0x73, 0x74, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4d, 0x0a, 0x25, 0x46,
|
||||
0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72,
|
||||
0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73,
|
||||
0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64,
|
||||
0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x26, 0x46, 0x69,
|
||||
0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76,
|
||||
0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74,
|
||||
0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13,
|
||||
0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f,
|
||||
0x61, 0x72, 0x64, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42,
|
||||
0x6f, 0x61, 0x72, 0x64, 0x73, 0x22, 0x50, 0x0a, 0x28, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65,
|
||||
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c,
|
||||
0x75, 0x73, 0x74, 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
|
||||
0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c,
|
||||
0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0xd8, 0x0b, 0x0a, 0x29, 0x43, 0x6f, 0x6d, 0x70,
|
||||
0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f, 0x64,
|
||||
0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x63,
|
||||
0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||
0x10, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65,
|
||||
0x73, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69,
|
||||
0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x63,
|
||||
0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65,
|
||||
0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
|
||||
0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65,
|
||||
0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x73,
|
||||
0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x6c, 0x0a, 0x11, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72,
|
||||
0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b,
|
||||
0x32, 0x3e, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72,
|
||||
0x5f, 0x73, 0x74, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x6d, 0x6f, 0x64,
|
||||
0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
|
||||
0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x2e,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4d, 0x0a, 0x25, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c,
|
||||
0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61,
|
||||
0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24,
|
||||
0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74,
|
||||
0x65, 0x72, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x26, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45,
|
||||
0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
|
||||
0x42, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f,
|
||||
0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72,
|
||||
0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65,
|
||||
0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x10, 0x73,
|
||||
0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x22,
|
||||
0x50, 0x0a, 0x28, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
|
||||
0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42,
|
||||
0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e,
|
||||
0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49,
|
||||
0x64, 0x22, 0xd8, 0x0b, 0x0a, 0x29, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72,
|
||||
0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74,
|
||||
0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
|
||||
0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74,
|
||||
0x52, 0x11, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74,
|
||||
0x61, 0x74, 0x73, 0x12, 0x6f, 0x0a, 0x12, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54, 0x72, 0x61,
|
||||
0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x3f, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76,
|
||||
0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
|
||||
0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48,
|
||||
0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74,
|
||||
0x52, 0x12, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53,
|
||||
0x74, 0x61, 0x74, 0x73, 0x12, 0x5a, 0x0a, 0x0c, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x53,
|
||||
0x74, 0x61, 0x74, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x62, 0x2e,
|
||||
0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
|
||||
0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f,
|
||||
0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x63,
|
||||
0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65,
|
||||
0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e,
|
||||
0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63,
|
||||
0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12,
|
||||
0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12,
|
||||
0x6c, 0x0a, 0x11, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53,
|
||||
0x74, 0x61, 0x74, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x70, 0x62, 0x2e,
|
||||
0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61,
|
||||
0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72,
|
||||
0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74,
|
||||
0x61, 0x74, 0x52, 0x0c, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73,
|
||||
0x12, 0x33, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65,
|
||||
0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64,
|
||||
0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x63, 0x70, 0x75, 0x4e, 0x6f, 0x64, 0x65, 0x56,
|
||||
0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x10, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4e,
|
||||
0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10,
|
||||
0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73,
|
||||
0x12, 0x35, 0x0a, 0x0e, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75,
|
||||
0x65, 0x73, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f,
|
||||
0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x6f, 0x64,
|
||||
0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69,
|
||||
0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x18, 0x25, 0x20, 0x03, 0x28,
|
||||
0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54,
|
||||
0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x52, 0x11, 0x64, 0x61, 0x69, 0x6c,
|
||||
0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x6f, 0x0a,
|
||||
0x12, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74,
|
||||
0x61, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x62, 0x2e, 0x43,
|
||||
0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
|
||||
0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54,
|
||||
0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x52, 0x12, 0x68, 0x6f, 0x75, 0x72,
|
||||
0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x5a,
|
||||
0x0a, 0x0c, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x20,
|
||||
0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73,
|
||||
0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43,
|
||||
0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x52, 0x0c, 0x74, 0x6f,
|
||||
0x70, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x0d, 0x63, 0x70,
|
||||
0x75, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28,
|
||||
0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65,
|
||||
0x52, 0x0d, 0x63, 0x70, 0x75, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12,
|
||||
0x39, 0x0a, 0x10, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c,
|
||||
0x75, 0x65, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e,
|
||||
0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79,
|
||||
0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x0e, 0x6c, 0x6f,
|
||||
0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x24, 0x20, 0x03,
|
||||
0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75,
|
||||
0x65, 0x52, 0x0e, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65,
|
||||
0x73, 0x12, 0x3f, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43,
|
||||
0x68, 0x61, 0x72, 0x74, 0x73, 0x18, 0x25, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x62,
|
||||
0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x72, 0x74,
|
||||
0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x72,
|
||||
0x74, 0x73, 0x1a, 0x88, 0x02, 0x0a, 0x10, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66,
|
||||
0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74,
|
||||
0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12,
|
||||
0x20, 0x0a, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65,
|
||||
0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x05,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65,
|
||||
0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75,
|
||||
0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73,
|
||||
0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74,
|
||||
0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61,
|
||||
0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03,
|
||||
0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x8b, 0x02,
|
||||
0x0a, 0x11, 0x48, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53,
|
||||
0x74, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x20, 0x0a,
|
||||
0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12,
|
||||
0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73,
|
||||
0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x61,
|
||||
0x63, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x06,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63,
|
||||
0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x74, 0x74,
|
||||
0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b,
|
||||
0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x1a, 0xce, 0x01, 0x0a, 0x08,
|
||||
0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65,
|
||||
0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64,
|
||||
0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d,
|
||||
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e,
|
||||
0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18,
|
||||
0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x74,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||
0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x3b, 0x0a, 0x21,
|
||||
0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61,
|
||||
0x74, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0xed, 0x0b, 0x0a, 0x22, 0x43, 0x6f,
|
||||
0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x4e,
|
||||
0x6f, 0x64, 0x65, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x0e,
|
||||
0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x49, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x49, 0x6e, 0x42,
|
||||
0x79, 0x74, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4f,
|
||||
0x75, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74,
|
||||
0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4f, 0x75, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x24,
|
||||
0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18,
|
||||
0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74,
|
||||
0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43,
|
||||
0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03,
|
||||
0x52, 0x10, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x53,
|
||||
0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x61, 0x63, 0x68, 0x65,
|
||||
0x44, 0x69, 0x73, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x61, 0x63, 0x68,
|
||||
0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x0f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69,
|
||||
0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09,
|
||||
0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x63, 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20,
|
||||
0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20,
|
||||
0x01, 0x28, 0x02, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65,
|
||||
0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53,
|
||||
0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x72,
|
||||
0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f,
|
||||
0x61, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x65,
|
||||
0x0a, 0x11, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74,
|
||||
0x61, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x62, 0x2e, 0x43,
|
||||
0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
|
||||
0x4e, 0x6f, 0x64, 0x65, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74,
|
||||
0x61, 0x74, 0x52, 0x11, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63,
|
||||
0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x68, 0x0a, 0x12, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54,
|
||||
0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28,
|
||||
0x0b, 0x32, 0x38, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65,
|
||||
0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x6f, 0x61, 0x72,
|
||||
0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x6f, 0x75, 0x72, 0x6c, 0x79,
|
||||
0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x52, 0x12, 0x68, 0x6f, 0x75,
|
||||
0x72, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12,
|
||||
0x33, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73,
|
||||
0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65,
|
||||
0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x63, 0x70, 0x75, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61,
|
||||
0x6c, 0x75, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x10, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4e, 0x6f,
|
||||
0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d,
|
||||
0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x6d,
|
||||
0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12,
|
||||
0x35, 0x0a, 0x0e, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65,
|
||||
0x73, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64,
|
||||
0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65,
|
||||
0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x0f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x44,
|
||||
0x69, 0x72, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x26, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f,
|
||||
0x63, 0x61, 0x63, 0x68, 0x65, 0x44, 0x69, 0x72, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12,
|
||||
0x3f, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61,
|
||||
0x72, 0x74, 0x73, 0x18, 0x25, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x4d,
|
||||
0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x72, 0x74, 0x52, 0x10,
|
||||
0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73,
|
||||
0x1a, 0x88, 0x02, 0x0a, 0x10, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69,
|
||||
0x63, 0x53, 0x74, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x20, 0x0a,
|
||||
0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12,
|
||||
0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73,
|
||||
0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x61,
|
||||
0x63, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x06,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63,
|
||||
0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x74, 0x74,
|
||||
0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b,
|
||||
0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x8b, 0x02, 0x0a, 0x11,
|
||||
0x48, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61,
|
||||
0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63,
|
||||
0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
|
||||
0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x24, 0x0a,
|
||||
0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x04,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||
0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68,
|
||||
0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
|
||||
0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63,
|
||||
0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x74,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x3b, 0x0a, 0x1d, 0x43, 0x6f, 0x6d,
|
||||
0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f,
|
||||
0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65,
|
||||
0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65,
|
||||
0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0xb5, 0x0e, 0x0a, 0x1e, 0x43, 0x6f, 0x6d, 0x70, 0x6f,
|
||||
0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72,
|
||||
0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x1a, 0x6d, 0x69, 0x6e,
|
||||
0x75, 0x74, 0x65, 0x6c, 0x79, 0x50, 0x65, 0x65, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64,
|
||||
0x74, 0x68, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, 0x6d,
|
||||
0x69, 0x6e, 0x75, 0x74, 0x65, 0x6c, 0x79, 0x50, 0x65, 0x65, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77,
|
||||
0x69, 0x64, 0x74, 0x68, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x17, 0x64, 0x61, 0x69,
|
||||
0x6c, 0x79, 0x50, 0x65, 0x65, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42,
|
||||
0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x64, 0x61, 0x69, 0x6c,
|
||||
0x79, 0x50, 0x65, 0x65, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x79,
|
||||
0x74, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x19, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x50, 0x65,
|
||||
0x65, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x79, 0x74, 0x65, 0x73,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x50,
|
||||
0x65, 0x65, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x79, 0x74, 0x65,
|
||||
0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79,
|
||||
0x50, 0x65, 0x65, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x79, 0x74,
|
||||
0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f,
|
||||
0x6e, 0x74, 0x68, 0x6c, 0x79, 0x50, 0x65, 0x65, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64,
|
||||
0x74, 0x68, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x16, 0x6d, 0x69, 0x6e, 0x75, 0x74,
|
||||
0x65, 0x6c, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74,
|
||||
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72,
|
||||
0x76, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74,
|
||||
0x52, 0x16, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x6c, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69,
|
||||
0x64, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x13, 0x64, 0x61, 0x69, 0x6c,
|
||||
0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18,
|
||||
0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65,
|
||||
0x72, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x52, 0x13,
|
||||
0x64, 0x61, 0x69, 0x6c, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x74,
|
||||
0x61, 0x74, 0x73, 0x12, 0x61, 0x0a, 0x11, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66,
|
||||
0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33,
|
||||
0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65,
|
||||
0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53,
|
||||
0x74, 0x61, 0x74, 0x52, 0x11, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69,
|
||||
0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x64, 0x0a, 0x12, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79,
|
||||
0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x03,
|
||||
0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53,
|
||||
0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54, 0x72, 0x61,
|
||||
0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x52, 0x12, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79,
|
||||
0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x4f, 0x0a, 0x0c,
|
||||
0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x20, 0x20, 0x03,
|
||||
0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53,
|
||||
0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x52,
|
||||
0x0c, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x58, 0x0a,
|
||||
0x0f, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73,
|
||||
0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70,
|
||||
0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61,
|
||||
0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x0f, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69,
|
||||
0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28,
|
||||
0x0b, 0x32, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74,
|
||||
0x61, 0x43, 0x68, 0x61, 0x72, 0x74, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61,
|
||||
0x74, 0x61, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x1a, 0x88, 0x02, 0x0a, 0x10, 0x44, 0x61, 0x69,
|
||||
@@ -1676,238 +1931,59 @@ var file_service_server_stat_board_proto_rawDesc = []byte{
|
||||
0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73,
|
||||
0x12, 0x20, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18,
|
||||
0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74,
|
||||
0x65, 0x73, 0x22, 0x3b, 0x0a, 0x21, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72,
|
||||
0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x6f, 0x61, 0x72, 0x64,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49,
|
||||
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22,
|
||||
0xed, 0x0b, 0x0a, 0x22, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65,
|
||||
0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69,
|
||||
0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69,
|
||||
0x76, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x49, 0x6e, 0x42,
|
||||
0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x66,
|
||||
0x66, 0x69, 0x63, 0x49, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x72,
|
||||
0x61, 0x66, 0x66, 0x69, 0x63, 0x4f, 0x75, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4f, 0x75, 0x74, 0x42,
|
||||
0x79, 0x74, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x75,
|
||||
0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f,
|
||||
0x75, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x10,
|
||||
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
|
||||
0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e,
|
||||
0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x61, 0x63, 0x68,
|
||||
0x65, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||
0x0d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x28,
|
||||
0x0a, 0x0f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a,
|
||||
0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x4d, 0x65,
|
||||
0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x70, 0x75, 0x55,
|
||||
0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x63, 0x70, 0x75, 0x55,
|
||||
0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x55, 0x73,
|
||||
0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x72,
|
||||
0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79,
|
||||
0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||
0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65,
|
||||
0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04,
|
||||
0x6c, 0x6f, 0x61, 0x64, 0x12, 0x65, 0x0a, 0x11, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61,
|
||||
0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x37, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76,
|
||||
0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61,
|
||||
0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x52, 0x11, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x54,
|
||||
0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x68, 0x0a, 0x12, 0x68,
|
||||
0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74,
|
||||
0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d,
|
||||
0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f,
|
||||
0x64, 0x65, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
|
||||
0x48, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61,
|
||||
0x74, 0x52, 0x12, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63,
|
||||
0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x4e, 0x6f, 0x64, 0x65,
|
||||
0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70,
|
||||
0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x63, 0x70, 0x75,
|
||||
0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x10, 0x6d, 0x65,
|
||||
0x6d, 0x6f, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x23,
|
||||
0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61,
|
||||
0x6c, 0x75, 0x65, 0x52, 0x10, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x56,
|
||||
0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x0e, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x6f, 0x64,
|
||||
0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e,
|
||||
0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x6c, 0x6f,
|
||||
0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x0f,
|
||||
0x63, 0x61, 0x63, 0x68, 0x65, 0x44, 0x69, 0x72, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18,
|
||||
0x26, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x56,
|
||||
0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x44, 0x69, 0x72, 0x73, 0x56,
|
||||
0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44,
|
||||
0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x18, 0x25, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x13, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43,
|
||||
0x68, 0x61, 0x72, 0x74, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
|
||||
0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x1a, 0x88, 0x02, 0x0a, 0x10, 0x44, 0x61, 0x69, 0x6c, 0x79,
|
||||
0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x64,
|
||||
0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x14, 0x0a,
|
||||
0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x79,
|
||||
0x74, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79, 0x74,
|
||||
0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64,
|
||||
0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f,
|
||||
0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63,
|
||||
0x6f, 0x75, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43,
|
||||
0x61, 0x63, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a,
|
||||
0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e,
|
||||
0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12,
|
||||
0x20, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65,
|
||||
0x73, 0x1a, 0x8b, 0x02, 0x0a, 0x11, 0x48, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66,
|
||||
0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x62,
|
||||
0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65,
|
||||
0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79,
|
||||
0x74, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x75, 0x6e,
|
||||
0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75,
|
||||
0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73,
|
||||
0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x61, 0x63,
|
||||
0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63,
|
||||
0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41,
|
||||
0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a,
|
||||
0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22,
|
||||
0x3b, 0x0a, 0x1d, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
|
||||
0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x9b, 0x0b, 0x0a,
|
||||
0x1e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74,
|
||||
0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
|
||||
0x61, 0x0a, 0x11, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53,
|
||||
0x74, 0x61, 0x74, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x62, 0x2e,
|
||||
0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61,
|
||||
0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44,
|
||||
0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x52,
|
||||
0x11, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61,
|
||||
0x74, 0x73, 0x12, 0x64, 0x0a, 0x12, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66,
|
||||
0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34,
|
||||
0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65,
|
||||
0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x2e, 0x48, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63,
|
||||
0x53, 0x74, 0x61, 0x74, 0x52, 0x12, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66,
|
||||
0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x4f, 0x0a, 0x0c, 0x74, 0x6f, 0x70, 0x4e,
|
||||
0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b,
|
||||
0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65,
|
||||
0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x52, 0x0c, 0x74, 0x6f, 0x70,
|
||||
0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x0f, 0x74, 0x6f, 0x70,
|
||||
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x23, 0x20, 0x03,
|
||||
0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53,
|
||||
0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x74,
|
||||
0x61, 0x74, 0x52, 0x0f, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x74,
|
||||
0x61, 0x74, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74,
|
||||
0x61, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e,
|
||||
0x70, 0x62, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61,
|
||||
0x72, 0x74, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68,
|
||||
0x61, 0x72, 0x74, 0x73, 0x1a, 0x88, 0x02, 0x0a, 0x10, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72,
|
||||
0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x62,
|
||||
0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65,
|
||||
0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79,
|
||||
0x74, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x75, 0x6e,
|
||||
0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75,
|
||||
0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73,
|
||||
0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x61, 0x63,
|
||||
0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63,
|
||||
0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41,
|
||||
0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a,
|
||||
0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x1a,
|
||||
0x8b, 0x02, 0x0a, 0x11, 0x48, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69,
|
||||
0x63, 0x53, 0x74, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74,
|
||||
0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12,
|
||||
0x20, 0x0a, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65,
|
||||
0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x05,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65,
|
||||
0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75,
|
||||
0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73,
|
||||
0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74,
|
||||
0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61,
|
||||
0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03,
|
||||
0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x1a, 0xce, 0x01,
|
||||
0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f,
|
||||
0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65,
|
||||
0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24,
|
||||
0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f,
|
||||
0x65, 0x73, 0x1a, 0xd9, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x74,
|
||||
0x61, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d,
|
||||
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79,
|
||||
0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f,
|
||||
0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73,
|
||||
0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||
0x02, 0x52, 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f,
|
||||
0x75, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b,
|
||||
0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x1a, 0xd9,
|
||||
0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x12, 0x20,
|
||||
0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65,
|
||||
0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||
0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63,
|
||||
0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07,
|
||||
0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x70,
|
||||
0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41,
|
||||
0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x06, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61,
|
||||
0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x76, 0x0a, 0x0f, 0x4d, 0x65,
|
||||
0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x72, 0x74, 0x12, 0x31, 0x0a,
|
||||
0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x68, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x68,
|
||||
0x61, 0x72, 0x74, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x68, 0x61, 0x72, 0x74,
|
||||
0x12, 0x30, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18,
|
||||
0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69,
|
||||
0x63, 0x53, 0x74, 0x61, 0x74, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x74, 0x61,
|
||||
0x74, 0x73, 0x32, 0xe2, 0x03, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61,
|
||||
0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x77, 0x0a,
|
||||
0x1e, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53,
|
||||
0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x12,
|
||||
0x29, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62,
|
||||
0x03, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x76,
|
||||
0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x72,
|
||||
0x74, 0x12, 0x31, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x68, 0x61, 0x72, 0x74,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x74, 0x72,
|
||||
0x69, 0x63, 0x43, 0x68, 0x61, 0x72, 0x74, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43,
|
||||
0x68, 0x61, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x74,
|
||||
0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x4d,
|
||||
0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69,
|
||||
0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x32, 0xe2, 0x03, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x65,
|
||||
0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
|
||||
0x65, 0x12, 0x77, 0x0a, 0x1e, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62,
|
||||
0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61,
|
||||
0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x70, 0x62, 0x2e,
|
||||
0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65,
|
||||
0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x21, 0x63, 0x6f, 0x6d, 0x70, 0x6f,
|
||||
0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f, 0x64, 0x65,
|
||||
0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x2c, 0x2e, 0x70,
|
||||
0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53,
|
||||
0x74, 0x61, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42, 0x6f,
|
||||
0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x70, 0x62, 0x2e,
|
||||
0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61,
|
||||
0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72,
|
||||
0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x1a, 0x63, 0x6f, 0x6d,
|
||||
0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f,
|
||||
0x64, 0x65, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d,
|
||||
0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f,
|
||||
0x64, 0x65, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26,
|
||||
0x72, 0x64, 0x73, 0x12, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c,
|
||||
0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61,
|
||||
0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a,
|
||||
0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c,
|
||||
0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72,
|
||||
0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x21, 0x63,
|
||||
0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
|
||||
0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64,
|
||||
0x12, 0x2c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72,
|
||||
0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74,
|
||||
0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d,
|
||||
0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65,
|
||||
0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73,
|
||||
0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
|
||||
0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a,
|
||||
0x1a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74,
|
||||
0x61, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x25, 0x2e, 0x70, 0x62,
|
||||
0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74,
|
||||
0x61, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||
0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53,
|
||||
0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x6f, 0x61,
|
||||
0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x63, 0x6f,
|
||||
0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42,
|
||||
0x6f, 0x61, 0x72, 0x64, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73,
|
||||
0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64,
|
||||
0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72,
|
||||
0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65,
|
||||
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62,
|
||||
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d,
|
||||
0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x42, 0x6f,
|
||||
0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e,
|
||||
0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@@ -1944,8 +2020,9 @@ var file_service_server_stat_board_proto_goTypes = []interface{}{
|
||||
(*ComposeServerStatBoardResponse_CountryStat)(nil), // 17: pb.ComposeServerStatBoardResponse.CountryStat
|
||||
(*ServerStatBoard)(nil), // 18: pb.ServerStatBoard
|
||||
(*NodeValue)(nil), // 19: pb.NodeValue
|
||||
(*MetricChart)(nil), // 20: pb.MetricChart
|
||||
(*MetricStat)(nil), // 21: pb.MetricStat
|
||||
(*ServerBandwidthStat)(nil), // 20: pb.ServerBandwidthStat
|
||||
(*MetricChart)(nil), // 21: pb.MetricChart
|
||||
(*MetricStat)(nil), // 22: pb.MetricStat
|
||||
}
|
||||
var file_service_server_stat_board_proto_depIdxs = []int32{
|
||||
18, // 0: pb.FindAllEnabledServerStatBoardsResponse.serverStatBoards:type_name -> pb.ServerStatBoard
|
||||
@@ -1963,26 +2040,28 @@ var file_service_server_stat_board_proto_depIdxs = []int32{
|
||||
19, // 12: pb.ComposeServerStatNodeBoardResponse.loadNodeValues:type_name -> pb.NodeValue
|
||||
19, // 13: pb.ComposeServerStatNodeBoardResponse.cacheDirsValues:type_name -> pb.NodeValue
|
||||
8, // 14: pb.ComposeServerStatNodeBoardResponse.metricDataCharts:type_name -> pb.MetricDataChart
|
||||
14, // 15: pb.ComposeServerStatBoardResponse.dailyTrafficStats:type_name -> pb.ComposeServerStatBoardResponse.DailyTrafficStat
|
||||
15, // 16: pb.ComposeServerStatBoardResponse.hourlyTrafficStats:type_name -> pb.ComposeServerStatBoardResponse.HourlyTrafficStat
|
||||
16, // 17: pb.ComposeServerStatBoardResponse.topNodeStats:type_name -> pb.ComposeServerStatBoardResponse.NodeStat
|
||||
17, // 18: pb.ComposeServerStatBoardResponse.topCountryStats:type_name -> pb.ComposeServerStatBoardResponse.CountryStat
|
||||
8, // 19: pb.ComposeServerStatBoardResponse.metricDataCharts:type_name -> pb.MetricDataChart
|
||||
20, // 20: pb.MetricDataChart.metricChart:type_name -> pb.MetricChart
|
||||
21, // 21: pb.MetricDataChart.metricStats:type_name -> pb.MetricStat
|
||||
0, // 22: pb.ServerStatBoardService.findAllEnabledServerStatBoards:input_type -> pb.FindAllEnabledServerStatBoardsRequest
|
||||
2, // 23: pb.ServerStatBoardService.composeServerStatNodeClusterBoard:input_type -> pb.ComposeServerStatNodeClusterBoardRequest
|
||||
4, // 24: pb.ServerStatBoardService.composeServerStatNodeBoard:input_type -> pb.ComposeServerStatNodeBoardRequest
|
||||
6, // 25: pb.ServerStatBoardService.composeServerStatBoard:input_type -> pb.ComposeServerStatBoardRequest
|
||||
1, // 26: pb.ServerStatBoardService.findAllEnabledServerStatBoards:output_type -> pb.FindAllEnabledServerStatBoardsResponse
|
||||
3, // 27: pb.ServerStatBoardService.composeServerStatNodeClusterBoard:output_type -> pb.ComposeServerStatNodeClusterBoardResponse
|
||||
5, // 28: pb.ServerStatBoardService.composeServerStatNodeBoard:output_type -> pb.ComposeServerStatNodeBoardResponse
|
||||
7, // 29: pb.ServerStatBoardService.composeServerStatBoard:output_type -> pb.ComposeServerStatBoardResponse
|
||||
26, // [26:30] is the sub-list for method output_type
|
||||
22, // [22:26] is the sub-list for method input_type
|
||||
22, // [22:22] is the sub-list for extension type_name
|
||||
22, // [22:22] is the sub-list for extension extendee
|
||||
0, // [0:22] is the sub-list for field type_name
|
||||
20, // 15: pb.ComposeServerStatBoardResponse.minutelyBandwidthStats:type_name -> pb.ServerBandwidthStat
|
||||
20, // 16: pb.ComposeServerStatBoardResponse.dailyBandwidthStats:type_name -> pb.ServerBandwidthStat
|
||||
14, // 17: pb.ComposeServerStatBoardResponse.dailyTrafficStats:type_name -> pb.ComposeServerStatBoardResponse.DailyTrafficStat
|
||||
15, // 18: pb.ComposeServerStatBoardResponse.hourlyTrafficStats:type_name -> pb.ComposeServerStatBoardResponse.HourlyTrafficStat
|
||||
16, // 19: pb.ComposeServerStatBoardResponse.topNodeStats:type_name -> pb.ComposeServerStatBoardResponse.NodeStat
|
||||
17, // 20: pb.ComposeServerStatBoardResponse.topCountryStats:type_name -> pb.ComposeServerStatBoardResponse.CountryStat
|
||||
8, // 21: pb.ComposeServerStatBoardResponse.metricDataCharts:type_name -> pb.MetricDataChart
|
||||
21, // 22: pb.MetricDataChart.metricChart:type_name -> pb.MetricChart
|
||||
22, // 23: pb.MetricDataChart.metricStats:type_name -> pb.MetricStat
|
||||
0, // 24: pb.ServerStatBoardService.findAllEnabledServerStatBoards:input_type -> pb.FindAllEnabledServerStatBoardsRequest
|
||||
2, // 25: pb.ServerStatBoardService.composeServerStatNodeClusterBoard:input_type -> pb.ComposeServerStatNodeClusterBoardRequest
|
||||
4, // 26: pb.ServerStatBoardService.composeServerStatNodeBoard:input_type -> pb.ComposeServerStatNodeBoardRequest
|
||||
6, // 27: pb.ServerStatBoardService.composeServerStatBoard:input_type -> pb.ComposeServerStatBoardRequest
|
||||
1, // 28: pb.ServerStatBoardService.findAllEnabledServerStatBoards:output_type -> pb.FindAllEnabledServerStatBoardsResponse
|
||||
3, // 29: pb.ServerStatBoardService.composeServerStatNodeClusterBoard:output_type -> pb.ComposeServerStatNodeClusterBoardResponse
|
||||
5, // 30: pb.ServerStatBoardService.composeServerStatNodeBoard:output_type -> pb.ComposeServerStatNodeBoardResponse
|
||||
7, // 31: pb.ServerStatBoardService.composeServerStatBoard:output_type -> pb.ComposeServerStatBoardResponse
|
||||
28, // [28:32] is the sub-list for method output_type
|
||||
24, // [24:28] is the sub-list for method input_type
|
||||
24, // [24:24] is the sub-list for extension type_name
|
||||
24, // [24:24] is the sub-list for extension extendee
|
||||
0, // [0:24] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_service_server_stat_board_proto_init() }
|
||||
@@ -1994,6 +2073,7 @@ func file_service_server_stat_board_proto_init() {
|
||||
file_models_model_node_value_proto_init()
|
||||
file_models_model_metric_chart_proto_init()
|
||||
file_models_model_metric_stat_proto_init()
|
||||
file_models_model_server_bandwidth_stat_proto_init()
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_service_server_stat_board_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*FindAllEnabledServerStatBoardsRequest); i {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
1605
pkg/rpc/pb/service_user_identity.pb.go
Normal file
1605
pkg/rpc/pb/service_user_identity.pb.go
Normal file
File diff suppressed because it is too large
Load Diff
@@ -22,4 +22,5 @@ message APINode {
|
||||
bool isPrimary = 16;
|
||||
|
||||
bool debug = 30;
|
||||
string instanceCode = 31;
|
||||
}
|
||||
@@ -9,4 +9,6 @@ message File {
|
||||
int64 size = 3;
|
||||
int64 createdAt = 4;
|
||||
bool isPublic = 5;
|
||||
string mimeType = 6;
|
||||
string type = 7;
|
||||
}
|
||||
@@ -13,4 +13,5 @@ message Origin {
|
||||
string description = 5;
|
||||
repeated string domains = 6;
|
||||
string host = 7;
|
||||
bool followPort = 8;
|
||||
}
|
||||
14
pkg/rpc/protos/models/model_server_bandwidth_stat.proto
Normal file
14
pkg/rpc/protos/models/model_server_bandwidth_stat.proto
Normal file
@@ -0,0 +1,14 @@
|
||||
syntax = "proto3";
|
||||
option go_package = "./pb";
|
||||
|
||||
package pb;
|
||||
|
||||
// 带宽统计数据
|
||||
message ServerBandwidthStat {
|
||||
int64 id = 1;
|
||||
int64 userId = 2;
|
||||
int64 serverId = 3;
|
||||
string day = 4;
|
||||
string timeAt = 5;
|
||||
int64 bytes = 6;
|
||||
}
|
||||
@@ -5,6 +5,7 @@ package pb;
|
||||
|
||||
import "models/model_node_cluster.proto";
|
||||
import "models/model_user_feature.proto";
|
||||
import "models/model_login.proto";
|
||||
|
||||
message User {
|
||||
int64 id = 1;
|
||||
@@ -21,6 +22,10 @@ message User {
|
||||
bool isRejected = 14;
|
||||
string rejectReason = 15;
|
||||
bool isDeleted = 16;
|
||||
bool isIndividualIdentified = 17;
|
||||
bool isEnterpriseIdentified = 18;
|
||||
|
||||
Login otpLogin = 19; // OTP认证
|
||||
|
||||
NodeCluster nodeCluster = 10;
|
||||
repeated UserFeature features = 11;
|
||||
|
||||
13
pkg/rpc/protos/models/model_user_bandwidth_stat.proto
Normal file
13
pkg/rpc/protos/models/model_user_bandwidth_stat.proto
Normal file
@@ -0,0 +1,13 @@
|
||||
syntax = "proto3";
|
||||
option go_package = "./pb";
|
||||
|
||||
package pb;
|
||||
|
||||
// 带宽统计数据
|
||||
message UserBandwidthStat {
|
||||
int64 id = 1;
|
||||
int64 userId = 2;
|
||||
string day = 3;
|
||||
string timeAt = 4;
|
||||
int64 bytes = 5;
|
||||
}
|
||||
20
pkg/rpc/protos/models/model_user_identity.proto
Normal file
20
pkg/rpc/protos/models/model_user_identity.proto
Normal file
@@ -0,0 +1,20 @@
|
||||
syntax = "proto3";
|
||||
option go_package = "./pb";
|
||||
|
||||
package pb;
|
||||
|
||||
message UserIdentity {
|
||||
int64 id = 1;
|
||||
string orgType = 2;
|
||||
string type = 3;
|
||||
string realName = 4;
|
||||
string number = 5;
|
||||
repeated int64 fileIds = 6;
|
||||
string status = 7;
|
||||
int64 createdAt = 8;
|
||||
int64 updatedAt = 9;
|
||||
int64 submittedAt = 10;
|
||||
int64 rejectedAt = 11;
|
||||
int64 verifiedAt = 12;
|
||||
string rejectReason = 13;
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import "models/model_admin_list.proto";
|
||||
import "models/rpc_messages.proto";
|
||||
import "service_server_stat_board.proto";
|
||||
|
||||
// 管理员服务
|
||||
service AdminService {
|
||||
// 登录
|
||||
rpc loginAdmin (LoginAdminRequest) returns (LoginAdminResponse);
|
||||
@@ -280,8 +281,8 @@ message ComposeAdminDashboardResponse {
|
||||
|
||||
// 节点升级信息
|
||||
message UpgradeInfo {
|
||||
int64 countNodes = 1;
|
||||
string newVersion = 2;
|
||||
int64 countNodes = 1; // 节点数
|
||||
string newVersion = 2; // 新版本
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ package pb;
|
||||
import "models/model_api_node.proto";
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// API节点服务
|
||||
service APINodeService {
|
||||
// 创建API节点
|
||||
rpc createAPINode (CreateAPINodeRequest) returns (CreateAPINodeResponse);
|
||||
|
||||
@@ -7,6 +7,7 @@ import "models/model_db_node.proto";
|
||||
import "models/rpc_messages.proto";
|
||||
import "models/model_db_table.proto";
|
||||
|
||||
// 数据库节点服务
|
||||
service DBNodeService {
|
||||
// 创建数据库节点
|
||||
rpc createDBNode (CreateDBNodeRequest) returns (CreateDBNodeResponse);
|
||||
|
||||
@@ -5,6 +5,7 @@ package pb;
|
||||
|
||||
import "models/model_dns_issue.proto";
|
||||
|
||||
// 域名解析服务
|
||||
service DNSService {
|
||||
// 查找问题
|
||||
rpc findAllDNSIssues (FindAllDNSIssuesRequest) returns (FindAllDNSIssuesResponse);
|
||||
|
||||
@@ -32,6 +32,8 @@ message CreateFileRequest {
|
||||
string filename = 1;
|
||||
int64 size = 2;
|
||||
bool isPublic = 3;
|
||||
string mimeType = 4;
|
||||
string type = 5;
|
||||
}
|
||||
|
||||
message CreateFileResponse {
|
||||
|
||||
@@ -7,6 +7,7 @@ import "models/model_http_access_log_policy.proto";
|
||||
import "models/rpc_messages.proto";
|
||||
import "models/model_http_access_log.proto";
|
||||
|
||||
// 访问日志策略服务
|
||||
service HTTPAccessLogPolicyService {
|
||||
// 计算访问日志策略数量
|
||||
rpc countAllEnabledHTTPAccessLogPolicies (CountAllEnabledHTTPAccessLogPoliciesRequest) returns (RPCCountResponse);
|
||||
|
||||
@@ -6,6 +6,7 @@ package pb;
|
||||
import "models/model_http_cache_policy.proto";
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// 缓存策略服务
|
||||
service HTTPCachePolicyService {
|
||||
// 获取所有可用策略
|
||||
rpc findAllEnabledHTTPCachePolicies (FindAllEnabledHTTPCachePoliciesRequest) returns (FindAllEnabledHTTPCachePoliciesResponse);
|
||||
|
||||
@@ -10,6 +10,7 @@ import "models/model_region_country.proto";
|
||||
import "models/model_region_province.proto";
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// HTTP防火墙(WAF)服务
|
||||
service HTTPFirewallPolicyService {
|
||||
// 获取所有可用策略
|
||||
rpc findAllEnabledHTTPFirewallPolicies (FindAllEnabledHTTPFirewallPoliciesRequest) returns (FindAllEnabledHTTPFirewallPoliciesResponse);
|
||||
|
||||
@@ -6,6 +6,7 @@ package pb;
|
||||
import "models/rpc_messages.proto";
|
||||
import "models/model_http_firewall_rule_group.proto";
|
||||
|
||||
// WAF分组服务
|
||||
service HTTPFirewallRuleGroupService {
|
||||
// 设置是否启用分组
|
||||
rpc updateHTTPFirewallRuleGroupIsOn (UpdateHTTPFirewallRuleGroupIsOnRequest) returns (RPCSuccess);
|
||||
|
||||
@@ -6,6 +6,7 @@ package pb;
|
||||
import "models/rpc_messages.proto";
|
||||
import "models/model_http_firewall_rule_set.proto";
|
||||
|
||||
// WAF规则集服务
|
||||
service HTTPFirewallRuleSetService {
|
||||
// 根据配置创建或修改规则集
|
||||
rpc createOrUpdateHTTPFirewallRuleSetFromConfig (CreateOrUpdateHTTPFirewallRuleSetFromConfigRequest) returns (CreateOrUpdateHTTPFirewallRuleSetFromConfigResponse);
|
||||
|
||||
@@ -6,6 +6,7 @@ package pb;
|
||||
import "models/model_size_capacity.proto";
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// Gzip服务
|
||||
service HTTPGzipService {
|
||||
// 创建Gzip配置
|
||||
rpc createHTTPGzip (CreateHTTPGzipRequest) returns (CreateHTTPGzipResponse);
|
||||
|
||||
@@ -5,6 +5,7 @@ package pb;
|
||||
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// HTTP Header管理服务
|
||||
service HTTPHeaderService {
|
||||
// 创建Header
|
||||
rpc createHTTPHeader (CreateHTTPHeaderRequest) returns (CreateHTTPHeaderResponse);
|
||||
|
||||
@@ -5,6 +5,7 @@ package pb;
|
||||
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// HTTP Header策略服务
|
||||
service HTTPHeaderPolicyService {
|
||||
// 查找策略配置
|
||||
rpc findEnabledHTTPHeaderPolicyConfig (FindEnabledHTTPHeaderPolicyConfigRequest) returns (FindEnabledHTTPHeaderPolicyConfigResponse);
|
||||
|
||||
@@ -5,6 +5,7 @@ package pb;
|
||||
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// 路由规则服务
|
||||
service HTTPLocationService {
|
||||
// 创建路径规则
|
||||
rpc createHTTPLocation (CreateHTTPLocationRequest) returns (CreateHTTPLocationResponse);
|
||||
|
||||
@@ -5,6 +5,7 @@ package pb;
|
||||
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// 自定义页面服务
|
||||
service HTTPPageService {
|
||||
// 创建Page
|
||||
rpc createHTTPPage (CreateHTTPPageRequest) returns (CreateHTTPPageResponse);
|
||||
|
||||
@@ -5,6 +5,7 @@ package pb;
|
||||
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// 重写规则服务
|
||||
service HTTPRewriteRuleService {
|
||||
// 创建重写规则
|
||||
rpc createHTTPRewriteRule (CreateHTTPRewriteRuleRequest) returns (CreateHTTPRewriteRuleResponse);
|
||||
|
||||
@@ -6,6 +6,7 @@ package pb;
|
||||
import "models/model_http_web.proto";
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// HTTP Web相关管理服务
|
||||
service HTTPWebService {
|
||||
// 创建Web配置
|
||||
rpc createHTTPWeb (CreateHTTPWebRequest) returns (CreateHTTPWebResponse);
|
||||
@@ -149,7 +150,7 @@ message UpdateHTTPWebWebPRequest {
|
||||
// 更改RemoteAddr配置
|
||||
message UpdateHTTPWebRemoteAddrRequest {
|
||||
int64 httpWebId = 1;
|
||||
bytes remoteAddrJSON = 2;
|
||||
bytes remoteAddrJSON = 2; // @link json:http_remote_addr_config
|
||||
}
|
||||
|
||||
// 更改字符集配置
|
||||
@@ -185,25 +186,25 @@ message UpdateHTTPWebPagesRequest {
|
||||
// 更改访问日志配置
|
||||
message UpdateHTTPWebAccessLogRequest {
|
||||
int64 httpWebId = 1;
|
||||
bytes accessLogJSON = 2;
|
||||
bytes accessLogJSON = 2; // @link json:http_access_log_ref
|
||||
}
|
||||
|
||||
// 更改统计配置
|
||||
message UpdateHTTPWebStatRequest {
|
||||
int64 httpWebId = 1;
|
||||
bytes statJSON = 2;
|
||||
bytes statJSON = 2; // @link json:http_stat_stat_ref
|
||||
}
|
||||
|
||||
// 更改缓存配置
|
||||
message UpdateHTTPWebCacheRequest {
|
||||
int64 httpWebId = 1;
|
||||
bytes cacheJSON = 2;
|
||||
bytes cacheJSON = 2; // @link json:http_cache_config
|
||||
}
|
||||
|
||||
// 更改防火墙设置
|
||||
message UpdateHTTPWebFirewallRequest {
|
||||
int64 httpWebId = 1;
|
||||
bytes firewallJSON = 2;
|
||||
bytes firewallJSON = 2; // @link json:http_firewall_ref
|
||||
}
|
||||
|
||||
// 更改路径规则配置
|
||||
@@ -221,7 +222,7 @@ message UpdateHTTPWebRedirectToHTTPSRequest {
|
||||
// 更改Websocket设置
|
||||
message UpdateHTTPWebWebsocketRequest {
|
||||
int64 httpWebId = 1;
|
||||
bytes websocketJSON = 2;
|
||||
bytes websocketJSON = 2; // @link json:http_websocket_ref
|
||||
}
|
||||
|
||||
// 更改Fastcgi设置
|
||||
|
||||
@@ -5,6 +5,7 @@ package pb;
|
||||
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// HTTP Websocket管理服务
|
||||
service HTTPWebsocketService {
|
||||
// 创建Websocket配置
|
||||
rpc createHTTPWebsocket (CreateHTTPWebsocketRequest) returns (CreateHTTPWebsocketResponse);
|
||||
|
||||
@@ -6,6 +6,7 @@ package pb;
|
||||
import "models/rpc_messages.proto";
|
||||
import "models/model_log.proto";
|
||||
|
||||
// 审计日志服务
|
||||
service LogService {
|
||||
// 创建日志
|
||||
rpc createLog (CreateLogRequest) returns (CreateLogResponse);
|
||||
|
||||
@@ -18,6 +18,7 @@ service LoginService {
|
||||
// 查找认证
|
||||
message FindEnabledLoginRequest {
|
||||
int64 adminId = 1;
|
||||
int64 userId = 3;
|
||||
string type = 2;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ package pb;
|
||||
import "models/model_monitor_node.proto";
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// 监控节点管理服务
|
||||
service MonitorNodeService {
|
||||
// 创建监控节点
|
||||
rpc createMonitorNode (CreateMonitorNodeRequest) returns (CreateMonitorNodeResponse);
|
||||
|
||||
@@ -10,6 +10,7 @@ import "models/model_dns_route.proto";
|
||||
import "models/model_size_capacity.proto";
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// 边缘节点管理服务
|
||||
service NodeService {
|
||||
// 创建节点
|
||||
rpc createNode (CreateNodeRequest) returns (CreateNodeResponse);
|
||||
|
||||
@@ -10,6 +10,7 @@ import "models/rpc_messages.proto";
|
||||
import "models/model_dns_domain.proto";
|
||||
import "models/model_dns_provider.proto";
|
||||
|
||||
// 边缘节点集群管理服务
|
||||
service NodeClusterService {
|
||||
// 创建集群
|
||||
rpc createNodeCluster (CreateNodeClusterRequest) returns (CreateNodeClusterResponse);
|
||||
@@ -122,6 +123,12 @@ service NodeClusterService {
|
||||
// 设置集群WebP策略
|
||||
rpc updateNodeClusterWebPPolicy(UpdateNodeClusterWebPPolicyRequest) returns (RPCSuccess);
|
||||
|
||||
// 读取集群的UAM策略
|
||||
rpc findEnabledNodeClusterUAMPolicy(FindEnabledNodeClusterUAMPolicyRequest) returns (FindEnabledNodeClusterUAMPolicyResponse);
|
||||
|
||||
// 设置集群的UAM策略
|
||||
rpc updateNodeClusterUAMPolicy(UpdateNodeClusterUAMPolicyRequest) returns (RPCSuccess);
|
||||
|
||||
// 获取集群的DDoS设置
|
||||
rpc findNodeClusterDDoSProtection(FindNodeClusterDDoSProtectionRequest) returns (FindNodeClusterDDoSProtectionResponse);
|
||||
|
||||
@@ -266,6 +273,7 @@ message FindEnabledNodeClusterDNSResponse {
|
||||
bool serversAutoSync = 5;
|
||||
repeated string cnameRecords = 7;
|
||||
int32 ttl = 8;
|
||||
bool cnameAsDomain = 9;
|
||||
}
|
||||
|
||||
// 计算使用某个DNS服务商的集群数量
|
||||
@@ -306,6 +314,7 @@ message UpdateNodeClusterDNSRequest {
|
||||
bool serversAutoSync = 5;
|
||||
repeated string cnameRecords = 6;
|
||||
int32 ttl = 7;
|
||||
bool cnameAsDomain = 8;
|
||||
}
|
||||
|
||||
// 检查集群的DNS是否有变化
|
||||
@@ -434,6 +443,7 @@ message FindEnabledNodeClusterConfigInfoResponse {
|
||||
bool isTOAEnabled = 5;
|
||||
bool hasMetricItems = 6;
|
||||
bool webpIsOn = 7;
|
||||
bool uamIsOn = 10;
|
||||
bool hasSystemServices = 8;
|
||||
bool hasDDoSProtection = 9;
|
||||
}
|
||||
@@ -459,6 +469,21 @@ message UpdateNodeClusterWebPPolicyRequest {
|
||||
bytes webpPolicyJSON = 2;
|
||||
}
|
||||
|
||||
// 读取集群的UAM策略
|
||||
message FindEnabledNodeClusterUAMPolicyRequest {
|
||||
int64 nodeClusterId = 1;
|
||||
}
|
||||
|
||||
message FindEnabledNodeClusterUAMPolicyResponse {
|
||||
bytes uamPolicyJSON = 1;
|
||||
}
|
||||
|
||||
// 设置集群的UAM策略
|
||||
message UpdateNodeClusterUAMPolicyRequest {
|
||||
int64 nodeClusterId = 1;
|
||||
bytes uamPolicyJSON = 2;
|
||||
}
|
||||
|
||||
// 获取集群的DDoS设置
|
||||
message FindNodeClusterDDoSProtectionRequest {
|
||||
int64 nodeClusterId = 1;
|
||||
|
||||
@@ -5,6 +5,7 @@ package pb;
|
||||
import "models/model_node_grant.proto";
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// 节点认证信息管理服务
|
||||
service NodeGrantService {
|
||||
// 创建认证
|
||||
rpc createNodeGrant (CreateNodeGrantRequest) returns (CreateNodeGrantResponse);
|
||||
|
||||
@@ -6,6 +6,7 @@ package pb;
|
||||
import "models/model_node_ip_address.proto";
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// 节点IP地址服务
|
||||
service NodeIPAddressService {
|
||||
// 创建IP地址
|
||||
rpc createNodeIPAddress (CreateNodeIPAddressRequest) returns (CreateNodeIPAddressResponse);
|
||||
|
||||
@@ -7,6 +7,7 @@ import "models/model_origin.proto";
|
||||
import "models/model_network_address.proto";
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// 源站管理服务
|
||||
service OriginService {
|
||||
// 创建源站
|
||||
rpc createOrigin (CreateOriginRequest) returns (CreateOriginResponse);
|
||||
@@ -36,6 +37,7 @@ message CreateOriginRequest {
|
||||
repeated string domains = 11;
|
||||
bytes certRefJSON = 12;
|
||||
string host = 13;
|
||||
bool followPort = 14;
|
||||
}
|
||||
|
||||
message CreateOriginResponse {
|
||||
@@ -58,6 +60,7 @@ message UpdateOriginRequest {
|
||||
repeated string domains = 12;
|
||||
bytes certRefJSON = 13;
|
||||
string host = 14;
|
||||
bool followPort = 15;
|
||||
}
|
||||
|
||||
// 查找单个源站信息
|
||||
|
||||
@@ -6,6 +6,7 @@ package pb;
|
||||
import "models/model_reverse_proxy.proto";
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// 反向代理管理服务
|
||||
service ReverseProxyService {
|
||||
// 创建反向代理
|
||||
rpc createReverseProxy (CreateReverseProxyRequest) returns (CreateReverseProxyResponse);
|
||||
@@ -81,6 +82,7 @@ message UpdateReverseProxyRequest {
|
||||
int64 reverseProxyId = 1;
|
||||
int32 requestHostType = 6;
|
||||
string requestHost = 2;
|
||||
bool requestHostExcludingPort = 15;
|
||||
string requestURI = 3;
|
||||
string stripPrefix = 4;
|
||||
bool autoFlush = 5;
|
||||
|
||||
@@ -9,12 +9,16 @@ import "models/model_server_name_auditing_result.proto";
|
||||
import "models/rpc_messages.proto";
|
||||
import "models/model_user_plan.proto";
|
||||
|
||||
// 网站服务相关服务
|
||||
service ServerService {
|
||||
// 创建服务
|
||||
rpc createServer (CreateServerRequest) returns (CreateServerResponse);
|
||||
|
||||
// 修改服务基本信息
|
||||
rpc updateServerBasic (UpdateServerBasicRequest) returns (RPCSuccess);
|
||||
|
||||
// 修改服务所在分组
|
||||
rpc updateServerGroupIds(UpdateServerGroupIdsRequest) returns (RPCSuccess);
|
||||
|
||||
// 修改服务是否启用
|
||||
rpc updateServerIsOn (UpdateServerIsOnRequest) returns (RPCSuccess);
|
||||
@@ -161,7 +165,7 @@ message CreateServerRequest {
|
||||
string description = 5;
|
||||
|
||||
// 配置相关
|
||||
bytes serverNamesJON = 8;
|
||||
bytes serverNamesJON = 8; // @link json:server_names
|
||||
bytes httpJSON = 9;
|
||||
bytes httpsJSON = 10;
|
||||
bytes tcpJSON = 11;
|
||||
@@ -193,6 +197,12 @@ message UpdateServerBasicRequest {
|
||||
repeated int64 serverGroupIds = 6;
|
||||
}
|
||||
|
||||
// 修改服务所在分组
|
||||
message UpdateServerGroupIdsRequest {
|
||||
int64 serverId = 1;
|
||||
repeated int64 serverGroupIds = 2;
|
||||
}
|
||||
|
||||
// 修改服务启是否启用
|
||||
message UpdateServerIsOnRequest {
|
||||
int64 serverId = 1;
|
||||
|
||||
18
pkg/rpc/protos/service_server_bandwidth_stat.proto
Normal file
18
pkg/rpc/protos/service_server_bandwidth_stat.proto
Normal file
@@ -0,0 +1,18 @@
|
||||
syntax = "proto3";
|
||||
option go_package = "./pb";
|
||||
|
||||
package pb;
|
||||
|
||||
import "models/rpc_messages.proto";
|
||||
import "models/model_server_bandwidth_stat.proto";
|
||||
|
||||
// 服务带宽统计服务
|
||||
service ServerBandwidthStatService {
|
||||
// 上传带宽统计
|
||||
rpc uploadServerBandwidthStats(UploadServerBandwidthStatsRequest) returns (RPCSuccess);
|
||||
}
|
||||
|
||||
// 上传带宽统计
|
||||
message UploadServerBandwidthStatsRequest {
|
||||
repeated ServerBandwidthStat serverBandwidthStats = 1;
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import "models/model_server_stat_board.proto";
|
||||
import "models/model_node_value.proto";
|
||||
import "models/model_metric_chart.proto";
|
||||
import "models/model_metric_stat.proto";
|
||||
import "models/model_server_bandwidth_stat.proto";
|
||||
|
||||
// 统计看板
|
||||
service ServerStatBoardService {
|
||||
@@ -139,6 +140,13 @@ message ComposeServerStatBoardRequest {
|
||||
}
|
||||
|
||||
message ComposeServerStatBoardResponse {
|
||||
int64 minutelyPeekBandwidthBytes = 5; // 当前带宽(N分钟峰值)
|
||||
int64 dailyPeekBandwidthBytes = 2; // 当天带宽峰值
|
||||
int64 monthlyPeekBandwidthBytes = 3; // 当月带宽峰值
|
||||
int64 lastMonthlyPeekBandwidthBytes = 4; // 上个月带宽峰值
|
||||
|
||||
repeated ServerBandwidthStat minutelyBandwidthStats = 1; // 分钟级的带宽统计
|
||||
repeated ServerBandwidthStat dailyBandwidthStats = 6; // 按天的带宽统计
|
||||
repeated DailyTrafficStat dailyTrafficStats = 30;
|
||||
repeated HourlyTrafficStat hourlyTrafficStats = 31;
|
||||
repeated NodeStat topNodeStats = 32;
|
||||
|
||||
@@ -6,6 +6,7 @@ package pb;
|
||||
import "models/rpc_messages.proto";
|
||||
import "models/model_ssl_cert.proto";
|
||||
|
||||
// SSL证书管理服务
|
||||
service SSLCertService {
|
||||
// 创建Cert
|
||||
rpc createSSLCert (CreateSSLCertRequest) returns (CreateSSLCertResponse);
|
||||
|
||||
@@ -5,6 +5,7 @@ package pb;
|
||||
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// SSL/TLS策略管理服务
|
||||
service SSLPolicyService {
|
||||
// 创建Policy
|
||||
rpc createSSLPolicy (CreateSSLPolicyRequest) returns (CreateSSLPolicyResponse);
|
||||
|
||||
@@ -5,6 +5,7 @@ package pb;
|
||||
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// 系统设置管理服务
|
||||
service SysSettingService {
|
||||
// 更改配置
|
||||
rpc updateSysSetting (UpdateSysSettingRequest) returns (RPCSuccess);
|
||||
|
||||
@@ -63,6 +63,9 @@ service UserService {
|
||||
|
||||
// 组合全局的看板数据
|
||||
rpc composeUserGlobalBoard (ComposeUserGlobalBoardRequest) returns (ComposeUserGlobalBoardResponse);
|
||||
|
||||
// 根据用户名检查是否需要输入OTP
|
||||
rpc checkUserOTPWithUsername (CheckUserOTPWithUsernameRequest) returns (CheckUserOTPWithUsernameResponse);
|
||||
}
|
||||
|
||||
// 创建用户
|
||||
@@ -191,15 +194,20 @@ message ComposeUserDashboardRequest {
|
||||
message ComposeUserDashboardResponse {
|
||||
int64 countServers = 1;
|
||||
int64 monthlyTrafficBytes = 2;
|
||||
int64 monthlyPeekTrafficBytes = 3;
|
||||
int64 monthlyPeekBandwidthBytes = 3;
|
||||
int64 dailyTrafficBytes = 4;
|
||||
int64 dailyPeekTrafficBytes = 5;
|
||||
repeated DailyStat dailyTrafficStats = 6;
|
||||
repeated DailyStat dailyPeekTrafficStats = 7;
|
||||
int64 dailyPeekBandwidthBytes = 5;
|
||||
repeated DailyTrafficStat dailyTrafficStats = 6;
|
||||
repeated DailyPeekBandwidthStat dailyPeekBandwidthStats = 7;
|
||||
|
||||
message DailyStat {
|
||||
message DailyTrafficStat {
|
||||
string day = 1;
|
||||
int64 count = 2;
|
||||
int64 bytes = 2;
|
||||
}
|
||||
|
||||
message DailyPeekBandwidthStat {
|
||||
string day = 1;
|
||||
int64 bytes = 2;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -266,4 +274,14 @@ message ComposeUserGlobalBoardResponse {
|
||||
int64 countRequests = 3;
|
||||
int64 bytes = 4;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 根据用户名检查是否需要输入OTP
|
||||
message CheckUserOTPWithUsernameRequest {
|
||||
string username = 1;
|
||||
}
|
||||
|
||||
message CheckUserOTPWithUsernameResponse {
|
||||
bool requireOTP = 1;
|
||||
}
|
||||
116
pkg/rpc/protos/service_user_identity.proto
Normal file
116
pkg/rpc/protos/service_user_identity.proto
Normal file
@@ -0,0 +1,116 @@
|
||||
syntax = "proto3";
|
||||
option go_package = "./pb";
|
||||
|
||||
package pb;
|
||||
|
||||
import "models/model_user_identity.proto";
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// 用户实名认证服务
|
||||
service UserIdentityService {
|
||||
// 创建实名认证信息
|
||||
rpc createUserIdentity(CreateUserIdentityRequest) returns (CreateUserIdentityResponse);
|
||||
|
||||
// 查找单个实名认证信息
|
||||
rpc findEnabledUserIdentity(FindEnabledUserIdentityRequest) returns (FindEnabledUserIdentityResponse);
|
||||
|
||||
// 查看某个类型的实名认证信息
|
||||
rpc findEnabledUserIdentityWithOrgType(FindEnabledUserIdentityWithOrgTypeRequest) returns (FindEnabledUserIdentityWithOrgTypeResponse);
|
||||
|
||||
// 检查是否正在审核中
|
||||
rpc checkUserIdentityIsSubmitted(CheckUserIdentityIsSubmittedRequest) returns (CheckUserIdentityIsSubmittedResponse);
|
||||
|
||||
// 修改实名认证信息
|
||||
rpc updateUserIdentity(UpdateUserIdentityRequest) returns (RPCSuccess);
|
||||
|
||||
// 提交审核实名认证信息
|
||||
rpc submitUserIdentity(SubmitUserIdentityRequest) returns (RPCSuccess);
|
||||
|
||||
// 取消提交实名审核认证信息
|
||||
rpc cancelUserIdentity(CancelUserIdentityRequest) returns (RPCSuccess);
|
||||
|
||||
// 重置用户实名认证信息
|
||||
rpc resetUserIdentity(ResetUserIdentityRequest) returns (RPCSuccess);
|
||||
|
||||
// 拒绝用户实名认证信息
|
||||
rpc rejectUserIdentity(RejectUserIdentityRequest) returns (RPCSuccess);
|
||||
|
||||
// 通过用户实名认证信息
|
||||
rpc verifyUserIdentity(VerifyUserIdentityRequest) returns (RPCSuccess);
|
||||
}
|
||||
|
||||
// 创建实名认证信息
|
||||
message CreateUserIdentityRequest {
|
||||
string orgType = 1;
|
||||
string type = 2;
|
||||
string realName = 3;
|
||||
string number = 4;
|
||||
repeated int64 fileIds = 5;
|
||||
}
|
||||
|
||||
message CreateUserIdentityResponse {
|
||||
int64 userIdentityId = 1;
|
||||
}
|
||||
|
||||
// 查找单个实名认证信息
|
||||
message FindEnabledUserIdentityRequest {
|
||||
int64 userIdentityId = 1;
|
||||
}
|
||||
|
||||
message FindEnabledUserIdentityResponse {
|
||||
UserIdentity userIdentity = 1;
|
||||
}
|
||||
|
||||
// 查看某个类型的实名认证信息
|
||||
message FindEnabledUserIdentityWithOrgTypeRequest {
|
||||
int64 userId = 1; // 用户端不需要设置此参数
|
||||
string orgType = 2; // 阻止类型
|
||||
}
|
||||
|
||||
message FindEnabledUserIdentityWithOrgTypeResponse {
|
||||
UserIdentity userIdentity = 1;
|
||||
}
|
||||
|
||||
// 检查是否正在审核中
|
||||
message CheckUserIdentityIsSubmittedRequest {
|
||||
int64 userId = 1;
|
||||
}
|
||||
|
||||
message CheckUserIdentityIsSubmittedResponse {
|
||||
bool isSubmitted = 1;
|
||||
}
|
||||
|
||||
// 修改实名认证信息
|
||||
message UpdateUserIdentityRequest {
|
||||
int64 userIdentityId = 1;
|
||||
string type = 2;
|
||||
string realName = 3;
|
||||
string number = 4;
|
||||
repeated int64 fileIds = 5;
|
||||
}
|
||||
|
||||
// 提交审核实名认证信息
|
||||
message SubmitUserIdentityRequest {
|
||||
int64 userIdentityId = 1;
|
||||
}
|
||||
|
||||
// 取消提交身份审核认证信息
|
||||
message CancelUserIdentityRequest {
|
||||
int64 userIdentityId = 1;
|
||||
}
|
||||
|
||||
// 重置用户实名认证信息
|
||||
message ResetUserIdentityRequest {
|
||||
int64 userIdentityId = 1;
|
||||
}
|
||||
|
||||
// 拒绝用户实名认证信息
|
||||
message RejectUserIdentityRequest {
|
||||
int64 userIdentityId = 1;
|
||||
string reason = 2;
|
||||
}
|
||||
|
||||
// 通过用户实名认证信息
|
||||
message VerifyUserIdentityRequest {
|
||||
int64 userIdentityId = 1;
|
||||
}
|
||||
@@ -5,6 +5,7 @@ package pb;
|
||||
import "models/model_user_node.proto";
|
||||
import "models/rpc_messages.proto";
|
||||
|
||||
// 用户节点管理服务
|
||||
service UserNodeService {
|
||||
// 创建用户节点
|
||||
rpc createUserNode (CreateUserNodeRequest) returns (CreateUserNodeResponse);
|
||||
|
||||
@@ -6,7 +6,7 @@ package pb;
|
||||
import "models/rpc_messages.proto";
|
||||
import "models/model_user_plan.proto";
|
||||
|
||||
// 用户购买的套餐
|
||||
// 用户购买的套餐管理服务
|
||||
service UserPlanService {
|
||||
// 购买套餐
|
||||
rpc buyUserPlan(BuyUserPlanRequest) returns (BuyUserPlanResponse);
|
||||
|
||||
@@ -3,14 +3,16 @@
|
||||
package firewallconfigs
|
||||
|
||||
var DefaultHTTPFirewallPolicyLogConfig = &HTTPFirewallPolicyLogConfig{
|
||||
IsOn: true,
|
||||
RequestBody: true,
|
||||
IsOn: true,
|
||||
RequestBody: true,
|
||||
RegionDenying: false,
|
||||
}
|
||||
|
||||
type HTTPFirewallPolicyLogConfig struct {
|
||||
IsPrior bool `yaml:"isPrior" json:"isPrior"`
|
||||
IsOn bool `yaml:"isOn" json:"isOn"`
|
||||
RequestBody bool `yaml:"requestBody" json:"requestBody"`
|
||||
IsPrior bool `yaml:"isPrior" json:"isPrior"`
|
||||
IsOn bool `yaml:"isOn" json:"isOn"`
|
||||
RequestBody bool `yaml:"requestBody" json:"requestBody"` // 是否记录RequestBody
|
||||
RegionDenying bool `yaml:"regionDenying" json:"regionDenying"` // 是否记录区域封禁日志
|
||||
}
|
||||
|
||||
func (this *HTTPFirewallPolicyLogConfig) Init() error {
|
||||
|
||||
@@ -12,7 +12,7 @@ type HTTPCacheConfig struct {
|
||||
AddStatusHeader bool `yaml:"addStatusHeader" json:"addStatusHeader"` // 是否增加命中状态Header(X-Cache)
|
||||
AddAgeHeader bool `yaml:"addAgeHeader" json:"addAgeHeader"` // 是否增加Age Header
|
||||
EnableCacheControlMaxAge bool `yaml:"enableCacheControlMaxAge" json:"enableCacheControlMaxAge"` // 是否支持Cache-Control: max-age=...
|
||||
DisablePolicyRefs bool `yaml:"disablePolicyRefs" json:"disablePolicyRefs"` // 停用策略中定义的条件
|
||||
DisablePolicyRefs bool `yaml:"disablePolicyRefs" json:"disablePolicyRefs"` // 是否停用策略中定义的条件
|
||||
|
||||
PurgeIsOn bool `yaml:"purgeIsOn" json:"purgeIsOn"` // 是否允许使用Purge方法清理
|
||||
PurgeKey string `yaml:"purgeKey" json:"purgeKey"` // Purge时使用的X-Edge-Purge-Key
|
||||
|
||||
@@ -49,6 +49,7 @@ type HTTPCompressionConfig struct {
|
||||
supportGzip bool
|
||||
supportDeflate bool
|
||||
supportBrotli bool
|
||||
supportZSTD bool
|
||||
}
|
||||
|
||||
// Init 初始化
|
||||
@@ -133,6 +134,8 @@ func (this *HTTPCompressionConfig) Init() error {
|
||||
if this.BrotliRef == nil || (this.BrotliRef != nil && this.BrotliRef.IsOn && this.Brotli != nil && this.Brotli.IsOn) {
|
||||
this.supportBrotli = true
|
||||
}
|
||||
case HTTPCompressionTypeZSTD:
|
||||
this.supportZSTD = true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -244,6 +247,10 @@ func (this *HTTPCompressionConfig) MatchAcceptEncoding(acceptEncodings string) (
|
||||
if this.supportBrotli && lists.ContainsString(encodings, "br") {
|
||||
return HTTPCompressionTypeBrotli, "br", true
|
||||
}
|
||||
case HTTPCompressionTypeZSTD:
|
||||
if this.supportZSTD && lists.ContainsString(encodings, "zstd") {
|
||||
return HTTPCompressionTypeZSTD, "zstd", true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,4 +8,5 @@ const (
|
||||
HTTPCompressionTypeGzip HTTPCompressionType = "gzip"
|
||||
HTTPCompressionTypeDeflate HTTPCompressionType = "deflate"
|
||||
HTTPCompressionTypeBrotli HTTPCompressionType = "brotli"
|
||||
HTTPCompressionTypeZSTD HTTPCompressionType = "zstd"
|
||||
)
|
||||
|
||||
@@ -33,6 +33,7 @@ type OriginConfig struct {
|
||||
StripPrefix string `yaml:"stripPrefix" json:"stripPrefix"` // 去除URL前缀
|
||||
RequestURI string `yaml:"requestURI" json:"requestURI"` // 转发后的请求URI TODO
|
||||
RequestHost string `yaml:"requestHost" json:"requestHost"` // 自定义主机名
|
||||
FollowPort bool `yaml:"followPort" json:"followPort"` // 端口跟随
|
||||
|
||||
RequestHeaderPolicyRef *shared.HTTPHeaderPolicyRef `yaml:"requestHeaderPolicyRef" json:"requestHeaderPolicyRef"` // 请求Header
|
||||
RequestHeaderPolicy *shared.HTTPHeaderPolicy `yaml:"requestHeaderPolicy" json:"requestHeaderPolicy"` // 请求Header策略
|
||||
@@ -50,7 +51,7 @@ type OriginConfig struct {
|
||||
FTPServerRef *FTPServerRef `yaml:"ftpServerRef" json:"ftpServerRef"` // TODO
|
||||
FTPServer *FTPServerConfig `yaml:"ftpServer" json:"ftpServer"` // TODO
|
||||
|
||||
IsOk bool `yaml:"isOk" json:"isOk"` // 是否可以正常访问
|
||||
IsOk bool `yaml:"isOk" json:"isOk"` // 是否可以正常访问,仅仅用于运行时检查
|
||||
|
||||
connTimeoutDuration time.Duration
|
||||
readTimeoutDuration time.Duration
|
||||
|
||||
@@ -32,10 +32,11 @@ type ReverseProxyConfig struct {
|
||||
MaxConns int `yaml:"maxConns" json:"maxConns"` // 最大并发连接数 TODO
|
||||
MaxIdleConns int `yaml:"maxIdleConns" json:"maxIdleConns"` // 最大空闲连接数 TODO
|
||||
|
||||
StripPrefix string `yaml:"stripPrefix" json:"stripPrefix"` // 去除URL前缀
|
||||
RequestHostType RequestHostType `yaml:"requestHostType" json:"requestHostType"` // 请求Host类型
|
||||
RequestHost string `yaml:"requestHost" json:"requestHost"` // 请求Host,支持变量
|
||||
RequestURI string `yaml:"requestURI" json:"requestURI"` // 请求URI,支持变量,如果同时定义了StripPrefix,则先执行StripPrefix
|
||||
StripPrefix string `yaml:"stripPrefix" json:"stripPrefix"` // 去除URL前缀
|
||||
RequestHostType RequestHostType `yaml:"requestHostType" json:"requestHostType"` // 请求Host类型
|
||||
RequestHost string `yaml:"requestHost" json:"requestHost"` // 请求Host,支持变量
|
||||
RequestURI string `yaml:"requestURI" json:"requestURI"` // 请求URI,支持变量,如果同时定义了StripPrefix,则先执行StripPrefix
|
||||
RequestHostExcludingPort bool `yaml:"requestHostExcludingPort" json:"requestHostExcludingPort"` // 请求Host不包括端口
|
||||
|
||||
AddHeaders []string `yaml:"addHeaders" json:"addHeaders"` // 自动添加的Header
|
||||
|
||||
|
||||
@@ -11,12 +11,15 @@ import (
|
||||
type ServerConfig struct {
|
||||
Id int64 `yaml:"id" json:"id"` // ID
|
||||
ClusterId int64 `yaml:"clusterId" json:"clusterId"` // 集群ID
|
||||
UserId int64 `yaml:"userId" json:"userId"` // 用户ID
|
||||
Type string `yaml:"type" json:"type"` // 类型
|
||||
IsOn bool `yaml:"isOn" json:"isOn"` // 是否开启
|
||||
Name string `yaml:"name" json:"name"` // 名称
|
||||
Description string `yaml:"description" json:"description"` // 描述
|
||||
AliasServerNames []string `yaml:"aliasServerNames" json:"aliasServerNames"` // 关联的域名,比如CNAME之类的
|
||||
ServerNames []*ServerNameConfig `yaml:"serverNames" json:"serverNames"` // 域名
|
||||
CNameDomain string `yaml:"cnameDomain" json:"cnameDomain"` // CNAME(末尾不带点(.))
|
||||
CNameAsDomain bool `yaml:"cnameAsDomain" json:"cnameAsDomain"` // 启用CNAME域名访问
|
||||
SupportCNAME bool `yaml:"supportCNAME" json:"supportCNAME"` // 是否支持CNAME
|
||||
|
||||
// 前端协议
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
package serverconfigs
|
||||
|
||||
// UAMConfig UAM配置
|
||||
type UAMConfig struct {
|
||||
IsPrior bool `yaml:"isPrior" json:"isPrior"`
|
||||
IsOn bool `yaml:"isOn" json:"isOn"`
|
||||
|
||||
10
pkg/systemconfigs/bandwidth.go
Normal file
10
pkg/systemconfigs/bandwidth.go
Normal file
@@ -0,0 +1,10 @@
|
||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||
|
||||
package systemconfigs
|
||||
|
||||
type BandwidthUnit = string
|
||||
|
||||
const (
|
||||
BandwidthUnitByte BandwidthUnit = "byte"
|
||||
BandwidthUnitBit BandwidthUnit = "bit"
|
||||
)
|
||||
@@ -10,6 +10,9 @@ type SecurityConfig struct {
|
||||
AllowLocal bool `json:"allowLocal"` // 允许本地+局域网IP访问
|
||||
AllowIPs []string `json:"allowIPs"` // 允许访问的IP
|
||||
AllowRememberLogin bool `json:"allowRememberLogin"` // 是否允许在设备上记住登录
|
||||
DenySearchEngines bool `json:"denySearchEngines"` // 禁止常见的搜索引擎访问
|
||||
DenySpiders bool `json:"denySpiders"` // 禁止常见的爬虫
|
||||
AllowDomains []string `json:"allowDomains"` // 允许访问的域名
|
||||
|
||||
allowIPRanges []*shared.IPRangeConfig
|
||||
}
|
||||
|
||||
@@ -11,4 +11,8 @@ type UserUIConfig struct {
|
||||
FaviconFileId int64 `json:"faviconFileId"` // Favicon文件ID
|
||||
LogoFileId int64 `json:"logoFileId"` // Logo文件ID
|
||||
TimeZone string `json:"timeZone"` // 时区
|
||||
|
||||
BandwidthUnit BandwidthUnit `json:"bandwidthUnit"` // 带宽单位
|
||||
ShowTrafficCharts bool `json:"showTrafficCharts" json:"showTrafficCharts"` // 是否显示流量相关图表和数据
|
||||
ShowBandwidthCharts bool `json:"showBandwidthCharts" json:"showBandwidthCharts"` // 是否显示带宽相关图表和数据
|
||||
}
|
||||
|
||||
32
pkg/userconfigs/user_identity_constants.go
Normal file
32
pkg/userconfigs/user_identity_constants.go
Normal file
@@ -0,0 +1,32 @@
|
||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||
|
||||
package userconfigs
|
||||
|
||||
// 认证状态
|
||||
|
||||
type UserIdentityStatus = string
|
||||
|
||||
const (
|
||||
UserIdentityStatusNone UserIdentityStatus = "none"
|
||||
UserIdentityStatusSubmitted UserIdentityStatus = "submitted"
|
||||
UserIdentityStatusRejected UserIdentityStatus = "rejected"
|
||||
UserIdentityStatusVerified UserIdentityStatus = "verified"
|
||||
)
|
||||
|
||||
// 认证类型
|
||||
|
||||
type UserIdentityType = string
|
||||
|
||||
const (
|
||||
UserIdentityTypeIDCard UserIdentityType = "idCard"
|
||||
UserIdentityTypeEnterpriseLicense UserIdentityType = "enterpriseLicense"
|
||||
)
|
||||
|
||||
// 组织类型
|
||||
|
||||
type UserIdentityOrgType = string
|
||||
|
||||
const (
|
||||
UserIdentityOrgTypeEnterprise UserIdentityOrgType = "enterprise"
|
||||
UserIdentityOrgTypeIndividual UserIdentityOrgType = "individual"
|
||||
)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user