From d6cf95d5ef0aa9ef51baab299727c2f755b492e0 Mon Sep 17 00:00:00 2001 From: Karol Lassak Date: Fri, 25 Mar 2022 09:50:09 +0100 Subject: [PATCH 1/3] WIP --- Earthfile | 81 +++++++++++ Makefile | 39 +++--- buf.gen.yaml | 25 ++++ go.mod | 8 +- go.sum | 21 +-- tag_criteria.go | 2 +- tagging.pb.go | 366 ++++++++++++++++++++++++------------------------ tagging.proto | 4 +- 8 files changed, 327 insertions(+), 219 deletions(-) create mode 100644 Earthfile create mode 100644 buf.gen.yaml diff --git a/Earthfile b/Earthfile new file mode 100644 index 0000000..f03739b --- /dev/null +++ b/Earthfile @@ -0,0 +1,81 @@ +VERSION 0.6 + +FROM golang:1.17 + +WORKDIR /build + +GO_RUN: + COMMAND + ARG --required cmd + ARG GOCACHE=/go-cache + RUN --mount=type=cache,target=$GOCACHE $cmd + +deps: + COPY go.mod go.sum . + DO +GO_RUN --cmd="go mod download all" + +test: + FROM +deps + COPY *.go . + DO +GO_RUN --cmd="go test -v ./..." + +codegen: + FROM +proto-deps + COPY tagging.proto . + RUN protoc \ + --gogoslick_out=.\ + Mgoogle/protobuf/any.proto=github.com/gogo/protobuf/types,\ + Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,\ + Mgoogle/protobuf/struct.proto=github.com/gogo/protobuf/types,\ + Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,\ + Mgoogle/protobuf/wrappers.proto=github.com/gogo/protobuf/types:. \ + *.proto + +proto-deps: + FROM golang:buster + ARG TARGETOS + ARG TARGETARCH + RUN apt-get update && apt-get install -y wget unzip + RUN echo ${TARGETARCH} + RUN wget -O protoc.zip https://github.com/protocolbuffers/protobuf/releases/download/v3.13.0/protoc-3.13.0-${TARGETOS}-${TARGETARCH}.zip + RUN unzip protoc.zip -d /usr/local/ + + #RUN go install google.golang.org/protobuf/cmd/protoc-gen-go \ + # google.golang.org/grpc/cmd/protoc-gen-go-grpc \ + # github.com/gogo/protobuf/protoc-gen-gogoslick \ + # github.com/gogo/protobuf/proto \ + # github.com/gogo/protobuf/jsonpb + +proto-deps-buf: + FROM golang:buster + ARG TARGETOS + ARG TARGETARCH + RUN VERSION="1.1.0" && \ + curl -sSL "https://github.com/bufbuild/buf/releases/download/v${VERSION}/buf-$(uname -s)-$(uname -m)" -o "/usr/local/bin/buf" + RUN chmod +x "/usr/local/bin/buf" + RUN pwd + WORKDIR /work + COPY go.mod go.sum . + RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@latest + RUN go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest + #RUN go install github.com/gogo/protobuf/protoc-gen-gogoslick@latest + #RUN go install github.com/gogo/protobuf/protoc-gen-gogo@latest + #RUN go install github.com/gogo/protobuf/protoc-gen-gofast@latest + #RUN go get github.com/gogo/protobuf/proto@latest + #RUN go get github.com/gogo/protobuf/jsonpb@latest + RUN go get github.com/gogo/protobuf/gogoproto + RUN ls -alh . + +gen-buf: + #FROM bufbuild/buf + FROM +proto-deps-buf + WORKDIR /go + RUN ls -alhR . + #ARG PATH="$PATH:$(go env GOPATH)/bin:/work" + #RUN env + COPY tagging.proto buf.gen.yaml . + RUN buf generate + +lint-proto: + FROM bufbuild/buf + RUN buf lint \ No newline at end of file diff --git a/Makefile b/Makefile index 22a56e0..42d5eb8 100644 --- a/Makefile +++ b/Makefile @@ -1,43 +1,39 @@ -_GOPATH := $(PWD)/../../../.. -PROTOC := /usr/bin/protoc - -export GOPATH := $(_GOPATH) -export PATH := $(_GOPATH)/bin:$(PATH) +PROTOC := protoc .PHONY: all all: codegen -$(_GOPATH)/src/github.com/gogo/protobuf/protoc-gen-gogoslick: +$(GOPATH)/src/github.com/gogo/protobuf/protoc-gen-gogoslick: go get github.com/gogo/protobuf/protoc-gen-gogoslick -$(_GOPATH)/bin/protoc-gen-gofast: +$(GOPATH)/bin/protoc-gen-gofast: go get github.com/gogo/protobuf/protoc-gen-gofast go install github.com/gogo/protobuf/protoc-gen-gofast -$(_GOPATH)/src/github.com/gogo/protobuf/proto: +$(GOPATH)/src/github.com/gogo/protobuf/proto: go get github.com/gogo/protobuf/proto -$(_GOPATH)/src/github.com/gogo/protobuf/jsonpb: +$(GOPATH)/src/github.com/gogo/protobuf/jsonpb: go get github.com/gogo/protobuf/jsonpb -$(_GOPATH)/src/github.com/gogo/protobuf/protoc-gen-gogo: +$(GOPATH)/src/github.com/gogo/protobuf/protoc-gen-gogo: go get github.com/gogo/protobuf/protoc-gen-gogo -$(_GOPATH)/src/github.com/gogo/protobuf/gogoproto: +$(GOPATH)/src/github.com/gogo/protobuf/gogoproto: go get github.com/gogo/protobuf/gogoproto .PHONY: codegen codegen: \ - $(_GOPATH)/src/github.com/gogo/protobuf/protoc-gen-gogoslick \ - $(_GOPATH)/bin/protoc-gen-gofast \ - $(_GOPATH)/src/github.com/gogo/protobuf/proto \ - $(_GOPATH)/src/github.com/gogo/protobuf/jsonpb \ - $(_GOPATH)/src/github.com/gogo/protobuf/protoc-gen-gogo \ - $(_GOPATH)/src/github.com/gogo/protobuf/gogoproto + $(GOPATH)/src/github.com/gogo/protobuf/protoc-gen-gogoslick \ + $(GOPATH)/bin/protoc-gen-gofast \ + $(GOPATH)/src/github.com/gogo/protobuf/proto \ + $(GOPATH)/src/github.com/gogo/protobuf/jsonpb \ + $(GOPATH)/src/github.com/gogo/protobuf/protoc-gen-gogo \ + $(GOPATH)/src/github.com/gogo/protobuf/gogoproto $(PROTOC) -I=. \ - -I=$(_GOPATH)/src \ - -I=$(_GOPATH)/src/github.com/gogo/protobuf/protobuf \ + -I=$(GOPATH)/src \ + -I=$(GOPATH)/src/github.com/gogo/protobuf/protobuf \ --gogoslick_out=.\ Mgoogle/protobuf/any.proto=github.com/gogo/protobuf/types,\ Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,\ @@ -49,3 +45,8 @@ codegen: \ .PHONY: test test: go test -v ./... + +.PHONY: update +update: + go get -u all + go mod tidy diff --git a/buf.gen.yaml b/buf.gen.yaml new file mode 100644 index 0000000..8f196f5 --- /dev/null +++ b/buf.gen.yaml @@ -0,0 +1,25 @@ +version: v1 +plugins: + - name: gogoslick + out: . + opt: + - paths=source_relative + - Mgoogle/protobuf/any.proto=github.com/gogo/protobuf/types + - Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types + - Mgoogle/protobuf/struct.proto=github.com/gogo/protobuf/types + - Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types + - Mgoogle/protobuf/wrappers.proto=github.com/gogo/protobuf/types:. +# - name: go-grpc +# out: . +# opt: paths=source_relative +# - name: grpc-gateway +# out: . +# opt: +# - logtostderr=true +# - paths=source_relative +# - generate_unbound_methods=true +# - name: openapiv2 +# out: . +# opt: +# - logtostderr=true +# - generate_unbound_methods=true \ No newline at end of file diff --git a/go.mod b/go.mod index bed0203..d29f26e 100644 --- a/go.mod +++ b/go.mod @@ -3,10 +3,10 @@ module github.com/kentik/gohippo go 1.16 require ( - github.com/cznic/mathutil v0.0.0-20181122101859-297441e03548 // indirect - github.com/cznic/sortutil v0.0.0-20181122101858-f5f958428db8 github.com/gogo/protobuf v1.3.2 - github.com/kentik/patricia v0.0.0-20201202224819-f9447a6e25f1 + github.com/kentik/patricia v1.0.0 github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect - github.com/stretchr/testify v1.7.0 + github.com/stretchr/testify v1.7.1 + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + modernc.org/sortutil v1.1.0 ) diff --git a/go.sum b/go.sum index 2bab901..4fcba20 100644 --- a/go.sum +++ b/go.sum @@ -1,24 +1,20 @@ -github.com/cznic/mathutil v0.0.0-20181122101859-297441e03548 h1:iwZdTE0PVqJCos1vaoKsclOGD3ADKpshg3SRtYBbwso= -github.com/cznic/mathutil v0.0.0-20181122101859-297441e03548/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM= -github.com/cznic/sortutil v0.0.0-20181122101858-f5f958428db8 h1:LpMLYGyy67BoAFGda1NeOBQwqlv7nUXpm+rIVHGxZZ4= -github.com/cznic/sortutil v0.0.0-20181122101858-f5f958428db8/go.mod h1:q2w6Bg5jeox1B+QkJ6Wp/+Vn0G/bo3f1uY7Fn3vivIQ= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/kentik/patricia v0.0.0-20201202224819-f9447a6e25f1 h1:D7qhJP3R49ZjUzpzKQ6B2H3lgejPs6DTO5gRomhhOpE= -github.com/kentik/patricia v0.0.0-20201202224819-f9447a6e25f1/go.mod h1:2OfLA+0esiUJpwMjrH39pEk79cb8MvGTBS9YlZpejJ4= +github.com/kentik/patricia v1.0.0 h1:jx/8kXf0JvQEHNPX4njL+PDzpxxqNKg0RjA8hJcX38A= +github.com/kentik/patricia v1.0.0/go.mod h1:e0nkPLU9NQl8v05ukfHU6+R5ykbKcXO+NqaC3ifTm0Y= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/remyoudompheng/bigfft v0.0.0-20190728182440-6a916e37a237/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.1.5-0.20170809224252-890a5c3458b4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -48,5 +44,10 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +modernc.org/mathutil v1.0.0 h1:93vKjrJopTPrtTNpZ8XIovER7iCIH1QU7wNbOQXC60I= +modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= +modernc.org/sortutil v1.1.0 h1:oP3U4uM+NT/qBQcbg/K2iqAX0Nx7B1b6YZtq3Gk/PjM= +modernc.org/sortutil v1.1.0/go.mod h1:ZyL98OQHJgH9IEfN71VsamvJgrtRX9Dj2gX+vH86L1k= diff --git a/tag_criteria.go b/tag_criteria.go index 70ef7d3..4cb8131 100644 --- a/tag_criteria.go +++ b/tag_criteria.go @@ -3,7 +3,7 @@ package hippo import ( "crypto/md5" "fmt" - "github.com/cznic/sortutil" + "modernc.org/sortutil" "io" "sort" "strconv" diff --git a/tagging.pb.go b/tagging.pb.go index 10d935e..922c5b2 100644 --- a/tagging.pb.go +++ b/tagging.pb.go @@ -27,9 +27,9 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // TagBatchPartSender holds metadata about the sender type TagBatchPartSender struct { - ServiceName string `protobuf:"bytes,1,opt,name=ServiceName,json=serviceName,proto3" json:"service_name,omitempty"` - ServiceInstance string `protobuf:"bytes,2,opt,name=ServiceInstance,json=serviceInstance,proto3" json:"service_instance,omitempty"` - HostName string `protobuf:"bytes,3,opt,name=HostName,json=hostName,proto3" json:"host_name,omitempty"` + ServiceName string `protobuf:"bytes,1,opt,name=ServiceName,proto3" json:"service_name,omitempty"` + ServiceInstance string `protobuf:"bytes,2,opt,name=ServiceInstance,proto3" json:"service_instance,omitempty"` + HostName string `protobuf:"bytes,3,opt,name=HostName,proto3" json:"host_name,omitempty"` } func (m *TagBatchPartSender) Reset() { *m = TagBatchPartSender{} } @@ -87,14 +87,14 @@ func (m *TagBatchPartSender) GetHostName() string { // TagBatchPart represents a tag update batch from a customer via Kentik API type TagBatchPart struct { - BatchGUID string `protobuf:"bytes,2,opt,name=BatchGUID,json=batchGUID,proto3" json:"guid"` - ReplaceAll bool `protobuf:"varint,3,opt,name=ReplaceAll,json=replaceAll,proto3" json:"replace_all"` - IsComplete bool `protobuf:"varint,4,opt,name=IsComplete,json=isComplete,proto3" json:"complete"` - Upserts []TagUpsert `protobuf:"bytes,5,rep,name=Upserts,json=upserts,proto3" json:"upserts"` - Deletes []TagDelete `protobuf:"bytes,6,rep,name=Deletes,json=deletes,proto3" json:"deletes"` - TTLMinutes uint32 `protobuf:"varint,7,opt,name=TTLMinutes,json=tTLMinutes,proto3" json:"ttl_minutes"` + BatchGUID string `protobuf:"bytes,2,opt,name=BatchGUID,proto3" json:"guid"` + ReplaceAll bool `protobuf:"varint,3,opt,name=ReplaceAll,proto3" json:"replace_all"` + IsComplete bool `protobuf:"varint,4,opt,name=IsComplete,proto3" json:"complete"` + Upserts []TagUpsert `protobuf:"bytes,5,rep,name=Upserts,proto3" json:"upserts"` + Deletes []TagDelete `protobuf:"bytes,6,rep,name=Deletes,proto3" json:"deletes"` + TTLMinutes uint32 `protobuf:"varint,7,opt,name=TTLMinutes,proto3" json:"ttl_minutes"` // TagBatchSender will be logged to help track down who sent a batch - Sender TagBatchPartSender `protobuf:"bytes,8,opt,name=Sender,json=sender,proto3" json:"sender"` + Sender TagBatchPartSender `protobuf:"bytes,8,opt,name=Sender,proto3" json:"sender"` } func (m *TagBatchPart) Reset() { *m = TagBatchPart{} } @@ -180,8 +180,8 @@ func (m *TagBatchPart) GetSender() TagBatchPartSender { // FlexStringCriteria defines how we match a flex column (STR00-STR16) type FlexStringCriteria struct { - Action string `protobuf:"bytes,1,opt,name=Action,json=action,proto3" json:"action"` - Value string `protobuf:"bytes,2,opt,name=Value,json=value,proto3" json:"value"` + Action string `protobuf:"bytes,1,opt,name=Action,proto3" json:"action"` + Value string `protobuf:"bytes,2,opt,name=Value,proto3" json:"value"` } func (m *FlexStringCriteria) Reset() { *m = FlexStringCriteria{} } @@ -232,64 +232,64 @@ func (m *FlexStringCriteria) GetValue() string { // TagCriteria defines the criteria of a tag type TagCriteria struct { - Direction string `protobuf:"bytes,1,opt,name=Direction,json=direction,proto3" json:"direction"` - PortRanges []string `protobuf:"bytes,2,rep,name=PortRanges,json=portRanges,proto3" json:"port,omitempty"` - Protocols []uint32 `protobuf:"varint,3,rep,packed,name=Protocols,json=protocols,proto3" json:"protocol,omitempty"` - ASNRanges []string `protobuf:"bytes,4,rep,name=ASNRanges,json=aSNRanges,proto3" json:"asn,omitempty"` - VLanRanges []string `protobuf:"bytes,5,rep,name=VLanRanges,json=vLanRanges,proto3" json:"vlans,omitempty"` - LastHopASNNames []string `protobuf:"bytes,6,rep,name=LastHopASNNames,json=lastHopASNNames,proto3" json:"lasthop_as_name,omitempty"` - NextHopASNRanges []string `protobuf:"bytes,7,rep,name=NextHopASNRanges,json=nextHopASNRanges,proto3" json:"nexthop_asn,omitempty"` - NextHopASNNames []string `protobuf:"bytes,8,rep,name=NextHopASNNames,json=nextHopASNNames,proto3" json:"nexthop_as_name,omitempty"` - BGPASPaths []string `protobuf:"bytes,9,rep,name=BGPASPaths,json=bGPASPaths,proto3" json:"bgp_aspath,omitempty"` - BGPCommunities []string `protobuf:"bytes,10,rep,name=BGPCommunities,json=bGPCommunities,proto3" json:"bgp_community,omitempty"` - TCPFlags uint32 `protobuf:"varint,11,opt,name=TCPFlags,json=tCPFlags,proto3" json:"tcp_flags,omitempty"` - IPAddresses []string `protobuf:"bytes,12,rep,name=IPAddresses,json=iPAddresses,proto3" json:"addr,omitempty"` - MACAddresses []string `protobuf:"bytes,13,rep,name=MACAddresses,json=mACAddresses,proto3" json:"mac,omitempty"` - CountryCodes []string `protobuf:"bytes,14,rep,name=CountryCodes,json=countryCodes,proto3" json:"country,omitempty"` - SiteNameRegexes []string `protobuf:"bytes,15,rep,name=SiteNameRegexes,json=siteNameRegexes,proto3" json:"site,omitempty"` - DeviceTypeRegexes []string `protobuf:"bytes,16,rep,name=DeviceTypeRegexes,json=deviceTypeRegexes,proto3" json:"device_type,omitempty"` - InterfaceNameRegexes []string `protobuf:"bytes,17,rep,name=InterfaceNameRegexes,json=interfaceNameRegexes,proto3" json:"interface_name,omitempty"` - DeviceNameRegexes []string `protobuf:"bytes,18,rep,name=DeviceNameRegexes,json=deviceNameRegexes,proto3" json:"device_name,omitempty"` - NextHopIPAddresses []string `protobuf:"bytes,19,rep,name=NextHopIPAddresses,json=nextHopIPAddresses,proto3" json:"nexthop,omitempty"` + Direction string `protobuf:"bytes,1,opt,name=Direction,proto3" json:"direction"` + PortRanges []string `protobuf:"bytes,2,rep,name=PortRanges,proto3" json:"port,omitempty"` + Protocols []uint32 `protobuf:"varint,3,rep,packed,name=Protocols,proto3" json:"protocol,omitempty"` + ASNRanges []string `protobuf:"bytes,4,rep,name=ASNRanges,proto3" json:"asn,omitempty"` + VLanRanges []string `protobuf:"bytes,5,rep,name=VLanRanges,proto3" json:"vlans,omitempty"` + LastHopASNNames []string `protobuf:"bytes,6,rep,name=LastHopASNNames,proto3" json:"lasthop_as_name,omitempty"` + NextHopASNRanges []string `protobuf:"bytes,7,rep,name=NextHopASNRanges,proto3" json:"nexthop_asn,omitempty"` + NextHopASNNames []string `protobuf:"bytes,8,rep,name=NextHopASNNames,proto3" json:"nexthop_as_name,omitempty"` + BGPASPaths []string `protobuf:"bytes,9,rep,name=BGPASPaths,proto3" json:"bgp_aspath,omitempty"` + BGPCommunities []string `protobuf:"bytes,10,rep,name=BGPCommunities,proto3" json:"bgp_community,omitempty"` + TCPFlags uint32 `protobuf:"varint,11,opt,name=TCPFlags,proto3" json:"tcp_flags,omitempty"` + IPAddresses []string `protobuf:"bytes,12,rep,name=IPAddresses,proto3" json:"addr,omitempty"` + MACAddresses []string `protobuf:"bytes,13,rep,name=MACAddresses,proto3" json:"mac,omitempty"` + CountryCodes []string `protobuf:"bytes,14,rep,name=CountryCodes,proto3" json:"country,omitempty"` + SiteNameRegexes []string `protobuf:"bytes,15,rep,name=SiteNameRegexes,proto3" json:"site,omitempty"` + DeviceTypeRegexes []string `protobuf:"bytes,16,rep,name=DeviceTypeRegexes,proto3" json:"device_type,omitempty"` + InterfaceNameRegexes []string `protobuf:"bytes,17,rep,name=InterfaceNameRegexes,proto3" json:"interface_name,omitempty"` + DeviceNameRegexes []string `protobuf:"bytes,18,rep,name=DeviceNameRegexes,proto3" json:"device_name,omitempty"` + NextHopIPAddresses []string `protobuf:"bytes,19,rep,name=NextHopIPAddresses,proto3" json:"nexthop,omitempty"` // flexible flow columns: strings - Str00 []FlexStringCriteria `protobuf:"bytes,20,rep,name=Str00,json=str00,proto3" json:"str00,omitempty"` - Str01 []FlexStringCriteria `protobuf:"bytes,21,rep,name=Str01,json=str01,proto3" json:"str01,omitempty"` - Str02 []FlexStringCriteria `protobuf:"bytes,22,rep,name=Str02,json=str02,proto3" json:"str02,omitempty"` - Str03 []FlexStringCriteria `protobuf:"bytes,23,rep,name=Str03,json=str03,proto3" json:"str03,omitempty"` - Str04 []FlexStringCriteria `protobuf:"bytes,24,rep,name=Str04,json=str04,proto3" json:"str04,omitempty"` - Str05 []FlexStringCriteria `protobuf:"bytes,25,rep,name=Str05,json=str05,proto3" json:"str05,omitempty"` - Str06 []FlexStringCriteria `protobuf:"bytes,26,rep,name=Str06,json=str06,proto3" json:"str06,omitempty"` - Str07 []FlexStringCriteria `protobuf:"bytes,27,rep,name=Str07,json=str07,proto3" json:"str07,omitempty"` - Str08 []FlexStringCriteria `protobuf:"bytes,28,rep,name=Str08,json=str08,proto3" json:"str08,omitempty"` - Str09 []FlexStringCriteria `protobuf:"bytes,29,rep,name=Str09,json=str09,proto3" json:"str09,omitempty"` - Str10 []FlexStringCriteria `protobuf:"bytes,30,rep,name=Str10,json=str10,proto3" json:"str10,omitempty"` - Str11 []FlexStringCriteria `protobuf:"bytes,31,rep,name=Str11,json=str11,proto3" json:"str11,omitempty"` - Str12 []FlexStringCriteria `protobuf:"bytes,32,rep,name=Str12,json=str12,proto3" json:"str12,omitempty"` - Str13 []FlexStringCriteria `protobuf:"bytes,33,rep,name=Str13,json=str13,proto3" json:"str13,omitempty"` - Str14 []FlexStringCriteria `protobuf:"bytes,34,rep,name=Str14,json=str14,proto3" json:"str14,omitempty"` - Str15 []FlexStringCriteria `protobuf:"bytes,35,rep,name=Str15,json=str15,proto3" json:"str15,omitempty"` - Str16 []FlexStringCriteria `protobuf:"bytes,36,rep,name=Str16,json=str16,proto3" json:"str16,omitempty"` + Str00 []FlexStringCriteria `protobuf:"bytes,20,rep,name=Str00,proto3" json:"str00,omitempty"` + Str01 []FlexStringCriteria `protobuf:"bytes,21,rep,name=Str01,proto3" json:"str01,omitempty"` + Str02 []FlexStringCriteria `protobuf:"bytes,22,rep,name=Str02,proto3" json:"str02,omitempty"` + Str03 []FlexStringCriteria `protobuf:"bytes,23,rep,name=Str03,proto3" json:"str03,omitempty"` + Str04 []FlexStringCriteria `protobuf:"bytes,24,rep,name=Str04,proto3" json:"str04,omitempty"` + Str05 []FlexStringCriteria `protobuf:"bytes,25,rep,name=Str05,proto3" json:"str05,omitempty"` + Str06 []FlexStringCriteria `protobuf:"bytes,26,rep,name=Str06,proto3" json:"str06,omitempty"` + Str07 []FlexStringCriteria `protobuf:"bytes,27,rep,name=Str07,proto3" json:"str07,omitempty"` + Str08 []FlexStringCriteria `protobuf:"bytes,28,rep,name=Str08,proto3" json:"str08,omitempty"` + Str09 []FlexStringCriteria `protobuf:"bytes,29,rep,name=Str09,proto3" json:"str09,omitempty"` + Str10 []FlexStringCriteria `protobuf:"bytes,30,rep,name=Str10,proto3" json:"str10,omitempty"` + Str11 []FlexStringCriteria `protobuf:"bytes,31,rep,name=Str11,proto3" json:"str11,omitempty"` + Str12 []FlexStringCriteria `protobuf:"bytes,32,rep,name=Str12,proto3" json:"str12,omitempty"` + Str13 []FlexStringCriteria `protobuf:"bytes,33,rep,name=Str13,proto3" json:"str13,omitempty"` + Str14 []FlexStringCriteria `protobuf:"bytes,34,rep,name=Str14,proto3" json:"str14,omitempty"` + Str15 []FlexStringCriteria `protobuf:"bytes,35,rep,name=Str15,proto3" json:"str15,omitempty"` + Str16 []FlexStringCriteria `protobuf:"bytes,36,rep,name=Str16,proto3" json:"str16,omitempty"` // flexible flow columns: uint64s - Int6400 []string `protobuf:"bytes,37,rep,name=Int6400,json=int6400,proto3" json:"int64_00,omitempty"` - Int6401 []string `protobuf:"bytes,38,rep,name=Int6401,json=int6401,proto3" json:"int64_01,omitempty"` - Int6402 []string `protobuf:"bytes,39,rep,name=Int6402,json=int6402,proto3" json:"int64_02,omitempty"` - Int6403 []string `protobuf:"bytes,40,rep,name=Int6403,json=int6403,proto3" json:"int64_03,omitempty"` - Int6404 []string `protobuf:"bytes,41,rep,name=Int6404,json=int6404,proto3" json:"int64_04,omitempty"` + Int6400 []string `protobuf:"bytes,37,rep,name=Int6400,proto3" json:"int64_00,omitempty"` + Int6401 []string `protobuf:"bytes,38,rep,name=Int6401,proto3" json:"int64_01,omitempty"` + Int6402 []string `protobuf:"bytes,39,rep,name=Int6402,proto3" json:"int64_02,omitempty"` + Int6403 []string `protobuf:"bytes,40,rep,name=Int6403,proto3" json:"int64_03,omitempty"` + Int6404 []string `protobuf:"bytes,41,rep,name=Int6404,proto3" json:"int64_04,omitempty"` // flexible flow columns: app_protocol - AppProtocol []string `protobuf:"bytes,42,rep,name=AppProtocol,json=appProtocol,proto3" json:"app_protocol,omitempty"` + AppProtocol []string `protobuf:"bytes,42,rep,name=AppProtocol,proto3" json:"app_protocol,omitempty"` // flexible flow columns: uint32s - Int00 []string `protobuf:"bytes,43,rep,name=Int00,json=int00,proto3" json:"int00,omitempty"` - Int01 []string `protobuf:"bytes,44,rep,name=Int01,json=int01,proto3" json:"int01,omitempty"` - Int02 []string `protobuf:"bytes,45,rep,name=Int02,json=int02,proto3" json:"int02,omitempty"` - Int03 []string `protobuf:"bytes,46,rep,name=Int03,json=int03,proto3" json:"int03,omitempty"` - Int04 []string `protobuf:"bytes,47,rep,name=Int04,json=int04,proto3" json:"int04,omitempty"` - Int05 []string `protobuf:"bytes,48,rep,name=Int05,json=int05,proto3" json:"int05,omitempty"` + Int00 []string `protobuf:"bytes,43,rep,name=Int00,proto3" json:"int00,omitempty"` + Int01 []string `protobuf:"bytes,44,rep,name=Int01,proto3" json:"int01,omitempty"` + Int02 []string `protobuf:"bytes,45,rep,name=Int02,proto3" json:"int02,omitempty"` + Int03 []string `protobuf:"bytes,46,rep,name=Int03,proto3" json:"int03,omitempty"` + Int04 []string `protobuf:"bytes,47,rep,name=Int04,proto3" json:"int04,omitempty"` + Int05 []string `protobuf:"bytes,48,rep,name=Int05,proto3" json:"int05,omitempty"` // flexible flow columns: IP addresses - Inet00 []string `protobuf:"bytes,49,rep,name=Inet00,json=inet00,proto3" json:"inet_00,omitempty"` - Inet01 []string `protobuf:"bytes,50,rep,name=Inet01,json=inet01,proto3" json:"inet_01,omitempty"` - Inet02 []string `protobuf:"bytes,51,rep,name=Inet02,json=inet02,proto3" json:"inet_02,omitempty"` - Inet03 []string `protobuf:"bytes,52,rep,name=Inet03,json=inet03,proto3" json:"inet_03,omitempty"` - Inet04 []string `protobuf:"bytes,53,rep,name=Inet04,json=inet04,proto3" json:"inet_04,omitempty"` + Inet00 []string `protobuf:"bytes,49,rep,name=Inet00,proto3" json:"inet_00,omitempty"` + Inet01 []string `protobuf:"bytes,50,rep,name=Inet01,proto3" json:"inet_01,omitempty"` + Inet02 []string `protobuf:"bytes,51,rep,name=Inet02,proto3" json:"inet_02,omitempty"` + Inet03 []string `protobuf:"bytes,52,rep,name=Inet03,proto3" json:"inet_03,omitempty"` + Inet04 []string `protobuf:"bytes,53,rep,name=Inet04,proto3" json:"inet_04,omitempty"` } func (m *TagCriteria) Reset() { *m = TagCriteria{} } @@ -697,8 +697,8 @@ func (m *TagCriteria) GetInet04() []string { // TagUpsert represents a tag or set of populators that have been created or updated type TagUpsert struct { - Value string `protobuf:"bytes,1,opt,name=Value,json=value,proto3" json:"value"` - Criteria []TagCriteria `protobuf:"bytes,2,rep,name=Criteria,json=criteria,proto3" json:"criteria"` + Value string `protobuf:"bytes,1,opt,name=Value,proto3" json:"value"` + Criteria []TagCriteria `protobuf:"bytes,2,rep,name=Criteria,proto3" json:"criteria"` } func (m *TagUpsert) Reset() { *m = TagUpsert{} } @@ -749,7 +749,7 @@ func (m *TagUpsert) GetCriteria() []TagCriteria { // TagDelete represents a tag or populator that's been deleted type TagDelete struct { - Value string `protobuf:"bytes,1,opt,name=Value,json=value,proto3" json:"value"` + Value string `protobuf:"bytes,1,opt,name=Value,proto3" json:"value"` } func (m *TagDelete) Reset() { *m = TagDelete{} } @@ -793,8 +793,8 @@ func (m *TagDelete) GetValue() string { // ASNRange represents a range of ASN numbers type ASNRange struct { - Start uint32 `protobuf:"varint,1,opt,name=Start,json=start,proto3" json:"Start,omitempty"` - End uint32 `protobuf:"varint,2,opt,name=End,json=end,proto3" json:"End,omitempty"` + Start uint32 `protobuf:"varint,1,opt,name=Start,proto3" json:"Start,omitempty"` + End uint32 `protobuf:"varint,2,opt,name=End,proto3" json:"End,omitempty"` } func (m *ASNRange) Reset() { *m = ASNRange{} } @@ -845,8 +845,8 @@ func (m *ASNRange) GetEnd() uint32 { // VLanRange represents a range of VLAN numbers type VLanRange struct { - Start uint32 `protobuf:"varint,1,opt,name=Start,json=start,proto3" json:"Start,omitempty"` - End uint32 `protobuf:"varint,2,opt,name=End,json=end,proto3" json:"End,omitempty"` + Start uint32 `protobuf:"varint,1,opt,name=Start,proto3" json:"Start,omitempty"` + End uint32 `protobuf:"varint,2,opt,name=End,proto3" json:"End,omitempty"` } func (m *VLanRange) Reset() { *m = VLanRange{} } @@ -897,8 +897,8 @@ func (m *VLanRange) GetEnd() uint32 { // PortRange represents a range of ports type PortRange struct { - Start uint32 `protobuf:"varint,1,opt,name=Start,json=start,proto3" json:"Start,omitempty"` - End uint32 `protobuf:"varint,2,opt,name=End,json=end,proto3" json:"End,omitempty"` + Start uint32 `protobuf:"varint,1,opt,name=Start,proto3" json:"Start,omitempty"` + End uint32 `protobuf:"varint,2,opt,name=End,proto3" json:"End,omitempty"` } func (m *PortRange) Reset() { *m = PortRange{} } @@ -949,8 +949,8 @@ func (m *PortRange) GetEnd() uint32 { // FlexUint32Range represents a uint64 range flex column (INT00-INT05) type FlexUint32Range struct { - Start uint32 `protobuf:"varint,1,opt,name=Start,json=start,proto3" json:"Start,omitempty"` - End uint32 `protobuf:"varint,2,opt,name=End,json=end,proto3" json:"End,omitempty"` + Start uint32 `protobuf:"varint,1,opt,name=Start,proto3" json:"Start,omitempty"` + End uint32 `protobuf:"varint,2,opt,name=End,proto3" json:"End,omitempty"` } func (m *FlexUint32Range) Reset() { *m = FlexUint32Range{} } @@ -1001,8 +1001,8 @@ func (m *FlexUint32Range) GetEnd() uint32 { // FlexUint64Range represents a uint64 range flex column (INT64_00-INT64_04) type FlexUint64Range struct { - Start uint64 `protobuf:"varint,1,opt,name=Start,json=start,proto3" json:"Start,omitempty"` - End uint64 `protobuf:"varint,2,opt,name=End,json=end,proto3" json:"End,omitempty"` + Start uint64 `protobuf:"varint,1,opt,name=Start,proto3" json:"Start,omitempty"` + End uint64 `protobuf:"varint,2,opt,name=End,proto3" json:"End,omitempty"` } func (m *FlexUint64Range) Reset() { *m = FlexUint64Range{} } @@ -1053,9 +1053,9 @@ func (m *FlexUint64Range) GetEnd() uint64 { // APIServerResponse is the response from the server type APIServerResponse struct { - GUID string `protobuf:"bytes,1,opt,name=GUID,json=gUID,proto3" json:"guid,omitempty"` - Message string `protobuf:"bytes,2,opt,name=Message,json=message,proto3" json:"message,omitempty"` - Error string `protobuf:"bytes,3,opt,name=Error,json=error,proto3" json:"error,omitempty"` + GUID string `protobuf:"bytes,1,opt,name=GUID,proto3" json:"guid,omitempty"` + Message string `protobuf:"bytes,2,opt,name=Message,proto3" json:"message,omitempty"` + Error string `protobuf:"bytes,3,opt,name=Error,proto3" json:"error,omitempty"` } func (m *APIServerResponse) Reset() { *m = APIServerResponse{} } @@ -1129,109 +1129,107 @@ func init() { func init() { proto.RegisterFile("tagging.proto", fileDescriptor_6398c1b1d4769419) } var fileDescriptor_6398c1b1d4769419 = []byte{ - // 1622 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x98, 0x4d, 0x6f, 0xdb, 0xc8, - 0x19, 0xc7, 0xad, 0xf8, 0x4d, 0x1a, 0xd9, 0x96, 0x3d, 0x71, 0x92, 0x71, 0x76, 0x57, 0x74, 0xd5, - 0x36, 0xf5, 0x76, 0x13, 0x47, 0x7c, 0x91, 0x13, 0xa3, 0x7b, 0xa8, 0xe4, 0x64, 0x1d, 0x15, 0x49, - 0x20, 0x50, 0xce, 0x02, 0x3d, 0x09, 0x63, 0x69, 0x42, 0x11, 0x90, 0x48, 0x82, 0x33, 0x32, 0xe2, - 0x5b, 0xaf, 0xbd, 0xf5, 0xd6, 0xaf, 0xd0, 0x6f, 0xd0, 0xaf, 0xb0, 0xc7, 0xf4, 0xb6, 0x27, 0xa2, - 0x71, 0x2e, 0x05, 0x4f, 0xf9, 0x08, 0x05, 0x87, 0x1c, 0x92, 0x1a, 0x1a, 0x68, 0xb9, 0x27, 0x93, - 0xcf, 0xfc, 0xff, 0xbf, 0x79, 0x44, 0x3d, 0xf3, 0x98, 0x8f, 0xc0, 0x36, 0xc3, 0x96, 0x65, 0x3b, - 0xd6, 0xb1, 0xe7, 0xbb, 0xcc, 0x85, 0xeb, 0x53, 0xdb, 0xf3, 0xdc, 0x87, 0x4f, 0x2c, 0x9b, 0x4d, - 0x17, 0x97, 0xc7, 0x63, 0x77, 0xfe, 0xd4, 0x72, 0x2d, 0xf7, 0x29, 0x5f, 0xbd, 0x5c, 0xbc, 0xe7, - 0x77, 0xfc, 0x86, 0x5f, 0xc5, 0xae, 0xd6, 0xbf, 0x2a, 0x00, 0x5e, 0x60, 0xab, 0x87, 0xd9, 0x78, - 0x3a, 0xc0, 0x3e, 0x1b, 0x12, 0x67, 0x42, 0x7c, 0xf8, 0x3d, 0xa8, 0x0f, 0x89, 0x7f, 0x65, 0x8f, - 0xc9, 0x5b, 0x3c, 0x27, 0xa8, 0x72, 0x58, 0x39, 0xaa, 0xf5, 0x1e, 0x86, 0x81, 0x72, 0x9f, 0xc6, - 0xe1, 0x91, 0x83, 0xe7, 0xe4, 0xb1, 0x3b, 0xb7, 0x19, 0x99, 0x7b, 0xec, 0xda, 0xac, 0xd3, 0x4c, - 0x0e, 0x5f, 0x81, 0x46, 0xe2, 0xee, 0x3b, 0x94, 0x61, 0x67, 0x4c, 0xd0, 0x1d, 0x4e, 0x68, 0x86, - 0x81, 0xf2, 0x50, 0x10, 0xec, 0x64, 0x2d, 0x47, 0x69, 0xd0, 0x65, 0x1b, 0xd4, 0x41, 0xf5, 0x95, - 0x4b, 0x19, 0x4f, 0x62, 0x95, 0x23, 0x1e, 0x84, 0x81, 0x72, 0x77, 0xea, 0x52, 0x26, 0x67, 0x50, - 0x9d, 0x26, 0xc2, 0xd6, 0x5f, 0x57, 0xc1, 0x56, 0xfe, 0x33, 0xc1, 0x47, 0xa0, 0xc6, 0x6f, 0xce, - 0xdf, 0xf5, 0x5f, 0x24, 0x99, 0x54, 0xc3, 0x40, 0x59, 0xb3, 0x16, 0xf6, 0xc4, 0xac, 0x5d, 0x8a, - 0x25, 0xf8, 0x14, 0x00, 0x93, 0x78, 0x33, 0x3c, 0x26, 0xdd, 0xd9, 0x8c, 0xef, 0x57, 0xed, 0x35, - 0xc2, 0x40, 0xa9, 0xfb, 0x71, 0x74, 0x84, 0x67, 0x33, 0x13, 0xf8, 0xa9, 0x04, 0x3e, 0x06, 0xa0, - 0x4f, 0xcf, 0xdc, 0xb9, 0x37, 0x23, 0x8c, 0xa0, 0x35, 0x6e, 0xd8, 0x0a, 0x03, 0xa5, 0x3a, 0x4e, - 0x62, 0x26, 0xb0, 0xd3, 0x75, 0xf8, 0x07, 0xb0, 0xf9, 0xce, 0xa3, 0xc4, 0x67, 0x14, 0xad, 0x1f, - 0xae, 0x1e, 0xd5, 0xb5, 0xdd, 0x63, 0xfe, 0x9d, 0x1d, 0x5f, 0x60, 0x2b, 0x5e, 0xe8, 0x35, 0x7e, - 0x0a, 0x94, 0x95, 0x30, 0x50, 0x36, 0x17, 0xb1, 0xd0, 0x14, 0x17, 0x91, 0xf9, 0x05, 0x89, 0x30, - 0x14, 0x6d, 0xc8, 0xe6, 0x78, 0x21, 0x33, 0x4f, 0x62, 0xa1, 0x29, 0x2e, 0xa2, 0x0f, 0x76, 0x71, - 0xf1, 0xfa, 0x8d, 0xed, 0x2c, 0x22, 0xff, 0xe6, 0x61, 0xe5, 0x68, 0x3b, 0xfe, 0x60, 0x8c, 0xcd, - 0x46, 0xf3, 0x38, 0x6c, 0x02, 0x96, 0x4a, 0x60, 0x17, 0x6c, 0xc4, 0x95, 0x80, 0xaa, 0x87, 0x95, - 0xa3, 0xba, 0x76, 0x90, 0x6d, 0x26, 0x95, 0x4a, 0x6f, 0x27, 0xd9, 0x75, 0x83, 0xf2, 0x7b, 0x33, - 0xf9, 0xfb, 0xa7, 0xb5, 0x6a, 0x65, 0xf7, 0x4e, 0xeb, 0xcf, 0x00, 0xfe, 0x30, 0x23, 0x1f, 0x86, - 0xcc, 0xb7, 0x1d, 0xeb, 0xcc, 0xb7, 0x19, 0xf1, 0x6d, 0x0c, 0x5b, 0x60, 0xa3, 0x3b, 0x66, 0xb6, - 0xeb, 0x24, 0x95, 0x05, 0x22, 0x3f, 0xe6, 0x11, 0x33, 0xf9, 0x0b, 0x15, 0xb0, 0xfe, 0x23, 0x9e, - 0x2d, 0x44, 0xe9, 0xd4, 0xc2, 0x40, 0x59, 0xbf, 0x8a, 0x02, 0x66, 0xfc, 0xa7, 0xf5, 0xcf, 0x03, - 0x50, 0xbf, 0xc0, 0x19, 0xf4, 0x3b, 0x50, 0x7b, 0x61, 0xfb, 0x24, 0xcf, 0xdd, 0x0e, 0x03, 0xa5, - 0x36, 0x11, 0x41, 0x33, 0xbb, 0x84, 0x1a, 0x00, 0x03, 0xd7, 0x67, 0x26, 0x76, 0x2c, 0x42, 0xd1, - 0x9d, 0xc3, 0xd5, 0xa3, 0x5a, 0x0f, 0x86, 0x81, 0xb2, 0xe3, 0xb9, 0x3e, 0xcb, 0x55, 0x15, 0xf0, - 0x52, 0x15, 0x34, 0x40, 0x6d, 0x10, 0x1d, 0x9a, 0xb1, 0x3b, 0xa3, 0x68, 0xf5, 0x70, 0xf5, 0x68, - 0xbb, 0x77, 0x3f, 0x0c, 0x14, 0xe8, 0x25, 0xc1, 0x9c, 0xad, 0x26, 0x62, 0xd1, 0xb3, 0xaf, 0x75, - 0x87, 0x6f, 0x93, 0x8d, 0xd6, 0xf8, 0x46, 0x7b, 0x61, 0xa0, 0x6c, 0x63, 0xea, 0xe4, 0x0d, 0x58, - 0x68, 0xa0, 0x0e, 0xc0, 0x8f, 0xaf, 0xb1, 0x93, 0x38, 0xd6, 0xb9, 0xe3, 0x6e, 0x18, 0x28, 0x8d, - 0xab, 0x19, 0x76, 0x68, 0x3e, 0xb7, 0xab, 0x54, 0x06, 0xcf, 0x41, 0xe3, 0x35, 0xa6, 0xec, 0x95, - 0xeb, 0x75, 0x87, 0x6f, 0xa3, 0x53, 0x10, 0x97, 0x49, 0xad, 0xf7, 0x4d, 0x18, 0x28, 0x07, 0x33, - 0x4c, 0xd9, 0xd4, 0xf5, 0x46, 0x98, 0xca, 0xa7, 0xa6, 0x31, 0x5b, 0x76, 0xc1, 0x97, 0x60, 0xf7, - 0x2d, 0xf9, 0x90, 0x84, 0x92, 0x1c, 0x36, 0x39, 0xe9, 0x20, 0x0c, 0x94, 0x7b, 0x0e, 0xf9, 0x90, - 0x90, 0xf2, 0xd9, 0xef, 0x3a, 0x92, 0x25, 0xca, 0x27, 0xc3, 0xc4, 0xf9, 0x54, 0xb3, 0x7c, 0x32, - 0x4a, 0x21, 0x1f, 0x67, 0xd9, 0x05, 0x9f, 0x03, 0xd0, 0x3b, 0x1f, 0x74, 0x87, 0x03, 0xcc, 0xa6, - 0x14, 0xd5, 0x38, 0x03, 0x85, 0x81, 0xb2, 0x7f, 0x69, 0x45, 0x7e, 0x0f, 0xb3, 0x69, 0xfe, 0x91, - 0x5c, 0xa6, 0x5a, 0x78, 0x06, 0x76, 0x7a, 0xe7, 0x83, 0x33, 0x77, 0x3e, 0x5f, 0x38, 0x36, 0xb3, - 0x09, 0x45, 0x80, 0xbb, 0xbf, 0x0a, 0x03, 0xe5, 0x41, 0xe4, 0x1e, 0x27, 0x4b, 0xd7, 0x39, 0xc0, - 0xce, 0xe5, 0x92, 0x25, 0x6a, 0x40, 0x17, 0x67, 0x83, 0x1f, 0x66, 0xd8, 0xa2, 0xa8, 0xce, 0xcf, - 0x0d, 0x6f, 0x40, 0x6c, 0xec, 0x8d, 0xde, 0x47, 0xc1, 0x7c, 0x03, 0x62, 0x89, 0x10, 0x1a, 0xa0, - 0xde, 0x1f, 0x74, 0x27, 0x13, 0x9f, 0x50, 0x4a, 0x28, 0xda, 0xca, 0xaa, 0x0b, 0x4f, 0x26, 0x7e, - 0xbe, 0x6b, 0xda, 0x99, 0x0c, 0x76, 0xc0, 0xd6, 0x9b, 0xee, 0x59, 0x66, 0xdb, 0xce, 0x6a, 0x65, - 0x8e, 0xc7, 0x39, 0xd7, 0xd6, 0x3c, 0x27, 0x83, 0xa7, 0x60, 0xeb, 0xcc, 0x5d, 0x38, 0xcc, 0xbf, - 0x3e, 0x73, 0x27, 0x84, 0xa2, 0x1d, 0x6e, 0xbb, 0x17, 0x06, 0xca, 0xde, 0x38, 0x8e, 0xe7, 0xad, - 0xe3, 0x9c, 0x14, 0x7e, 0x0f, 0x1a, 0x43, 0x9b, 0xf1, 0x9e, 0x6d, 0x12, 0x8b, 0x7c, 0x20, 0x14, - 0x35, 0xb2, 0x5c, 0xa9, 0xcd, 0x96, 0x7b, 0xf3, 0xb2, 0x14, 0x9e, 0x83, 0xbd, 0x17, 0x24, 0xea, - 0xd6, 0x17, 0xd7, 0x5e, 0xea, 0xdf, 0xcd, 0x4a, 0x65, 0xc2, 0x17, 0x47, 0xec, 0xda, 0xcb, 0x63, - 0xf6, 0x26, 0xb2, 0x07, 0x0e, 0xc0, 0x7e, 0xdf, 0x61, 0xc4, 0x7f, 0x8f, 0xc7, 0x4b, 0xb9, 0xec, - 0x71, 0xd6, 0xd7, 0x61, 0xa0, 0x20, 0x5b, 0xac, 0xcb, 0xf5, 0xb2, 0x6f, 0xdf, 0xe2, 0xcc, 0x52, - 0xcb, 0xe3, 0x60, 0x21, 0x35, 0x89, 0x95, 0xa4, 0x96, 0x07, 0xbd, 0x04, 0x30, 0x29, 0xe3, 0xfc, - 0x17, 0x7a, 0x37, 0x7b, 0xc4, 0x49, 0x25, 0xe7, 0x28, 0xd0, 0x29, 0x18, 0xe0, 0x2b, 0xb0, 0x3e, - 0x64, 0x7e, 0xbb, 0x8d, 0xf6, 0x79, 0xeb, 0x16, 0xdd, 0xb4, 0xd8, 0x19, 0x7b, 0x0f, 0x92, 0x6e, - 0xda, 0xa0, 0x91, 0x3e, 0x87, 0x5d, 0xe7, 0x01, 0x41, 0x52, 0xd1, 0xbd, 0x52, 0x24, 0x55, 0x26, - 0xa9, 0x82, 0xa4, 0xa1, 0xfb, 0xa5, 0x48, 0x9a, 0x4c, 0xd2, 0x04, 0x49, 0x47, 0x0f, 0x4a, 0x91, - 0x74, 0x99, 0xa4, 0x0b, 0x92, 0x81, 0x50, 0x29, 0x92, 0x21, 0x93, 0x0c, 0x41, 0xea, 0xa0, 0x83, - 0x52, 0xa4, 0x8e, 0x4c, 0xea, 0x08, 0xd2, 0x09, 0x7a, 0x58, 0x8a, 0x74, 0x22, 0x93, 0x4e, 0x04, - 0xe9, 0x19, 0xfa, 0xaa, 0x14, 0xe9, 0x99, 0x4c, 0x7a, 0x26, 0x48, 0xcf, 0xd1, 0xd7, 0xa5, 0x48, - 0xcf, 0x65, 0xd2, 0x73, 0x41, 0x3a, 0x45, 0xdf, 0x94, 0x22, 0x9d, 0xca, 0xa4, 0xd3, 0x84, 0xa4, - 0xb6, 0x51, 0xb3, 0x0c, 0x49, 0x95, 0x6b, 0x5c, 0x15, 0x35, 0xae, 0xaa, 0x48, 0x29, 0x45, 0x92, - 0x6b, 0x5c, 0x15, 0x35, 0xae, 0x6a, 0xe8, 0xb0, 0x14, 0x49, 0xae, 0x71, 0x55, 0xd4, 0xb8, 0xaa, - 0xa3, 0x5f, 0x95, 0x22, 0xc9, 0x35, 0xae, 0x8a, 0x1a, 0x57, 0x0d, 0xd4, 0x2a, 0x45, 0x92, 0x6b, - 0x5c, 0x15, 0x35, 0xae, 0x76, 0xd0, 0xaf, 0x4b, 0x91, 0xe4, 0x1a, 0x57, 0x45, 0x8d, 0xab, 0x27, - 0xe8, 0x37, 0xa5, 0x48, 0x72, 0x8d, 0xab, 0x27, 0xb0, 0x0d, 0x36, 0xfb, 0x0e, 0x3b, 0x31, 0xda, - 0x6d, 0xf4, 0x5b, 0xde, 0x25, 0xf9, 0x1b, 0x92, 0x1d, 0x85, 0x46, 0x4b, 0xfd, 0x6c, 0xd3, 0x8e, - 0x65, 0x99, 0x43, 0x45, 0x8f, 0x0a, 0x0e, 0xb5, 0xe8, 0x50, 0x33, 0x87, 0x86, 0x7e, 0x57, 0x70, - 0x68, 0x45, 0x87, 0x96, 0x39, 0x74, 0x74, 0x54, 0x70, 0xe8, 0x45, 0x87, 0x9e, 0x39, 0x0c, 0xf4, - 0x6d, 0xc1, 0x61, 0x14, 0x1d, 0x46, 0x34, 0x32, 0x75, 0x3d, 0x4f, 0xbc, 0x20, 0xa2, 0xdf, 0x73, - 0x17, 0x1f, 0x99, 0xb0, 0xe7, 0x8d, 0x6e, 0x79, 0x47, 0xac, 0xe3, 0x4c, 0x0e, 0xbf, 0x05, 0xeb, - 0x7d, 0x87, 0xb5, 0xdb, 0xe8, 0xbb, 0xec, 0x7d, 0xcf, 0x8e, 0x02, 0xf9, 0x47, 0xcc, 0x03, 0x42, - 0xaa, 0xa2, 0xc7, 0xcb, 0x52, 0x55, 0x96, 0xaa, 0x42, 0xaa, 0xa1, 0x27, 0xcb, 0x52, 0x4d, 0x96, - 0x6a, 0x42, 0xaa, 0xa3, 0xe3, 0x65, 0xa9, 0x2e, 0x4b, 0x75, 0x21, 0x35, 0xd0, 0xd3, 0x65, 0xa9, - 0x21, 0x4b, 0x0d, 0x21, 0xed, 0xa0, 0xf6, 0xb2, 0xb4, 0x23, 0x4b, 0x3b, 0xf0, 0x09, 0xd8, 0xe8, - 0x3b, 0x24, 0x7a, 0x04, 0x6a, 0xf6, 0xef, 0xd5, 0x76, 0x08, 0x5b, 0xae, 0x9b, 0x0d, 0x9b, 0x8b, - 0x52, 0xb9, 0x8a, 0x34, 0x59, 0xae, 0x16, 0xe4, 0x6a, 0x2a, 0xd7, 0x90, 0x2e, 0xcb, 0xb5, 0x82, - 0x5c, 0x4b, 0xe5, 0x3a, 0x32, 0x64, 0xb9, 0x5e, 0x90, 0xeb, 0xa9, 0xdc, 0x40, 0x1d, 0x59, 0x6e, - 0x14, 0xe4, 0x46, 0xcb, 0x01, 0xb5, 0x74, 0xe4, 0xcb, 0xe6, 0x9c, 0xca, 0xed, 0x73, 0x0e, 0xfc, - 0x23, 0xa8, 0x8a, 0xe3, 0xc7, 0x07, 0x95, 0xba, 0x06, 0xb3, 0x69, 0x2c, 0x3d, 0x98, 0xbb, 0xc9, - 0xc1, 0xac, 0x8e, 0x93, 0x88, 0x99, 0x5e, 0xb5, 0x1e, 0xf3, 0xfd, 0xe2, 0x29, 0xf1, 0x7f, 0xee, - 0xd7, 0xd2, 0x40, 0x55, 0xbc, 0xc7, 0xc3, 0xfd, 0xa8, 0x31, 0x60, 0x9f, 0x71, 0xf1, 0x76, 0x74, - 0xc8, 0xa3, 0x79, 0x7a, 0x17, 0xac, 0xbe, 0x74, 0x26, 0x7c, 0x30, 0xdb, 0x36, 0x57, 0x89, 0x33, - 0x69, 0xe9, 0xa0, 0x96, 0xce, 0x2c, 0x65, 0x4c, 0xe9, 0x0c, 0xf6, 0x7f, 0x9b, 0x4e, 0x41, 0x23, - 0x6a, 0x4b, 0xef, 0x6c, 0x87, 0xe9, 0xda, 0x2f, 0xb6, 0x9e, 0x18, 0xb7, 0x58, 0xd7, 0x6e, 0xb1, - 0xae, 0xc5, 0xd6, 0xbf, 0x57, 0xc0, 0x5e, 0x77, 0xd0, 0x1f, 0x12, 0xff, 0x8a, 0xf8, 0x26, 0xa1, - 0x9e, 0xeb, 0x50, 0x02, 0x1f, 0x81, 0x35, 0xfe, 0x93, 0x42, 0xfc, 0x24, 0xf9, 0x4b, 0xb3, 0xb5, - 0xb0, 0x27, 0xb9, 0x6f, 0x7c, 0xcd, 0x8a, 0x7f, 0x57, 0xd8, 0x7c, 0x43, 0x28, 0xc5, 0x96, 0x18, - 0x66, 0x79, 0x7d, 0xcc, 0xe3, 0x50, 0xbe, 0x97, 0x24, 0xa1, 0xe8, 0xd8, 0xbc, 0xf4, 0x7d, 0xd7, - 0x4f, 0x7e, 0xf3, 0xe0, 0xc7, 0x86, 0x44, 0x81, 0xfc, 0xb1, 0xe1, 0x81, 0x9e, 0xf1, 0xf1, 0x53, - 0x73, 0xe5, 0xe7, 0x4f, 0xcd, 0x95, 0x2f, 0x9f, 0x9a, 0x95, 0xbf, 0xdc, 0x34, 0x2b, 0xff, 0xb8, - 0x69, 0x56, 0x7e, 0xba, 0x69, 0x56, 0x3e, 0xde, 0x34, 0x2b, 0xff, 0xbe, 0x69, 0x56, 0xfe, 0x73, - 0xd3, 0x5c, 0xf9, 0x72, 0xd3, 0xac, 0xfc, 0xed, 0x73, 0x73, 0xe5, 0xe3, 0xe7, 0xe6, 0xca, 0xcf, - 0x9f, 0x9b, 0x2b, 0x97, 0x1b, 0xbc, 0x1f, 0xe9, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x6f, 0xd7, - 0x38, 0x93, 0x44, 0x12, 0x00, 0x00, + // 1592 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x98, 0x4f, 0x53, 0xdb, 0xce, + 0x19, 0xc7, 0x71, 0x30, 0x60, 0xaf, 0x31, 0x86, 0x0d, 0x09, 0x0b, 0xbf, 0x5f, 0x2c, 0xea, 0xb6, + 0xa9, 0xd3, 0x10, 0xb0, 0xfe, 0x98, 0xc0, 0x24, 0x87, 0xda, 0x86, 0x80, 0x3b, 0x09, 0xe3, 0x91, + 0x49, 0x66, 0xda, 0x43, 0x3d, 0x8a, 0xbd, 0x11, 0x9a, 0xb1, 0x25, 0x8d, 0xb4, 0x66, 0xe0, 0xd6, + 0x6b, 0x6f, 0xbd, 0xf5, 0x2d, 0xf4, 0x1d, 0xf4, 0x2d, 0xe4, 0x98, 0xde, 0x72, 0xd2, 0x34, 0xe4, + 0xd2, 0xd1, 0x29, 0x2f, 0xa1, 0xa3, 0x95, 0xd6, 0x92, 0x57, 0xcc, 0xb4, 0xea, 0x0d, 0x3d, 0xfb, + 0xfd, 0x7e, 0xf4, 0x58, 0xfe, 0xee, 0x83, 0xd6, 0xa0, 0x4c, 0x34, 0x5d, 0x37, 0x4c, 0x7d, 0xdf, + 0x76, 0x2c, 0x62, 0xc1, 0xa5, 0x2b, 0xc3, 0xb6, 0xad, 0x9d, 0x4d, 0xdd, 0xd2, 0x2d, 0x5a, 0x39, + 0x08, 0xfe, 0x0a, 0x17, 0x6b, 0xff, 0xcc, 0x01, 0x78, 0xa9, 0xe9, 0x6d, 0x8d, 0x0c, 0xaf, 0x7a, + 0x9a, 0x43, 0xfa, 0xd8, 0x1c, 0x61, 0x07, 0xbe, 0x06, 0xa5, 0x3e, 0x76, 0xae, 0x8d, 0x21, 0xbe, + 0xd0, 0x26, 0x18, 0xe5, 0x76, 0x73, 0xf5, 0x62, 0x7b, 0xc7, 0xf7, 0x84, 0xc7, 0x6e, 0x58, 0x1e, + 0x98, 0xda, 0x04, 0xef, 0x59, 0x13, 0x83, 0xe0, 0x89, 0x4d, 0x6e, 0xd5, 0xa4, 0x1c, 0x9e, 0x83, + 0x4a, 0x74, 0xd9, 0x35, 0x5d, 0xa2, 0x99, 0x43, 0x8c, 0x1e, 0x50, 0x42, 0xd5, 0xf7, 0x84, 0x1d, + 0x46, 0x30, 0xa2, 0xb5, 0x04, 0x85, 0xb7, 0x41, 0x19, 0x14, 0xce, 0x2d, 0x97, 0xd0, 0x26, 0x16, + 0x29, 0x62, 0xcb, 0xf7, 0x84, 0x87, 0x57, 0x96, 0x4b, 0xf8, 0x0e, 0x66, 0xc2, 0xda, 0x5f, 0x16, + 0xc1, 0x6a, 0xf2, 0x33, 0xc1, 0xa7, 0xa0, 0x48, 0x2f, 0xce, 0xde, 0x77, 0x4f, 0xa2, 0x4e, 0x0a, + 0xbe, 0x27, 0xe4, 0xf5, 0xa9, 0x31, 0x52, 0xe3, 0x25, 0x78, 0x00, 0x80, 0x8a, 0xed, 0xb1, 0x36, + 0xc4, 0xad, 0xf1, 0x98, 0xde, 0xaf, 0xd0, 0xae, 0xf8, 0x9e, 0x50, 0x72, 0xc2, 0xea, 0x40, 0x1b, + 0x8f, 0xd5, 0x84, 0x04, 0xee, 0x01, 0xd0, 0x75, 0x3b, 0xd6, 0xc4, 0x1e, 0x63, 0x82, 0x51, 0x9e, + 0x1a, 0x56, 0x7d, 0x4f, 0x28, 0x0c, 0xa3, 0x9a, 0x9a, 0x58, 0x87, 0xaf, 0xc0, 0xca, 0x7b, 0xdb, + 0xc5, 0x0e, 0x71, 0xd1, 0xd2, 0xee, 0x62, 0xbd, 0x24, 0xad, 0xef, 0xd3, 0xaf, 0x66, 0xff, 0x52, + 0xd3, 0xc3, 0x85, 0x76, 0xe5, 0xb3, 0x27, 0x2c, 0xf8, 0x9e, 0xb0, 0x32, 0x0d, 0x85, 0x2a, 0x73, + 0x04, 0xe6, 0x13, 0x1c, 0x60, 0x5c, 0xb4, 0xcc, 0x9b, 0xc3, 0x85, 0xd8, 0x3c, 0x0a, 0x85, 0x2a, + 0x73, 0x04, 0x1f, 0xec, 0xf2, 0xf2, 0xed, 0x3b, 0xc3, 0x9c, 0x06, 0xfe, 0x95, 0xdd, 0x5c, 0xbd, + 0x1c, 0x7e, 0x30, 0x42, 0xc6, 0x83, 0x49, 0x58, 0x56, 0x13, 0x12, 0xd8, 0x02, 0xcb, 0x61, 0x12, + 0x50, 0x61, 0x37, 0x57, 0x2f, 0x49, 0xdb, 0xf1, 0xcd, 0xb8, 0xa8, 0xb4, 0xd7, 0xa2, 0xbb, 0x2e, + 0xbb, 0xf4, 0x5a, 0x8d, 0x8c, 0xbf, 0xcf, 0x17, 0x72, 0xeb, 0x0f, 0x6a, 0x7f, 0x00, 0xf0, 0xcd, + 0x18, 0xdf, 0xf4, 0x89, 0x63, 0x98, 0x7a, 0xc7, 0x31, 0x08, 0x76, 0x0c, 0x0d, 0xd6, 0xc0, 0x72, + 0x6b, 0x48, 0x0c, 0xcb, 0x8c, 0x92, 0x05, 0x02, 0xbf, 0x46, 0x2b, 0x6a, 0xb4, 0x02, 0x05, 0xb0, + 0xf4, 0x41, 0x1b, 0x4f, 0x59, 0x74, 0x8a, 0xbe, 0x27, 0x2c, 0x5d, 0x07, 0x05, 0x35, 0xac, 0xd7, + 0xfe, 0xb1, 0x0d, 0x4a, 0x97, 0x5a, 0x0c, 0x7d, 0x0e, 0x8a, 0x27, 0x86, 0x83, 0x93, 0xdc, 0xb2, + 0xef, 0x09, 0xc5, 0x11, 0x2b, 0xaa, 0xf1, 0x3a, 0x94, 0x00, 0xe8, 0x59, 0x0e, 0x51, 0x35, 0x53, + 0xc7, 0x2e, 0x7a, 0xb0, 0xbb, 0x58, 0x2f, 0xb6, 0xa1, 0xef, 0x09, 0x6b, 0xb6, 0xe5, 0x90, 0x44, + 0xaa, 0x12, 0x2a, 0xa8, 0x80, 0x62, 0x2f, 0xd8, 0x34, 0x43, 0x6b, 0xec, 0xa2, 0xc5, 0xdd, 0xc5, + 0x7a, 0xb9, 0xfd, 0xd8, 0xf7, 0x04, 0x68, 0x47, 0xc5, 0x84, 0x2d, 0x16, 0xc2, 0x03, 0x50, 0x6c, + 0xf5, 0x2f, 0xa2, 0x1b, 0xe5, 0xe9, 0x8d, 0x36, 0x7c, 0x4f, 0x28, 0x6b, 0xae, 0x99, 0x34, 0xcc, + 0x34, 0x50, 0x06, 0xe0, 0xc3, 0x5b, 0xcd, 0x8c, 0x1c, 0x4b, 0xd4, 0xf1, 0xd0, 0xf7, 0x84, 0xca, + 0xf5, 0x58, 0x33, 0xdd, 0x64, 0x6f, 0xb1, 0x0c, 0x9e, 0x81, 0xca, 0x5b, 0xcd, 0x25, 0xe7, 0x96, + 0xdd, 0xea, 0x5f, 0x04, 0xbb, 0x20, 0x8c, 0x49, 0xb1, 0xfd, 0xc4, 0xf7, 0x84, 0xed, 0xb1, 0xe6, + 0x92, 0x2b, 0xcb, 0x1e, 0x68, 0x2e, 0xbf, 0x6b, 0x78, 0x17, 0x3c, 0x05, 0xeb, 0x17, 0xf8, 0x26, + 0x2a, 0x45, 0x3d, 0xac, 0x50, 0xd2, 0xb6, 0xef, 0x09, 0x8f, 0x4c, 0x7c, 0x13, 0x91, 0x92, 0xdd, + 0xa7, 0x2c, 0x41, 0x3f, 0x71, 0x2d, 0xec, 0xa7, 0x10, 0xf7, 0x13, 0x53, 0x52, 0xfd, 0x70, 0x2e, + 0x78, 0x04, 0x40, 0xfb, 0xac, 0xd7, 0xea, 0xf7, 0x34, 0x72, 0xe5, 0xa2, 0x22, 0x65, 0x20, 0xdf, + 0x13, 0x36, 0x3f, 0xea, 0x81, 0xdf, 0xd6, 0xc8, 0x55, 0xf2, 0x91, 0xc4, 0x5a, 0xd8, 0x01, 0x6b, + 0xed, 0xb3, 0x5e, 0xc7, 0x9a, 0x4c, 0xa6, 0xa6, 0x41, 0x0c, 0xec, 0x22, 0x40, 0xdd, 0x3f, 0xf9, + 0x9e, 0xb0, 0x15, 0xb8, 0x87, 0xd1, 0xd2, 0x6d, 0x02, 0xc0, 0x59, 0x82, 0x01, 0x74, 0xd9, 0xe9, + 0xbd, 0x19, 0x6b, 0xba, 0x8b, 0x4a, 0x74, 0xdf, 0xd0, 0x01, 0x44, 0x86, 0xf6, 0xe0, 0x53, 0x50, + 0x4c, 0x0e, 0x20, 0x26, 0x84, 0x0a, 0x28, 0x75, 0x7b, 0xad, 0xd1, 0xc8, 0xc1, 0xae, 0x8b, 0x5d, + 0xb4, 0x1a, 0xa7, 0x4b, 0x1b, 0x8d, 0x9c, 0xe4, 0xd4, 0x4c, 0xc8, 0x60, 0x13, 0xac, 0xbe, 0x6b, + 0x75, 0x62, 0x5b, 0x39, 0xce, 0xca, 0x44, 0x1b, 0x26, 0x5c, 0x73, 0x32, 0x78, 0x0c, 0x56, 0x3b, + 0xd6, 0xd4, 0x24, 0xce, 0x6d, 0xc7, 0x1a, 0x61, 0x17, 0xad, 0x51, 0xdb, 0x23, 0xdf, 0x13, 0x36, + 0x86, 0x61, 0x3d, 0x69, 0x4d, 0x4a, 0xe1, 0x6b, 0x50, 0xe9, 0x1b, 0x84, 0xce, 0x6c, 0x15, 0xeb, + 0xf8, 0x06, 0xbb, 0xa8, 0x12, 0xf7, 0xea, 0x1a, 0x64, 0x7e, 0x36, 0xcf, 0x4b, 0xe1, 0x19, 0xd8, + 0x38, 0xc1, 0xc1, 0xb4, 0xbe, 0xbc, 0xb5, 0x67, 0xfe, 0xf5, 0x38, 0x2a, 0x23, 0xba, 0x38, 0x20, + 0xb7, 0x76, 0x12, 0x93, 0xf6, 0xc0, 0x1e, 0xd8, 0xec, 0x9a, 0x04, 0x3b, 0x9f, 0xb4, 0xe1, 0x5c, + 0x2f, 0x1b, 0x94, 0xf5, 0xb3, 0xef, 0x09, 0xc8, 0x60, 0xeb, 0x7c, 0x5e, 0xee, 0x75, 0xc6, 0xad, + 0x25, 0x71, 0x30, 0xd5, 0x1a, 0xc7, 0x4a, 0x7b, 0xe0, 0x29, 0x80, 0x51, 0x20, 0x93, 0x5f, 0xe8, + 0xc3, 0xf8, 0x11, 0x47, 0x49, 0x4e, 0x50, 0xee, 0x31, 0xc0, 0x73, 0xb0, 0xd4, 0x27, 0x4e, 0xa3, + 0x81, 0x36, 0xe9, 0xe8, 0x66, 0xd3, 0x34, 0x3d, 0x19, 0xdb, 0x5b, 0xd1, 0x34, 0xad, 0xb8, 0x81, + 0x3e, 0x81, 0x0d, 0x01, 0x8c, 0x24, 0xa2, 0x47, 0x99, 0x48, 0x22, 0x4f, 0x12, 0x19, 0x49, 0x42, + 0x8f, 0x33, 0x91, 0x24, 0x9e, 0x24, 0x31, 0x92, 0x8c, 0xb6, 0x32, 0x91, 0x64, 0x9e, 0x24, 0x33, + 0x92, 0x82, 0x50, 0x26, 0x92, 0xc2, 0x93, 0x14, 0x46, 0x6a, 0xa2, 0xed, 0x4c, 0xa4, 0x26, 0x4f, + 0x6a, 0x32, 0xd2, 0x21, 0xda, 0xc9, 0x44, 0x3a, 0xe4, 0x49, 0x87, 0x8c, 0xf4, 0x12, 0xfd, 0x94, + 0x89, 0xf4, 0x92, 0x27, 0xbd, 0x64, 0xa4, 0x23, 0xf4, 0x73, 0x26, 0xd2, 0x11, 0x4f, 0x3a, 0x62, + 0xa4, 0x63, 0xf4, 0x24, 0x13, 0xe9, 0x98, 0x27, 0x1d, 0x47, 0x24, 0xb1, 0x81, 0xaa, 0x59, 0x48, + 0x22, 0x9f, 0x71, 0x91, 0x65, 0x5c, 0x14, 0x91, 0x90, 0x89, 0xc4, 0x67, 0x5c, 0x64, 0x19, 0x17, + 0x25, 0xb4, 0x9b, 0x89, 0xc4, 0x67, 0x5c, 0x64, 0x19, 0x17, 0x65, 0xf4, 0x8b, 0x4c, 0x24, 0x3e, + 0xe3, 0x22, 0xcb, 0xb8, 0xa8, 0xa0, 0x5a, 0x26, 0x12, 0x9f, 0x71, 0x91, 0x65, 0x5c, 0x6c, 0xa2, + 0x5f, 0x66, 0x22, 0xf1, 0x19, 0x17, 0x59, 0xc6, 0xc5, 0x43, 0xf4, 0xab, 0x4c, 0x24, 0x3e, 0xe3, + 0xe2, 0x21, 0x6c, 0x80, 0x95, 0xae, 0x49, 0x0e, 0x95, 0x46, 0x03, 0xfd, 0x9a, 0x4e, 0x49, 0xfa, + 0x86, 0x64, 0x04, 0xa5, 0xc1, 0xdc, 0x3c, 0x63, 0xb2, 0xd8, 0x21, 0xa2, 0xa7, 0x29, 0x87, 0x98, + 0x76, 0x88, 0xb1, 0x43, 0x42, 0xbf, 0x49, 0x39, 0xa4, 0xb4, 0x43, 0x8a, 0x1d, 0x32, 0xaa, 0xa7, + 0x1c, 0x72, 0xda, 0x21, 0xc7, 0x0e, 0x05, 0x3d, 0x4b, 0x39, 0x94, 0xb4, 0x43, 0x09, 0x8e, 0x4c, + 0x2d, 0xdb, 0x66, 0xef, 0x7d, 0xe8, 0xb7, 0xd4, 0x45, 0x8f, 0x4c, 0x9a, 0x6d, 0x0f, 0xee, 0x79, + 0x47, 0x4c, 0xca, 0xe1, 0x33, 0xb0, 0xd4, 0x35, 0x49, 0xa3, 0x81, 0x9e, 0xc7, 0xef, 0x7b, 0x46, + 0x50, 0x48, 0x3e, 0x62, 0xaa, 0x60, 0x52, 0x11, 0xed, 0xcd, 0x4b, 0x45, 0x5e, 0x2a, 0x32, 0xa9, + 0x84, 0x5e, 0xcc, 0x4b, 0x25, 0x5e, 0x2a, 0x31, 0xa9, 0x8c, 0xf6, 0xe7, 0xa5, 0x32, 0x2f, 0x95, + 0x99, 0x54, 0x41, 0x07, 0xf3, 0x52, 0x85, 0x97, 0x2a, 0x4c, 0xda, 0x44, 0x8d, 0x79, 0x69, 0x93, + 0x97, 0x36, 0xe1, 0x0b, 0xb0, 0xdc, 0x35, 0x71, 0xf0, 0x08, 0xc4, 0xf8, 0xdf, 0xab, 0x61, 0x62, + 0x32, 0x9f, 0x9b, 0x48, 0x34, 0x93, 0x8b, 0x48, 0xe2, 0xe5, 0x62, 0x4a, 0x2e, 0xce, 0xe4, 0x12, + 0x92, 0x79, 0xb9, 0x94, 0x92, 0x4b, 0x33, 0xb9, 0x8c, 0x14, 0x5e, 0x2e, 0xa7, 0xe4, 0xf2, 0x4c, + 0xae, 0xa0, 0x26, 0x2f, 0x57, 0x52, 0x72, 0xa5, 0x66, 0x82, 0xe2, 0xec, 0xc8, 0x17, 0x9f, 0x73, + 0x72, 0xf7, 0x9f, 0x73, 0xe0, 0xef, 0x40, 0x81, 0x6d, 0x3f, 0x7a, 0x50, 0x29, 0x49, 0x30, 0x3e, + 0x8d, 0xcd, 0x36, 0xe6, 0x7a, 0xb4, 0x31, 0x0b, 0xc3, 0xa8, 0xa2, 0xce, 0x5c, 0xb5, 0x3d, 0x7a, + 0xbf, 0xf0, 0x30, 0xf8, 0x5f, 0xef, 0x57, 0x93, 0x40, 0x81, 0xbd, 0xc7, 0xc3, 0xcd, 0x60, 0x30, + 0x68, 0x0e, 0xa1, 0xe2, 0xb2, 0x1a, 0x5e, 0xc0, 0x75, 0xb0, 0x78, 0x6a, 0x8e, 0xe8, 0xc1, 0xac, + 0xac, 0x06, 0x7f, 0xd6, 0x64, 0x50, 0x9c, 0x1d, 0x46, 0xb2, 0x98, 0x66, 0xa7, 0xab, 0xff, 0xd9, + 0x74, 0x0c, 0x2a, 0xc1, 0x58, 0x7a, 0x6f, 0x98, 0x44, 0x96, 0xfe, 0x6f, 0xeb, 0xa1, 0x72, 0x8f, + 0x35, 0x7f, 0x8f, 0x35, 0x1f, 0x5a, 0xff, 0x96, 0x03, 0x1b, 0xad, 0x5e, 0xb7, 0x8f, 0x9d, 0x6b, + 0xec, 0xa8, 0xd8, 0xb5, 0x2d, 0xd3, 0xc5, 0xf0, 0x29, 0xc8, 0xd3, 0x9f, 0x14, 0xc2, 0x27, 0x49, + 0x5f, 0x9a, 0xf5, 0xa9, 0x31, 0x4a, 0x7c, 0xe3, 0xf9, 0xe8, 0x77, 0x85, 0x95, 0x77, 0xd8, 0x75, + 0x35, 0x9d, 0x1d, 0x66, 0x69, 0x3e, 0x26, 0x61, 0x29, 0x39, 0x4b, 0x22, 0x55, 0xb0, 0x6d, 0x4e, + 0x1d, 0xc7, 0x72, 0xa2, 0xdf, 0x3c, 0xe8, 0xb6, 0xc1, 0x41, 0x21, 0xb9, 0x6d, 0xa8, 0xa2, 0xfd, + 0xa7, 0x2f, 0xdf, 0xaa, 0x0b, 0x5f, 0xbf, 0x55, 0x17, 0x7e, 0x7c, 0xab, 0xe6, 0xfe, 0x7c, 0x57, + 0xcd, 0xfd, 0xfd, 0xae, 0x9a, 0xfb, 0x7c, 0x57, 0xcd, 0x7d, 0xb9, 0xab, 0xe6, 0xfe, 0x75, 0x57, + 0xcd, 0xfd, 0xfb, 0xae, 0xba, 0xf0, 0xe3, 0xae, 0x9a, 0xfb, 0xeb, 0xf7, 0xea, 0xc2, 0x97, 0xef, + 0xd5, 0x85, 0xaf, 0xdf, 0xab, 0x0b, 0x7f, 0xac, 0xeb, 0x06, 0xb9, 0x9a, 0x7e, 0xdc, 0x1f, 0x5a, + 0x13, 0xfa, 0x6b, 0xd0, 0x81, 0xee, 0xd8, 0xc3, 0x17, 0xf8, 0x46, 0x9b, 0xd8, 0x63, 0x7c, 0x40, + 0x87, 0xd5, 0x2b, 0x9a, 0xb1, 0x8f, 0xcb, 0xf4, 0x42, 0xfe, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xe0, 0x22, 0xae, 0x9e, 0x55, 0x12, 0x00, 0x00, } func (this *TagBatchPartSender) Equal(that interface{}) bool { diff --git a/tagging.proto b/tagging.proto index d862ea3..d1d90a9 100644 --- a/tagging.proto +++ b/tagging.proto @@ -2,7 +2,9 @@ syntax = "proto3"; package hippo; -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; +option go_package = "github.com/gogo/grpc-example/proto;hippo"; + +import "gogoproto/gogo.proto"; // TagBatchPartSender holds metadata about the sender message TagBatchPartSender { From 97527b42fc6bafb068227a18d9715c60343bed01 Mon Sep 17 00:00:00 2001 From: Karol Lassak Date: Fri, 25 Mar 2022 20:58:39 +0100 Subject: [PATCH 2/3] Full pipeline --- .github/workflows/build.yml | 53 +++++++++++++++++++++++++++++ Earthfile | 68 +++++++++++++------------------------ Makefile | 52 ---------------------------- buf.gen.yaml | 16 +-------- buf.lock | 7 ++++ buf.yaml | 9 +++++ 6 files changed, 94 insertions(+), 111 deletions(-) create mode 100644 .github/workflows/build.yml delete mode 100644 Makefile create mode 100644 buf.lock create mode 100644 buf.yaml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..6cc4b2c --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,53 @@ +name: CI + +on: + push: + branches: [ main ] + pull_request: + branches: [ '**' ] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + go: [ '1.16', '1.17', '1.18' ] + + steps: + - uses: actions/checkout@v2 + - name: Run Earthly + uses: kentik/github-workflows/earthly@v1 + with: + earthly_target: +all + + lint: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Run linters + uses: golangci/golangci-lint-action@v2 + with: + version: v1.45.0 + only-new-issues: true + + coverage: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Install Go + uses: actions/setup-go@v2 + with: + go-version: 1.17 + - name: Calc coverage + run: go test -covermode=count -coverprofile=coverage.out + - name: Convert coverage.out to coverage.lcov + uses: jandelgado/gcov2lcov-action@v1.0.6 + - name: Coveralls + uses: coverallsapp/github-action@v1.1.2 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + path-to-lcov: coverage.lcov diff --git a/Earthfile b/Earthfile index f03739b..de6168c 100644 --- a/Earthfile +++ b/Earthfile @@ -4,6 +4,11 @@ FROM golang:1.17 WORKDIR /build +all: + BUILD +build + BUILD +test + BUILD +gen-proto + GO_RUN: COMMAND ARG --required cmd @@ -14,68 +19,43 @@ deps: COPY go.mod go.sum . DO +GO_RUN --cmd="go mod download all" +build: + FROM +deps + COPY *.go . + DO +GO_RUN --cmd="go build ./..." + test: FROM +deps COPY *.go . DO +GO_RUN --cmd="go test -v ./..." -codegen: - FROM +proto-deps - COPY tagging.proto . - RUN protoc \ - --gogoslick_out=.\ - Mgoogle/protobuf/any.proto=github.com/gogo/protobuf/types,\ - Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,\ - Mgoogle/protobuf/struct.proto=github.com/gogo/protobuf/types,\ - Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,\ - Mgoogle/protobuf/wrappers.proto=github.com/gogo/protobuf/types:. \ - *.proto - proto-deps: - FROM golang:buster ARG TARGETOS ARG TARGETARCH + IF [ "${TARGETARCH}" = "arm64" ] + ARG PROTOARCH=aarch_64 + ELSE + ARG PROTOARCH=${TARGETARCH} + END RUN apt-get update && apt-get install -y wget unzip - RUN echo ${TARGETARCH} - RUN wget -O protoc.zip https://github.com/protocolbuffers/protobuf/releases/download/v3.13.0/protoc-3.13.0-${TARGETOS}-${TARGETARCH}.zip - RUN unzip protoc.zip -d /usr/local/ - #RUN go install google.golang.org/protobuf/cmd/protoc-gen-go \ - # google.golang.org/grpc/cmd/protoc-gen-go-grpc \ - # github.com/gogo/protobuf/protoc-gen-gogoslick \ - # github.com/gogo/protobuf/proto \ - # github.com/gogo/protobuf/jsonpb + RUN wget -O protoc.zip https://github.com/protocolbuffers/protobuf/releases/download/v3.13.0/protoc-3.13.0-${TARGETOS}-${PROTOARCH}.zip + RUN unzip protoc.zip -d /usr/local/ -proto-deps-buf: - FROM golang:buster - ARG TARGETOS - ARG TARGETARCH RUN VERSION="1.1.0" && \ curl -sSL "https://github.com/bufbuild/buf/releases/download/v${VERSION}/buf-$(uname -s)-$(uname -m)" -o "/usr/local/bin/buf" RUN chmod +x "/usr/local/bin/buf" - RUN pwd - WORKDIR /work - COPY go.mod go.sum . + RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@latest RUN go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - #RUN go install github.com/gogo/protobuf/protoc-gen-gogoslick@latest - #RUN go install github.com/gogo/protobuf/protoc-gen-gogo@latest - #RUN go install github.com/gogo/protobuf/protoc-gen-gofast@latest - #RUN go get github.com/gogo/protobuf/proto@latest - #RUN go get github.com/gogo/protobuf/jsonpb@latest - RUN go get github.com/gogo/protobuf/gogoproto - RUN ls -alh . + RUN go install github.com/gogo/protobuf/protoc-gen-gogoslick@latest + COPY tagging.proto buf.* . -gen-buf: - #FROM bufbuild/buf - FROM +proto-deps-buf - WORKDIR /go - RUN ls -alhR . - #ARG PATH="$PATH:$(go env GOPATH)/bin:/work" - #RUN env - COPY tagging.proto buf.gen.yaml . +gen-proto: + FROM +proto-deps RUN buf generate + SAVE ARTIFACT tagging.pb.go AS LOCAL tagging.pb.go lint-proto: - FROM bufbuild/buf + FROM +proto-deps RUN buf lint \ No newline at end of file diff --git a/Makefile b/Makefile deleted file mode 100644 index 42d5eb8..0000000 --- a/Makefile +++ /dev/null @@ -1,52 +0,0 @@ -PROTOC := protoc - -.PHONY: all -all: codegen - -$(GOPATH)/src/github.com/gogo/protobuf/protoc-gen-gogoslick: - go get github.com/gogo/protobuf/protoc-gen-gogoslick - -$(GOPATH)/bin/protoc-gen-gofast: - go get github.com/gogo/protobuf/protoc-gen-gofast - go install github.com/gogo/protobuf/protoc-gen-gofast - -$(GOPATH)/src/github.com/gogo/protobuf/proto: - go get github.com/gogo/protobuf/proto - -$(GOPATH)/src/github.com/gogo/protobuf/jsonpb: - go get github.com/gogo/protobuf/jsonpb - -$(GOPATH)/src/github.com/gogo/protobuf/protoc-gen-gogo: - go get github.com/gogo/protobuf/protoc-gen-gogo - -$(GOPATH)/src/github.com/gogo/protobuf/gogoproto: - go get github.com/gogo/protobuf/gogoproto - -.PHONY: codegen -codegen: \ - $(GOPATH)/src/github.com/gogo/protobuf/protoc-gen-gogoslick \ - $(GOPATH)/bin/protoc-gen-gofast \ - $(GOPATH)/src/github.com/gogo/protobuf/proto \ - $(GOPATH)/src/github.com/gogo/protobuf/jsonpb \ - $(GOPATH)/src/github.com/gogo/protobuf/protoc-gen-gogo \ - $(GOPATH)/src/github.com/gogo/protobuf/gogoproto - - $(PROTOC) -I=. \ - -I=$(GOPATH)/src \ - -I=$(GOPATH)/src/github.com/gogo/protobuf/protobuf \ - --gogoslick_out=.\ - Mgoogle/protobuf/any.proto=github.com/gogo/protobuf/types,\ - Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,\ - Mgoogle/protobuf/struct.proto=github.com/gogo/protobuf/types,\ - Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,\ - Mgoogle/protobuf/wrappers.proto=github.com/gogo/protobuf/types:. \ - *.proto - -.PHONY: test -test: - go test -v ./... - -.PHONY: update -update: - go get -u all - go mod tidy diff --git a/buf.gen.yaml b/buf.gen.yaml index 8f196f5..6449c67 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -8,18 +8,4 @@ plugins: - Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types - Mgoogle/protobuf/struct.proto=github.com/gogo/protobuf/types - Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types - - Mgoogle/protobuf/wrappers.proto=github.com/gogo/protobuf/types:. -# - name: go-grpc -# out: . -# opt: paths=source_relative -# - name: grpc-gateway -# out: . -# opt: -# - logtostderr=true -# - paths=source_relative -# - generate_unbound_methods=true -# - name: openapiv2 -# out: . -# opt: -# - logtostderr=true -# - generate_unbound_methods=true \ No newline at end of file + - Mgoogle/protobuf/wrappers.proto=github.com/gogo/protobuf/types:. \ No newline at end of file diff --git a/buf.lock b/buf.lock new file mode 100644 index 0000000..8c415e1 --- /dev/null +++ b/buf.lock @@ -0,0 +1,7 @@ +# Generated by buf. DO NOT EDIT. +version: v1 +deps: + - remote: buf.build + owner: gogo + repository: protobuf + commit: 4df00b267f944190a229ce3695781e99 diff --git a/buf.yaml b/buf.yaml new file mode 100644 index 0000000..5037ce4 --- /dev/null +++ b/buf.yaml @@ -0,0 +1,9 @@ +version: v1 +deps: + - buf.build/gogo/protobuf +breaking: + use: + - FILE +lint: + use: + - DEFAULT From 697dad27b1828ac2999a8611fbd857707a8f6e8d Mon Sep 17 00:00:00 2001 From: Karol Lassak Date: Fri, 25 Mar 2022 21:46:33 +0100 Subject: [PATCH 3/3] Fix pipeline --- .github/workflows/build.yml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6cc4b2c..5b10a29 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,17 +10,12 @@ jobs: build: runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - go: [ '1.16', '1.17', '1.18' ] - steps: - uses: actions/checkout@v2 - name: Run Earthly - uses: kentik/github-workflows/earthly@v1 - with: - earthly_target: +all + uses: kentik/github-workflows/earthly@v1 + with: + earthly_target: +all lint: runs-on: ubuntu-latest