From fb30573934c4d0b6916d1b99e5c1b2b9cf50dae3 Mon Sep 17 00:00:00 2001 From: Arnaud Delcasse Date: Mon, 27 Mar 2023 20:57:28 +0200 Subject: [PATCH] initial commit --- README.md | 7 + encoding/polylines/decoding.go | 63 + encoding/polylines/encoding.go | 17 + go.mod | 10 + go.sum | 79 + proto/valhalla/api.pb.go | 211 ++ proto/valhalla/api.proto | 28 + proto/valhalla/common.pb.go | 3040 +++++++++++++++++ proto/valhalla/common.proto | 281 ++ proto/valhalla/directions.pb.go | 1534 +++++++++ proto/valhalla/directions.proto | 161 + proto/valhalla/incidents.pb.go | 740 +++++ proto/valhalla/incidents.proto | 77 + proto/valhalla/info.pb.go | 407 +++ proto/valhalla/info.proto | 36 + proto/valhalla/options.pb.go | 4976 ++++++++++++++++++++++++++++ proto/valhalla/options.proto | 485 +++ proto/valhalla/sign.pb.go | 357 ++ proto/valhalla/sign.proto | 24 + proto/valhalla/status.pb.go | 368 ++ proto/valhalla/status.proto | 29 + proto/valhalla/transit.pb.go | 998 ++++++ proto/valhalla/transit.proto | 84 + proto/valhalla/transit_fetch.pb.go | 937 ++++++ proto/valhalla/transit_fetch.proto | 78 + proto/valhalla/trip.pb.go | 2855 ++++++++++++++++ proto/valhalla/trip.proto | 292 ++ routing.go | 27 + valhalla.go | 102 + 29 files changed, 18303 insertions(+) create mode 100644 README.md create mode 100644 encoding/polylines/decoding.go create mode 100644 encoding/polylines/encoding.go create mode 100644 go.mod create mode 100644 go.sum create mode 100644 proto/valhalla/api.pb.go create mode 100644 proto/valhalla/api.proto create mode 100644 proto/valhalla/common.pb.go create mode 100644 proto/valhalla/common.proto create mode 100644 proto/valhalla/directions.pb.go create mode 100644 proto/valhalla/directions.proto create mode 100644 proto/valhalla/incidents.pb.go create mode 100644 proto/valhalla/incidents.proto create mode 100644 proto/valhalla/info.pb.go create mode 100644 proto/valhalla/info.proto create mode 100644 proto/valhalla/options.pb.go create mode 100644 proto/valhalla/options.proto create mode 100644 proto/valhalla/sign.pb.go create mode 100644 proto/valhalla/sign.proto create mode 100644 proto/valhalla/status.pb.go create mode 100644 proto/valhalla/status.proto create mode 100644 proto/valhalla/transit.pb.go create mode 100644 proto/valhalla/transit.proto create mode 100644 proto/valhalla/transit_fetch.pb.go create mode 100644 proto/valhalla/transit_fetch.proto create mode 100644 proto/valhalla/trip.pb.go create mode 100644 proto/valhalla/trip.proto create mode 100644 routing.go create mode 100644 valhalla.go diff --git a/README.md b/README.md new file mode 100644 index 0000000..74ba69f --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# COOPGO Routing Service + +COOPGO Routing Service a routing library implementing other routing providers APIs, such as Valhalla. It is part of the COOPGO Technical Platform. + +## Licence + +COOPGO Routing is release under the terms of the AGPL version 3 licence. \ No newline at end of file diff --git a/encoding/polylines/decoding.go b/encoding/polylines/decoding.go new file mode 100644 index 0000000..6e092cd --- /dev/null +++ b/encoding/polylines/decoding.go @@ -0,0 +1,63 @@ +package polylines + +import ( + "math" + + "github.com/paulmach/orb" +) + +func Decode(encoded *string, precisionOptional ...int) orb.LineString { + // default to 6 digits of precision + precision := 6 + if len(precisionOptional) > 0 { + precision = precisionOptional[0] + } + factor := math.Pow10(precision) + + // Coordinates have variable length when encoded, so just keep + // track of whether we've hit the end of the string. In each + // loop iteration, a single coordinate is decoded. + lat, lng := 0, 0 + var coordinates orb.LineString + index := 0 + for index < len(*encoded) { + // Consume varint bits for lat until we run out + var byte int = 0x20 + shift, result := 0, 0 + for byte >= 0x20 { + byte = int((*encoded)[index]) - 63 + result |= (byte & 0x1f) << shift + shift += 5 + index++ + } + + // check if we need to go negative or not + if (result & 1) > 0 { + lat += ^(result >> 1) + } else { + lat += result >> 1 + } + + // Consume varint bits for lng until we run out + byte = 0x20 + shift, result = 0, 0 + for byte >= 0x20 { + byte = int((*encoded)[index]) - 63 + result |= (byte & 0x1f) << shift + shift += 5 + index++ + } + + // check if we need to go negative or not + if (result & 1) > 0 { + lng += ^(result >> 1) + } else { + lng += result >> 1 + } + + // scale the int back to floating point and storeLineString it + coordinates = append(coordinates, orb.Point{float64(lat) / factor, float64(lng) / factor}) + } + + return coordinates +} diff --git a/encoding/polylines/encoding.go b/encoding/polylines/encoding.go new file mode 100644 index 0000000..b093ca7 --- /dev/null +++ b/encoding/polylines/encoding.go @@ -0,0 +1,17 @@ +package polylines + +import ( + "github.com/paulmach/orb" + "github.com/twpayne/go-polyline" +) + +func Encode(line orb.LineString) string { + + preparedLine := [][]float64{} + + for _, point := range line { + preparedLine = append(preparedLine, []float64{point.Lon(), point.Lat()}) + } + + return string(polyline.EncodeCoords(preparedLine)) +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..cf744cd --- /dev/null +++ b/go.mod @@ -0,0 +1,10 @@ +module git.coopgo.io/coopgo-platform/routing-service + +go 1.18 + +require ( + github.com/paulmach/orb v0.9.0 // indirect + github.com/twpayne/go-polyline v1.1.1 // indirect + go.mongodb.org/mongo-driver v1.11.1 // indirect + google.golang.org/protobuf v1.30.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..748a318 --- /dev/null +++ b/go.sum @@ -0,0 +1,79 @@ +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dvyukov/go-fuzz v0.0.0-20200318091601-be3528f3a813/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +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/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= +github.com/paulmach/orb v0.9.0 h1:MwA1DqOKtvCgm7u9RZ/pnYejTeDJPnr0+0oFajBbJqk= +github.com/paulmach/orb v0.9.0/go.mod h1:SudmOk85SXtmXAB3sLGyJ6tZy/8pdfrV0o6ef98Xc30= +github.com/paulmach/protoscan v0.2.1/go.mod h1:SpcSwydNLrxUGSDvXvO0P7g7AuhJ7lcKfDlhJCDw2gY= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.3.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/twpayne/go-polyline v1.1.1 h1:/tSF1BR7rN4HWj4XKqvRUNrCiYVMCvywxTFVofvDV0w= +github.com/twpayne/go-polyline v1.1.1/go.mod h1:ybd9IWWivW/rlXPXuuckeKUyF3yrIim+iqA7kSl4NFY= +github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= +github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= +github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= +github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.mongodb.org/mongo-driver v1.11.1 h1:QP0znIRTuL0jf1oBQoAoM0C6ZJfBK4kx0Uumtv1A7w8= +go.mongodb.org/mongo-driver v1.11.1/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/proto/valhalla/api.pb.go b/proto/valhalla/api.pb.go new file mode 100644 index 0000000..d6319f6 --- /dev/null +++ b/proto/valhalla/api.pb.go @@ -0,0 +1,211 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v3.19.4 +// source: api.proto + +package valhalla + +import ( + 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) +) + +type Api struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // this is the request to the api + Options *Options `protobuf:"bytes,1,opt,name=options,proto3" json:"options,omitempty"` + // these are different responses based on the type of request you make + Trip *Trip `protobuf:"bytes,2,opt,name=trip,proto3" json:"trip,omitempty"` // trace_attributes + Directions *Directions `protobuf:"bytes,3,opt,name=directions,proto3" json:"directions,omitempty"` // route, optimized_route, trace_route, centroid + Status *Status `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"` // status + // here we store a bit of info about what happened during request processing (stats/errors/warnings) + Info *Info `protobuf:"bytes,20,opt,name=info,proto3" json:"info,omitempty"` +} + +func (x *Api) Reset() { + *x = Api{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Api) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Api) ProtoMessage() {} + +func (x *Api) ProtoReflect() protoreflect.Message { + mi := &file_api_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 Api.ProtoReflect.Descriptor instead. +func (*Api) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{0} +} + +func (x *Api) GetOptions() *Options { + if x != nil { + return x.Options + } + return nil +} + +func (x *Api) GetTrip() *Trip { + if x != nil { + return x.Trip + } + return nil +} + +func (x *Api) GetDirections() *Directions { + if x != nil { + return x.Directions + } + return nil +} + +func (x *Api) GetStatus() *Status { + if x != nil { + return x.Status + } + return nil +} + +func (x *Api) GetInfo() *Info { + if x != nil { + return x.Info + } + return nil +} + +var File_api_proto protoreflect.FileDescriptor + +var file_api_proto_rawDesc = []byte{ + 0x0a, 0x09, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x76, 0x61, 0x6c, + 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x1a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x74, 0x72, 0x69, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x0a, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0c, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xda, 0x01, 0x0a, + 0x03, 0x41, 0x70, 0x69, 0x12, 0x2b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, + 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x22, 0x0a, 0x04, 0x74, 0x72, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x52, + 0x04, 0x74, 0x72, 0x69, 0x70, 0x12, 0x34, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, 0x68, + 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, + 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x40, 0x48, 0x03, 0x5a, 0x3c, 0x67, + 0x69, 0x74, 0x2e, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6f, + 0x70, 0x67, 0x6f, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x72, 0x6f, 0x75, + 0x74, 0x69, 0x6e, 0x67, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2f, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x50, 0x00, 0x50, 0x01, 0x50, + 0x02, 0x50, 0x03, 0x50, 0x04, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_api_proto_rawDescOnce sync.Once + file_api_proto_rawDescData = file_api_proto_rawDesc +) + +func file_api_proto_rawDescGZIP() []byte { + file_api_proto_rawDescOnce.Do(func() { + file_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_proto_rawDescData) + }) + return file_api_proto_rawDescData +} + +var file_api_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_api_proto_goTypes = []interface{}{ + (*Api)(nil), // 0: valhalla.Api + (*Options)(nil), // 1: valhalla.Options + (*Trip)(nil), // 2: valhalla.Trip + (*Directions)(nil), // 3: valhalla.Directions + (*Status)(nil), // 4: valhalla.Status + (*Info)(nil), // 5: valhalla.Info +} +var file_api_proto_depIdxs = []int32{ + 1, // 0: valhalla.Api.options:type_name -> valhalla.Options + 2, // 1: valhalla.Api.trip:type_name -> valhalla.Trip + 3, // 2: valhalla.Api.directions:type_name -> valhalla.Directions + 4, // 3: valhalla.Api.status:type_name -> valhalla.Status + 5, // 4: valhalla.Api.info:type_name -> valhalla.Info + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_api_proto_init() } +func file_api_proto_init() { + if File_api_proto != nil { + return + } + file_options_proto_init() + file_trip_proto_init() + file_directions_proto_init() + file_info_proto_init() + file_status_proto_init() + if !protoimpl.UnsafeEnabled { + file_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Api); 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_api_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_api_proto_goTypes, + DependencyIndexes: file_api_proto_depIdxs, + MessageInfos: file_api_proto_msgTypes, + }.Build() + File_api_proto = out.File + file_api_proto_rawDesc = nil + file_api_proto_goTypes = nil + file_api_proto_depIdxs = nil +} diff --git a/proto/valhalla/api.proto b/proto/valhalla/api.proto new file mode 100644 index 0000000..c67034b --- /dev/null +++ b/proto/valhalla/api.proto @@ -0,0 +1,28 @@ +syntax = "proto3"; +option optimize_for = LITE_RUNTIME; +package valhalla; +option go_package = "git.coopgo.io/coopgo-platform/routing-service/proto/valhalla"; + +import public "options.proto"; // the request, filled out by loki +import public "trip.proto"; // the paths, filled out by thor +import public "directions.proto"; // the directions, filled out by odin +import public "info.proto"; // statistics about the request, filled out by loki/thor/odin +import public "status.proto"; // info for status endpoint + +message Api { + // this is the request to the api + Options options = 1; + + // these are different responses based on the type of request you make + Trip trip = 2; // trace_attributes + Directions directions = 3; // route, optimized_route, trace_route, centroid + Status status = 4; // status + //TODO: isochrone + //TODO: matrix + //TODO: locate + //TODO: height + //TODO: expansion + + // here we store a bit of info about what happened during request processing (stats/errors/warnings) + Info info = 20; +} \ No newline at end of file diff --git a/proto/valhalla/common.pb.go b/proto/valhalla/common.pb.go new file mode 100644 index 0000000..89c40c4 --- /dev/null +++ b/proto/valhalla/common.pb.go @@ -0,0 +1,3040 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v3.19.4 +// source: common.proto + +package valhalla + +import ( + 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) +) + +type RoadClass int32 + +const ( + RoadClass_kMotorway RoadClass = 0 + RoadClass_kTrunk RoadClass = 1 + RoadClass_kPrimary RoadClass = 2 + RoadClass_kSecondary RoadClass = 3 + RoadClass_kTertiary RoadClass = 4 + RoadClass_kUnclassified RoadClass = 5 + RoadClass_kResidential RoadClass = 6 + RoadClass_kServiceOther RoadClass = 7 +) + +// Enum value maps for RoadClass. +var ( + RoadClass_name = map[int32]string{ + 0: "kMotorway", + 1: "kTrunk", + 2: "kPrimary", + 3: "kSecondary", + 4: "kTertiary", + 5: "kUnclassified", + 6: "kResidential", + 7: "kServiceOther", + } + RoadClass_value = map[string]int32{ + "kMotorway": 0, + "kTrunk": 1, + "kPrimary": 2, + "kSecondary": 3, + "kTertiary": 4, + "kUnclassified": 5, + "kResidential": 6, + "kServiceOther": 7, + } +) + +func (x RoadClass) Enum() *RoadClass { + p := new(RoadClass) + *p = x + return p +} + +func (x RoadClass) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RoadClass) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[0].Descriptor() +} + +func (RoadClass) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[0] +} + +func (x RoadClass) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RoadClass.Descriptor instead. +func (RoadClass) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{0} +} + +type TravelMode int32 + +const ( + TravelMode_kDrive TravelMode = 0 + TravelMode_kPedestrian TravelMode = 1 + TravelMode_kBicycle TravelMode = 2 + TravelMode_kTransit TravelMode = 3 +) + +// Enum value maps for TravelMode. +var ( + TravelMode_name = map[int32]string{ + 0: "kDrive", + 1: "kPedestrian", + 2: "kBicycle", + 3: "kTransit", + } + TravelMode_value = map[string]int32{ + "kDrive": 0, + "kPedestrian": 1, + "kBicycle": 2, + "kTransit": 3, + } +) + +func (x TravelMode) Enum() *TravelMode { + p := new(TravelMode) + *p = x + return p +} + +func (x TravelMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TravelMode) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[1].Descriptor() +} + +func (TravelMode) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[1] +} + +func (x TravelMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TravelMode.Descriptor instead. +func (TravelMode) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{1} +} + +// TODO: review and update as needed +type VehicleType int32 + +const ( + VehicleType_kCar VehicleType = 0 + VehicleType_kMotorcycle VehicleType = 1 + VehicleType_kAutoBus VehicleType = 2 + VehicleType_kTractorTrailer VehicleType = 3 + VehicleType_kMotorScooter VehicleType = 4 +) + +// Enum value maps for VehicleType. +var ( + VehicleType_name = map[int32]string{ + 0: "kCar", + 1: "kMotorcycle", + 2: "kAutoBus", + 3: "kTractorTrailer", + 4: "kMotorScooter", + } + VehicleType_value = map[string]int32{ + "kCar": 0, + "kMotorcycle": 1, + "kAutoBus": 2, + "kTractorTrailer": 3, + "kMotorScooter": 4, + } +) + +func (x VehicleType) Enum() *VehicleType { + p := new(VehicleType) + *p = x + return p +} + +func (x VehicleType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VehicleType) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[2].Descriptor() +} + +func (VehicleType) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[2] +} + +func (x VehicleType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VehicleType.Descriptor instead. +func (VehicleType) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{2} +} + +// TODO: review and update as needed +type PedestrianType int32 + +const ( + PedestrianType_kFoot PedestrianType = 0 + PedestrianType_kWheelchair PedestrianType = 1 + PedestrianType_kSegway PedestrianType = 2 +) + +// Enum value maps for PedestrianType. +var ( + PedestrianType_name = map[int32]string{ + 0: "kFoot", + 1: "kWheelchair", + 2: "kSegway", + } + PedestrianType_value = map[string]int32{ + "kFoot": 0, + "kWheelchair": 1, + "kSegway": 2, + } +) + +func (x PedestrianType) Enum() *PedestrianType { + p := new(PedestrianType) + *p = x + return p +} + +func (x PedestrianType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PedestrianType) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[3].Descriptor() +} + +func (PedestrianType) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[3] +} + +func (x PedestrianType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PedestrianType.Descriptor instead. +func (PedestrianType) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{3} +} + +type BicycleType int32 + +const ( + BicycleType_kRoad BicycleType = 0 + BicycleType_kCross BicycleType = 1 + BicycleType_kHybrid BicycleType = 2 + BicycleType_kMountain BicycleType = 3 +) + +// Enum value maps for BicycleType. +var ( + BicycleType_name = map[int32]string{ + 0: "kRoad", + 1: "kCross", + 2: "kHybrid", + 3: "kMountain", + } + BicycleType_value = map[string]int32{ + "kRoad": 0, + "kCross": 1, + "kHybrid": 2, + "kMountain": 3, + } +) + +func (x BicycleType) Enum() *BicycleType { + p := new(BicycleType) + *p = x + return p +} + +func (x BicycleType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BicycleType) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[4].Descriptor() +} + +func (BicycleType) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[4] +} + +func (x BicycleType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BicycleType.Descriptor instead. +func (BicycleType) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{4} +} + +type TransitType int32 + +const ( + TransitType_kTram TransitType = 0 + TransitType_kMetro TransitType = 1 + TransitType_kRail TransitType = 2 + TransitType_kBus TransitType = 3 + TransitType_kFerry TransitType = 4 + TransitType_kCableCar TransitType = 5 + TransitType_kGondola TransitType = 6 + TransitType_kFunicular TransitType = 7 +) + +// Enum value maps for TransitType. +var ( + TransitType_name = map[int32]string{ + 0: "kTram", + 1: "kMetro", + 2: "kRail", + 3: "kBus", + 4: "kFerry", + 5: "kCableCar", + 6: "kGondola", + 7: "kFunicular", + } + TransitType_value = map[string]int32{ + "kTram": 0, + "kMetro": 1, + "kRail": 2, + "kBus": 3, + "kFerry": 4, + "kCableCar": 5, + "kGondola": 6, + "kFunicular": 7, + } +) + +func (x TransitType) Enum() *TransitType { + p := new(TransitType) + *p = x + return p +} + +func (x TransitType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TransitType) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[5].Descriptor() +} + +func (TransitType) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[5] +} + +func (x TransitType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TransitType.Descriptor instead. +func (TransitType) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{5} +} + +type Location_Type int32 + +const ( + Location_kBreak Location_Type = 0 + Location_kThrough Location_Type = 1 + Location_kVia Location_Type = 2 + Location_kBreakThrough Location_Type = 3 +) + +// Enum value maps for Location_Type. +var ( + Location_Type_name = map[int32]string{ + 0: "kBreak", + 1: "kThrough", + 2: "kVia", + 3: "kBreakThrough", + } + Location_Type_value = map[string]int32{ + "kBreak": 0, + "kThrough": 1, + "kVia": 2, + "kBreakThrough": 3, + } +) + +func (x Location_Type) Enum() *Location_Type { + p := new(Location_Type) + *p = x + return p +} + +func (x Location_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Location_Type) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[6].Descriptor() +} + +func (Location_Type) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[6] +} + +func (x Location_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Location_Type.Descriptor instead. +func (Location_Type) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{5, 0} +} + +type Location_PreferredSide int32 + +const ( + Location_either Location_PreferredSide = 0 + Location_same Location_PreferredSide = 1 + Location_opposite Location_PreferredSide = 2 +) + +// Enum value maps for Location_PreferredSide. +var ( + Location_PreferredSide_name = map[int32]string{ + 0: "either", + 1: "same", + 2: "opposite", + } + Location_PreferredSide_value = map[string]int32{ + "either": 0, + "same": 1, + "opposite": 2, + } +) + +func (x Location_PreferredSide) Enum() *Location_PreferredSide { + p := new(Location_PreferredSide) + *p = x + return p +} + +func (x Location_PreferredSide) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Location_PreferredSide) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[7].Descriptor() +} + +func (Location_PreferredSide) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[7] +} + +func (x Location_PreferredSide) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Location_PreferredSide.Descriptor instead. +func (Location_PreferredSide) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{5, 1} +} + +type Location_SideOfStreet int32 + +const ( + Location_kNone Location_SideOfStreet = 0 + Location_kLeft Location_SideOfStreet = 1 + Location_kRight Location_SideOfStreet = 2 +) + +// Enum value maps for Location_SideOfStreet. +var ( + Location_SideOfStreet_name = map[int32]string{ + 0: "kNone", + 1: "kLeft", + 2: "kRight", + } + Location_SideOfStreet_value = map[string]int32{ + "kNone": 0, + "kLeft": 1, + "kRight": 2, + } +) + +func (x Location_SideOfStreet) Enum() *Location_SideOfStreet { + p := new(Location_SideOfStreet) + *p = x + return p +} + +func (x Location_SideOfStreet) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Location_SideOfStreet) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[8].Descriptor() +} + +func (Location_SideOfStreet) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[8] +} + +func (x Location_SideOfStreet) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Location_SideOfStreet.Descriptor instead. +func (Location_SideOfStreet) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{5, 2} +} + +type TransitPlatformInfo_Type int32 + +const ( + TransitPlatformInfo_kStop TransitPlatformInfo_Type = 0 + TransitPlatformInfo_kStation TransitPlatformInfo_Type = 1 +) + +// Enum value maps for TransitPlatformInfo_Type. +var ( + TransitPlatformInfo_Type_name = map[int32]string{ + 0: "kStop", + 1: "kStation", + } + TransitPlatformInfo_Type_value = map[string]int32{ + "kStop": 0, + "kStation": 1, + } +) + +func (x TransitPlatformInfo_Type) Enum() *TransitPlatformInfo_Type { + p := new(TransitPlatformInfo_Type) + *p = x + return p +} + +func (x TransitPlatformInfo_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TransitPlatformInfo_Type) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[9].Descriptor() +} + +func (TransitPlatformInfo_Type) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[9] +} + +func (x TransitPlatformInfo_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TransitPlatformInfo_Type.Descriptor instead. +func (TransitPlatformInfo_Type) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{9, 0} +} + +type Pronunciation_Alphabet int32 + +const ( + Pronunciation_kIpa Pronunciation_Alphabet = 0 + Pronunciation_kXKatakana Pronunciation_Alphabet = 1 + Pronunciation_kXJeita Pronunciation_Alphabet = 2 + Pronunciation_kNtSampa Pronunciation_Alphabet = 3 +) + +// Enum value maps for Pronunciation_Alphabet. +var ( + Pronunciation_Alphabet_name = map[int32]string{ + 0: "kIpa", + 1: "kXKatakana", + 2: "kXJeita", + 3: "kNtSampa", + } + Pronunciation_Alphabet_value = map[string]int32{ + "kIpa": 0, + "kXKatakana": 1, + "kXJeita": 2, + "kNtSampa": 3, + } +) + +func (x Pronunciation_Alphabet) Enum() *Pronunciation_Alphabet { + p := new(Pronunciation_Alphabet) + *p = x + return p +} + +func (x Pronunciation_Alphabet) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Pronunciation_Alphabet) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[10].Descriptor() +} + +func (Pronunciation_Alphabet) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[10] +} + +func (x Pronunciation_Alphabet) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Pronunciation_Alphabet.Descriptor instead. +func (Pronunciation_Alphabet) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{11, 0} +} + +type TurnLane_State int32 + +const ( + TurnLane_kInvalid TurnLane_State = 0 + TurnLane_kValid TurnLane_State = 1 + TurnLane_kActive TurnLane_State = 2 +) + +// Enum value maps for TurnLane_State. +var ( + TurnLane_State_name = map[int32]string{ + 0: "kInvalid", + 1: "kValid", + 2: "kActive", + } + TurnLane_State_value = map[string]int32{ + "kInvalid": 0, + "kValid": 1, + "kActive": 2, + } +) + +func (x TurnLane_State) Enum() *TurnLane_State { + p := new(TurnLane_State) + *p = x + return p +} + +func (x TurnLane_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TurnLane_State) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[11].Descriptor() +} + +func (TurnLane_State) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[11] +} + +func (x TurnLane_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TurnLane_State.Descriptor instead. +func (TurnLane_State) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{13, 0} +} + +// dont renumber these they match the c++ definitions +type TaggedValue_Type int32 + +const ( + TaggedValue_kNone TaggedValue_Type = 0 + TaggedValue_kLayer TaggedValue_Type = 1 + TaggedValue_kPronunciation TaggedValue_Type = 2 + TaggedValue_kBssInfo TaggedValue_Type = 3 + TaggedValue_kLevel TaggedValue_Type = 4 + TaggedValue_kLevelRef TaggedValue_Type = 5 + TaggedValue_kTunnel TaggedValue_Type = 49 + TaggedValue_kBridge TaggedValue_Type = 50 +) + +// Enum value maps for TaggedValue_Type. +var ( + TaggedValue_Type_name = map[int32]string{ + 0: "kNone", + 1: "kLayer", + 2: "kPronunciation", + 3: "kBssInfo", + 4: "kLevel", + 5: "kLevelRef", + 49: "kTunnel", + 50: "kBridge", + } + TaggedValue_Type_value = map[string]int32{ + "kNone": 0, + "kLayer": 1, + "kPronunciation": 2, + "kBssInfo": 3, + "kLevel": 4, + "kLevelRef": 5, + "kTunnel": 49, + "kBridge": 50, + } +) + +func (x TaggedValue_Type) Enum() *TaggedValue_Type { + p := new(TaggedValue_Type) + *p = x + return p +} + +func (x TaggedValue_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TaggedValue_Type) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[12].Descriptor() +} + +func (TaggedValue_Type) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[12] +} + +func (x TaggedValue_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TaggedValue_Type.Descriptor instead. +func (TaggedValue_Type) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{14, 0} +} + +type LatLng struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to HasLat: + // *LatLng_Lat + HasLat isLatLng_HasLat `protobuf_oneof:"has_lat"` + // Types that are assignable to HasLng: + // *LatLng_Lng + HasLng isLatLng_HasLng `protobuf_oneof:"has_lng"` +} + +func (x *LatLng) Reset() { + *x = LatLng{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LatLng) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LatLng) ProtoMessage() {} + +func (x *LatLng) ProtoReflect() protoreflect.Message { + mi := &file_common_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 LatLng.ProtoReflect.Descriptor instead. +func (*LatLng) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{0} +} + +func (m *LatLng) GetHasLat() isLatLng_HasLat { + if m != nil { + return m.HasLat + } + return nil +} + +func (x *LatLng) GetLat() float64 { + if x, ok := x.GetHasLat().(*LatLng_Lat); ok { + return x.Lat + } + return 0 +} + +func (m *LatLng) GetHasLng() isLatLng_HasLng { + if m != nil { + return m.HasLng + } + return nil +} + +func (x *LatLng) GetLng() float64 { + if x, ok := x.GetHasLng().(*LatLng_Lng); ok { + return x.Lng + } + return 0 +} + +type isLatLng_HasLat interface { + isLatLng_HasLat() +} + +type LatLng_Lat struct { + Lat float64 `protobuf:"fixed64,1,opt,name=lat,proto3,oneof"` +} + +func (*LatLng_Lat) isLatLng_HasLat() {} + +type isLatLng_HasLng interface { + isLatLng_HasLng() +} + +type LatLng_Lng struct { + Lng float64 `protobuf:"fixed64,2,opt,name=lng,proto3,oneof"` +} + +func (*LatLng_Lng) isLatLng_HasLng() {} + +type BoundingBox struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MinLl *LatLng `protobuf:"bytes,1,opt,name=min_ll,json=minLl,proto3" json:"min_ll,omitempty"` + MaxLl *LatLng `protobuf:"bytes,2,opt,name=max_ll,json=maxLl,proto3" json:"max_ll,omitempty"` +} + +func (x *BoundingBox) Reset() { + *x = BoundingBox{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BoundingBox) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BoundingBox) ProtoMessage() {} + +func (x *BoundingBox) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[1] + 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 BoundingBox.ProtoReflect.Descriptor instead. +func (*BoundingBox) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{1} +} + +func (x *BoundingBox) GetMinLl() *LatLng { + if x != nil { + return x.MinLl + } + return nil +} + +func (x *BoundingBox) GetMaxLl() *LatLng { + if x != nil { + return x.MaxLl + } + return nil +} + +type SearchFilter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // frc + // + // Types that are assignable to HasMinRoadClass: + // *SearchFilter_MinRoadClass + HasMinRoadClass isSearchFilter_HasMinRoadClass `protobuf_oneof:"has_min_road_class"` + // Types that are assignable to HasMaxRoadClass: + // *SearchFilter_MaxRoadClass + HasMaxRoadClass isSearchFilter_HasMaxRoadClass `protobuf_oneof:"has_max_road_class"` + // form of way + ExcludeTunnel bool `protobuf:"varint,3,opt,name=exclude_tunnel,json=excludeTunnel,proto3" json:"exclude_tunnel,omitempty"` // whether to exclude tunnels from loki results [default = false] + ExcludeBridge bool `protobuf:"varint,4,opt,name=exclude_bridge,json=excludeBridge,proto3" json:"exclude_bridge,omitempty"` // whether to exclude bridges from loki results [default = false] + ExcludeRamp bool `protobuf:"varint,5,opt,name=exclude_ramp,json=excludeRamp,proto3" json:"exclude_ramp,omitempty"` // whether to exclude roads with ramp use from loki results [default = false] + // Types that are assignable to HasExcludeClosures: + // *SearchFilter_ExcludeClosures + HasExcludeClosures isSearchFilter_HasExcludeClosures `protobuf_oneof:"has_exclude_closures"` +} + +func (x *SearchFilter) Reset() { + *x = SearchFilter{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchFilter) ProtoMessage() {} + +func (x *SearchFilter) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[2] + 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 SearchFilter.ProtoReflect.Descriptor instead. +func (*SearchFilter) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{2} +} + +func (m *SearchFilter) GetHasMinRoadClass() isSearchFilter_HasMinRoadClass { + if m != nil { + return m.HasMinRoadClass + } + return nil +} + +func (x *SearchFilter) GetMinRoadClass() RoadClass { + if x, ok := x.GetHasMinRoadClass().(*SearchFilter_MinRoadClass); ok { + return x.MinRoadClass + } + return RoadClass_kMotorway +} + +func (m *SearchFilter) GetHasMaxRoadClass() isSearchFilter_HasMaxRoadClass { + if m != nil { + return m.HasMaxRoadClass + } + return nil +} + +func (x *SearchFilter) GetMaxRoadClass() RoadClass { + if x, ok := x.GetHasMaxRoadClass().(*SearchFilter_MaxRoadClass); ok { + return x.MaxRoadClass + } + return RoadClass_kMotorway +} + +func (x *SearchFilter) GetExcludeTunnel() bool { + if x != nil { + return x.ExcludeTunnel + } + return false +} + +func (x *SearchFilter) GetExcludeBridge() bool { + if x != nil { + return x.ExcludeBridge + } + return false +} + +func (x *SearchFilter) GetExcludeRamp() bool { + if x != nil { + return x.ExcludeRamp + } + return false +} + +func (m *SearchFilter) GetHasExcludeClosures() isSearchFilter_HasExcludeClosures { + if m != nil { + return m.HasExcludeClosures + } + return nil +} + +func (x *SearchFilter) GetExcludeClosures() bool { + if x, ok := x.GetHasExcludeClosures().(*SearchFilter_ExcludeClosures); ok { + return x.ExcludeClosures + } + return false +} + +type isSearchFilter_HasMinRoadClass interface { + isSearchFilter_HasMinRoadClass() +} + +type SearchFilter_MinRoadClass struct { + MinRoadClass RoadClass `protobuf:"varint,1,opt,name=min_road_class,json=minRoadClass,proto3,enum=valhalla.RoadClass,oneof"` // lowest road class to allow in loki results [default = kServiceOther] +} + +func (*SearchFilter_MinRoadClass) isSearchFilter_HasMinRoadClass() {} + +type isSearchFilter_HasMaxRoadClass interface { + isSearchFilter_HasMaxRoadClass() +} + +type SearchFilter_MaxRoadClass struct { + MaxRoadClass RoadClass `protobuf:"varint,2,opt,name=max_road_class,json=maxRoadClass,proto3,enum=valhalla.RoadClass,oneof"` // highest road class to allow in loki results [default = kMotorway] +} + +func (*SearchFilter_MaxRoadClass) isSearchFilter_HasMaxRoadClass() {} + +type isSearchFilter_HasExcludeClosures interface { + isSearchFilter_HasExcludeClosures() +} + +type SearchFilter_ExcludeClosures struct { + ExcludeClosures bool `protobuf:"varint,6,opt,name=exclude_closures,json=excludeClosures,proto3,oneof"` // whether to exclude roads marked as closed due to traffic [default = true] +} + +func (*SearchFilter_ExcludeClosures) isSearchFilter_HasExcludeClosures() {} + +type PathEdge struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GraphId uint64 `protobuf:"varint,1,opt,name=graph_id,json=graphId,proto3" json:"graph_id,omitempty"` + PercentAlong float64 `protobuf:"fixed64,2,opt,name=percent_along,json=percentAlong,proto3" json:"percent_along,omitempty"` + Ll *LatLng `protobuf:"bytes,3,opt,name=ll,proto3" json:"ll,omitempty"` + SideOfStreet Location_SideOfStreet `protobuf:"varint,4,opt,name=side_of_street,json=sideOfStreet,proto3,enum=valhalla.Location_SideOfStreet" json:"side_of_street,omitempty"` + Distance float64 `protobuf:"fixed64,5,opt,name=distance,proto3" json:"distance,omitempty"` + BeginNode bool `protobuf:"varint,7,opt,name=begin_node,json=beginNode,proto3" json:"begin_node,omitempty"` + EndNode bool `protobuf:"varint,8,opt,name=end_node,json=endNode,proto3" json:"end_node,omitempty"` + Names []string `protobuf:"bytes,10,rep,name=names,proto3" json:"names,omitempty"` + OutboundReach int32 `protobuf:"varint,11,opt,name=outbound_reach,json=outboundReach,proto3" json:"outbound_reach,omitempty"` + InboundReach int32 `protobuf:"varint,12,opt,name=inbound_reach,json=inboundReach,proto3" json:"inbound_reach,omitempty"` + Heading float32 `protobuf:"fixed32,13,opt,name=heading,proto3" json:"heading,omitempty"` +} + +func (x *PathEdge) Reset() { + *x = PathEdge{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PathEdge) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PathEdge) ProtoMessage() {} + +func (x *PathEdge) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[3] + 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 PathEdge.ProtoReflect.Descriptor instead. +func (*PathEdge) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{3} +} + +func (x *PathEdge) GetGraphId() uint64 { + if x != nil { + return x.GraphId + } + return 0 +} + +func (x *PathEdge) GetPercentAlong() float64 { + if x != nil { + return x.PercentAlong + } + return 0 +} + +func (x *PathEdge) GetLl() *LatLng { + if x != nil { + return x.Ll + } + return nil +} + +func (x *PathEdge) GetSideOfStreet() Location_SideOfStreet { + if x != nil { + return x.SideOfStreet + } + return Location_kNone +} + +func (x *PathEdge) GetDistance() float64 { + if x != nil { + return x.Distance + } + return 0 +} + +func (x *PathEdge) GetBeginNode() bool { + if x != nil { + return x.BeginNode + } + return false +} + +func (x *PathEdge) GetEndNode() bool { + if x != nil { + return x.EndNode + } + return false +} + +func (x *PathEdge) GetNames() []string { + if x != nil { + return x.Names + } + return nil +} + +func (x *PathEdge) GetOutboundReach() int32 { + if x != nil { + return x.OutboundReach + } + return 0 +} + +func (x *PathEdge) GetInboundReach() int32 { + if x != nil { + return x.InboundReach + } + return 0 +} + +func (x *PathEdge) GetHeading() float32 { + if x != nil { + return x.Heading + } + return 0 +} + +// Output information about how the location object below is correlated to the graph or to the route etc +type Correlation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Edges []*PathEdge `protobuf:"bytes,1,rep,name=edges,proto3" json:"edges,omitempty"` + FilteredEdges []*PathEdge `protobuf:"bytes,2,rep,name=filtered_edges,json=filteredEdges,proto3" json:"filtered_edges,omitempty"` + OriginalIndex uint32 `protobuf:"varint,3,opt,name=original_index,json=originalIndex,proto3" json:"original_index,omitempty"` + ProjectedLl *LatLng `protobuf:"bytes,4,opt,name=projected_ll,json=projectedLl,proto3" json:"projected_ll,omitempty"` + LegShapeIndex uint32 `protobuf:"varint,5,opt,name=leg_shape_index,json=legShapeIndex,proto3" json:"leg_shape_index,omitempty"` + DistanceFromLegOrigin float64 `protobuf:"fixed64,6,opt,name=distance_from_leg_origin,json=distanceFromLegOrigin,proto3" json:"distance_from_leg_origin,omitempty"` + RouteIndex uint32 `protobuf:"varint,7,opt,name=route_index,json=routeIndex,proto3" json:"route_index,omitempty"` // primarily for matchings index in osrm map matching + WaypointIndex uint32 `protobuf:"varint,8,opt,name=waypoint_index,json=waypointIndex,proto3" json:"waypoint_index,omitempty"` // primarily for matched point index in osrm map matching +} + +func (x *Correlation) Reset() { + *x = Correlation{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Correlation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Correlation) ProtoMessage() {} + +func (x *Correlation) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Correlation.ProtoReflect.Descriptor instead. +func (*Correlation) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{4} +} + +func (x *Correlation) GetEdges() []*PathEdge { + if x != nil { + return x.Edges + } + return nil +} + +func (x *Correlation) GetFilteredEdges() []*PathEdge { + if x != nil { + return x.FilteredEdges + } + return nil +} + +func (x *Correlation) GetOriginalIndex() uint32 { + if x != nil { + return x.OriginalIndex + } + return 0 +} + +func (x *Correlation) GetProjectedLl() *LatLng { + if x != nil { + return x.ProjectedLl + } + return nil +} + +func (x *Correlation) GetLegShapeIndex() uint32 { + if x != nil { + return x.LegShapeIndex + } + return 0 +} + +func (x *Correlation) GetDistanceFromLegOrigin() float64 { + if x != nil { + return x.DistanceFromLegOrigin + } + return 0 +} + +func (x *Correlation) GetRouteIndex() uint32 { + if x != nil { + return x.RouteIndex + } + return 0 +} + +func (x *Correlation) GetWaypointIndex() uint32 { + if x != nil { + return x.WaypointIndex + } + return 0 +} + +type Location struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ll *LatLng `protobuf:"bytes,1,opt,name=ll,proto3" json:"ll,omitempty"` + Type Location_Type `protobuf:"varint,2,opt,name=type,proto3,enum=valhalla.Location_Type" json:"type,omitempty"` // [default = kBreak] + // Types that are assignable to HasHeading: + // *Location_Heading + HasHeading isLocation_HasHeading `protobuf_oneof:"has_heading"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Street string `protobuf:"bytes,5,opt,name=street,proto3" json:"street,omitempty"` + DateTime string `protobuf:"bytes,12,opt,name=date_time,json=dateTime,proto3" json:"date_time,omitempty"` + SideOfStreet Location_SideOfStreet `protobuf:"varint,13,opt,name=side_of_street,json=sideOfStreet,proto3,enum=valhalla.Location_SideOfStreet" json:"side_of_street,omitempty"` + // Types that are assignable to HasHeadingTolerance: + // *Location_HeadingTolerance + HasHeadingTolerance isLocation_HasHeadingTolerance `protobuf_oneof:"has_heading_tolerance"` + // Types that are assignable to HasNodeSnapTolerance: + // *Location_NodeSnapTolerance + HasNodeSnapTolerance isLocation_HasNodeSnapTolerance `protobuf_oneof:"has_node_snap_tolerance"` + // Types that are assignable to HasMinimumReachability: + // *Location_MinimumReachability + HasMinimumReachability isLocation_HasMinimumReachability `protobuf_oneof:"has_minimum_reachability"` + // Types that are assignable to HasRadius: + // *Location_Radius + HasRadius isLocation_HasRadius `protobuf_oneof:"has_radius"` + // Types that are assignable to HasAccuracy: + // *Location_Accuracy + HasAccuracy isLocation_HasAccuracy `protobuf_oneof:"has_accuracy"` + // Types that are assignable to HasTime: + // *Location_Time + HasTime isLocation_HasTime `protobuf_oneof:"has_time"` + SkipRankingCandidates bool `protobuf:"varint,21,opt,name=skip_ranking_candidates,json=skipRankingCandidates,proto3" json:"skip_ranking_candidates,omitempty"` + PreferredSide Location_PreferredSide `protobuf:"varint,22,opt,name=preferred_side,json=preferredSide,proto3,enum=valhalla.Location_PreferredSide" json:"preferred_side,omitempty"` + DisplayLl *LatLng `protobuf:"bytes,23,opt,name=display_ll,json=displayLl,proto3" json:"display_ll,omitempty"` + // Types that are assignable to HasSearchCutoff: + // *Location_SearchCutoff + HasSearchCutoff isLocation_HasSearchCutoff `protobuf_oneof:"has_search_cutoff"` + // Types that are assignable to HasStreetSideTolerance: + // *Location_StreetSideTolerance + HasStreetSideTolerance isLocation_HasStreetSideTolerance `protobuf_oneof:"has_street_side_tolerance"` + SearchFilter *SearchFilter `protobuf:"bytes,26,opt,name=search_filter,json=searchFilter,proto3" json:"search_filter,omitempty"` + // Types that are assignable to HasStreetSideMaxDistance: + // *Location_StreetSideMaxDistance + HasStreetSideMaxDistance isLocation_HasStreetSideMaxDistance `protobuf_oneof:"has_street_side_max_distance"` + // Types that are assignable to HasPreferredLayer: + // *Location_PreferredLayer + HasPreferredLayer isLocation_HasPreferredLayer `protobuf_oneof:"has_preferred_layer"` + WaitingSecs float32 `protobuf:"fixed32,29,opt,name=waiting_secs,json=waitingSecs,proto3" json:"waiting_secs,omitempty"` // waiting period before a new leg starts, e.g. for servicing/loading goods + // This information will be ignored if provided in the request. Instead it will be filled in as the request is handled + Correlation *Correlation `protobuf:"bytes,90,opt,name=correlation,proto3" json:"correlation,omitempty"` +} + +func (x *Location) Reset() { + *x = Location{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Location) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Location) ProtoMessage() {} + +func (x *Location) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[5] + 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 Location.ProtoReflect.Descriptor instead. +func (*Location) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{5} +} + +func (x *Location) GetLl() *LatLng { + if x != nil { + return x.Ll + } + return nil +} + +func (x *Location) GetType() Location_Type { + if x != nil { + return x.Type + } + return Location_kBreak +} + +func (m *Location) GetHasHeading() isLocation_HasHeading { + if m != nil { + return m.HasHeading + } + return nil +} + +func (x *Location) GetHeading() uint32 { + if x, ok := x.GetHasHeading().(*Location_Heading); ok { + return x.Heading + } + return 0 +} + +func (x *Location) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Location) GetStreet() string { + if x != nil { + return x.Street + } + return "" +} + +func (x *Location) GetDateTime() string { + if x != nil { + return x.DateTime + } + return "" +} + +func (x *Location) GetSideOfStreet() Location_SideOfStreet { + if x != nil { + return x.SideOfStreet + } + return Location_kNone +} + +func (m *Location) GetHasHeadingTolerance() isLocation_HasHeadingTolerance { + if m != nil { + return m.HasHeadingTolerance + } + return nil +} + +func (x *Location) GetHeadingTolerance() uint32 { + if x, ok := x.GetHasHeadingTolerance().(*Location_HeadingTolerance); ok { + return x.HeadingTolerance + } + return 0 +} + +func (m *Location) GetHasNodeSnapTolerance() isLocation_HasNodeSnapTolerance { + if m != nil { + return m.HasNodeSnapTolerance + } + return nil +} + +func (x *Location) GetNodeSnapTolerance() uint32 { + if x, ok := x.GetHasNodeSnapTolerance().(*Location_NodeSnapTolerance); ok { + return x.NodeSnapTolerance + } + return 0 +} + +func (m *Location) GetHasMinimumReachability() isLocation_HasMinimumReachability { + if m != nil { + return m.HasMinimumReachability + } + return nil +} + +func (x *Location) GetMinimumReachability() uint32 { + if x, ok := x.GetHasMinimumReachability().(*Location_MinimumReachability); ok { + return x.MinimumReachability + } + return 0 +} + +func (m *Location) GetHasRadius() isLocation_HasRadius { + if m != nil { + return m.HasRadius + } + return nil +} + +func (x *Location) GetRadius() uint32 { + if x, ok := x.GetHasRadius().(*Location_Radius); ok { + return x.Radius + } + return 0 +} + +func (m *Location) GetHasAccuracy() isLocation_HasAccuracy { + if m != nil { + return m.HasAccuracy + } + return nil +} + +func (x *Location) GetAccuracy() uint32 { + if x, ok := x.GetHasAccuracy().(*Location_Accuracy); ok { + return x.Accuracy + } + return 0 +} + +func (m *Location) GetHasTime() isLocation_HasTime { + if m != nil { + return m.HasTime + } + return nil +} + +func (x *Location) GetTime() float64 { + if x, ok := x.GetHasTime().(*Location_Time); ok { + return x.Time + } + return 0 +} + +func (x *Location) GetSkipRankingCandidates() bool { + if x != nil { + return x.SkipRankingCandidates + } + return false +} + +func (x *Location) GetPreferredSide() Location_PreferredSide { + if x != nil { + return x.PreferredSide + } + return Location_either +} + +func (x *Location) GetDisplayLl() *LatLng { + if x != nil { + return x.DisplayLl + } + return nil +} + +func (m *Location) GetHasSearchCutoff() isLocation_HasSearchCutoff { + if m != nil { + return m.HasSearchCutoff + } + return nil +} + +func (x *Location) GetSearchCutoff() uint32 { + if x, ok := x.GetHasSearchCutoff().(*Location_SearchCutoff); ok { + return x.SearchCutoff + } + return 0 +} + +func (m *Location) GetHasStreetSideTolerance() isLocation_HasStreetSideTolerance { + if m != nil { + return m.HasStreetSideTolerance + } + return nil +} + +func (x *Location) GetStreetSideTolerance() uint32 { + if x, ok := x.GetHasStreetSideTolerance().(*Location_StreetSideTolerance); ok { + return x.StreetSideTolerance + } + return 0 +} + +func (x *Location) GetSearchFilter() *SearchFilter { + if x != nil { + return x.SearchFilter + } + return nil +} + +func (m *Location) GetHasStreetSideMaxDistance() isLocation_HasStreetSideMaxDistance { + if m != nil { + return m.HasStreetSideMaxDistance + } + return nil +} + +func (x *Location) GetStreetSideMaxDistance() uint32 { + if x, ok := x.GetHasStreetSideMaxDistance().(*Location_StreetSideMaxDistance); ok { + return x.StreetSideMaxDistance + } + return 0 +} + +func (m *Location) GetHasPreferredLayer() isLocation_HasPreferredLayer { + if m != nil { + return m.HasPreferredLayer + } + return nil +} + +func (x *Location) GetPreferredLayer() int32 { + if x, ok := x.GetHasPreferredLayer().(*Location_PreferredLayer); ok { + return x.PreferredLayer + } + return 0 +} + +func (x *Location) GetWaitingSecs() float32 { + if x != nil { + return x.WaitingSecs + } + return 0 +} + +func (x *Location) GetCorrelation() *Correlation { + if x != nil { + return x.Correlation + } + return nil +} + +type isLocation_HasHeading interface { + isLocation_HasHeading() +} + +type Location_Heading struct { + Heading uint32 `protobuf:"varint,3,opt,name=heading,proto3,oneof"` // 0-359 +} + +func (*Location_Heading) isLocation_HasHeading() {} + +type isLocation_HasHeadingTolerance interface { + isLocation_HasHeadingTolerance() +} + +type Location_HeadingTolerance struct { + HeadingTolerance uint32 `protobuf:"varint,14,opt,name=heading_tolerance,json=headingTolerance,proto3,oneof"` +} + +func (*Location_HeadingTolerance) isLocation_HasHeadingTolerance() {} + +type isLocation_HasNodeSnapTolerance interface { + isLocation_HasNodeSnapTolerance() +} + +type Location_NodeSnapTolerance struct { + NodeSnapTolerance uint32 `protobuf:"varint,15,opt,name=node_snap_tolerance,json=nodeSnapTolerance,proto3,oneof"` +} + +func (*Location_NodeSnapTolerance) isLocation_HasNodeSnapTolerance() {} + +type isLocation_HasMinimumReachability interface { + isLocation_HasMinimumReachability() +} + +type Location_MinimumReachability struct { + MinimumReachability uint32 `protobuf:"varint,17,opt,name=minimum_reachability,json=minimumReachability,proto3,oneof"` +} + +func (*Location_MinimumReachability) isLocation_HasMinimumReachability() {} + +type isLocation_HasRadius interface { + isLocation_HasRadius() +} + +type Location_Radius struct { + Radius uint32 `protobuf:"varint,18,opt,name=radius,proto3,oneof"` +} + +func (*Location_Radius) isLocation_HasRadius() {} + +type isLocation_HasAccuracy interface { + isLocation_HasAccuracy() +} + +type Location_Accuracy struct { + Accuracy uint32 `protobuf:"varint,19,opt,name=accuracy,proto3,oneof"` +} + +func (*Location_Accuracy) isLocation_HasAccuracy() {} + +type isLocation_HasTime interface { + isLocation_HasTime() +} + +type Location_Time struct { + Time float64 `protobuf:"fixed64,20,opt,name=time,proto3,oneof"` +} + +func (*Location_Time) isLocation_HasTime() {} + +type isLocation_HasSearchCutoff interface { + isLocation_HasSearchCutoff() +} + +type Location_SearchCutoff struct { + SearchCutoff uint32 `protobuf:"varint,24,opt,name=search_cutoff,json=searchCutoff,proto3,oneof"` +} + +func (*Location_SearchCutoff) isLocation_HasSearchCutoff() {} + +type isLocation_HasStreetSideTolerance interface { + isLocation_HasStreetSideTolerance() +} + +type Location_StreetSideTolerance struct { + StreetSideTolerance uint32 `protobuf:"varint,25,opt,name=street_side_tolerance,json=streetSideTolerance,proto3,oneof"` +} + +func (*Location_StreetSideTolerance) isLocation_HasStreetSideTolerance() {} + +type isLocation_HasStreetSideMaxDistance interface { + isLocation_HasStreetSideMaxDistance() +} + +type Location_StreetSideMaxDistance struct { + StreetSideMaxDistance uint32 `protobuf:"varint,27,opt,name=street_side_max_distance,json=streetSideMaxDistance,proto3,oneof"` +} + +func (*Location_StreetSideMaxDistance) isLocation_HasStreetSideMaxDistance() {} + +type isLocation_HasPreferredLayer interface { + isLocation_HasPreferredLayer() +} + +type Location_PreferredLayer struct { + PreferredLayer int32 `protobuf:"varint,28,opt,name=preferred_layer,json=preferredLayer,proto3,oneof"` +} + +func (*Location_PreferredLayer) isLocation_HasPreferredLayer() {} + +type TransitEgressInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OnestopId string `protobuf:"bytes,1,opt,name=onestop_id,json=onestopId,proto3" json:"onestop_id,omitempty"` // Unique transitland ID + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // The name of the egress + Ll *LatLng `protobuf:"bytes,3,opt,name=ll,proto3" json:"ll,omitempty"` // Latitude, longitude of the egress +} + +func (x *TransitEgressInfo) Reset() { + *x = TransitEgressInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransitEgressInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransitEgressInfo) ProtoMessage() {} + +func (x *TransitEgressInfo) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TransitEgressInfo.ProtoReflect.Descriptor instead. +func (*TransitEgressInfo) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{6} +} + +func (x *TransitEgressInfo) GetOnestopId() string { + if x != nil { + return x.OnestopId + } + return "" +} + +func (x *TransitEgressInfo) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *TransitEgressInfo) GetLl() *LatLng { + if x != nil { + return x.Ll + } + return nil +} + +type TransitStationInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OnestopId string `protobuf:"bytes,1,opt,name=onestop_id,json=onestopId,proto3" json:"onestop_id,omitempty"` // Unique transitland ID + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // The name of the station + Ll *LatLng `protobuf:"bytes,3,opt,name=ll,proto3" json:"ll,omitempty"` // Latitude, longitude of the station +} + +func (x *TransitStationInfo) Reset() { + *x = TransitStationInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransitStationInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransitStationInfo) ProtoMessage() {} + +func (x *TransitStationInfo) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TransitStationInfo.ProtoReflect.Descriptor instead. +func (*TransitStationInfo) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{7} +} + +func (x *TransitStationInfo) GetOnestopId() string { + if x != nil { + return x.OnestopId + } + return "" +} + +func (x *TransitStationInfo) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *TransitStationInfo) GetLl() *LatLng { + if x != nil { + return x.Ll + } + return nil +} + +type BikeShareStationInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Ref string `protobuf:"bytes,2,opt,name=ref,proto3" json:"ref,omitempty"` + Capacity uint32 `protobuf:"varint,3,opt,name=capacity,proto3" json:"capacity,omitempty"` + Network string `protobuf:"bytes,4,opt,name=network,proto3" json:"network,omitempty"` + Operator string `protobuf:"bytes,5,opt,name=operator,proto3" json:"operator,omitempty"` + RentCost float32 `protobuf:"fixed32,6,opt,name=rent_cost,json=rentCost,proto3" json:"rent_cost,omitempty"` + ReturnCost float32 `protobuf:"fixed32,7,opt,name=return_cost,json=returnCost,proto3" json:"return_cost,omitempty"` +} + +func (x *BikeShareStationInfo) Reset() { + *x = BikeShareStationInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BikeShareStationInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BikeShareStationInfo) ProtoMessage() {} + +func (x *BikeShareStationInfo) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BikeShareStationInfo.ProtoReflect.Descriptor instead. +func (*BikeShareStationInfo) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{8} +} + +func (x *BikeShareStationInfo) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *BikeShareStationInfo) GetRef() string { + if x != nil { + return x.Ref + } + return "" +} + +func (x *BikeShareStationInfo) GetCapacity() uint32 { + if x != nil { + return x.Capacity + } + return 0 +} + +func (x *BikeShareStationInfo) GetNetwork() string { + if x != nil { + return x.Network + } + return "" +} + +func (x *BikeShareStationInfo) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *BikeShareStationInfo) GetRentCost() float32 { + if x != nil { + return x.RentCost + } + return 0 +} + +func (x *BikeShareStationInfo) GetReturnCost() float32 { + if x != nil { + return x.ReturnCost + } + return 0 +} + +type TransitPlatformInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type TransitPlatformInfo_Type `protobuf:"varint,1,opt,name=type,proto3,enum=valhalla.TransitPlatformInfo_Type" json:"type,omitempty"` // The type of stop (station or simple stop) + OnestopId string `protobuf:"bytes,2,opt,name=onestop_id,json=onestopId,proto3" json:"onestop_id,omitempty"` // Unique transitland ID + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` // The name of the platform + ArrivalDateTime string `protobuf:"bytes,4,opt,name=arrival_date_time,json=arrivalDateTime,proto3" json:"arrival_date_time,omitempty"` // ISO 8601 arrival date/time YYYY-MM-DDThh:mm + DepartureDateTime string `protobuf:"bytes,5,opt,name=departure_date_time,json=departureDateTime,proto3" json:"departure_date_time,omitempty"` // ISO 8601 departure date/time YYYY-MM-DDThh:mm + AssumedSchedule bool `protobuf:"varint,6,opt,name=assumed_schedule,json=assumedSchedule,proto3" json:"assumed_schedule,omitempty"` // true if the times are based on an assumed schedule + Ll *LatLng `protobuf:"bytes,7,opt,name=ll,proto3" json:"ll,omitempty"` // Latitude, longitude of the transit stop + StationOnestopId string `protobuf:"bytes,8,opt,name=station_onestop_id,json=stationOnestopId,proto3" json:"station_onestop_id,omitempty"` // Unique transitland station ID + StationName string `protobuf:"bytes,9,opt,name=station_name,json=stationName,proto3" json:"station_name,omitempty"` // The station name of the platform +} + +func (x *TransitPlatformInfo) Reset() { + *x = TransitPlatformInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransitPlatformInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransitPlatformInfo) ProtoMessage() {} + +func (x *TransitPlatformInfo) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[9] + 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 TransitPlatformInfo.ProtoReflect.Descriptor instead. +func (*TransitPlatformInfo) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{9} +} + +func (x *TransitPlatformInfo) GetType() TransitPlatformInfo_Type { + if x != nil { + return x.Type + } + return TransitPlatformInfo_kStop +} + +func (x *TransitPlatformInfo) GetOnestopId() string { + if x != nil { + return x.OnestopId + } + return "" +} + +func (x *TransitPlatformInfo) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *TransitPlatformInfo) GetArrivalDateTime() string { + if x != nil { + return x.ArrivalDateTime + } + return "" +} + +func (x *TransitPlatformInfo) GetDepartureDateTime() string { + if x != nil { + return x.DepartureDateTime + } + return "" +} + +func (x *TransitPlatformInfo) GetAssumedSchedule() bool { + if x != nil { + return x.AssumedSchedule + } + return false +} + +func (x *TransitPlatformInfo) GetLl() *LatLng { + if x != nil { + return x.Ll + } + return nil +} + +func (x *TransitPlatformInfo) GetStationOnestopId() string { + if x != nil { + return x.StationOnestopId + } + return "" +} + +func (x *TransitPlatformInfo) GetStationName() string { + if x != nil { + return x.StationName + } + return "" +} + +type TransitRouteInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OnestopId string `protobuf:"bytes,1,opt,name=onestop_id,json=onestopId,proto3" json:"onestop_id,omitempty"` + BlockId uint32 `protobuf:"varint,2,opt,name=block_id,json=blockId,proto3" json:"block_id,omitempty"` + TripId uint32 `protobuf:"varint,3,opt,name=trip_id,json=tripId,proto3" json:"trip_id,omitempty"` + ShortName string `protobuf:"bytes,4,opt,name=short_name,json=shortName,proto3" json:"short_name,omitempty"` + LongName string `protobuf:"bytes,5,opt,name=long_name,json=longName,proto3" json:"long_name,omitempty"` + Headsign string `protobuf:"bytes,6,opt,name=headsign,proto3" json:"headsign,omitempty"` + Color uint32 `protobuf:"varint,7,opt,name=color,proto3" json:"color,omitempty"` + TextColor uint32 `protobuf:"varint,8,opt,name=text_color,json=textColor,proto3" json:"text_color,omitempty"` + Description string `protobuf:"bytes,9,opt,name=description,proto3" json:"description,omitempty"` + OperatorOnestopId string `protobuf:"bytes,10,opt,name=operator_onestop_id,json=operatorOnestopId,proto3" json:"operator_onestop_id,omitempty"` + OperatorName string `protobuf:"bytes,11,opt,name=operator_name,json=operatorName,proto3" json:"operator_name,omitempty"` + OperatorUrl string `protobuf:"bytes,12,opt,name=operator_url,json=operatorUrl,proto3" json:"operator_url,omitempty"` + TransitStops []*TransitPlatformInfo `protobuf:"bytes,13,rep,name=transit_stops,json=transitStops,proto3" json:"transit_stops,omitempty"` +} + +func (x *TransitRouteInfo) Reset() { + *x = TransitRouteInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransitRouteInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransitRouteInfo) ProtoMessage() {} + +func (x *TransitRouteInfo) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[10] + 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 TransitRouteInfo.ProtoReflect.Descriptor instead. +func (*TransitRouteInfo) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{10} +} + +func (x *TransitRouteInfo) GetOnestopId() string { + if x != nil { + return x.OnestopId + } + return "" +} + +func (x *TransitRouteInfo) GetBlockId() uint32 { + if x != nil { + return x.BlockId + } + return 0 +} + +func (x *TransitRouteInfo) GetTripId() uint32 { + if x != nil { + return x.TripId + } + return 0 +} + +func (x *TransitRouteInfo) GetShortName() string { + if x != nil { + return x.ShortName + } + return "" +} + +func (x *TransitRouteInfo) GetLongName() string { + if x != nil { + return x.LongName + } + return "" +} + +func (x *TransitRouteInfo) GetHeadsign() string { + if x != nil { + return x.Headsign + } + return "" +} + +func (x *TransitRouteInfo) GetColor() uint32 { + if x != nil { + return x.Color + } + return 0 +} + +func (x *TransitRouteInfo) GetTextColor() uint32 { + if x != nil { + return x.TextColor + } + return 0 +} + +func (x *TransitRouteInfo) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *TransitRouteInfo) GetOperatorOnestopId() string { + if x != nil { + return x.OperatorOnestopId + } + return "" +} + +func (x *TransitRouteInfo) GetOperatorName() string { + if x != nil { + return x.OperatorName + } + return "" +} + +func (x *TransitRouteInfo) GetOperatorUrl() string { + if x != nil { + return x.OperatorUrl + } + return "" +} + +func (x *TransitRouteInfo) GetTransitStops() []*TransitPlatformInfo { + if x != nil { + return x.TransitStops + } + return nil +} + +type Pronunciation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Alphabet Pronunciation_Alphabet `protobuf:"varint,1,opt,name=alphabet,proto3,enum=valhalla.Pronunciation_Alphabet" json:"alphabet,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *Pronunciation) Reset() { + *x = Pronunciation{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Pronunciation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Pronunciation) ProtoMessage() {} + +func (x *Pronunciation) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[11] + 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 Pronunciation.ProtoReflect.Descriptor instead. +func (*Pronunciation) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{11} +} + +func (x *Pronunciation) GetAlphabet() Pronunciation_Alphabet { + if x != nil { + return x.Alphabet + } + return Pronunciation_kIpa +} + +func (x *Pronunciation) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type StreetName struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // The actual street name value, examples: I 95 North or Derry Street + IsRouteNumber bool `protobuf:"varint,2,opt,name=is_route_number,json=isRouteNumber,proto3" json:"is_route_number,omitempty"` // true if the street name is a reference route number such as: I 81 South or US 322 West + Pronunciation *Pronunciation `protobuf:"bytes,3,opt,name=pronunciation,proto3" json:"pronunciation,omitempty"` // The pronunciation associated with this street name +} + +func (x *StreetName) Reset() { + *x = StreetName{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreetName) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreetName) ProtoMessage() {} + +func (x *StreetName) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[12] + 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 StreetName.ProtoReflect.Descriptor instead. +func (*StreetName) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{12} +} + +func (x *StreetName) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +func (x *StreetName) GetIsRouteNumber() bool { + if x != nil { + return x.IsRouteNumber + } + return false +} + +func (x *StreetName) GetPronunciation() *Pronunciation { + if x != nil { + return x.Pronunciation + } + return nil +} + +type TurnLane struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DirectionsMask uint32 `protobuf:"varint,1,opt,name=directions_mask,json=directionsMask,proto3" json:"directions_mask,omitempty"` + State TurnLane_State `protobuf:"varint,2,opt,name=state,proto3,enum=valhalla.TurnLane_State" json:"state,omitempty"` + ActiveDirection uint32 `protobuf:"varint,3,opt,name=active_direction,json=activeDirection,proto3" json:"active_direction,omitempty"` +} + +func (x *TurnLane) Reset() { + *x = TurnLane{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TurnLane) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TurnLane) ProtoMessage() {} + +func (x *TurnLane) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TurnLane.ProtoReflect.Descriptor instead. +func (*TurnLane) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{13} +} + +func (x *TurnLane) GetDirectionsMask() uint32 { + if x != nil { + return x.DirectionsMask + } + return 0 +} + +func (x *TurnLane) GetState() TurnLane_State { + if x != nil { + return x.State + } + return TurnLane_kInvalid +} + +func (x *TurnLane) GetActiveDirection() uint32 { + if x != nil { + return x.ActiveDirection + } + return 0 +} + +type TaggedValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // The actual tagged name value, examples: Ted Williams Tunnel + Type TaggedValue_Type `protobuf:"varint,2,opt,name=type,proto3,enum=valhalla.TaggedValue_Type" json:"type,omitempty"` // The type of tagged name (tunnel or bridge) +} + +func (x *TaggedValue) Reset() { + *x = TaggedValue{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TaggedValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TaggedValue) ProtoMessage() {} + +func (x *TaggedValue) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TaggedValue.ProtoReflect.Descriptor instead. +func (*TaggedValue) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{14} +} + +func (x *TaggedValue) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +func (x *TaggedValue) GetType() TaggedValue_Type { + if x != nil { + return x.Type + } + return TaggedValue_kNone +} + +var File_common_proto protoreflect.FileDescriptor + +var file_common_proto_rawDesc = []byte{ + 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, + 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x22, 0x46, 0x0a, 0x06, 0x4c, 0x61, 0x74, 0x4c, + 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x03, 0x6c, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, + 0x00, 0x52, 0x03, 0x6c, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x6c, 0x6e, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x03, 0x6c, 0x6e, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x68, 0x61, + 0x73, 0x5f, 0x6c, 0x61, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x6e, 0x67, + 0x22, 0x5f, 0x0a, 0x0b, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, + 0x27, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, + 0x67, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x4c, 0x6c, 0x12, 0x27, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x5f, + 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x05, 0x6d, 0x61, 0x78, 0x4c, + 0x6c, 0x22, 0xea, 0x02, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x6f, 0x61, 0x64, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x76, 0x61, 0x6c, + 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x52, 0x6f, 0x61, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x48, + 0x00, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x52, 0x6f, 0x61, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, + 0x3b, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, + 0x6c, 0x61, 0x2e, 0x52, 0x6f, 0x61, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x48, 0x01, 0x52, 0x0c, + 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x61, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, + 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x78, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x78, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x72, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x61, 0x6d, 0x70, 0x12, 0x2b, 0x0a, + 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, + 0x73, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x61, 0x64, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x65, 0x78, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x22, 0x85, + 0x03, 0x0a, 0x08, 0x50, 0x61, 0x74, 0x68, 0x45, 0x64, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, + 0x72, 0x61, 0x70, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, + 0x72, 0x61, 0x70, 0x68, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, + 0x74, 0x5f, 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x70, + 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x6c, 0x6f, 0x6e, 0x67, 0x12, 0x20, 0x0a, 0x02, 0x6c, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, + 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x02, 0x6c, 0x6c, 0x12, 0x45, 0x0a, + 0x0e, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, + 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x69, 0x64, 0x65, 0x4f, 0x66, + 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x52, 0x0c, 0x73, 0x69, 0x64, 0x65, 0x4f, 0x66, 0x53, 0x74, + 0x72, 0x65, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x12, + 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x61, + 0x63, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, + 0x6e, 0x64, 0x52, 0x65, 0x61, 0x63, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x62, 0x6f, 0x75, + 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, + 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x68, + 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xf7, 0x02, 0x0a, 0x0b, 0x43, 0x6f, 0x72, 0x72, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, + 0x2e, 0x50, 0x61, 0x74, 0x68, 0x45, 0x64, 0x67, 0x65, 0x52, 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, + 0x12, 0x39, 0x0a, 0x0e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x64, 0x67, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x61, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x45, 0x64, 0x67, 0x65, 0x52, 0x0d, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x45, 0x64, 0x67, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x12, 0x33, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, + 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x6c, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x65, 0x67, 0x5f, 0x73, + 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x6c, 0x65, 0x67, 0x53, 0x68, 0x61, 0x70, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x37, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x6d, + 0x5f, 0x6c, 0x65, 0x67, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x15, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x4c, + 0x65, 0x67, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x61, 0x79, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0d, 0x77, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x22, 0x8f, 0x0b, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, + 0x02, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, + 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x02, 0x6c, 0x6c, 0x12, + 0x2b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, + 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x07, + 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x07, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, + 0x72, 0x65, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x72, + 0x65, 0x65, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x76, 0x61, 0x6c, 0x68, + 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x69, + 0x64, 0x65, 0x4f, 0x66, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x52, 0x0c, 0x73, 0x69, 0x64, 0x65, + 0x4f, 0x66, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x11, 0x68, 0x65, 0x61, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x10, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x6f, + 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x73, 0x6e, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x11, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x6e, 0x61, 0x70, + 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x33, 0x0a, 0x14, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x18, + 0x0a, 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, + 0x52, 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x75, + 0x72, 0x61, 0x63, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x08, 0x61, 0x63, + 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x12, 0x14, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x01, 0x48, 0x06, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x17, + 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x6e, + 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, + 0x6b, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, + 0x64, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x53, 0x69, 0x64, 0x65, 0x52, 0x0d, + 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x53, 0x69, 0x64, 0x65, 0x12, 0x2f, 0x0a, + 0x0a, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6c, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, + 0x4c, 0x6e, 0x67, 0x52, 0x09, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4c, 0x6c, 0x12, 0x25, + 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x63, 0x75, 0x74, 0x6f, 0x66, 0x66, 0x18, + 0x18, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, + 0x75, 0x74, 0x6f, 0x66, 0x66, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, + 0x73, 0x69, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x13, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x53, 0x69, + 0x64, 0x65, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x0d, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x1a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x18, 0x73, 0x74, 0x72, 0x65, + 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x09, 0x52, 0x15, 0x73, 0x74, + 0x72, 0x65, 0x65, 0x74, 0x53, 0x69, 0x64, 0x65, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, + 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0a, 0x52, 0x0e, + 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x21, + 0x0a, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x1d, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, + 0x73, 0x12, 0x37, 0x0a, 0x0b, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, + 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x63, + 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x0a, 0x04, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x10, 0x00, 0x12, 0x0c, + 0x0a, 0x08, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x6b, 0x56, 0x69, 0x61, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x42, 0x72, 0x65, 0x61, 0x6b, + 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x03, 0x22, 0x33, 0x0a, 0x0d, 0x50, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x53, 0x69, 0x64, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x65, 0x69, + 0x74, 0x68, 0x65, 0x72, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x61, 0x6d, 0x65, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x10, 0x02, 0x22, 0x30, + 0x0a, 0x0c, 0x53, 0x69, 0x64, 0x65, 0x4f, 0x66, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x12, 0x09, + 0x0a, 0x05, 0x6b, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x4c, 0x65, + 0x66, 0x74, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x52, 0x69, 0x67, 0x68, 0x74, 0x10, 0x02, + 0x42, 0x0d, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, + 0x17, 0x0a, 0x15, 0x68, 0x61, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, + 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x68, 0x61, 0x73, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, + 0x6e, 0x63, 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, + 0x0c, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, 0x0e, 0x0a, + 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x42, 0x0a, 0x0a, + 0x08, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x68, 0x61, 0x73, + 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x63, 0x75, 0x74, 0x6f, 0x66, 0x66, 0x42, 0x1b, + 0x0a, 0x19, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, + 0x65, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x68, + 0x61, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x6d, + 0x61, 0x78, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x68, + 0x61, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x22, 0x68, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x45, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x73, 0x74, + 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x6e, 0x65, + 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x02, 0x6c, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, + 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x02, 0x6c, 0x6c, 0x22, 0x69, 0x0a, 0x12, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x02, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, + 0x4c, 0x6e, 0x67, 0x52, 0x02, 0x6c, 0x6c, 0x22, 0xcc, 0x01, 0x0a, 0x14, 0x42, 0x69, 0x6b, 0x65, + 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, + 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, + 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1a, 0x0a, 0x08, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x72, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, + 0x63, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x43, 0x6f, 0x73, 0x74, 0x22, 0x9b, 0x03, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x73, + 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x72, 0x72, + 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, + 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, + 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0f, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x12, 0x20, 0x0a, 0x02, 0x6c, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x02, + 0x6c, 0x6c, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, + 0x65, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, + 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0x1f, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x6b, + 0x53, 0x74, 0x6f, 0x70, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x10, 0x01, 0x22, 0xd0, 0x03, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, + 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, + 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x72, 0x69, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, + 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, + 0x6f, 0x6e, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6c, 0x6f, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x65, 0x61, 0x64, + 0x73, 0x69, 0x67, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, + 0x73, 0x69, 0x67, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x65, + 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x4f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x75, 0x72, 0x6c, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x55, 0x72, 0x6c, 0x12, 0x42, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x73, + 0x74, 0x6f, 0x70, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x76, 0x61, 0x6c, + 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x6e, + 0x75, 0x6e, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x08, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x62, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x76, 0x61, + 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x6e, 0x75, 0x6e, 0x63, 0x69, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x52, 0x08, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3f, 0x0a, + 0x08, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x12, 0x08, 0x0a, 0x04, 0x6b, 0x49, 0x70, + 0x61, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x58, 0x4b, 0x61, 0x74, 0x61, 0x6b, 0x61, 0x6e, + 0x61, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x58, 0x4a, 0x65, 0x69, 0x74, 0x61, 0x10, 0x02, + 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x4e, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x61, 0x10, 0x03, 0x22, 0x89, + 0x01, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0d, 0x70, + 0x72, 0x6f, 0x6e, 0x75, 0x6e, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x50, 0x72, + 0x6f, 0x6e, 0x75, 0x6e, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x70, 0x72, 0x6f, + 0x6e, 0x75, 0x6e, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbe, 0x01, 0x0a, 0x08, 0x54, + 0x75, 0x72, 0x6e, 0x4c, 0x61, 0x6e, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x73, 0x6b, + 0x12, 0x2e, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x18, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x4c, + 0x61, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x29, 0x0a, 0x10, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2e, 0x0a, 0x05, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x01, 0x12, 0x0b, + 0x0a, 0x07, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, 0x22, 0xc9, 0x01, 0x0a, 0x0b, + 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1a, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x61, 0x67, 0x67, 0x65, + 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x74, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x4e, 0x6f, + 0x6e, 0x65, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x01, + 0x12, 0x12, 0x0a, 0x0e, 0x6b, 0x50, 0x72, 0x6f, 0x6e, 0x75, 0x6e, 0x63, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x42, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x10, 0x05, 0x12, 0x0b, 0x0a, + 0x07, 0x6b, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x10, 0x31, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x42, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x10, 0x32, 0x2a, 0x8b, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x61, 0x64, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x4d, 0x6f, 0x74, 0x6f, 0x72, 0x77, + 0x61, 0x79, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x10, 0x02, 0x12, 0x0e, + 0x0a, 0x0a, 0x6b, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x6b, 0x54, 0x65, 0x72, 0x74, 0x69, 0x61, 0x72, 0x79, 0x10, 0x04, 0x12, 0x11, 0x0a, + 0x0d, 0x6b, 0x55, 0x6e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x05, + 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x74, + 0x68, 0x65, 0x72, 0x10, 0x07, 0x2a, 0x45, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x4d, + 0x6f, 0x64, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x10, 0x00, 0x12, + 0x0f, 0x0a, 0x0b, 0x6b, 0x50, 0x65, 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x42, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x10, 0x02, 0x12, 0x0c, + 0x0a, 0x08, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x10, 0x03, 0x2a, 0x5e, 0x0a, 0x0b, + 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x6b, + 0x43, 0x61, 0x72, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x4d, 0x6f, 0x74, 0x6f, 0x72, 0x63, + 0x79, 0x63, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x42, + 0x75, 0x73, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x54, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x4d, 0x6f, + 0x74, 0x6f, 0x72, 0x53, 0x63, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x10, 0x04, 0x2a, 0x39, 0x0a, 0x0e, + 0x50, 0x65, 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, + 0x0a, 0x05, 0x6b, 0x46, 0x6f, 0x6f, 0x74, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x57, 0x68, + 0x65, 0x65, 0x6c, 0x63, 0x68, 0x61, 0x69, 0x72, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x53, + 0x65, 0x67, 0x77, 0x61, 0x79, 0x10, 0x02, 0x2a, 0x40, 0x0a, 0x0b, 0x42, 0x69, 0x63, 0x79, 0x63, + 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x52, 0x6f, 0x61, 0x64, 0x10, + 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x10, 0x01, 0x12, 0x0b, 0x0a, + 0x07, 0x6b, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x4d, + 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x10, 0x03, 0x2a, 0x72, 0x0a, 0x0b, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x54, 0x72, 0x61, + 0x6d, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x6f, 0x10, 0x01, 0x12, + 0x09, 0x0a, 0x05, 0x6b, 0x52, 0x61, 0x69, 0x6c, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6b, 0x42, + 0x75, 0x73, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x46, 0x65, 0x72, 0x72, 0x79, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x43, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x10, 0x05, 0x12, + 0x0c, 0x0a, 0x08, 0x6b, 0x47, 0x6f, 0x6e, 0x64, 0x6f, 0x6c, 0x61, 0x10, 0x06, 0x12, 0x0e, 0x0a, + 0x0a, 0x6b, 0x46, 0x75, 0x6e, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x10, 0x07, 0x42, 0x40, 0x48, + 0x03, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x2e, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2e, 0x69, 0x6f, + 0x2f, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_common_proto_rawDescOnce sync.Once + file_common_proto_rawDescData = file_common_proto_rawDesc +) + +func file_common_proto_rawDescGZIP() []byte { + file_common_proto_rawDescOnce.Do(func() { + file_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_common_proto_rawDescData) + }) + return file_common_proto_rawDescData +} + +var file_common_proto_enumTypes = make([]protoimpl.EnumInfo, 13) +var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_common_proto_goTypes = []interface{}{ + (RoadClass)(0), // 0: valhalla.RoadClass + (TravelMode)(0), // 1: valhalla.TravelMode + (VehicleType)(0), // 2: valhalla.VehicleType + (PedestrianType)(0), // 3: valhalla.PedestrianType + (BicycleType)(0), // 4: valhalla.BicycleType + (TransitType)(0), // 5: valhalla.TransitType + (Location_Type)(0), // 6: valhalla.Location.Type + (Location_PreferredSide)(0), // 7: valhalla.Location.PreferredSide + (Location_SideOfStreet)(0), // 8: valhalla.Location.SideOfStreet + (TransitPlatformInfo_Type)(0), // 9: valhalla.TransitPlatformInfo.Type + (Pronunciation_Alphabet)(0), // 10: valhalla.Pronunciation.Alphabet + (TurnLane_State)(0), // 11: valhalla.TurnLane.State + (TaggedValue_Type)(0), // 12: valhalla.TaggedValue.Type + (*LatLng)(nil), // 13: valhalla.LatLng + (*BoundingBox)(nil), // 14: valhalla.BoundingBox + (*SearchFilter)(nil), // 15: valhalla.SearchFilter + (*PathEdge)(nil), // 16: valhalla.PathEdge + (*Correlation)(nil), // 17: valhalla.Correlation + (*Location)(nil), // 18: valhalla.Location + (*TransitEgressInfo)(nil), // 19: valhalla.TransitEgressInfo + (*TransitStationInfo)(nil), // 20: valhalla.TransitStationInfo + (*BikeShareStationInfo)(nil), // 21: valhalla.BikeShareStationInfo + (*TransitPlatformInfo)(nil), // 22: valhalla.TransitPlatformInfo + (*TransitRouteInfo)(nil), // 23: valhalla.TransitRouteInfo + (*Pronunciation)(nil), // 24: valhalla.Pronunciation + (*StreetName)(nil), // 25: valhalla.StreetName + (*TurnLane)(nil), // 26: valhalla.TurnLane + (*TaggedValue)(nil), // 27: valhalla.TaggedValue +} +var file_common_proto_depIdxs = []int32{ + 13, // 0: valhalla.BoundingBox.min_ll:type_name -> valhalla.LatLng + 13, // 1: valhalla.BoundingBox.max_ll:type_name -> valhalla.LatLng + 0, // 2: valhalla.SearchFilter.min_road_class:type_name -> valhalla.RoadClass + 0, // 3: valhalla.SearchFilter.max_road_class:type_name -> valhalla.RoadClass + 13, // 4: valhalla.PathEdge.ll:type_name -> valhalla.LatLng + 8, // 5: valhalla.PathEdge.side_of_street:type_name -> valhalla.Location.SideOfStreet + 16, // 6: valhalla.Correlation.edges:type_name -> valhalla.PathEdge + 16, // 7: valhalla.Correlation.filtered_edges:type_name -> valhalla.PathEdge + 13, // 8: valhalla.Correlation.projected_ll:type_name -> valhalla.LatLng + 13, // 9: valhalla.Location.ll:type_name -> valhalla.LatLng + 6, // 10: valhalla.Location.type:type_name -> valhalla.Location.Type + 8, // 11: valhalla.Location.side_of_street:type_name -> valhalla.Location.SideOfStreet + 7, // 12: valhalla.Location.preferred_side:type_name -> valhalla.Location.PreferredSide + 13, // 13: valhalla.Location.display_ll:type_name -> valhalla.LatLng + 15, // 14: valhalla.Location.search_filter:type_name -> valhalla.SearchFilter + 17, // 15: valhalla.Location.correlation:type_name -> valhalla.Correlation + 13, // 16: valhalla.TransitEgressInfo.ll:type_name -> valhalla.LatLng + 13, // 17: valhalla.TransitStationInfo.ll:type_name -> valhalla.LatLng + 9, // 18: valhalla.TransitPlatformInfo.type:type_name -> valhalla.TransitPlatformInfo.Type + 13, // 19: valhalla.TransitPlatformInfo.ll:type_name -> valhalla.LatLng + 22, // 20: valhalla.TransitRouteInfo.transit_stops:type_name -> valhalla.TransitPlatformInfo + 10, // 21: valhalla.Pronunciation.alphabet:type_name -> valhalla.Pronunciation.Alphabet + 24, // 22: valhalla.StreetName.pronunciation:type_name -> valhalla.Pronunciation + 11, // 23: valhalla.TurnLane.state:type_name -> valhalla.TurnLane.State + 12, // 24: valhalla.TaggedValue.type:type_name -> valhalla.TaggedValue.Type + 25, // [25:25] is the sub-list for method output_type + 25, // [25:25] is the sub-list for method input_type + 25, // [25:25] is the sub-list for extension type_name + 25, // [25:25] is the sub-list for extension extendee + 0, // [0:25] is the sub-list for field type_name +} + +func init() { file_common_proto_init() } +func file_common_proto_init() { + if File_common_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LatLng); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BoundingBox); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchFilter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PathEdge); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Correlation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Location); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransitEgressInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransitStationInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BikeShareStationInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransitPlatformInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransitRouteInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Pronunciation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreetName); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TurnLane); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TaggedValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_common_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*LatLng_Lat)(nil), + (*LatLng_Lng)(nil), + } + file_common_proto_msgTypes[2].OneofWrappers = []interface{}{ + (*SearchFilter_MinRoadClass)(nil), + (*SearchFilter_MaxRoadClass)(nil), + (*SearchFilter_ExcludeClosures)(nil), + } + file_common_proto_msgTypes[5].OneofWrappers = []interface{}{ + (*Location_Heading)(nil), + (*Location_HeadingTolerance)(nil), + (*Location_NodeSnapTolerance)(nil), + (*Location_MinimumReachability)(nil), + (*Location_Radius)(nil), + (*Location_Accuracy)(nil), + (*Location_Time)(nil), + (*Location_SearchCutoff)(nil), + (*Location_StreetSideTolerance)(nil), + (*Location_StreetSideMaxDistance)(nil), + (*Location_PreferredLayer)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_common_proto_rawDesc, + NumEnums: 13, + NumMessages: 15, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_common_proto_goTypes, + DependencyIndexes: file_common_proto_depIdxs, + EnumInfos: file_common_proto_enumTypes, + MessageInfos: file_common_proto_msgTypes, + }.Build() + File_common_proto = out.File + file_common_proto_rawDesc = nil + file_common_proto_goTypes = nil + file_common_proto_depIdxs = nil +} diff --git a/proto/valhalla/common.proto b/proto/valhalla/common.proto new file mode 100644 index 0000000..a406715 --- /dev/null +++ b/proto/valhalla/common.proto @@ -0,0 +1,281 @@ +syntax = "proto3"; +option optimize_for = LITE_RUNTIME; +package valhalla; +option go_package = "git.coopgo.io/coopgo-platform/routing-service/proto/valhalla"; + +message LatLng { + oneof has_lat { + double lat = 1; + } + oneof has_lng { + double lng = 2; + } +} + +message BoundingBox { + LatLng min_ll = 1; + LatLng max_ll = 2; +} + +message SearchFilter { + // frc + oneof has_min_road_class { + RoadClass min_road_class = 1; // lowest road class to allow in loki results [default = kServiceOther] + } + oneof has_max_road_class { + RoadClass max_road_class = 2; // highest road class to allow in loki results [default = kMotorway] + } + + // form of way + bool exclude_tunnel = 3; // whether to exclude tunnels from loki results [default = false] + bool exclude_bridge = 4; // whether to exclude bridges from loki results [default = false] + bool exclude_ramp = 5; // whether to exclude roads with ramp use from loki results [default = false] + oneof has_exclude_closures { + bool exclude_closures = 6;// whether to exclude roads marked as closed due to traffic [default = true] + } +} + +message PathEdge { + uint64 graph_id = 1; + double percent_along = 2; + LatLng ll = 3; + Location.SideOfStreet side_of_street = 4; + double distance = 5; + bool begin_node = 7; + bool end_node = 8; + repeated string names = 10; + int32 outbound_reach = 11; + int32 inbound_reach = 12; + float heading = 13; +} + +// Output information about how the location object below is correlated to the graph or to the route etc +message Correlation { + repeated PathEdge edges = 1; + repeated PathEdge filtered_edges = 2; + uint32 original_index = 3; + LatLng projected_ll = 4; + uint32 leg_shape_index = 5; + double distance_from_leg_origin = 6; + uint32 route_index = 7; // primarily for matchings index in osrm map matching + uint32 waypoint_index = 8; // primarily for matched point index in osrm map matching +} + +message Location { + enum Type { + kBreak = 0; + kThrough = 1; + kVia = 2; + kBreakThrough = 3; + } + + enum PreferredSide { + either = 0; + same = 1; + opposite = 2; + } + + enum SideOfStreet { + kNone = 0; + kLeft = 1; + kRight = 2; + } + + LatLng ll = 1; + Type type = 2; // [default = kBreak] + oneof has_heading { + uint32 heading = 3; // 0-359 + } + string name = 4; + string street = 5; + string date_time = 12; + SideOfStreet side_of_street = 13; + oneof has_heading_tolerance { + uint32 heading_tolerance = 14; + } + oneof has_node_snap_tolerance { + uint32 node_snap_tolerance = 15; + } + oneof has_minimum_reachability { + uint32 minimum_reachability = 17; + } + oneof has_radius { + uint32 radius = 18; + } + oneof has_accuracy { + uint32 accuracy = 19; + } + oneof has_time { + double time = 20; + } + bool skip_ranking_candidates = 21; + PreferredSide preferred_side = 22; + LatLng display_ll = 23; + oneof has_search_cutoff { + uint32 search_cutoff = 24; + } + oneof has_street_side_tolerance { + uint32 street_side_tolerance = 25; + } + SearchFilter search_filter = 26; + oneof has_street_side_max_distance { + uint32 street_side_max_distance = 27; + } + oneof has_preferred_layer { + int32 preferred_layer = 28; + } + float waiting_secs = 29; // waiting period before a new leg starts, e.g. for servicing/loading goods + + // This information will be ignored if provided in the request. Instead it will be filled in as the request is handled + Correlation correlation = 90; +} + +message TransitEgressInfo { + string onestop_id = 1; // Unique transitland ID + string name = 2; // The name of the egress + LatLng ll = 3; // Latitude, longitude of the egress +} + +message TransitStationInfo { + string onestop_id = 1; // Unique transitland ID + string name = 2; // The name of the station + LatLng ll = 3; // Latitude, longitude of the station +} + +message BikeShareStationInfo { + string name = 1; + string ref = 2; + uint32 capacity = 3; + string network = 4; + string operator = 5; + float rent_cost = 6; + float return_cost = 7; +} + +message TransitPlatformInfo { + enum Type { + kStop = 0; + kStation = 1; + } + Type type = 1; // The type of stop (station or simple stop) + string onestop_id = 2; // Unique transitland ID + string name = 3; // The name of the platform + string arrival_date_time = 4; // ISO 8601 arrival date/time YYYY-MM-DDThh:mm + string departure_date_time = 5; // ISO 8601 departure date/time YYYY-MM-DDThh:mm + bool assumed_schedule = 6; // true if the times are based on an assumed schedule + LatLng ll = 7; // Latitude, longitude of the transit stop + string station_onestop_id = 8; // Unique transitland station ID + string station_name = 9; // The station name of the platform +} + +message TransitRouteInfo { + string onestop_id = 1; + uint32 block_id = 2; + uint32 trip_id = 3; + string short_name = 4; + string long_name = 5; + string headsign = 6; + uint32 color = 7; + uint32 text_color = 8; + string description = 9; + string operator_onestop_id = 10; + string operator_name = 11; + string operator_url = 12; + repeated TransitPlatformInfo transit_stops = 13; +} + +message Pronunciation { + enum Alphabet { + kIpa = 0; + kXKatakana = 1; + kXJeita = 2; + kNtSampa = 3; + } + Alphabet alphabet = 1; + string value = 2; +} + +message StreetName { + string value = 1; // The actual street name value, examples: I 95 North or Derry Street + bool is_route_number = 2; // true if the street name is a reference route number such as: I 81 South or US 322 West + Pronunciation pronunciation = 3; // The pronunciation associated with this street name +} + +message TurnLane { + enum State { + kInvalid = 0; + kValid = 1; + kActive = 2; + } + uint32 directions_mask = 1; + State state = 2; + uint32 active_direction = 3; +} + +enum RoadClass { + kMotorway = 0; + kTrunk = 1; + kPrimary = 2; + kSecondary = 3; + kTertiary = 4; + kUnclassified = 5; + kResidential = 6; + kServiceOther = 7; +} + +message TaggedValue { + // dont renumber these they match the c++ definitions + enum Type { + kNone = 0; + kLayer = 1; + kPronunciation = 2; + kBssInfo = 3; + kLevel = 4; + kLevelRef = 5; + kTunnel = 49; + kBridge = 50; + } + bytes value = 1; // The actual tagged name value, examples: Ted Williams Tunnel + Type type = 2; // The type of tagged name (tunnel or bridge) +} + +enum TravelMode { + kDrive = 0; + kPedestrian = 1; + kBicycle = 2; + kTransit = 3; +} + +// TODO: review and update as needed +enum VehicleType { + kCar = 0; + kMotorcycle = 1; + kAutoBus = 2; + kTractorTrailer = 3; + kMotorScooter = 4; +} + +// TODO: review and update as needed +enum PedestrianType { + kFoot = 0; + kWheelchair = 1; + kSegway = 2; +} + +enum BicycleType { + kRoad = 0; + kCross = 1; + kHybrid = 2; + kMountain = 3; +} + +enum TransitType { + kTram = 0; + kMetro = 1; + kRail = 2; + kBus = 3; + kFerry = 4; + kCableCar = 5; + kGondola = 6; + kFunicular = 7; +} diff --git a/proto/valhalla/directions.pb.go b/proto/valhalla/directions.pb.go new file mode 100644 index 0000000..343864a --- /dev/null +++ b/proto/valhalla/directions.pb.go @@ -0,0 +1,1534 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v3.19.4 +// source: directions.proto + +package valhalla + +import ( + 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) +) + +type DirectionsLeg_GuidanceView_Type int32 + +const ( + DirectionsLeg_GuidanceView_kJunction DirectionsLeg_GuidanceView_Type = 0 + DirectionsLeg_GuidanceView_kSapa DirectionsLeg_GuidanceView_Type = 1 + DirectionsLeg_GuidanceView_kTollbranch DirectionsLeg_GuidanceView_Type = 2 + DirectionsLeg_GuidanceView_kAftertoll DirectionsLeg_GuidanceView_Type = 3 + DirectionsLeg_GuidanceView_kEnt DirectionsLeg_GuidanceView_Type = 4 + DirectionsLeg_GuidanceView_kExit DirectionsLeg_GuidanceView_Type = 5 + DirectionsLeg_GuidanceView_kCityreal DirectionsLeg_GuidanceView_Type = 6 + DirectionsLeg_GuidanceView_kDirectionboard DirectionsLeg_GuidanceView_Type = 7 + DirectionsLeg_GuidanceView_kSignboard DirectionsLeg_GuidanceView_Type = 8 +) + +// Enum value maps for DirectionsLeg_GuidanceView_Type. +var ( + DirectionsLeg_GuidanceView_Type_name = map[int32]string{ + 0: "kJunction", + 1: "kSapa", + 2: "kTollbranch", + 3: "kAftertoll", + 4: "kEnt", + 5: "kExit", + 6: "kCityreal", + 7: "kDirectionboard", + 8: "kSignboard", + } + DirectionsLeg_GuidanceView_Type_value = map[string]int32{ + "kJunction": 0, + "kSapa": 1, + "kTollbranch": 2, + "kAftertoll": 3, + "kEnt": 4, + "kExit": 5, + "kCityreal": 6, + "kDirectionboard": 7, + "kSignboard": 8, + } +) + +func (x DirectionsLeg_GuidanceView_Type) Enum() *DirectionsLeg_GuidanceView_Type { + p := new(DirectionsLeg_GuidanceView_Type) + *p = x + return p +} + +func (x DirectionsLeg_GuidanceView_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DirectionsLeg_GuidanceView_Type) Descriptor() protoreflect.EnumDescriptor { + return file_directions_proto_enumTypes[0].Descriptor() +} + +func (DirectionsLeg_GuidanceView_Type) Type() protoreflect.EnumType { + return &file_directions_proto_enumTypes[0] +} + +func (x DirectionsLeg_GuidanceView_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DirectionsLeg_GuidanceView_Type.Descriptor instead. +func (DirectionsLeg_GuidanceView_Type) EnumDescriptor() ([]byte, []int) { + return file_directions_proto_rawDescGZIP(), []int{0, 1, 0} +} + +type DirectionsLeg_Maneuver_CardinalDirection int32 + +const ( + DirectionsLeg_Maneuver_kNorth DirectionsLeg_Maneuver_CardinalDirection = 0 + DirectionsLeg_Maneuver_kNorthEast DirectionsLeg_Maneuver_CardinalDirection = 1 + DirectionsLeg_Maneuver_kEast DirectionsLeg_Maneuver_CardinalDirection = 2 + DirectionsLeg_Maneuver_kSouthEast DirectionsLeg_Maneuver_CardinalDirection = 3 + DirectionsLeg_Maneuver_kSouth DirectionsLeg_Maneuver_CardinalDirection = 4 + DirectionsLeg_Maneuver_kSouthWest DirectionsLeg_Maneuver_CardinalDirection = 5 + DirectionsLeg_Maneuver_kWest DirectionsLeg_Maneuver_CardinalDirection = 6 + DirectionsLeg_Maneuver_kNorthWest DirectionsLeg_Maneuver_CardinalDirection = 7 +) + +// Enum value maps for DirectionsLeg_Maneuver_CardinalDirection. +var ( + DirectionsLeg_Maneuver_CardinalDirection_name = map[int32]string{ + 0: "kNorth", + 1: "kNorthEast", + 2: "kEast", + 3: "kSouthEast", + 4: "kSouth", + 5: "kSouthWest", + 6: "kWest", + 7: "kNorthWest", + } + DirectionsLeg_Maneuver_CardinalDirection_value = map[string]int32{ + "kNorth": 0, + "kNorthEast": 1, + "kEast": 2, + "kSouthEast": 3, + "kSouth": 4, + "kSouthWest": 5, + "kWest": 6, + "kNorthWest": 7, + } +) + +func (x DirectionsLeg_Maneuver_CardinalDirection) Enum() *DirectionsLeg_Maneuver_CardinalDirection { + p := new(DirectionsLeg_Maneuver_CardinalDirection) + *p = x + return p +} + +func (x DirectionsLeg_Maneuver_CardinalDirection) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DirectionsLeg_Maneuver_CardinalDirection) Descriptor() protoreflect.EnumDescriptor { + return file_directions_proto_enumTypes[1].Descriptor() +} + +func (DirectionsLeg_Maneuver_CardinalDirection) Type() protoreflect.EnumType { + return &file_directions_proto_enumTypes[1] +} + +func (x DirectionsLeg_Maneuver_CardinalDirection) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DirectionsLeg_Maneuver_CardinalDirection.Descriptor instead. +func (DirectionsLeg_Maneuver_CardinalDirection) EnumDescriptor() ([]byte, []int) { + return file_directions_proto_rawDescGZIP(), []int{0, 2, 0} +} + +// TODO - add others later +type DirectionsLeg_Maneuver_Type int32 + +const ( + DirectionsLeg_Maneuver_kNone DirectionsLeg_Maneuver_Type = 0 + DirectionsLeg_Maneuver_kStart DirectionsLeg_Maneuver_Type = 1 + DirectionsLeg_Maneuver_kStartRight DirectionsLeg_Maneuver_Type = 2 + DirectionsLeg_Maneuver_kStartLeft DirectionsLeg_Maneuver_Type = 3 + DirectionsLeg_Maneuver_kDestination DirectionsLeg_Maneuver_Type = 4 + DirectionsLeg_Maneuver_kDestinationRight DirectionsLeg_Maneuver_Type = 5 + DirectionsLeg_Maneuver_kDestinationLeft DirectionsLeg_Maneuver_Type = 6 + DirectionsLeg_Maneuver_kBecomes DirectionsLeg_Maneuver_Type = 7 + DirectionsLeg_Maneuver_kContinue DirectionsLeg_Maneuver_Type = 8 + DirectionsLeg_Maneuver_kSlightRight DirectionsLeg_Maneuver_Type = 9 + DirectionsLeg_Maneuver_kRight DirectionsLeg_Maneuver_Type = 10 + DirectionsLeg_Maneuver_kSharpRight DirectionsLeg_Maneuver_Type = 11 + DirectionsLeg_Maneuver_kUturnRight DirectionsLeg_Maneuver_Type = 12 + DirectionsLeg_Maneuver_kUturnLeft DirectionsLeg_Maneuver_Type = 13 + DirectionsLeg_Maneuver_kSharpLeft DirectionsLeg_Maneuver_Type = 14 + DirectionsLeg_Maneuver_kLeft DirectionsLeg_Maneuver_Type = 15 + DirectionsLeg_Maneuver_kSlightLeft DirectionsLeg_Maneuver_Type = 16 + DirectionsLeg_Maneuver_kRampStraight DirectionsLeg_Maneuver_Type = 17 + DirectionsLeg_Maneuver_kRampRight DirectionsLeg_Maneuver_Type = 18 + DirectionsLeg_Maneuver_kRampLeft DirectionsLeg_Maneuver_Type = 19 + DirectionsLeg_Maneuver_kExitRight DirectionsLeg_Maneuver_Type = 20 + DirectionsLeg_Maneuver_kExitLeft DirectionsLeg_Maneuver_Type = 21 + DirectionsLeg_Maneuver_kStayStraight DirectionsLeg_Maneuver_Type = 22 + DirectionsLeg_Maneuver_kStayRight DirectionsLeg_Maneuver_Type = 23 + DirectionsLeg_Maneuver_kStayLeft DirectionsLeg_Maneuver_Type = 24 + DirectionsLeg_Maneuver_kMerge DirectionsLeg_Maneuver_Type = 25 + DirectionsLeg_Maneuver_kRoundaboutEnter DirectionsLeg_Maneuver_Type = 26 + DirectionsLeg_Maneuver_kRoundaboutExit DirectionsLeg_Maneuver_Type = 27 + DirectionsLeg_Maneuver_kFerryEnter DirectionsLeg_Maneuver_Type = 28 + DirectionsLeg_Maneuver_kFerryExit DirectionsLeg_Maneuver_Type = 29 + DirectionsLeg_Maneuver_kTransit DirectionsLeg_Maneuver_Type = 30 + DirectionsLeg_Maneuver_kTransitTransfer DirectionsLeg_Maneuver_Type = 31 + DirectionsLeg_Maneuver_kTransitRemainOn DirectionsLeg_Maneuver_Type = 32 + DirectionsLeg_Maneuver_kTransitConnectionStart DirectionsLeg_Maneuver_Type = 33 + DirectionsLeg_Maneuver_kTransitConnectionTransfer DirectionsLeg_Maneuver_Type = 34 + DirectionsLeg_Maneuver_kTransitConnectionDestination DirectionsLeg_Maneuver_Type = 35 + DirectionsLeg_Maneuver_kPostTransitConnectionDestination DirectionsLeg_Maneuver_Type = 36 + DirectionsLeg_Maneuver_kMergeRight DirectionsLeg_Maneuver_Type = 37 + DirectionsLeg_Maneuver_kMergeLeft DirectionsLeg_Maneuver_Type = 38 + DirectionsLeg_Maneuver_kElevatorEnter DirectionsLeg_Maneuver_Type = 39 + DirectionsLeg_Maneuver_kStepsEnter DirectionsLeg_Maneuver_Type = 40 + DirectionsLeg_Maneuver_kEscalatorEnter DirectionsLeg_Maneuver_Type = 41 + DirectionsLeg_Maneuver_kBuildingEnter DirectionsLeg_Maneuver_Type = 42 + DirectionsLeg_Maneuver_kBuildingExit DirectionsLeg_Maneuver_Type = 43 +) + +// Enum value maps for DirectionsLeg_Maneuver_Type. +var ( + DirectionsLeg_Maneuver_Type_name = map[int32]string{ + 0: "kNone", + 1: "kStart", + 2: "kStartRight", + 3: "kStartLeft", + 4: "kDestination", + 5: "kDestinationRight", + 6: "kDestinationLeft", + 7: "kBecomes", + 8: "kContinue", + 9: "kSlightRight", + 10: "kRight", + 11: "kSharpRight", + 12: "kUturnRight", + 13: "kUturnLeft", + 14: "kSharpLeft", + 15: "kLeft", + 16: "kSlightLeft", + 17: "kRampStraight", + 18: "kRampRight", + 19: "kRampLeft", + 20: "kExitRight", + 21: "kExitLeft", + 22: "kStayStraight", + 23: "kStayRight", + 24: "kStayLeft", + 25: "kMerge", + 26: "kRoundaboutEnter", + 27: "kRoundaboutExit", + 28: "kFerryEnter", + 29: "kFerryExit", + 30: "kTransit", + 31: "kTransitTransfer", + 32: "kTransitRemainOn", + 33: "kTransitConnectionStart", + 34: "kTransitConnectionTransfer", + 35: "kTransitConnectionDestination", + 36: "kPostTransitConnectionDestination", + 37: "kMergeRight", + 38: "kMergeLeft", + 39: "kElevatorEnter", + 40: "kStepsEnter", + 41: "kEscalatorEnter", + 42: "kBuildingEnter", + 43: "kBuildingExit", + } + DirectionsLeg_Maneuver_Type_value = map[string]int32{ + "kNone": 0, + "kStart": 1, + "kStartRight": 2, + "kStartLeft": 3, + "kDestination": 4, + "kDestinationRight": 5, + "kDestinationLeft": 6, + "kBecomes": 7, + "kContinue": 8, + "kSlightRight": 9, + "kRight": 10, + "kSharpRight": 11, + "kUturnRight": 12, + "kUturnLeft": 13, + "kSharpLeft": 14, + "kLeft": 15, + "kSlightLeft": 16, + "kRampStraight": 17, + "kRampRight": 18, + "kRampLeft": 19, + "kExitRight": 20, + "kExitLeft": 21, + "kStayStraight": 22, + "kStayRight": 23, + "kStayLeft": 24, + "kMerge": 25, + "kRoundaboutEnter": 26, + "kRoundaboutExit": 27, + "kFerryEnter": 28, + "kFerryExit": 29, + "kTransit": 30, + "kTransitTransfer": 31, + "kTransitRemainOn": 32, + "kTransitConnectionStart": 33, + "kTransitConnectionTransfer": 34, + "kTransitConnectionDestination": 35, + "kPostTransitConnectionDestination": 36, + "kMergeRight": 37, + "kMergeLeft": 38, + "kElevatorEnter": 39, + "kStepsEnter": 40, + "kEscalatorEnter": 41, + "kBuildingEnter": 42, + "kBuildingExit": 43, + } +) + +func (x DirectionsLeg_Maneuver_Type) Enum() *DirectionsLeg_Maneuver_Type { + p := new(DirectionsLeg_Maneuver_Type) + *p = x + return p +} + +func (x DirectionsLeg_Maneuver_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DirectionsLeg_Maneuver_Type) Descriptor() protoreflect.EnumDescriptor { + return file_directions_proto_enumTypes[2].Descriptor() +} + +func (DirectionsLeg_Maneuver_Type) Type() protoreflect.EnumType { + return &file_directions_proto_enumTypes[2] +} + +func (x DirectionsLeg_Maneuver_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DirectionsLeg_Maneuver_Type.Descriptor instead. +func (DirectionsLeg_Maneuver_Type) EnumDescriptor() ([]byte, []int) { + return file_directions_proto_rawDescGZIP(), []int{0, 2, 1} +} + +type DirectionsLeg_Maneuver_BssManeuverType int32 + +const ( + DirectionsLeg_Maneuver_kNoneAction DirectionsLeg_Maneuver_BssManeuverType = 0 + DirectionsLeg_Maneuver_kRentBikeAtBikeShare DirectionsLeg_Maneuver_BssManeuverType = 1 + DirectionsLeg_Maneuver_kReturnBikeAtBikeShare DirectionsLeg_Maneuver_BssManeuverType = 2 +) + +// Enum value maps for DirectionsLeg_Maneuver_BssManeuverType. +var ( + DirectionsLeg_Maneuver_BssManeuverType_name = map[int32]string{ + 0: "kNoneAction", + 1: "kRentBikeAtBikeShare", + 2: "kReturnBikeAtBikeShare", + } + DirectionsLeg_Maneuver_BssManeuverType_value = map[string]int32{ + "kNoneAction": 0, + "kRentBikeAtBikeShare": 1, + "kReturnBikeAtBikeShare": 2, + } +) + +func (x DirectionsLeg_Maneuver_BssManeuverType) Enum() *DirectionsLeg_Maneuver_BssManeuverType { + p := new(DirectionsLeg_Maneuver_BssManeuverType) + *p = x + return p +} + +func (x DirectionsLeg_Maneuver_BssManeuverType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DirectionsLeg_Maneuver_BssManeuverType) Descriptor() protoreflect.EnumDescriptor { + return file_directions_proto_enumTypes[3].Descriptor() +} + +func (DirectionsLeg_Maneuver_BssManeuverType) Type() protoreflect.EnumType { + return &file_directions_proto_enumTypes[3] +} + +func (x DirectionsLeg_Maneuver_BssManeuverType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DirectionsLeg_Maneuver_BssManeuverType.Descriptor instead. +func (DirectionsLeg_Maneuver_BssManeuverType) EnumDescriptor() ([]byte, []int) { + return file_directions_proto_rawDescGZIP(), []int{0, 2, 2} +} + +type DirectionsLeg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TripId uint64 `protobuf:"varint,1,opt,name=trip_id,json=tripId,proto3" json:"trip_id,omitempty"` + LegId uint32 `protobuf:"varint,2,opt,name=leg_id,json=legId,proto3" json:"leg_id,omitempty"` + LegCount uint32 `protobuf:"varint,3,opt,name=leg_count,json=legCount,proto3" json:"leg_count,omitempty"` + Location []*Location `protobuf:"bytes,4,rep,name=location,proto3" json:"location,omitempty"` + Summary *DirectionsLeg_Summary `protobuf:"bytes,5,opt,name=summary,proto3" json:"summary,omitempty"` + Maneuver []*DirectionsLeg_Maneuver `protobuf:"bytes,6,rep,name=maneuver,proto3" json:"maneuver,omitempty"` + Shape string `protobuf:"bytes,7,opt,name=shape,proto3" json:"shape,omitempty"` +} + +func (x *DirectionsLeg) Reset() { + *x = DirectionsLeg{} + if protoimpl.UnsafeEnabled { + mi := &file_directions_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DirectionsLeg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DirectionsLeg) ProtoMessage() {} + +func (x *DirectionsLeg) ProtoReflect() protoreflect.Message { + mi := &file_directions_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 DirectionsLeg.ProtoReflect.Descriptor instead. +func (*DirectionsLeg) Descriptor() ([]byte, []int) { + return file_directions_proto_rawDescGZIP(), []int{0} +} + +func (x *DirectionsLeg) GetTripId() uint64 { + if x != nil { + return x.TripId + } + return 0 +} + +func (x *DirectionsLeg) GetLegId() uint32 { + if x != nil { + return x.LegId + } + return 0 +} + +func (x *DirectionsLeg) GetLegCount() uint32 { + if x != nil { + return x.LegCount + } + return 0 +} + +func (x *DirectionsLeg) GetLocation() []*Location { + if x != nil { + return x.Location + } + return nil +} + +func (x *DirectionsLeg) GetSummary() *DirectionsLeg_Summary { + if x != nil { + return x.Summary + } + return nil +} + +func (x *DirectionsLeg) GetManeuver() []*DirectionsLeg_Maneuver { + if x != nil { + return x.Maneuver + } + return nil +} + +func (x *DirectionsLeg) GetShape() string { + if x != nil { + return x.Shape + } + return "" +} + +type DirectionsRoute struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Legs []*DirectionsLeg `protobuf:"bytes,1,rep,name=legs,proto3" json:"legs,omitempty"` +} + +func (x *DirectionsRoute) Reset() { + *x = DirectionsRoute{} + if protoimpl.UnsafeEnabled { + mi := &file_directions_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DirectionsRoute) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DirectionsRoute) ProtoMessage() {} + +func (x *DirectionsRoute) ProtoReflect() protoreflect.Message { + mi := &file_directions_proto_msgTypes[1] + 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 DirectionsRoute.ProtoReflect.Descriptor instead. +func (*DirectionsRoute) Descriptor() ([]byte, []int) { + return file_directions_proto_rawDescGZIP(), []int{1} +} + +func (x *DirectionsRoute) GetLegs() []*DirectionsLeg { + if x != nil { + return x.Legs + } + return nil +} + +type Directions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Routes []*DirectionsRoute `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"` +} + +func (x *Directions) Reset() { + *x = Directions{} + if protoimpl.UnsafeEnabled { + mi := &file_directions_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Directions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Directions) ProtoMessage() {} + +func (x *Directions) ProtoReflect() protoreflect.Message { + mi := &file_directions_proto_msgTypes[2] + 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 Directions.ProtoReflect.Descriptor instead. +func (*Directions) Descriptor() ([]byte, []int) { + return file_directions_proto_rawDescGZIP(), []int{2} +} + +func (x *Directions) GetRoutes() []*DirectionsRoute { + if x != nil { + return x.Routes + } + return nil +} + +type DirectionsLeg_Summary struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Length float32 `protobuf:"fixed32,1,opt,name=length,proto3" json:"length,omitempty"` // kilometers or miles based on units + Time float64 `protobuf:"fixed64,2,opt,name=time,proto3" json:"time,omitempty"` // seconds + Bbox *BoundingBox `protobuf:"bytes,3,opt,name=bbox,proto3" json:"bbox,omitempty"` // Bounding box of the shape + HasTimeRestrictions bool `protobuf:"varint,4,opt,name=has_time_restrictions,json=hasTimeRestrictions,proto3" json:"has_time_restrictions,omitempty"` // Does the route contain any time restrictions? + HasToll bool `protobuf:"varint,5,opt,name=has_toll,json=hasToll,proto3" json:"has_toll,omitempty"` + HasFerry bool `protobuf:"varint,6,opt,name=has_ferry,json=hasFerry,proto3" json:"has_ferry,omitempty"` + HasHighway bool `protobuf:"varint,7,opt,name=has_highway,json=hasHighway,proto3" json:"has_highway,omitempty"` +} + +func (x *DirectionsLeg_Summary) Reset() { + *x = DirectionsLeg_Summary{} + if protoimpl.UnsafeEnabled { + mi := &file_directions_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DirectionsLeg_Summary) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DirectionsLeg_Summary) ProtoMessage() {} + +func (x *DirectionsLeg_Summary) ProtoReflect() protoreflect.Message { + mi := &file_directions_proto_msgTypes[3] + 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 DirectionsLeg_Summary.ProtoReflect.Descriptor instead. +func (*DirectionsLeg_Summary) Descriptor() ([]byte, []int) { + return file_directions_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *DirectionsLeg_Summary) GetLength() float32 { + if x != nil { + return x.Length + } + return 0 +} + +func (x *DirectionsLeg_Summary) GetTime() float64 { + if x != nil { + return x.Time + } + return 0 +} + +func (x *DirectionsLeg_Summary) GetBbox() *BoundingBox { + if x != nil { + return x.Bbox + } + return nil +} + +func (x *DirectionsLeg_Summary) GetHasTimeRestrictions() bool { + if x != nil { + return x.HasTimeRestrictions + } + return false +} + +func (x *DirectionsLeg_Summary) GetHasToll() bool { + if x != nil { + return x.HasToll + } + return false +} + +func (x *DirectionsLeg_Summary) GetHasFerry() bool { + if x != nil { + return x.HasFerry + } + return false +} + +func (x *DirectionsLeg_Summary) GetHasHighway() bool { + if x != nil { + return x.HasHighway + } + return false +} + +type DirectionsLeg_GuidanceView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DataId string `protobuf:"bytes,1,opt,name=data_id,json=dataId,proto3" json:"data_id,omitempty"` // TODO future enum as data id? + Type DirectionsLeg_GuidanceView_Type `protobuf:"varint,2,opt,name=type,proto3,enum=valhalla.DirectionsLeg_GuidanceView_Type" json:"type,omitempty"` // The type of guidance view + BaseId string `protobuf:"bytes,3,opt,name=base_id,json=baseId,proto3" json:"base_id,omitempty"` // Image base id + OverlayIds []string `protobuf:"bytes,4,rep,name=overlay_ids,json=overlayIds,proto3" json:"overlay_ids,omitempty"` // List of overlay ids +} + +func (x *DirectionsLeg_GuidanceView) Reset() { + *x = DirectionsLeg_GuidanceView{} + if protoimpl.UnsafeEnabled { + mi := &file_directions_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DirectionsLeg_GuidanceView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DirectionsLeg_GuidanceView) ProtoMessage() {} + +func (x *DirectionsLeg_GuidanceView) ProtoReflect() protoreflect.Message { + mi := &file_directions_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DirectionsLeg_GuidanceView.ProtoReflect.Descriptor instead. +func (*DirectionsLeg_GuidanceView) Descriptor() ([]byte, []int) { + return file_directions_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *DirectionsLeg_GuidanceView) GetDataId() string { + if x != nil { + return x.DataId + } + return "" +} + +func (x *DirectionsLeg_GuidanceView) GetType() DirectionsLeg_GuidanceView_Type { + if x != nil { + return x.Type + } + return DirectionsLeg_GuidanceView_kJunction +} + +func (x *DirectionsLeg_GuidanceView) GetBaseId() string { + if x != nil { + return x.BaseId + } + return "" +} + +func (x *DirectionsLeg_GuidanceView) GetOverlayIds() []string { + if x != nil { + return x.OverlayIds + } + return nil +} + +type DirectionsLeg_Maneuver struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type DirectionsLeg_Maneuver_Type `protobuf:"varint,1,opt,name=type,proto3,enum=valhalla.DirectionsLeg_Maneuver_Type" json:"type,omitempty"` // Maneuver type + TextInstruction string `protobuf:"bytes,2,opt,name=text_instruction,json=textInstruction,proto3" json:"text_instruction,omitempty"` // text instruction + StreetName []*StreetName `protobuf:"bytes,3,rep,name=street_name,json=streetName,proto3" json:"street_name,omitempty"` // street names + Length float32 `protobuf:"fixed32,4,opt,name=length,proto3" json:"length,omitempty"` // kilometers or miles based on units + Time float64 `protobuf:"fixed64,5,opt,name=time,proto3" json:"time,omitempty"` // seconds + BeginCardinalDirection DirectionsLeg_Maneuver_CardinalDirection `protobuf:"varint,6,opt,name=begin_cardinal_direction,json=beginCardinalDirection,proto3,enum=valhalla.DirectionsLeg_Maneuver_CardinalDirection" json:"begin_cardinal_direction,omitempty"` // CardinalDirection + BeginHeading uint32 `protobuf:"varint,7,opt,name=begin_heading,json=beginHeading,proto3" json:"begin_heading,omitempty"` // 0-360 + BeginShapeIndex uint32 `protobuf:"varint,8,opt,name=begin_shape_index,json=beginShapeIndex,proto3" json:"begin_shape_index,omitempty"` // inclusive index + EndShapeIndex uint32 `protobuf:"varint,9,opt,name=end_shape_index,json=endShapeIndex,proto3" json:"end_shape_index,omitempty"` // inclusive index + PortionsToll bool `protobuf:"varint,10,opt,name=portions_toll,json=portionsToll,proto3" json:"portions_toll,omitempty"` // has portions toll + PortionsUnpaved bool `protobuf:"varint,11,opt,name=portions_unpaved,json=portionsUnpaved,proto3" json:"portions_unpaved,omitempty"` // has portions unpaved + VerbalTransitionAlertInstruction string `protobuf:"bytes,12,opt,name=verbal_transition_alert_instruction,json=verbalTransitionAlertInstruction,proto3" json:"verbal_transition_alert_instruction,omitempty"` // verbal transition alert instruction + VerbalPreTransitionInstruction string `protobuf:"bytes,13,opt,name=verbal_pre_transition_instruction,json=verbalPreTransitionInstruction,proto3" json:"verbal_pre_transition_instruction,omitempty"` // verbal pre-transition instruction + VerbalPostTransitionInstruction string `protobuf:"bytes,14,opt,name=verbal_post_transition_instruction,json=verbalPostTransitionInstruction,proto3" json:"verbal_post_transition_instruction,omitempty"` // verbal post-transition instruction + BeginStreetName []*StreetName `protobuf:"bytes,15,rep,name=begin_street_name,json=beginStreetName,proto3" json:"begin_street_name,omitempty"` // begin street names + Sign *TripSign `protobuf:"bytes,16,opt,name=sign,proto3" json:"sign,omitempty"` // associated sign information, for example: exit number + RoundaboutExitCount uint32 `protobuf:"varint,17,opt,name=roundabout_exit_count,json=roundaboutExitCount,proto3" json:"roundabout_exit_count,omitempty"` // which spoke to exit roundabout after entering + DepartInstruction string `protobuf:"bytes,18,opt,name=depart_instruction,json=departInstruction,proto3" json:"depart_instruction,omitempty"` // depart instruction - used with transit + VerbalDepartInstruction string `protobuf:"bytes,19,opt,name=verbal_depart_instruction,json=verbalDepartInstruction,proto3" json:"verbal_depart_instruction,omitempty"` // verbal depart instruction - used with transit + ArriveInstruction string `protobuf:"bytes,20,opt,name=arrive_instruction,json=arriveInstruction,proto3" json:"arrive_instruction,omitempty"` // arrive instruction - used with transit + VerbalArriveInstruction string `protobuf:"bytes,21,opt,name=verbal_arrive_instruction,json=verbalArriveInstruction,proto3" json:"verbal_arrive_instruction,omitempty"` // verbal arrive instruction - used with transit + TransitInfo *TransitRouteInfo `protobuf:"bytes,22,opt,name=transit_info,json=transitInfo,proto3" json:"transit_info,omitempty"` // transit attributes including a list of transit stops + VerbalMultiCue bool `protobuf:"varint,23,opt,name=verbal_multi_cue,json=verbalMultiCue,proto3" json:"verbal_multi_cue,omitempty"` // verbal multi-cue flag + TravelMode TravelMode `protobuf:"varint,24,opt,name=travel_mode,json=travelMode,proto3,enum=valhalla.TravelMode" json:"travel_mode,omitempty"` // travel mode + VehicleType VehicleType `protobuf:"varint,25,opt,name=vehicle_type,json=vehicleType,proto3,enum=valhalla.VehicleType" json:"vehicle_type,omitempty"` + PedestrianType PedestrianType `protobuf:"varint,26,opt,name=pedestrian_type,json=pedestrianType,proto3,enum=valhalla.PedestrianType" json:"pedestrian_type,omitempty"` + BicycleType BicycleType `protobuf:"varint,27,opt,name=bicycle_type,json=bicycleType,proto3,enum=valhalla.BicycleType" json:"bicycle_type,omitempty"` + TransitType TransitType `protobuf:"varint,28,opt,name=transit_type,json=transitType,proto3,enum=valhalla.TransitType" json:"transit_type,omitempty"` + BeginPathIndex uint32 `protobuf:"varint,29,opt,name=begin_path_index,json=beginPathIndex,proto3" json:"begin_path_index,omitempty"` // Index in TripPath for first node of maneuver + EndPathIndex uint32 `protobuf:"varint,30,opt,name=end_path_index,json=endPathIndex,proto3" json:"end_path_index,omitempty"` // Index in TripPath for last node of maneuver + ToStayOn bool `protobuf:"varint,31,opt,name=to_stay_on,json=toStayOn,proto3" json:"to_stay_on,omitempty"` // True if same name as previous maneuver + RoundaboutExitStreetNames []*StreetName `protobuf:"bytes,32,rep,name=roundabout_exit_street_names,json=roundaboutExitStreetNames,proto3" json:"roundabout_exit_street_names,omitempty"` // Outbound street names from roundabout + TurnDegree uint32 `protobuf:"varint,33,opt,name=turn_degree,json=turnDegree,proto3" json:"turn_degree,omitempty"` // Turn degree of maneuver + HasTimeRestrictions bool `protobuf:"varint,34,opt,name=has_time_restrictions,json=hasTimeRestrictions,proto3" json:"has_time_restrictions,omitempty"` // Whether edge has any time restrictions or not + GuidanceViews []*DirectionsLeg_GuidanceView `protobuf:"bytes,35,rep,name=guidance_views,json=guidanceViews,proto3" json:"guidance_views,omitempty"` // List of guidance views + BssManeuverType DirectionsLeg_Maneuver_BssManeuverType `protobuf:"varint,36,opt,name=bss_maneuver_type,json=bssManeuverType,proto3,enum=valhalla.DirectionsLeg_Maneuver_BssManeuverType" json:"bss_maneuver_type,omitempty"` + VerbalSuccinctTransitionInstruction string `protobuf:"bytes,37,opt,name=verbal_succinct_transition_instruction,json=verbalSuccinctTransitionInstruction,proto3" json:"verbal_succinct_transition_instruction,omitempty"` // verbal succinct transition instruction + BssInfo *BikeShareStationInfo `protobuf:"bytes,38,opt,name=bss_info,json=bssInfo,proto3" json:"bss_info,omitempty"` // Bike Share Station Info + PortionsHighway bool `protobuf:"varint,39,opt,name=portions_highway,json=portionsHighway,proto3" json:"portions_highway,omitempty"` // has portions highway + PortionsFerry bool `protobuf:"varint,40,opt,name=portions_ferry,json=portionsFerry,proto3" json:"portions_ferry,omitempty"` // has portions ferry +} + +func (x *DirectionsLeg_Maneuver) Reset() { + *x = DirectionsLeg_Maneuver{} + if protoimpl.UnsafeEnabled { + mi := &file_directions_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DirectionsLeg_Maneuver) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DirectionsLeg_Maneuver) ProtoMessage() {} + +func (x *DirectionsLeg_Maneuver) ProtoReflect() protoreflect.Message { + mi := &file_directions_proto_msgTypes[5] + 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 DirectionsLeg_Maneuver.ProtoReflect.Descriptor instead. +func (*DirectionsLeg_Maneuver) Descriptor() ([]byte, []int) { + return file_directions_proto_rawDescGZIP(), []int{0, 2} +} + +func (x *DirectionsLeg_Maneuver) GetType() DirectionsLeg_Maneuver_Type { + if x != nil { + return x.Type + } + return DirectionsLeg_Maneuver_kNone +} + +func (x *DirectionsLeg_Maneuver) GetTextInstruction() string { + if x != nil { + return x.TextInstruction + } + return "" +} + +func (x *DirectionsLeg_Maneuver) GetStreetName() []*StreetName { + if x != nil { + return x.StreetName + } + return nil +} + +func (x *DirectionsLeg_Maneuver) GetLength() float32 { + if x != nil { + return x.Length + } + return 0 +} + +func (x *DirectionsLeg_Maneuver) GetTime() float64 { + if x != nil { + return x.Time + } + return 0 +} + +func (x *DirectionsLeg_Maneuver) GetBeginCardinalDirection() DirectionsLeg_Maneuver_CardinalDirection { + if x != nil { + return x.BeginCardinalDirection + } + return DirectionsLeg_Maneuver_kNorth +} + +func (x *DirectionsLeg_Maneuver) GetBeginHeading() uint32 { + if x != nil { + return x.BeginHeading + } + return 0 +} + +func (x *DirectionsLeg_Maneuver) GetBeginShapeIndex() uint32 { + if x != nil { + return x.BeginShapeIndex + } + return 0 +} + +func (x *DirectionsLeg_Maneuver) GetEndShapeIndex() uint32 { + if x != nil { + return x.EndShapeIndex + } + return 0 +} + +func (x *DirectionsLeg_Maneuver) GetPortionsToll() bool { + if x != nil { + return x.PortionsToll + } + return false +} + +func (x *DirectionsLeg_Maneuver) GetPortionsUnpaved() bool { + if x != nil { + return x.PortionsUnpaved + } + return false +} + +func (x *DirectionsLeg_Maneuver) GetVerbalTransitionAlertInstruction() string { + if x != nil { + return x.VerbalTransitionAlertInstruction + } + return "" +} + +func (x *DirectionsLeg_Maneuver) GetVerbalPreTransitionInstruction() string { + if x != nil { + return x.VerbalPreTransitionInstruction + } + return "" +} + +func (x *DirectionsLeg_Maneuver) GetVerbalPostTransitionInstruction() string { + if x != nil { + return x.VerbalPostTransitionInstruction + } + return "" +} + +func (x *DirectionsLeg_Maneuver) GetBeginStreetName() []*StreetName { + if x != nil { + return x.BeginStreetName + } + return nil +} + +func (x *DirectionsLeg_Maneuver) GetSign() *TripSign { + if x != nil { + return x.Sign + } + return nil +} + +func (x *DirectionsLeg_Maneuver) GetRoundaboutExitCount() uint32 { + if x != nil { + return x.RoundaboutExitCount + } + return 0 +} + +func (x *DirectionsLeg_Maneuver) GetDepartInstruction() string { + if x != nil { + return x.DepartInstruction + } + return "" +} + +func (x *DirectionsLeg_Maneuver) GetVerbalDepartInstruction() string { + if x != nil { + return x.VerbalDepartInstruction + } + return "" +} + +func (x *DirectionsLeg_Maneuver) GetArriveInstruction() string { + if x != nil { + return x.ArriveInstruction + } + return "" +} + +func (x *DirectionsLeg_Maneuver) GetVerbalArriveInstruction() string { + if x != nil { + return x.VerbalArriveInstruction + } + return "" +} + +func (x *DirectionsLeg_Maneuver) GetTransitInfo() *TransitRouteInfo { + if x != nil { + return x.TransitInfo + } + return nil +} + +func (x *DirectionsLeg_Maneuver) GetVerbalMultiCue() bool { + if x != nil { + return x.VerbalMultiCue + } + return false +} + +func (x *DirectionsLeg_Maneuver) GetTravelMode() TravelMode { + if x != nil { + return x.TravelMode + } + return TravelMode_kDrive +} + +func (x *DirectionsLeg_Maneuver) GetVehicleType() VehicleType { + if x != nil { + return x.VehicleType + } + return VehicleType_kCar +} + +func (x *DirectionsLeg_Maneuver) GetPedestrianType() PedestrianType { + if x != nil { + return x.PedestrianType + } + return PedestrianType_kFoot +} + +func (x *DirectionsLeg_Maneuver) GetBicycleType() BicycleType { + if x != nil { + return x.BicycleType + } + return BicycleType_kRoad +} + +func (x *DirectionsLeg_Maneuver) GetTransitType() TransitType { + if x != nil { + return x.TransitType + } + return TransitType_kTram +} + +func (x *DirectionsLeg_Maneuver) GetBeginPathIndex() uint32 { + if x != nil { + return x.BeginPathIndex + } + return 0 +} + +func (x *DirectionsLeg_Maneuver) GetEndPathIndex() uint32 { + if x != nil { + return x.EndPathIndex + } + return 0 +} + +func (x *DirectionsLeg_Maneuver) GetToStayOn() bool { + if x != nil { + return x.ToStayOn + } + return false +} + +func (x *DirectionsLeg_Maneuver) GetRoundaboutExitStreetNames() []*StreetName { + if x != nil { + return x.RoundaboutExitStreetNames + } + return nil +} + +func (x *DirectionsLeg_Maneuver) GetTurnDegree() uint32 { + if x != nil { + return x.TurnDegree + } + return 0 +} + +func (x *DirectionsLeg_Maneuver) GetHasTimeRestrictions() bool { + if x != nil { + return x.HasTimeRestrictions + } + return false +} + +func (x *DirectionsLeg_Maneuver) GetGuidanceViews() []*DirectionsLeg_GuidanceView { + if x != nil { + return x.GuidanceViews + } + return nil +} + +func (x *DirectionsLeg_Maneuver) GetBssManeuverType() DirectionsLeg_Maneuver_BssManeuverType { + if x != nil { + return x.BssManeuverType + } + return DirectionsLeg_Maneuver_kNoneAction +} + +func (x *DirectionsLeg_Maneuver) GetVerbalSuccinctTransitionInstruction() string { + if x != nil { + return x.VerbalSuccinctTransitionInstruction + } + return "" +} + +func (x *DirectionsLeg_Maneuver) GetBssInfo() *BikeShareStationInfo { + if x != nil { + return x.BssInfo + } + return nil +} + +func (x *DirectionsLeg_Maneuver) GetPortionsHighway() bool { + if x != nil { + return x.PortionsHighway + } + return false +} + +func (x *DirectionsLeg_Maneuver) GetPortionsFerry() bool { + if x != nil { + return x.PortionsFerry + } + return false +} + +var File_directions_proto protoreflect.FileDescriptor + +var file_directions_proto_rawDesc = []byte{ + 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x08, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x1a, 0x0c, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x73, 0x69, 0x67, 0x6e, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf0, 0x1f, 0x0a, 0x0d, 0x44, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x65, 0x67, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x70, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x72, 0x69, 0x70, 0x49, + 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x65, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x67, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x67, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, + 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, + 0x61, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x65, 0x67, 0x2e, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x12, 0x3c, 0x0a, 0x08, 0x6d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x44, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x65, 0x67, 0x2e, 0x4d, 0x61, 0x6e, 0x65, + 0x75, 0x76, 0x65, 0x72, 0x52, 0x08, 0x6d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, 0x72, 0x12, 0x14, + 0x0a, 0x05, 0x73, 0x68, 0x61, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, + 0x68, 0x61, 0x70, 0x65, 0x1a, 0xed, 0x01, 0x0a, 0x07, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x04, + 0x62, 0x62, 0x6f, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, + 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, + 0x78, 0x52, 0x04, 0x62, 0x62, 0x6f, 0x78, 0x12, 0x32, 0x0a, 0x15, 0x68, 0x61, 0x73, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x68, 0x61, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x52, + 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x68, + 0x61, 0x73, 0x5f, 0x74, 0x6f, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, + 0x61, 0x73, 0x54, 0x6f, 0x6c, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x66, 0x65, + 0x72, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x46, 0x65, + 0x72, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x77, + 0x61, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x48, 0x69, 0x67, + 0x68, 0x77, 0x61, 0x79, 0x1a, 0xad, 0x02, 0x0a, 0x0c, 0x47, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, + 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x64, 0x12, 0x3d, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x4c, 0x65, 0x67, 0x2e, 0x47, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, + 0x07, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x62, 0x61, 0x73, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, + 0x79, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x76, 0x65, + 0x72, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x6b, 0x53, 0x61, 0x70, 0x61, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x54, + 0x6f, 0x6c, 0x6c, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, + 0x41, 0x66, 0x74, 0x65, 0x72, 0x74, 0x6f, 0x6c, 0x6c, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x6b, + 0x45, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x45, 0x78, 0x69, 0x74, 0x10, 0x05, + 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x43, 0x69, 0x74, 0x79, 0x72, 0x65, 0x61, 0x6c, 0x10, 0x06, 0x12, + 0x13, 0x0a, 0x0f, 0x6b, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x6f, 0x61, + 0x72, 0x64, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x62, 0x6f, 0x61, + 0x72, 0x64, 0x10, 0x08, 0x1a, 0xb2, 0x19, 0x0a, 0x08, 0x4d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, + 0x72, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x65, 0x67, 0x2e, 0x4d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, + 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, + 0x74, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x65, 0x65, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x6c, 0x0a, 0x18, 0x62, 0x65, + 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x4c, 0x65, 0x67, 0x2e, 0x4d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, 0x72, 0x2e, 0x43, + 0x61, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x16, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x44, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x65, 0x67, 0x69, + 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, + 0x11, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x53, + 0x68, 0x61, 0x70, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x64, + 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x68, 0x61, 0x70, 0x65, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, + 0x6c, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x54, 0x6f, 0x6c, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x5f, 0x75, 0x6e, 0x70, 0x61, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x55, 0x6e, 0x70, 0x61, 0x76, 0x65, + 0x64, 0x12, 0x4d, 0x0a, 0x23, 0x76, 0x65, 0x72, 0x62, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x20, + 0x76, 0x65, 0x72, 0x62, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x6c, 0x65, 0x72, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x49, 0x0a, 0x21, 0x76, 0x65, 0x72, 0x62, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x5f, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x76, 0x65, 0x72, + 0x62, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x22, 0x76, + 0x65, 0x72, 0x62, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1f, 0x76, 0x65, 0x72, 0x62, 0x61, 0x6c, 0x50, + 0x6f, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x11, 0x62, 0x65, 0x67, 0x69, + 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x53, + 0x74, 0x72, 0x65, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0f, 0x62, 0x65, 0x67, 0x69, 0x6e, + 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x69, + 0x67, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x04, 0x73, 0x69, + 0x67, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x62, 0x6f, 0x75, 0x74, + 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x13, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x45, 0x78, 0x69, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x19, 0x76, 0x65, 0x72, 0x62, 0x61, 0x6c, 0x5f, + 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x76, 0x65, 0x72, 0x62, 0x61, 0x6c, + 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, + 0x72, 0x72, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x3a, 0x0a, 0x19, 0x76, 0x65, 0x72, 0x62, 0x61, 0x6c, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, + 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x17, 0x76, 0x65, 0x72, 0x62, 0x61, 0x6c, 0x41, 0x72, 0x72, 0x69, 0x76, + 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0c, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x10, 0x76, + 0x65, 0x72, 0x62, 0x61, 0x6c, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x63, 0x75, 0x65, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x76, 0x65, 0x72, 0x62, 0x61, 0x6c, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x43, 0x75, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, + 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, + 0x52, 0x0a, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x0c, + 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x56, 0x65, + 0x68, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x76, 0x65, 0x68, 0x69, 0x63, + 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x0f, 0x70, 0x65, 0x64, 0x65, 0x73, 0x74, + 0x72, 0x69, 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x18, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x50, 0x65, 0x64, 0x65, 0x73, + 0x74, 0x72, 0x69, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x70, 0x65, 0x64, 0x65, 0x73, + 0x74, 0x72, 0x69, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x69, 0x63, + 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x42, 0x69, 0x63, 0x79, 0x63, + 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, + 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, + 0x10, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x50, 0x61, + 0x74, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x6e, 0x64, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, + 0x0a, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x79, 0x5f, 0x6f, 0x6e, 0x18, 0x1f, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x74, 0x6f, 0x53, 0x74, 0x61, 0x79, 0x4f, 0x6e, 0x12, 0x55, 0x0a, 0x1c, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x73, + 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x19, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x62, + 0x6f, 0x75, 0x74, 0x45, 0x78, 0x69, 0x74, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x64, 0x65, 0x67, 0x72, 0x65, + 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x65, 0x67, + 0x72, 0x65, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x22, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x13, 0x68, 0x61, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x74, 0x72, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4b, 0x0a, 0x0e, 0x67, 0x75, 0x69, 0x64, 0x61, + 0x6e, 0x63, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x65, 0x67, 0x2e, 0x47, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, + 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x0d, 0x67, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x73, 0x12, 0x5c, 0x0a, 0x11, 0x62, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x65, + 0x75, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x30, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x65, 0x67, 0x2e, 0x4d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, + 0x72, 0x2e, 0x42, 0x73, 0x73, 0x4d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x0f, 0x62, 0x73, 0x73, 0x4d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x53, 0x0a, 0x26, 0x76, 0x65, 0x72, 0x62, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x63, + 0x63, 0x69, 0x6e, 0x63, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x25, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x23, 0x76, 0x65, 0x72, 0x62, 0x61, 0x6c, 0x53, 0x75, 0x63, 0x63, 0x69, 0x6e, + 0x63, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x08, 0x62, 0x73, 0x73, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x76, 0x61, 0x6c, 0x68, + 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x42, 0x69, 0x6b, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x62, 0x73, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x68, + 0x69, 0x67, 0x68, 0x77, 0x61, 0x79, 0x18, 0x27, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x70, 0x6f, + 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x69, 0x67, 0x68, 0x77, 0x61, 0x79, 0x12, 0x25, 0x0a, + 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x66, 0x65, 0x72, 0x72, 0x79, 0x18, + 0x28, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, + 0x65, 0x72, 0x72, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x43, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x6c, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x4e, + 0x6f, 0x72, 0x74, 0x68, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x4e, 0x6f, 0x72, 0x74, 0x68, + 0x45, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x45, 0x61, 0x73, 0x74, 0x10, + 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x45, 0x61, 0x73, 0x74, 0x10, + 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x10, 0x04, 0x12, 0x0e, 0x0a, + 0x0a, 0x6b, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x57, 0x65, 0x73, 0x74, 0x10, 0x05, 0x12, 0x09, 0x0a, + 0x05, 0x6b, 0x57, 0x65, 0x73, 0x74, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x4e, 0x6f, 0x72, + 0x74, 0x68, 0x57, 0x65, 0x73, 0x74, 0x10, 0x07, 0x22, 0xb4, 0x06, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, + 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x52, 0x69, 0x67, 0x68, 0x74, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x44, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x6b, + 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x69, 0x67, 0x68, 0x74, + 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4c, 0x65, 0x66, 0x74, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x42, 0x65, 0x63, + 0x6f, 0x6d, 0x65, 0x73, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x43, 0x6f, 0x6e, 0x74, 0x69, + 0x6e, 0x75, 0x65, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x53, 0x6c, 0x69, 0x67, 0x68, 0x74, + 0x52, 0x69, 0x67, 0x68, 0x74, 0x10, 0x09, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x52, 0x69, 0x67, 0x68, + 0x74, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x53, 0x68, 0x61, 0x72, 0x70, 0x52, 0x69, 0x67, + 0x68, 0x74, 0x10, 0x0b, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x55, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x69, + 0x67, 0x68, 0x74, 0x10, 0x0c, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x55, 0x74, 0x75, 0x72, 0x6e, 0x4c, + 0x65, 0x66, 0x74, 0x10, 0x0d, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x53, 0x68, 0x61, 0x72, 0x70, 0x4c, + 0x65, 0x66, 0x74, 0x10, 0x0e, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x4c, 0x65, 0x66, 0x74, 0x10, 0x0f, + 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x53, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x10, + 0x10, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x52, 0x61, 0x6d, 0x70, 0x53, 0x74, 0x72, 0x61, 0x69, 0x67, + 0x68, 0x74, 0x10, 0x11, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x52, 0x61, 0x6d, 0x70, 0x52, 0x69, 0x67, + 0x68, 0x74, 0x10, 0x12, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x52, 0x61, 0x6d, 0x70, 0x4c, 0x65, 0x66, + 0x74, 0x10, 0x13, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x45, 0x78, 0x69, 0x74, 0x52, 0x69, 0x67, 0x68, + 0x74, 0x10, 0x14, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x45, 0x78, 0x69, 0x74, 0x4c, 0x65, 0x66, 0x74, + 0x10, 0x15, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x53, 0x74, 0x61, 0x79, 0x53, 0x74, 0x72, 0x61, 0x69, + 0x67, 0x68, 0x74, 0x10, 0x16, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x53, 0x74, 0x61, 0x79, 0x52, 0x69, + 0x67, 0x68, 0x74, 0x10, 0x17, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x53, 0x74, 0x61, 0x79, 0x4c, 0x65, + 0x66, 0x74, 0x10, 0x18, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x10, 0x19, + 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x45, + 0x6e, 0x74, 0x65, 0x72, 0x10, 0x1a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x61, 0x62, 0x6f, 0x75, 0x74, 0x45, 0x78, 0x69, 0x74, 0x10, 0x1b, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, + 0x46, 0x65, 0x72, 0x72, 0x79, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0x1c, 0x12, 0x0e, 0x0a, 0x0a, + 0x6b, 0x46, 0x65, 0x72, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x10, 0x1d, 0x12, 0x0c, 0x0a, 0x08, + 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x10, 0x1e, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x10, 0x1f, + 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, + 0x69, 0x6e, 0x4f, 0x6e, 0x10, 0x20, 0x12, 0x1b, 0x0a, 0x17, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x10, 0x21, 0x12, 0x1e, 0x0a, 0x1a, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x10, 0x22, 0x12, 0x21, 0x0a, 0x1d, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x23, 0x12, 0x25, 0x0a, 0x21, 0x6b, 0x50, 0x6f, 0x73, 0x74, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x24, 0x12, 0x0f, 0x0a, + 0x0b, 0x6b, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x52, 0x69, 0x67, 0x68, 0x74, 0x10, 0x25, 0x12, 0x0e, + 0x0a, 0x0a, 0x6b, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x4c, 0x65, 0x66, 0x74, 0x10, 0x26, 0x12, 0x12, + 0x0a, 0x0e, 0x6b, 0x45, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, + 0x10, 0x27, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x53, 0x74, 0x65, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x65, + 0x72, 0x10, 0x28, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x45, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x74, 0x6f, + 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0x29, 0x12, 0x12, 0x0a, 0x0e, 0x6b, 0x42, 0x75, 0x69, + 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0x2a, 0x12, 0x11, 0x0a, 0x0d, + 0x6b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x69, 0x74, 0x10, 0x2b, 0x22, + 0x58, 0x0a, 0x0f, 0x42, 0x73, 0x73, 0x4d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x4e, 0x6f, 0x6e, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x6b, 0x52, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x6b, 0x65, + 0x41, 0x74, 0x42, 0x69, 0x6b, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, + 0x16, 0x6b, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, 0x69, 0x6b, 0x65, 0x41, 0x74, 0x42, 0x69, + 0x6b, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x10, 0x02, 0x22, 0x3e, 0x0a, 0x0f, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x04, + 0x6c, 0x65, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x61, 0x6c, + 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x4c, 0x65, 0x67, 0x52, 0x04, 0x6c, 0x65, 0x67, 0x73, 0x22, 0x3f, 0x0a, 0x0a, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, + 0x6c, 0x61, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x42, 0x40, 0x48, 0x03, 0x5a, 0x3c, + 0x67, 0x69, 0x74, 0x2e, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, + 0x6f, 0x70, 0x67, 0x6f, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x72, 0x6f, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x50, 0x00, 0x50, 0x01, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_directions_proto_rawDescOnce sync.Once + file_directions_proto_rawDescData = file_directions_proto_rawDesc +) + +func file_directions_proto_rawDescGZIP() []byte { + file_directions_proto_rawDescOnce.Do(func() { + file_directions_proto_rawDescData = protoimpl.X.CompressGZIP(file_directions_proto_rawDescData) + }) + return file_directions_proto_rawDescData +} + +var file_directions_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_directions_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_directions_proto_goTypes = []interface{}{ + (DirectionsLeg_GuidanceView_Type)(0), // 0: valhalla.DirectionsLeg.GuidanceView.Type + (DirectionsLeg_Maneuver_CardinalDirection)(0), // 1: valhalla.DirectionsLeg.Maneuver.CardinalDirection + (DirectionsLeg_Maneuver_Type)(0), // 2: valhalla.DirectionsLeg.Maneuver.Type + (DirectionsLeg_Maneuver_BssManeuverType)(0), // 3: valhalla.DirectionsLeg.Maneuver.BssManeuverType + (*DirectionsLeg)(nil), // 4: valhalla.DirectionsLeg + (*DirectionsRoute)(nil), // 5: valhalla.DirectionsRoute + (*Directions)(nil), // 6: valhalla.Directions + (*DirectionsLeg_Summary)(nil), // 7: valhalla.DirectionsLeg.Summary + (*DirectionsLeg_GuidanceView)(nil), // 8: valhalla.DirectionsLeg.GuidanceView + (*DirectionsLeg_Maneuver)(nil), // 9: valhalla.DirectionsLeg.Maneuver + (*Location)(nil), // 10: valhalla.Location + (*BoundingBox)(nil), // 11: valhalla.BoundingBox + (*StreetName)(nil), // 12: valhalla.StreetName + (*TripSign)(nil), // 13: valhalla.TripSign + (*TransitRouteInfo)(nil), // 14: valhalla.TransitRouteInfo + (TravelMode)(0), // 15: valhalla.TravelMode + (VehicleType)(0), // 16: valhalla.VehicleType + (PedestrianType)(0), // 17: valhalla.PedestrianType + (BicycleType)(0), // 18: valhalla.BicycleType + (TransitType)(0), // 19: valhalla.TransitType + (*BikeShareStationInfo)(nil), // 20: valhalla.BikeShareStationInfo +} +var file_directions_proto_depIdxs = []int32{ + 10, // 0: valhalla.DirectionsLeg.location:type_name -> valhalla.Location + 7, // 1: valhalla.DirectionsLeg.summary:type_name -> valhalla.DirectionsLeg.Summary + 9, // 2: valhalla.DirectionsLeg.maneuver:type_name -> valhalla.DirectionsLeg.Maneuver + 4, // 3: valhalla.DirectionsRoute.legs:type_name -> valhalla.DirectionsLeg + 5, // 4: valhalla.Directions.routes:type_name -> valhalla.DirectionsRoute + 11, // 5: valhalla.DirectionsLeg.Summary.bbox:type_name -> valhalla.BoundingBox + 0, // 6: valhalla.DirectionsLeg.GuidanceView.type:type_name -> valhalla.DirectionsLeg.GuidanceView.Type + 2, // 7: valhalla.DirectionsLeg.Maneuver.type:type_name -> valhalla.DirectionsLeg.Maneuver.Type + 12, // 8: valhalla.DirectionsLeg.Maneuver.street_name:type_name -> valhalla.StreetName + 1, // 9: valhalla.DirectionsLeg.Maneuver.begin_cardinal_direction:type_name -> valhalla.DirectionsLeg.Maneuver.CardinalDirection + 12, // 10: valhalla.DirectionsLeg.Maneuver.begin_street_name:type_name -> valhalla.StreetName + 13, // 11: valhalla.DirectionsLeg.Maneuver.sign:type_name -> valhalla.TripSign + 14, // 12: valhalla.DirectionsLeg.Maneuver.transit_info:type_name -> valhalla.TransitRouteInfo + 15, // 13: valhalla.DirectionsLeg.Maneuver.travel_mode:type_name -> valhalla.TravelMode + 16, // 14: valhalla.DirectionsLeg.Maneuver.vehicle_type:type_name -> valhalla.VehicleType + 17, // 15: valhalla.DirectionsLeg.Maneuver.pedestrian_type:type_name -> valhalla.PedestrianType + 18, // 16: valhalla.DirectionsLeg.Maneuver.bicycle_type:type_name -> valhalla.BicycleType + 19, // 17: valhalla.DirectionsLeg.Maneuver.transit_type:type_name -> valhalla.TransitType + 12, // 18: valhalla.DirectionsLeg.Maneuver.roundabout_exit_street_names:type_name -> valhalla.StreetName + 8, // 19: valhalla.DirectionsLeg.Maneuver.guidance_views:type_name -> valhalla.DirectionsLeg.GuidanceView + 3, // 20: valhalla.DirectionsLeg.Maneuver.bss_maneuver_type:type_name -> valhalla.DirectionsLeg.Maneuver.BssManeuverType + 20, // 21: valhalla.DirectionsLeg.Maneuver.bss_info:type_name -> valhalla.BikeShareStationInfo + 22, // [22:22] is the sub-list for method output_type + 22, // [22:22] 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 +} + +func init() { file_directions_proto_init() } +func file_directions_proto_init() { + if File_directions_proto != nil { + return + } + file_common_proto_init() + file_sign_proto_init() + if !protoimpl.UnsafeEnabled { + file_directions_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DirectionsLeg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_directions_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DirectionsRoute); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_directions_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Directions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_directions_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DirectionsLeg_Summary); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_directions_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DirectionsLeg_GuidanceView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_directions_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DirectionsLeg_Maneuver); 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_directions_proto_rawDesc, + NumEnums: 4, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_directions_proto_goTypes, + DependencyIndexes: file_directions_proto_depIdxs, + EnumInfos: file_directions_proto_enumTypes, + MessageInfos: file_directions_proto_msgTypes, + }.Build() + File_directions_proto = out.File + file_directions_proto_rawDesc = nil + file_directions_proto_goTypes = nil + file_directions_proto_depIdxs = nil +} diff --git a/proto/valhalla/directions.proto b/proto/valhalla/directions.proto new file mode 100644 index 0000000..7cf7edd --- /dev/null +++ b/proto/valhalla/directions.proto @@ -0,0 +1,161 @@ +syntax = "proto3"; +option optimize_for = LITE_RUNTIME; +package valhalla; +option go_package = "git.coopgo.io/coopgo-platform/routing-service/proto/valhalla"; +import public "common.proto"; +import public "sign.proto"; + +message DirectionsLeg { + + message Summary { + float length = 1; // kilometers or miles based on units + double time = 2; // seconds + BoundingBox bbox = 3; // Bounding box of the shape + bool has_time_restrictions = 4; // Does the route contain any time restrictions? + bool has_toll = 5; + bool has_ferry = 6; + bool has_highway = 7; + } + + message GuidanceView { + enum Type{ + kJunction = 0; + kSapa = 1; + kTollbranch = 2; + kAftertoll = 3; + kEnt = 4; + kExit = 5; + kCityreal = 6; + kDirectionboard = 7; + kSignboard = 8; + } + string data_id = 1; // TODO future enum as data id? + Type type = 2; // The type of guidance view + string base_id = 3; // Image base id + repeated string overlay_ids = 4; // List of overlay ids + } + + message Maneuver { + enum CardinalDirection { + kNorth = 0; + kNorthEast = 1; + kEast = 2; + kSouthEast = 3; + kSouth = 4; + kSouthWest = 5; + kWest = 6; + kNorthWest = 7; + } + + // TODO - add others later + enum Type { + kNone = 0; + kStart = 1; + kStartRight = 2; + kStartLeft = 3; + kDestination = 4; + kDestinationRight = 5; + kDestinationLeft = 6; + kBecomes = 7; + kContinue = 8; + kSlightRight = 9; + kRight = 10; + kSharpRight = 11; + kUturnRight = 12; + kUturnLeft = 13; + kSharpLeft = 14; + kLeft = 15; + kSlightLeft = 16; + kRampStraight = 17; + kRampRight = 18; + kRampLeft = 19; + kExitRight = 20; + kExitLeft = 21; + kStayStraight = 22; + kStayRight = 23; + kStayLeft = 24; + kMerge = 25; + kRoundaboutEnter = 26; + kRoundaboutExit = 27; + kFerryEnter = 28; + kFerryExit = 29; + kTransit = 30; + kTransitTransfer = 31; + kTransitRemainOn = 32; + kTransitConnectionStart = 33; + kTransitConnectionTransfer = 34; + kTransitConnectionDestination = 35; + kPostTransitConnectionDestination = 36; + kMergeRight = 37; + kMergeLeft = 38; + kElevatorEnter = 39; + kStepsEnter = 40; + kEscalatorEnter = 41; + kBuildingEnter = 42; + kBuildingExit = 43; + } + + enum BssManeuverType{ + kNoneAction = 0; + kRentBikeAtBikeShare = 1; + kReturnBikeAtBikeShare = 2; + } + + Type type = 1; // Maneuver type + string text_instruction = 2; // text instruction + repeated StreetName street_name = 3; // street names + float length = 4; // kilometers or miles based on units + double time = 5; // seconds + CardinalDirection begin_cardinal_direction = 6; // CardinalDirection + uint32 begin_heading = 7; // 0-360 + uint32 begin_shape_index = 8; // inclusive index + uint32 end_shape_index = 9; // inclusive index + bool portions_toll = 10; // has portions toll + bool portions_unpaved = 11; // has portions unpaved + string verbal_transition_alert_instruction = 12; // verbal transition alert instruction + string verbal_pre_transition_instruction = 13; // verbal pre-transition instruction + string verbal_post_transition_instruction = 14; // verbal post-transition instruction + repeated StreetName begin_street_name = 15; // begin street names + TripSign sign = 16; // associated sign information, for example: exit number + uint32 roundabout_exit_count = 17; // which spoke to exit roundabout after entering + string depart_instruction = 18; // depart instruction - used with transit + string verbal_depart_instruction = 19; // verbal depart instruction - used with transit + string arrive_instruction = 20; // arrive instruction - used with transit + string verbal_arrive_instruction = 21; // verbal arrive instruction - used with transit + TransitRouteInfo transit_info = 22; // transit attributes including a list of transit stops + bool verbal_multi_cue = 23; // verbal multi-cue flag + TravelMode travel_mode = 24; // travel mode + VehicleType vehicle_type = 25; + PedestrianType pedestrian_type = 26; + BicycleType bicycle_type = 27; + TransitType transit_type = 28; + uint32 begin_path_index = 29; // Index in TripPath for first node of maneuver + uint32 end_path_index = 30; // Index in TripPath for last node of maneuver + bool to_stay_on = 31; // True if same name as previous maneuver + repeated StreetName roundabout_exit_street_names = 32;// Outbound street names from roundabout + uint32 turn_degree = 33; // Turn degree of maneuver + bool has_time_restrictions = 34; // Whether edge has any time restrictions or not + repeated GuidanceView guidance_views = 35; // List of guidance views + BssManeuverType bss_maneuver_type = 36; + string verbal_succinct_transition_instruction = 37; // verbal succinct transition instruction + BikeShareStationInfo bss_info = 38; // Bike Share Station Info + bool portions_highway = 39; // has portions highway + bool portions_ferry = 40; // has portions ferry + } + + uint64 trip_id = 1; + uint32 leg_id = 2; + uint32 leg_count = 3; + repeated Location location = 4; + Summary summary = 5; + repeated Maneuver maneuver = 6; + string shape = 7; +} + +message DirectionsRoute { + repeated DirectionsLeg legs = 1; +} + +message Directions { + repeated DirectionsRoute routes = 1; +} \ No newline at end of file diff --git a/proto/valhalla/incidents.pb.go b/proto/valhalla/incidents.pb.go new file mode 100644 index 0000000..a51dd03 --- /dev/null +++ b/proto/valhalla/incidents.pb.go @@ -0,0 +1,740 @@ +// File contains definitions for side-loaded data-structures +// +// Because of the more distributed nature of this data +// compared to the previous protobuf structures used in Valhalla +// it is important to follow the protobuf schema evolution rules +// when modifying this file + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v3.19.4 +// source: incidents.proto + +package valhalla + +import ( + 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) +) + +type IncidentsTile_Metadata_Type int32 + +const ( + IncidentsTile_Metadata_ACCIDENT IncidentsTile_Metadata_Type = 0 + IncidentsTile_Metadata_CONGESTION IncidentsTile_Metadata_Type = 1 + IncidentsTile_Metadata_CONSTRUCTION IncidentsTile_Metadata_Type = 2 + IncidentsTile_Metadata_DISABLED_VEHICLE IncidentsTile_Metadata_Type = 3 + IncidentsTile_Metadata_LANE_RESTRICTION IncidentsTile_Metadata_Type = 4 + IncidentsTile_Metadata_MASS_TRANSIT IncidentsTile_Metadata_Type = 5 + IncidentsTile_Metadata_MISCELLANEOUS IncidentsTile_Metadata_Type = 6 + IncidentsTile_Metadata_OTHER_NEWS IncidentsTile_Metadata_Type = 7 + IncidentsTile_Metadata_PLANNED_EVENT IncidentsTile_Metadata_Type = 8 + IncidentsTile_Metadata_ROAD_CLOSURE IncidentsTile_Metadata_Type = 9 + IncidentsTile_Metadata_ROAD_HAZARD IncidentsTile_Metadata_Type = 10 + IncidentsTile_Metadata_WEATHER IncidentsTile_Metadata_Type = 11 +) + +// Enum value maps for IncidentsTile_Metadata_Type. +var ( + IncidentsTile_Metadata_Type_name = map[int32]string{ + 0: "ACCIDENT", + 1: "CONGESTION", + 2: "CONSTRUCTION", + 3: "DISABLED_VEHICLE", + 4: "LANE_RESTRICTION", + 5: "MASS_TRANSIT", + 6: "MISCELLANEOUS", + 7: "OTHER_NEWS", + 8: "PLANNED_EVENT", + 9: "ROAD_CLOSURE", + 10: "ROAD_HAZARD", + 11: "WEATHER", + } + IncidentsTile_Metadata_Type_value = map[string]int32{ + "ACCIDENT": 0, + "CONGESTION": 1, + "CONSTRUCTION": 2, + "DISABLED_VEHICLE": 3, + "LANE_RESTRICTION": 4, + "MASS_TRANSIT": 5, + "MISCELLANEOUS": 6, + "OTHER_NEWS": 7, + "PLANNED_EVENT": 8, + "ROAD_CLOSURE": 9, + "ROAD_HAZARD": 10, + "WEATHER": 11, + } +) + +func (x IncidentsTile_Metadata_Type) Enum() *IncidentsTile_Metadata_Type { + p := new(IncidentsTile_Metadata_Type) + *p = x + return p +} + +func (x IncidentsTile_Metadata_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IncidentsTile_Metadata_Type) Descriptor() protoreflect.EnumDescriptor { + return file_incidents_proto_enumTypes[0].Descriptor() +} + +func (IncidentsTile_Metadata_Type) Type() protoreflect.EnumType { + return &file_incidents_proto_enumTypes[0] +} + +func (x IncidentsTile_Metadata_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IncidentsTile_Metadata_Type.Descriptor instead. +func (IncidentsTile_Metadata_Type) EnumDescriptor() ([]byte, []int) { + return file_incidents_proto_rawDescGZIP(), []int{0, 1, 0} +} + +type IncidentsTile_Metadata_Impact int32 + +const ( + IncidentsTile_Metadata_UNKNOWN IncidentsTile_Metadata_Impact = 0 + IncidentsTile_Metadata_CRITICAL IncidentsTile_Metadata_Impact = 1 + IncidentsTile_Metadata_MAJOR IncidentsTile_Metadata_Impact = 2 + IncidentsTile_Metadata_MINOR IncidentsTile_Metadata_Impact = 3 + IncidentsTile_Metadata_LOW IncidentsTile_Metadata_Impact = 4 +) + +// Enum value maps for IncidentsTile_Metadata_Impact. +var ( + IncidentsTile_Metadata_Impact_name = map[int32]string{ + 0: "UNKNOWN", + 1: "CRITICAL", + 2: "MAJOR", + 3: "MINOR", + 4: "LOW", + } + IncidentsTile_Metadata_Impact_value = map[string]int32{ + "UNKNOWN": 0, + "CRITICAL": 1, + "MAJOR": 2, + "MINOR": 3, + "LOW": 4, + } +) + +func (x IncidentsTile_Metadata_Impact) Enum() *IncidentsTile_Metadata_Impact { + p := new(IncidentsTile_Metadata_Impact) + *p = x + return p +} + +func (x IncidentsTile_Metadata_Impact) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IncidentsTile_Metadata_Impact) Descriptor() protoreflect.EnumDescriptor { + return file_incidents_proto_enumTypes[1].Descriptor() +} + +func (IncidentsTile_Metadata_Impact) Type() protoreflect.EnumType { + return &file_incidents_proto_enumTypes[1] +} + +func (x IncidentsTile_Metadata_Impact) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IncidentsTile_Metadata_Impact.Descriptor instead. +func (IncidentsTile_Metadata_Impact) EnumDescriptor() ([]byte, []int) { + return file_incidents_proto_rawDescGZIP(), []int{0, 1, 1} +} + +type IncidentsTile struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Sorted list of edge_ids describing what incidents are attached to an edge_id + Locations []*IncidentsTile_Location `protobuf:"bytes,1,rep,name=locations,proto3" json:"locations,omitempty"` + // Look at `incident_locations` to find how to index this array + Metadata []*IncidentsTile_Metadata `protobuf:"bytes,2,rep,name=metadata,proto3" json:"metadata,omitempty"` +} + +func (x *IncidentsTile) Reset() { + *x = IncidentsTile{} + if protoimpl.UnsafeEnabled { + mi := &file_incidents_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IncidentsTile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IncidentsTile) ProtoMessage() {} + +func (x *IncidentsTile) ProtoReflect() protoreflect.Message { + mi := &file_incidents_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 IncidentsTile.ProtoReflect.Descriptor instead. +func (*IncidentsTile) Descriptor() ([]byte, []int) { + return file_incidents_proto_rawDescGZIP(), []int{0} +} + +func (x *IncidentsTile) GetLocations() []*IncidentsTile_Location { + if x != nil { + return x.Locations + } + return nil +} + +func (x *IncidentsTile) GetMetadata() []*IncidentsTile_Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +// Links a portion of an edge to incident metadata +type IncidentsTile_Location struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EdgeIndex uint32 `protobuf:"varint,1,opt,name=edge_index,json=edgeIndex,proto3" json:"edge_index,omitempty"` + StartOffset float32 `protobuf:"fixed32,2,opt,name=start_offset,json=startOffset,proto3" json:"start_offset,omitempty"` + EndOffset float32 `protobuf:"fixed32,3,opt,name=end_offset,json=endOffset,proto3" json:"end_offset,omitempty"` + MetadataIndex uint32 `protobuf:"varint,4,opt,name=metadata_index,json=metadataIndex,proto3" json:"metadata_index,omitempty"` +} + +func (x *IncidentsTile_Location) Reset() { + *x = IncidentsTile_Location{} + if protoimpl.UnsafeEnabled { + mi := &file_incidents_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IncidentsTile_Location) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IncidentsTile_Location) ProtoMessage() {} + +func (x *IncidentsTile_Location) ProtoReflect() protoreflect.Message { + mi := &file_incidents_proto_msgTypes[1] + 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 IncidentsTile_Location.ProtoReflect.Descriptor instead. +func (*IncidentsTile_Location) Descriptor() ([]byte, []int) { + return file_incidents_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *IncidentsTile_Location) GetEdgeIndex() uint32 { + if x != nil { + return x.EdgeIndex + } + return 0 +} + +func (x *IncidentsTile_Location) GetStartOffset() float32 { + if x != nil { + return x.StartOffset + } + return 0 +} + +func (x *IncidentsTile_Location) GetEndOffset() float32 { + if x != nil { + return x.EndOffset + } + return 0 +} + +func (x *IncidentsTile_Location) GetMetadataIndex() uint32 { + if x != nil { + return x.MetadataIndex + } + return 0 +} + +// A single incident is described by this +// TODO This is not yet finalized +type IncidentsTile_Metadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type IncidentsTile_Metadata_Type `protobuf:"varint,1,opt,name=type,proto3,enum=valhalla.IncidentsTile_Metadata_Type" json:"type,omitempty"` + AlertcCodes []uint32 `protobuf:"varint,2,rep,packed,name=alertc_codes,json=alertcCodes,proto3" json:"alertc_codes,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + SubType string `protobuf:"bytes,4,opt,name=sub_type,json=subType,proto3" json:"sub_type,omitempty"` + SubTypeDescription string `protobuf:"bytes,5,opt,name=sub_type_description,json=subTypeDescription,proto3" json:"sub_type_description,omitempty"` + StartTime uint64 `protobuf:"varint,6,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + EndTime uint64 `protobuf:"varint,7,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + Impact IncidentsTile_Metadata_Impact `protobuf:"varint,9,opt,name=impact,proto3,enum=valhalla.IncidentsTile_Metadata_Impact" json:"impact,omitempty"` + RoadClosed bool `protobuf:"varint,10,opt,name=road_closed,json=roadClosed,proto3" json:"road_closed,omitempty"` + Congestion *IncidentsTile_Metadata_Congestion `protobuf:"bytes,11,opt,name=congestion,proto3" json:"congestion,omitempty"` + LanesBlocked []string `protobuf:"bytes,12,rep,name=lanes_blocked,json=lanesBlocked,proto3" json:"lanes_blocked,omitempty"` + CreationTime uint64 `protobuf:"varint,13,opt,name=creation_time,json=creationTime,proto3" json:"creation_time,omitempty"` + LongDescription string `protobuf:"bytes,14,opt,name=long_description,json=longDescription,proto3" json:"long_description,omitempty"` + ClearLanes string `protobuf:"bytes,15,opt,name=clear_lanes,json=clearLanes,proto3" json:"clear_lanes,omitempty"` + NumLanesBlocked uint64 `protobuf:"varint,16,opt,name=num_lanes_blocked,json=numLanesBlocked,proto3" json:"num_lanes_blocked,omitempty"` + Length uint32 `protobuf:"varint,17,opt,name=length,proto3" json:"length,omitempty"` // Length of incident as matched to road graph + // IncidentMetadata id + Id uint64 `protobuf:"varint,128,opt,name=id,proto3" json:"id,omitempty"` + // Country code (2 & 3 char codes) + Iso_3166_1Alpha2 string `protobuf:"bytes,129,opt,name=iso_3166_1_alpha2,json=iso31661Alpha2,proto3" json:"iso_3166_1_alpha2,omitempty"` + Iso_3166_1Alpha3 string `protobuf:"bytes,130,opt,name=iso_3166_1_alpha3,json=iso31661Alpha3,proto3" json:"iso_3166_1_alpha3,omitempty"` +} + +func (x *IncidentsTile_Metadata) Reset() { + *x = IncidentsTile_Metadata{} + if protoimpl.UnsafeEnabled { + mi := &file_incidents_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IncidentsTile_Metadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IncidentsTile_Metadata) ProtoMessage() {} + +func (x *IncidentsTile_Metadata) ProtoReflect() protoreflect.Message { + mi := &file_incidents_proto_msgTypes[2] + 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 IncidentsTile_Metadata.ProtoReflect.Descriptor instead. +func (*IncidentsTile_Metadata) Descriptor() ([]byte, []int) { + return file_incidents_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *IncidentsTile_Metadata) GetType() IncidentsTile_Metadata_Type { + if x != nil { + return x.Type + } + return IncidentsTile_Metadata_ACCIDENT +} + +func (x *IncidentsTile_Metadata) GetAlertcCodes() []uint32 { + if x != nil { + return x.AlertcCodes + } + return nil +} + +func (x *IncidentsTile_Metadata) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *IncidentsTile_Metadata) GetSubType() string { + if x != nil { + return x.SubType + } + return "" +} + +func (x *IncidentsTile_Metadata) GetSubTypeDescription() string { + if x != nil { + return x.SubTypeDescription + } + return "" +} + +func (x *IncidentsTile_Metadata) GetStartTime() uint64 { + if x != nil { + return x.StartTime + } + return 0 +} + +func (x *IncidentsTile_Metadata) GetEndTime() uint64 { + if x != nil { + return x.EndTime + } + return 0 +} + +func (x *IncidentsTile_Metadata) GetImpact() IncidentsTile_Metadata_Impact { + if x != nil { + return x.Impact + } + return IncidentsTile_Metadata_UNKNOWN +} + +func (x *IncidentsTile_Metadata) GetRoadClosed() bool { + if x != nil { + return x.RoadClosed + } + return false +} + +func (x *IncidentsTile_Metadata) GetCongestion() *IncidentsTile_Metadata_Congestion { + if x != nil { + return x.Congestion + } + return nil +} + +func (x *IncidentsTile_Metadata) GetLanesBlocked() []string { + if x != nil { + return x.LanesBlocked + } + return nil +} + +func (x *IncidentsTile_Metadata) GetCreationTime() uint64 { + if x != nil { + return x.CreationTime + } + return 0 +} + +func (x *IncidentsTile_Metadata) GetLongDescription() string { + if x != nil { + return x.LongDescription + } + return "" +} + +func (x *IncidentsTile_Metadata) GetClearLanes() string { + if x != nil { + return x.ClearLanes + } + return "" +} + +func (x *IncidentsTile_Metadata) GetNumLanesBlocked() uint64 { + if x != nil { + return x.NumLanesBlocked + } + return 0 +} + +func (x *IncidentsTile_Metadata) GetLength() uint32 { + if x != nil { + return x.Length + } + return 0 +} + +func (x *IncidentsTile_Metadata) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *IncidentsTile_Metadata) GetIso_3166_1Alpha2() string { + if x != nil { + return x.Iso_3166_1Alpha2 + } + return "" +} + +func (x *IncidentsTile_Metadata) GetIso_3166_1Alpha3() string { + if x != nil { + return x.Iso_3166_1Alpha3 + } + return "" +} + +type IncidentsTile_Metadata_Congestion struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value uint32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *IncidentsTile_Metadata_Congestion) Reset() { + *x = IncidentsTile_Metadata_Congestion{} + if protoimpl.UnsafeEnabled { + mi := &file_incidents_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IncidentsTile_Metadata_Congestion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IncidentsTile_Metadata_Congestion) ProtoMessage() {} + +func (x *IncidentsTile_Metadata_Congestion) ProtoReflect() protoreflect.Message { + mi := &file_incidents_proto_msgTypes[3] + 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 IncidentsTile_Metadata_Congestion.ProtoReflect.Descriptor instead. +func (*IncidentsTile_Metadata_Congestion) Descriptor() ([]byte, []int) { + return file_incidents_proto_rawDescGZIP(), []int{0, 1, 0} +} + +func (x *IncidentsTile_Metadata_Congestion) GetValue() uint32 { + if x != nil { + return x.Value + } + return 0 +} + +var File_incidents_proto protoreflect.FileDescriptor + +var file_incidents_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x08, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x22, 0xed, 0x0a, 0x0a, 0x0d, + 0x49, 0x6e, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x54, 0x69, 0x6c, 0x65, 0x12, 0x3e, 0x0a, + 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x49, 0x6e, 0x63, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x73, 0x54, 0x69, 0x6c, 0x65, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x49, 0x6e, 0x63, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x73, 0x54, 0x69, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x92, 0x01, 0x0a, 0x08, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x64, 0x67, 0x65, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x64, + 0x67, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, + 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, + 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x1a, 0xc8, 0x08, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x61, + 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x49, 0x6e, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x73, + 0x54, 0x69, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x6c, 0x65, 0x72, + 0x74, 0x63, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, + 0x61, 0x6c, 0x65, 0x72, 0x74, 0x63, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, + 0x08, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x75, 0x62, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x69, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, + 0x49, 0x6e, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x54, 0x69, 0x6c, 0x65, 0x2e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x52, 0x06, 0x69, + 0x6d, 0x70, 0x61, 0x63, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x6c, + 0x6f, 0x73, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x6f, 0x61, 0x64, + 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x4b, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x67, 0x65, 0x73, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x76, 0x61, 0x6c, + 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x49, 0x6e, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x54, + 0x69, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, + 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x65, + 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, + 0x10, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x65, 0x61, + 0x72, 0x5f, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, + 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x61, 0x6e, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x75, 0x6d, + 0x5f, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x4c, 0x61, 0x6e, 0x65, 0x73, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x0f, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a, + 0x0a, 0x11, 0x69, 0x73, 0x6f, 0x5f, 0x33, 0x31, 0x36, 0x36, 0x5f, 0x31, 0x5f, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x32, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x73, 0x6f, 0x33, + 0x31, 0x36, 0x36, 0x31, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x32, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, + 0x6f, 0x5f, 0x33, 0x31, 0x36, 0x36, 0x5f, 0x31, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x18, + 0x82, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x73, 0x6f, 0x33, 0x31, 0x36, 0x36, 0x31, + 0x41, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x1a, 0x22, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x67, 0x65, 0x73, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xda, 0x01, 0x0a, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x43, 0x43, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x10, + 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x4f, 0x4e, 0x47, 0x45, 0x53, 0x54, 0x49, 0x4f, 0x4e, 0x10, + 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x4f, 0x4e, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x5f, + 0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x41, 0x4e, + 0x45, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x52, 0x49, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, + 0x10, 0x0a, 0x0c, 0x4d, 0x41, 0x53, 0x53, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x10, + 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x49, 0x53, 0x43, 0x45, 0x4c, 0x4c, 0x41, 0x4e, 0x45, 0x4f, + 0x55, 0x53, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x4e, 0x45, + 0x57, 0x53, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x4c, 0x41, 0x4e, 0x4e, 0x45, 0x44, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x4f, 0x41, 0x44, 0x5f, + 0x43, 0x4c, 0x4f, 0x53, 0x55, 0x52, 0x45, 0x10, 0x09, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x4f, 0x41, + 0x44, 0x5f, 0x48, 0x41, 0x5a, 0x41, 0x52, 0x44, 0x10, 0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x45, + 0x41, 0x54, 0x48, 0x45, 0x52, 0x10, 0x0b, 0x22, 0x42, 0x0a, 0x06, 0x49, 0x6d, 0x70, 0x61, 0x63, + 0x74, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, + 0x0a, 0x08, 0x43, 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, + 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x49, 0x4e, 0x4f, 0x52, + 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4f, 0x57, 0x10, 0x04, 0x42, 0x40, 0x48, 0x03, 0x5a, + 0x3c, 0x67, 0x69, 0x74, 0x2e, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x63, + 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x72, + 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_incidents_proto_rawDescOnce sync.Once + file_incidents_proto_rawDescData = file_incidents_proto_rawDesc +) + +func file_incidents_proto_rawDescGZIP() []byte { + file_incidents_proto_rawDescOnce.Do(func() { + file_incidents_proto_rawDescData = protoimpl.X.CompressGZIP(file_incidents_proto_rawDescData) + }) + return file_incidents_proto_rawDescData +} + +var file_incidents_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_incidents_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_incidents_proto_goTypes = []interface{}{ + (IncidentsTile_Metadata_Type)(0), // 0: valhalla.IncidentsTile.Metadata.Type + (IncidentsTile_Metadata_Impact)(0), // 1: valhalla.IncidentsTile.Metadata.Impact + (*IncidentsTile)(nil), // 2: valhalla.IncidentsTile + (*IncidentsTile_Location)(nil), // 3: valhalla.IncidentsTile.Location + (*IncidentsTile_Metadata)(nil), // 4: valhalla.IncidentsTile.Metadata + (*IncidentsTile_Metadata_Congestion)(nil), // 5: valhalla.IncidentsTile.Metadata.Congestion +} +var file_incidents_proto_depIdxs = []int32{ + 3, // 0: valhalla.IncidentsTile.locations:type_name -> valhalla.IncidentsTile.Location + 4, // 1: valhalla.IncidentsTile.metadata:type_name -> valhalla.IncidentsTile.Metadata + 0, // 2: valhalla.IncidentsTile.Metadata.type:type_name -> valhalla.IncidentsTile.Metadata.Type + 1, // 3: valhalla.IncidentsTile.Metadata.impact:type_name -> valhalla.IncidentsTile.Metadata.Impact + 5, // 4: valhalla.IncidentsTile.Metadata.congestion:type_name -> valhalla.IncidentsTile.Metadata.Congestion + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_incidents_proto_init() } +func file_incidents_proto_init() { + if File_incidents_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_incidents_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IncidentsTile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_incidents_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IncidentsTile_Location); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_incidents_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IncidentsTile_Metadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_incidents_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IncidentsTile_Metadata_Congestion); 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_incidents_proto_rawDesc, + NumEnums: 2, + NumMessages: 4, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_incidents_proto_goTypes, + DependencyIndexes: file_incidents_proto_depIdxs, + EnumInfos: file_incidents_proto_enumTypes, + MessageInfos: file_incidents_proto_msgTypes, + }.Build() + File_incidents_proto = out.File + file_incidents_proto_rawDesc = nil + file_incidents_proto_goTypes = nil + file_incidents_proto_depIdxs = nil +} diff --git a/proto/valhalla/incidents.proto b/proto/valhalla/incidents.proto new file mode 100644 index 0000000..f7c53cd --- /dev/null +++ b/proto/valhalla/incidents.proto @@ -0,0 +1,77 @@ +// File contains definitions for side-loaded data-structures +// +// Because of the more distributed nature of this data +// compared to the previous protobuf structures used in Valhalla +// it is important to follow the protobuf schema evolution rules +// when modifying this file + +syntax = "proto3"; +option optimize_for = LITE_RUNTIME; +option go_package = "git.coopgo.io/coopgo-platform/routing-service/proto/valhalla"; +package valhalla; + +message IncidentsTile { + // Sorted list of edge_ids describing what incidents are attached to an edge_id + repeated Location locations = 1; + // Look at `incident_locations` to find how to index this array + repeated Metadata metadata = 2; + + // Links a portion of an edge to incident metadata + message Location { + uint32 edge_index = 1; + float start_offset = 2; + float end_offset = 3; + uint32 metadata_index = 4; + } + + // A single incident is described by this + // TODO This is not yet finalized + message Metadata { + enum Type { + ACCIDENT = 0; + CONGESTION = 1; + CONSTRUCTION = 2; + DISABLED_VEHICLE = 3; + LANE_RESTRICTION = 4; + MASS_TRANSIT = 5; + MISCELLANEOUS = 6; + OTHER_NEWS = 7; + PLANNED_EVENT = 8; + ROAD_CLOSURE = 9; + ROAD_HAZARD = 10; + WEATHER = 11; + } + Type type = 1; + repeated uint32 alertc_codes = 2; + string description = 3; + string sub_type = 4; + string sub_type_description = 5; + uint64 start_time = 6; + uint64 end_time = 7; + enum Impact { + UNKNOWN = 0; + CRITICAL = 1; + MAJOR = 2; + MINOR = 3; + LOW = 4; + } + Impact impact = 9; + bool road_closed = 10; + message Congestion { + uint32 value = 1; + } + Congestion congestion = 11; + repeated string lanes_blocked = 12; + uint64 creation_time = 13; + string long_description = 14; + string clear_lanes = 15; + uint64 num_lanes_blocked = 16; + uint32 length = 17; // Length of incident as matched to road graph + + // IncidentMetadata id + uint64 id = 128; + // Country code (2 & 3 char codes) + string iso_3166_1_alpha2 = 129; + string iso_3166_1_alpha3 = 130; + } +} \ No newline at end of file diff --git a/proto/valhalla/info.pb.go b/proto/valhalla/info.pb.go new file mode 100644 index 0000000..6798da4 --- /dev/null +++ b/proto/valhalla/info.pb.go @@ -0,0 +1,407 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v3.19.4 +// source: info.proto + +package valhalla + +import ( + 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) +) + +// the type of statistic we are recording +type StatisticType int32 + +const ( + StatisticType_count StatisticType = 0 + StatisticType_gauge StatisticType = 1 + StatisticType_timing StatisticType = 2 + StatisticType_set StatisticType = 3 +) + +// Enum value maps for StatisticType. +var ( + StatisticType_name = map[int32]string{ + 0: "count", + 1: "gauge", + 2: "timing", + 3: "set", + } + StatisticType_value = map[string]int32{ + "count": 0, + "gauge": 1, + "timing": 2, + "set": 3, + } +) + +func (x StatisticType) Enum() *StatisticType { + p := new(StatisticType) + *p = x + return p +} + +func (x StatisticType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (StatisticType) Descriptor() protoreflect.EnumDescriptor { + return file_info_proto_enumTypes[0].Descriptor() +} + +func (StatisticType) Type() protoreflect.EnumType { + return &file_info_proto_enumTypes[0] +} + +func (x StatisticType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use StatisticType.Descriptor instead. +func (StatisticType) EnumDescriptor() ([]byte, []int) { + return file_info_proto_rawDescGZIP(), []int{0} +} + +type Statistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` // the key/name of the statistic + Value float64 `protobuf:"fixed64,2,opt,name=value,proto3" json:"value,omitempty"` // the value of the statistic + Frequency float32 `protobuf:"fixed32,3,opt,name=frequency,proto3" json:"frequency,omitempty"` // how often to report the statistic [0-1] + Type StatisticType `protobuf:"varint,4,opt,name=type,proto3,enum=valhalla.StatisticType" json:"type,omitempty"` // what type is it +} + +func (x *Statistic) Reset() { + *x = Statistic{} + if protoimpl.UnsafeEnabled { + mi := &file_info_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Statistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Statistic) ProtoMessage() {} + +func (x *Statistic) ProtoReflect() protoreflect.Message { + mi := &file_info_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 Statistic.ProtoReflect.Descriptor instead. +func (*Statistic) Descriptor() ([]byte, []int) { + return file_info_proto_rawDescGZIP(), []int{0} +} + +func (x *Statistic) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *Statistic) GetValue() float64 { + if x != nil { + return x.Value + } + return 0 +} + +func (x *Statistic) GetFrequency() float32 { + if x != nil { + return x.Frequency + } + return 0 +} + +func (x *Statistic) GetType() StatisticType { + if x != nil { + return x.Type + } + return StatisticType_count +} + +type CodedDescription struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` + Code uint64 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` +} + +func (x *CodedDescription) Reset() { + *x = CodedDescription{} + if protoimpl.UnsafeEnabled { + mi := &file_info_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CodedDescription) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CodedDescription) ProtoMessage() {} + +func (x *CodedDescription) ProtoReflect() protoreflect.Message { + mi := &file_info_proto_msgTypes[1] + 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 CodedDescription.ProtoReflect.Descriptor instead. +func (*CodedDescription) Descriptor() ([]byte, []int) { + return file_info_proto_rawDescGZIP(), []int{1} +} + +func (x *CodedDescription) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *CodedDescription) GetCode() uint64 { + if x != nil { + return x.Code + } + return 0 +} + +type Info struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Statistics []*Statistic `protobuf:"bytes,1,rep,name=statistics,proto3" json:"statistics,omitempty"` // stats that we collect during request processing + Errors []*CodedDescription `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"` // errors that occured during request processing + Warnings []*CodedDescription `protobuf:"bytes,3,rep,name=warnings,proto3" json:"warnings,omitempty"` // warnings that occured during request processing + IsService bool `protobuf:"varint,4,opt,name=is_service,json=isService,proto3" json:"is_service,omitempty"` // was this a service request/response rather than a direct call to the library +} + +func (x *Info) Reset() { + *x = Info{} + if protoimpl.UnsafeEnabled { + mi := &file_info_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Info) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Info) ProtoMessage() {} + +func (x *Info) ProtoReflect() protoreflect.Message { + mi := &file_info_proto_msgTypes[2] + 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 Info.ProtoReflect.Descriptor instead. +func (*Info) Descriptor() ([]byte, []int) { + return file_info_proto_rawDescGZIP(), []int{2} +} + +func (x *Info) GetStatistics() []*Statistic { + if x != nil { + return x.Statistics + } + return nil +} + +func (x *Info) GetErrors() []*CodedDescription { + if x != nil { + return x.Errors + } + return nil +} + +func (x *Info) GetWarnings() []*CodedDescription { + if x != nil { + return x.Warnings + } + return nil +} + +func (x *Info) GetIsService() bool { + if x != nil { + return x.IsService + } + return false +} + +var File_info_proto protoreflect.FileDescriptor + +var file_info_proto_rawDesc = []byte{ + 0x0a, 0x0a, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x76, 0x61, + 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x22, 0x7e, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, + 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x2b, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, + 0x6c, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x48, 0x0a, 0x10, 0x43, 0x6f, 0x64, 0x65, 0x64, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x22, 0xc6, 0x01, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x0a, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x32, + 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x64, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, + 0x43, 0x6f, 0x64, 0x65, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, + 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x69, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2a, 0x3a, 0x0a, 0x0d, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x67, 0x61, 0x75, 0x67, 0x65, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, + 0x73, 0x65, 0x74, 0x10, 0x03, 0x42, 0x40, 0x48, 0x03, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x2e, 0x63, + 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2d, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, + 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_info_proto_rawDescOnce sync.Once + file_info_proto_rawDescData = file_info_proto_rawDesc +) + +func file_info_proto_rawDescGZIP() []byte { + file_info_proto_rawDescOnce.Do(func() { + file_info_proto_rawDescData = protoimpl.X.CompressGZIP(file_info_proto_rawDescData) + }) + return file_info_proto_rawDescData +} + +var file_info_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_info_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_info_proto_goTypes = []interface{}{ + (StatisticType)(0), // 0: valhalla.StatisticType + (*Statistic)(nil), // 1: valhalla.Statistic + (*CodedDescription)(nil), // 2: valhalla.CodedDescription + (*Info)(nil), // 3: valhalla.Info +} +var file_info_proto_depIdxs = []int32{ + 0, // 0: valhalla.Statistic.type:type_name -> valhalla.StatisticType + 1, // 1: valhalla.Info.statistics:type_name -> valhalla.Statistic + 2, // 2: valhalla.Info.errors:type_name -> valhalla.CodedDescription + 2, // 3: valhalla.Info.warnings:type_name -> valhalla.CodedDescription + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_info_proto_init() } +func file_info_proto_init() { + if File_info_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_info_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Statistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_info_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CodedDescription); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_info_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Info); 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_info_proto_rawDesc, + NumEnums: 1, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_info_proto_goTypes, + DependencyIndexes: file_info_proto_depIdxs, + EnumInfos: file_info_proto_enumTypes, + MessageInfos: file_info_proto_msgTypes, + }.Build() + File_info_proto = out.File + file_info_proto_rawDesc = nil + file_info_proto_goTypes = nil + file_info_proto_depIdxs = nil +} diff --git a/proto/valhalla/info.proto b/proto/valhalla/info.proto new file mode 100644 index 0000000..f9e9649 --- /dev/null +++ b/proto/valhalla/info.proto @@ -0,0 +1,36 @@ +syntax = "proto3"; +option optimize_for = LITE_RUNTIME; +option go_package = "git.coopgo.io/coopgo-platform/routing-service/proto/valhalla"; +package valhalla; + +// Statistics are modelled off of the statsd API + +// the type of statistic we are recording +enum StatisticType { + count = 0; + gauge = 1; + timing = 2; + set = 3; +} + +// The key for a statistic regarding the running of the service should be of the form: +// action.worker_name.metric so that we can tell what type of request it was and where in the pipeline it happened + +message Statistic { + string key = 1; // the key/name of the statistic + double value = 2; // the value of the statistic + float frequency = 3; // how often to report the statistic [0-1] + StatisticType type = 4; // what type is it +} + +message CodedDescription { + string description = 1; + uint64 code = 2; +} + +message Info { + repeated Statistic statistics = 1; // stats that we collect during request processing + repeated CodedDescription errors = 2; // errors that occured during request processing + repeated CodedDescription warnings = 3; // warnings that occured during request processing + bool is_service = 4; // was this a service request/response rather than a direct call to the library +} \ No newline at end of file diff --git a/proto/valhalla/options.pb.go b/proto/valhalla/options.pb.go new file mode 100644 index 0000000..b253ea9 --- /dev/null +++ b/proto/valhalla/options.pb.go @@ -0,0 +1,4976 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v3.19.4 +// source: options.proto + +package valhalla + +import ( + 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) +) + +type ShapeMatch int32 + +const ( + ShapeMatch_walk_or_snap ShapeMatch = 0 + ShapeMatch_edge_walk ShapeMatch = 1 + ShapeMatch_map_snap ShapeMatch = 2 +) + +// Enum value maps for ShapeMatch. +var ( + ShapeMatch_name = map[int32]string{ + 0: "walk_or_snap", + 1: "edge_walk", + 2: "map_snap", + } + ShapeMatch_value = map[string]int32{ + "walk_or_snap": 0, + "edge_walk": 1, + "map_snap": 2, + } +) + +func (x ShapeMatch) Enum() *ShapeMatch { + p := new(ShapeMatch) + *p = x + return p +} + +func (x ShapeMatch) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ShapeMatch) Descriptor() protoreflect.EnumDescriptor { + return file_options_proto_enumTypes[0].Descriptor() +} + +func (ShapeMatch) Type() protoreflect.EnumType { + return &file_options_proto_enumTypes[0] +} + +func (x ShapeMatch) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ShapeMatch.Descriptor instead. +func (ShapeMatch) EnumDescriptor() ([]byte, []int) { + return file_options_proto_rawDescGZIP(), []int{0} +} + +type FilterAction int32 + +const ( + FilterAction_no_action FilterAction = 0 + FilterAction_exclude FilterAction = 1 + FilterAction_include FilterAction = 2 +) + +// Enum value maps for FilterAction. +var ( + FilterAction_name = map[int32]string{ + 0: "no_action", + 1: "exclude", + 2: "include", + } + FilterAction_value = map[string]int32{ + "no_action": 0, + "exclude": 1, + "include": 2, + } +) + +func (x FilterAction) Enum() *FilterAction { + p := new(FilterAction) + *p = x + return p +} + +func (x FilterAction) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FilterAction) Descriptor() protoreflect.EnumDescriptor { + return file_options_proto_enumTypes[1].Descriptor() +} + +func (FilterAction) Type() protoreflect.EnumType { + return &file_options_proto_enumTypes[1] +} + +func (x FilterAction) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FilterAction.Descriptor instead. +func (FilterAction) EnumDescriptor() ([]byte, []int) { + return file_options_proto_rawDescGZIP(), []int{1} +} + +type DirectionsType int32 + +const ( + DirectionsType_instructions DirectionsType = 0 + DirectionsType_none DirectionsType = 1 + DirectionsType_maneuvers DirectionsType = 2 +) + +// Enum value maps for DirectionsType. +var ( + DirectionsType_name = map[int32]string{ + 0: "instructions", + 1: "none", + 2: "maneuvers", + } + DirectionsType_value = map[string]int32{ + "instructions": 0, + "none": 1, + "maneuvers": 2, + } +) + +func (x DirectionsType) Enum() *DirectionsType { + p := new(DirectionsType) + *p = x + return p +} + +func (x DirectionsType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DirectionsType) Descriptor() protoreflect.EnumDescriptor { + return file_options_proto_enumTypes[2].Descriptor() +} + +func (DirectionsType) Type() protoreflect.EnumType { + return &file_options_proto_enumTypes[2] +} + +func (x DirectionsType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DirectionsType.Descriptor instead. +func (DirectionsType) EnumDescriptor() ([]byte, []int) { + return file_options_proto_rawDescGZIP(), []int{2} +} + +type ShapeFormat int32 + +const ( + ShapeFormat_polyline6 ShapeFormat = 0 + ShapeFormat_polyline5 ShapeFormat = 1 + ShapeFormat_geojson ShapeFormat = 2 +) + +// Enum value maps for ShapeFormat. +var ( + ShapeFormat_name = map[int32]string{ + 0: "polyline6", + 1: "polyline5", + 2: "geojson", + } + ShapeFormat_value = map[string]int32{ + "polyline6": 0, + "polyline5": 1, + "geojson": 2, + } +) + +func (x ShapeFormat) Enum() *ShapeFormat { + p := new(ShapeFormat) + *p = x + return p +} + +func (x ShapeFormat) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ShapeFormat) Descriptor() protoreflect.EnumDescriptor { + return file_options_proto_enumTypes[3].Descriptor() +} + +func (ShapeFormat) Type() protoreflect.EnumType { + return &file_options_proto_enumTypes[3] +} + +func (x ShapeFormat) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ShapeFormat.Descriptor instead. +func (ShapeFormat) EnumDescriptor() ([]byte, []int) { + return file_options_proto_rawDescGZIP(), []int{3} +} + +type Costing_Type int32 + +const ( + Costing_none_ Costing_Type = 0 + Costing_bicycle Costing_Type = 1 + Costing_bus Costing_Type = 2 + Costing_motor_scooter Costing_Type = 3 + Costing_multimodal Costing_Type = 4 // turns into pedestrian + transit + Costing_pedestrian Costing_Type = 5 + Costing_transit Costing_Type = 6 + Costing_truck Costing_Type = 7 + Costing_motorcycle Costing_Type = 8 + Costing_taxi Costing_Type = 9 + Costing_auto_ Costing_Type = 10 + Costing_bikeshare Costing_Type = 11 // turns into pedestrian + bike +) + +// Enum value maps for Costing_Type. +var ( + Costing_Type_name = map[int32]string{ + 0: "none_", + 1: "bicycle", + 2: "bus", + 3: "motor_scooter", + 4: "multimodal", + 5: "pedestrian", + 6: "transit", + 7: "truck", + 8: "motorcycle", + 9: "taxi", + 10: "auto_", + 11: "bikeshare", + } + Costing_Type_value = map[string]int32{ + "none_": 0, + "bicycle": 1, + "bus": 2, + "motor_scooter": 3, + "multimodal": 4, + "pedestrian": 5, + "transit": 6, + "truck": 7, + "motorcycle": 8, + "taxi": 9, + "auto_": 10, + "bikeshare": 11, + } +) + +func (x Costing_Type) Enum() *Costing_Type { + p := new(Costing_Type) + *p = x + return p +} + +func (x Costing_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Costing_Type) Descriptor() protoreflect.EnumDescriptor { + return file_options_proto_enumTypes[4].Descriptor() +} + +func (Costing_Type) Type() protoreflect.EnumType { + return &file_options_proto_enumTypes[4] +} + +func (x Costing_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Costing_Type.Descriptor instead. +func (Costing_Type) EnumDescriptor() ([]byte, []int) { + return file_options_proto_rawDescGZIP(), []int{4, 0} +} + +type Options_Units int32 + +const ( + Options_kilometers Options_Units = 0 + Options_miles Options_Units = 1 +) + +// Enum value maps for Options_Units. +var ( + Options_Units_name = map[int32]string{ + 0: "kilometers", + 1: "miles", + } + Options_Units_value = map[string]int32{ + "kilometers": 0, + "miles": 1, + } +) + +func (x Options_Units) Enum() *Options_Units { + p := new(Options_Units) + *p = x + return p +} + +func (x Options_Units) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Options_Units) Descriptor() protoreflect.EnumDescriptor { + return file_options_proto_enumTypes[5].Descriptor() +} + +func (Options_Units) Type() protoreflect.EnumType { + return &file_options_proto_enumTypes[5] +} + +func (x Options_Units) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Options_Units.Descriptor instead. +func (Options_Units) EnumDescriptor() ([]byte, []int) { + return file_options_proto_rawDescGZIP(), []int{5, 0} +} + +type Options_Format int32 + +const ( + Options_json Options_Format = 0 + Options_gpx Options_Format = 1 + Options_osrm Options_Format = 2 + Options_pbf Options_Format = 3 +) + +// Enum value maps for Options_Format. +var ( + Options_Format_name = map[int32]string{ + 0: "json", + 1: "gpx", + 2: "osrm", + 3: "pbf", + } + Options_Format_value = map[string]int32{ + "json": 0, + "gpx": 1, + "osrm": 2, + "pbf": 3, + } +) + +func (x Options_Format) Enum() *Options_Format { + p := new(Options_Format) + *p = x + return p +} + +func (x Options_Format) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Options_Format) Descriptor() protoreflect.EnumDescriptor { + return file_options_proto_enumTypes[6].Descriptor() +} + +func (Options_Format) Type() protoreflect.EnumType { + return &file_options_proto_enumTypes[6] +} + +func (x Options_Format) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Options_Format.Descriptor instead. +func (Options_Format) EnumDescriptor() ([]byte, []int) { + return file_options_proto_rawDescGZIP(), []int{5, 1} +} + +type Options_Action int32 + +const ( + Options_no_action Options_Action = 0 + Options_route Options_Action = 1 + Options_locate Options_Action = 2 + Options_sources_to_targets Options_Action = 3 + Options_optimized_route Options_Action = 4 + Options_isochrone Options_Action = 5 + Options_trace_route Options_Action = 6 + Options_trace_attributes Options_Action = 7 + Options_height Options_Action = 8 + Options_transit_available Options_Action = 9 + Options_expansion Options_Action = 10 + Options_centroid Options_Action = 11 + Options_status Options_Action = 12 +) + +// Enum value maps for Options_Action. +var ( + Options_Action_name = map[int32]string{ + 0: "no_action", + 1: "route", + 2: "locate", + 3: "sources_to_targets", + 4: "optimized_route", + 5: "isochrone", + 6: "trace_route", + 7: "trace_attributes", + 8: "height", + 9: "transit_available", + 10: "expansion", + 11: "centroid", + 12: "status", + } + Options_Action_value = map[string]int32{ + "no_action": 0, + "route": 1, + "locate": 2, + "sources_to_targets": 3, + "optimized_route": 4, + "isochrone": 5, + "trace_route": 6, + "trace_attributes": 7, + "height": 8, + "transit_available": 9, + "expansion": 10, + "centroid": 11, + "status": 12, + } +) + +func (x Options_Action) Enum() *Options_Action { + p := new(Options_Action) + *p = x + return p +} + +func (x Options_Action) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Options_Action) Descriptor() protoreflect.EnumDescriptor { + return file_options_proto_enumTypes[7].Descriptor() +} + +func (Options_Action) Type() protoreflect.EnumType { + return &file_options_proto_enumTypes[7] +} + +func (x Options_Action) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Options_Action.Descriptor instead. +func (Options_Action) EnumDescriptor() ([]byte, []int) { + return file_options_proto_rawDescGZIP(), []int{5, 2} +} + +type Options_DateTimeType int32 + +const ( + Options_no_time Options_DateTimeType = 0 + Options_current Options_DateTimeType = 1 + Options_depart_at Options_DateTimeType = 2 + Options_arrive_by Options_DateTimeType = 3 + Options_invariant Options_DateTimeType = 4 +) + +// Enum value maps for Options_DateTimeType. +var ( + Options_DateTimeType_name = map[int32]string{ + 0: "no_time", + 1: "current", + 2: "depart_at", + 3: "arrive_by", + 4: "invariant", + } + Options_DateTimeType_value = map[string]int32{ + "no_time": 0, + "current": 1, + "depart_at": 2, + "arrive_by": 3, + "invariant": 4, + } +) + +func (x Options_DateTimeType) Enum() *Options_DateTimeType { + p := new(Options_DateTimeType) + *p = x + return p +} + +func (x Options_DateTimeType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Options_DateTimeType) Descriptor() protoreflect.EnumDescriptor { + return file_options_proto_enumTypes[8].Descriptor() +} + +func (Options_DateTimeType) Type() protoreflect.EnumType { + return &file_options_proto_enumTypes[8] +} + +func (x Options_DateTimeType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Options_DateTimeType.Descriptor instead. +func (Options_DateTimeType) EnumDescriptor() ([]byte, []int) { + return file_options_proto_rawDescGZIP(), []int{5, 3} +} + +type Options_ExpansionProperties int32 + +const ( + Options_costs Options_ExpansionProperties = 0 + Options_durations Options_ExpansionProperties = 1 + Options_distances Options_ExpansionProperties = 2 + Options_statuses Options_ExpansionProperties = 3 + Options_edge_ids Options_ExpansionProperties = 4 +) + +// Enum value maps for Options_ExpansionProperties. +var ( + Options_ExpansionProperties_name = map[int32]string{ + 0: "costs", + 1: "durations", + 2: "distances", + 3: "statuses", + 4: "edge_ids", + } + Options_ExpansionProperties_value = map[string]int32{ + "costs": 0, + "durations": 1, + "distances": 2, + "statuses": 3, + "edge_ids": 4, + } +) + +func (x Options_ExpansionProperties) Enum() *Options_ExpansionProperties { + p := new(Options_ExpansionProperties) + *p = x + return p +} + +func (x Options_ExpansionProperties) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Options_ExpansionProperties) Descriptor() protoreflect.EnumDescriptor { + return file_options_proto_enumTypes[9].Descriptor() +} + +func (Options_ExpansionProperties) Type() protoreflect.EnumType { + return &file_options_proto_enumTypes[9] +} + +func (x Options_ExpansionProperties) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Options_ExpansionProperties.Descriptor instead. +func (Options_ExpansionProperties) EnumDescriptor() ([]byte, []int) { + return file_options_proto_rawDescGZIP(), []int{5, 4} +} + +type Contour struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to HasTime: + // *Contour_Time + HasTime isContour_HasTime `protobuf_oneof:"has_time"` + // Types that are assignable to HasColor: + // *Contour_Color + HasColor isContour_HasColor `protobuf_oneof:"has_color"` + // Types that are assignable to HasDistance: + // *Contour_Distance + HasDistance isContour_HasDistance `protobuf_oneof:"has_distance"` +} + +func (x *Contour) Reset() { + *x = Contour{} + if protoimpl.UnsafeEnabled { + mi := &file_options_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Contour) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Contour) ProtoMessage() {} + +func (x *Contour) ProtoReflect() protoreflect.Message { + mi := &file_options_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 Contour.ProtoReflect.Descriptor instead. +func (*Contour) Descriptor() ([]byte, []int) { + return file_options_proto_rawDescGZIP(), []int{0} +} + +func (m *Contour) GetHasTime() isContour_HasTime { + if m != nil { + return m.HasTime + } + return nil +} + +func (x *Contour) GetTime() float32 { + if x, ok := x.GetHasTime().(*Contour_Time); ok { + return x.Time + } + return 0 +} + +func (m *Contour) GetHasColor() isContour_HasColor { + if m != nil { + return m.HasColor + } + return nil +} + +func (x *Contour) GetColor() string { + if x, ok := x.GetHasColor().(*Contour_Color); ok { + return x.Color + } + return "" +} + +func (m *Contour) GetHasDistance() isContour_HasDistance { + if m != nil { + return m.HasDistance + } + return nil +} + +func (x *Contour) GetDistance() float32 { + if x, ok := x.GetHasDistance().(*Contour_Distance); ok { + return x.Distance + } + return 0 +} + +type isContour_HasTime interface { + isContour_HasTime() +} + +type Contour_Time struct { + Time float32 `protobuf:"fixed32,1,opt,name=time,proto3,oneof"` // minutes +} + +func (*Contour_Time) isContour_HasTime() {} + +type isContour_HasColor interface { + isContour_HasColor() +} + +type Contour_Color struct { + Color string `protobuf:"bytes,2,opt,name=color,proto3,oneof"` // hex color with out # - for example: "ff0000" for red +} + +func (*Contour_Color) isContour_HasColor() {} + +type isContour_HasDistance interface { + isContour_HasDistance() +} + +type Contour_Distance struct { + Distance float32 `protobuf:"fixed32,3,opt,name=distance,proto3,oneof"` // kilometers +} + +func (*Contour_Distance) isContour_HasDistance() {} + +type Ring struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Coords []*LatLng `protobuf:"bytes,1,rep,name=coords,proto3" json:"coords,omitempty"` +} + +func (x *Ring) Reset() { + *x = Ring{} + if protoimpl.UnsafeEnabled { + mi := &file_options_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Ring) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Ring) ProtoMessage() {} + +func (x *Ring) ProtoReflect() protoreflect.Message { + mi := &file_options_proto_msgTypes[1] + 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 Ring.ProtoReflect.Descriptor instead. +func (*Ring) Descriptor() ([]byte, []int) { + return file_options_proto_rawDescGZIP(), []int{1} +} + +func (x *Ring) GetCoords() []*LatLng { + if x != nil { + return x.Coords + } + return nil +} + +// use this to select which top level fields should be present in the pbf output +// the actions below are marked for each field that would provide a minimal response +type PbfFieldSelector struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Options bool `protobuf:"varint,1,opt,name=options,proto3" json:"options,omitempty"` + Trip bool `protobuf:"varint,2,opt,name=trip,proto3" json:"trip,omitempty"` // /trace_attributes + Directions bool `protobuf:"varint,3,opt,name=directions,proto3" json:"directions,omitempty"` // /route /trace_route /optimized_route /centroid + Status bool `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` // /status +} + +func (x *PbfFieldSelector) Reset() { + *x = PbfFieldSelector{} + if protoimpl.UnsafeEnabled { + mi := &file_options_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PbfFieldSelector) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PbfFieldSelector) ProtoMessage() {} + +func (x *PbfFieldSelector) ProtoReflect() protoreflect.Message { + mi := &file_options_proto_msgTypes[2] + 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 PbfFieldSelector.ProtoReflect.Descriptor instead. +func (*PbfFieldSelector) Descriptor() ([]byte, []int) { + return file_options_proto_rawDescGZIP(), []int{2} +} + +func (x *PbfFieldSelector) GetOptions() bool { + if x != nil { + return x.Options + } + return false +} + +func (x *PbfFieldSelector) GetTrip() bool { + if x != nil { + return x.Trip + } + return false +} + +func (x *PbfFieldSelector) GetDirections() bool { + if x != nil { + return x.Directions + } + return false +} + +func (x *PbfFieldSelector) GetStatus() bool { + if x != nil { + return x.Status + } + return false +} + +type AvoidEdge struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to HasId: + // *AvoidEdge_Id + HasId isAvoidEdge_HasId `protobuf_oneof:"has_id"` + // Types that are assignable to HasPercentAlong: + // *AvoidEdge_PercentAlong + HasPercentAlong isAvoidEdge_HasPercentAlong `protobuf_oneof:"has_percent_along"` +} + +func (x *AvoidEdge) Reset() { + *x = AvoidEdge{} + if protoimpl.UnsafeEnabled { + mi := &file_options_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AvoidEdge) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AvoidEdge) ProtoMessage() {} + +func (x *AvoidEdge) ProtoReflect() protoreflect.Message { + mi := &file_options_proto_msgTypes[3] + 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 AvoidEdge.ProtoReflect.Descriptor instead. +func (*AvoidEdge) Descriptor() ([]byte, []int) { + return file_options_proto_rawDescGZIP(), []int{3} +} + +func (m *AvoidEdge) GetHasId() isAvoidEdge_HasId { + if m != nil { + return m.HasId + } + return nil +} + +func (x *AvoidEdge) GetId() uint64 { + if x, ok := x.GetHasId().(*AvoidEdge_Id); ok { + return x.Id + } + return 0 +} + +func (m *AvoidEdge) GetHasPercentAlong() isAvoidEdge_HasPercentAlong { + if m != nil { + return m.HasPercentAlong + } + return nil +} + +func (x *AvoidEdge) GetPercentAlong() float32 { + if x, ok := x.GetHasPercentAlong().(*AvoidEdge_PercentAlong); ok { + return x.PercentAlong + } + return 0 +} + +type isAvoidEdge_HasId interface { + isAvoidEdge_HasId() +} + +type AvoidEdge_Id struct { + Id uint64 `protobuf:"varint,1,opt,name=id,proto3,oneof"` +} + +func (*AvoidEdge_Id) isAvoidEdge_HasId() {} + +type isAvoidEdge_HasPercentAlong interface { + isAvoidEdge_HasPercentAlong() +} + +type AvoidEdge_PercentAlong struct { + PercentAlong float32 `protobuf:"fixed32,2,opt,name=percent_along,json=percentAlong,proto3,oneof"` +} + +func (*AvoidEdge_PercentAlong) isAvoidEdge_HasPercentAlong() {} + +type Costing struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to HasOptions: + // *Costing_Options_ + HasOptions isCosting_HasOptions `protobuf_oneof:"has_options"` + Type Costing_Type `protobuf:"varint,2,opt,name=type,proto3,enum=valhalla.Costing_Type" json:"type,omitempty"` + // Types that are assignable to HasName: + // *Costing_Name + HasName isCosting_HasName `protobuf_oneof:"has_name"` + // this is used internally only, setting it in your request will have no effect + // + // Types that are assignable to HasFilterClosures: + // *Costing_FilterClosures + HasFilterClosures isCosting_HasFilterClosures `protobuf_oneof:"has_filter_closures"` +} + +func (x *Costing) Reset() { + *x = Costing{} + if protoimpl.UnsafeEnabled { + mi := &file_options_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Costing) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Costing) ProtoMessage() {} + +func (x *Costing) ProtoReflect() protoreflect.Message { + mi := &file_options_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Costing.ProtoReflect.Descriptor instead. +func (*Costing) Descriptor() ([]byte, []int) { + return file_options_proto_rawDescGZIP(), []int{4} +} + +func (m *Costing) GetHasOptions() isCosting_HasOptions { + if m != nil { + return m.HasOptions + } + return nil +} + +func (x *Costing) GetOptions() *Costing_Options { + if x, ok := x.GetHasOptions().(*Costing_Options_); ok { + return x.Options + } + return nil +} + +func (x *Costing) GetType() Costing_Type { + if x != nil { + return x.Type + } + return Costing_none_ +} + +func (m *Costing) GetHasName() isCosting_HasName { + if m != nil { + return m.HasName + } + return nil +} + +func (x *Costing) GetName() string { + if x, ok := x.GetHasName().(*Costing_Name); ok { + return x.Name + } + return "" +} + +func (m *Costing) GetHasFilterClosures() isCosting_HasFilterClosures { + if m != nil { + return m.HasFilterClosures + } + return nil +} + +func (x *Costing) GetFilterClosures() bool { + if x, ok := x.GetHasFilterClosures().(*Costing_FilterClosures); ok { + return x.FilterClosures + } + return false +} + +type isCosting_HasOptions interface { + isCosting_HasOptions() +} + +type Costing_Options_ struct { + Options *Costing_Options `protobuf:"bytes,1,opt,name=options,proto3,oneof"` +} + +func (*Costing_Options_) isCosting_HasOptions() {} + +type isCosting_HasName interface { + isCosting_HasName() +} + +type Costing_Name struct { + Name string `protobuf:"bytes,3,opt,name=name,proto3,oneof"` +} + +func (*Costing_Name) isCosting_HasName() {} + +type isCosting_HasFilterClosures interface { + isCosting_HasFilterClosures() +} + +type Costing_FilterClosures struct { + FilterClosures bool `protobuf:"varint,4,opt,name=filter_closures,json=filterClosures,proto3,oneof"` +} + +func (*Costing_FilterClosures) isCosting_HasFilterClosures() {} + +type Options struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Units Options_Units `protobuf:"varint,1,opt,name=units,proto3,enum=valhalla.Options_Units" json:"units,omitempty"` // kilometers or miles + // Types that are assignable to HasLanguage: + // *Options_Language + HasLanguage isOptions_HasLanguage `protobuf_oneof:"has_language"` + DirectionsType DirectionsType `protobuf:"varint,3,opt,name=directions_type,json=directionsType,proto3,enum=valhalla.DirectionsType" json:"directions_type,omitempty"` // Enable/disable narrative production [default = instructions] + Format Options_Format `protobuf:"varint,4,opt,name=format,proto3,enum=valhalla.Options_Format" json:"format,omitempty"` // What the response format should be [default = json] + // Types that are assignable to HasId: + // *Options_Id + HasId isOptions_HasId `protobuf_oneof:"has_id"` + // Types that are assignable to HasJsonp: + // *Options_Jsonp + HasJsonp isOptions_HasJsonp `protobuf_oneof:"has_jsonp"` + // Types that are assignable to HasEncodedPolyline: + // *Options_EncodedPolyline + HasEncodedPolyline isOptions_HasEncodedPolyline `protobuf_oneof:"has_encoded_polyline"` + Action Options_Action `protobuf:"varint,8,opt,name=action,proto3,enum=valhalla.Options_Action" json:"action,omitempty"` // Action signifying the request type + //deprecated = 9; + // + // Types that are assignable to HasRange: + // *Options_Range + HasRange isOptions_HasRange `protobuf_oneof:"has_range"` + // verbose needs to stay oneof, so that matrix serializer can default to true + // + // Types that are assignable to HasVerbose: + // *Options_Verbose + HasVerbose isOptions_HasVerbose `protobuf_oneof:"has_verbose"` + CostingType Costing_Type `protobuf:"varint,12,opt,name=costing_type,json=costingType,proto3,enum=valhalla.Costing_Type" json:"costing_type,omitempty"` // The main costing to use with the action, in multimodal this is the first costing to use + Costings map[int32]*Costing `protobuf:"bytes,13,rep,name=costings,proto3" json:"costings,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // A map of Costing.Type enum to its Costing object + Locations []*Location `protobuf:"bytes,14,rep,name=locations,proto3" json:"locations,omitempty"` // Locations for /route /optimized /locate /isochrone + ExcludeLocations []*Location `protobuf:"bytes,15,rep,name=exclude_locations,json=excludeLocations,proto3" json:"exclude_locations,omitempty"` // Avoids for any costing + Sources []*Location `protobuf:"bytes,16,rep,name=sources,proto3" json:"sources,omitempty"` // Sources for /sources_to_targets + Targets []*Location `protobuf:"bytes,17,rep,name=targets,proto3" json:"targets,omitempty"` // Targets for /sources_to_targets + DateTimeType Options_DateTimeType `protobuf:"varint,18,opt,name=date_time_type,json=dateTimeType,proto3,enum=valhalla.Options_DateTimeType" json:"date_time_type,omitempty"` // Are you leaving now or then or arriving then + // Types that are assignable to HasDateTime: + // *Options_DateTime + HasDateTime isOptions_HasDateTime `protobuf_oneof:"has_date_time"` + Shape []*Location `protobuf:"bytes,20,rep,name=shape,proto3" json:"shape,omitempty"` // Raw shape for map matching + // Types that are assignable to HasResampleDistance: + // *Options_ResampleDistance + HasResampleDistance isOptions_HasResampleDistance `protobuf_oneof:"has_resample_distance"` + Contours []*Contour `protobuf:"bytes,22,rep,name=contours,proto3" json:"contours,omitempty"` // List of isochrone contours + // Types that are assignable to HasPolygons: + // *Options_Polygons + HasPolygons isOptions_HasPolygons `protobuf_oneof:"has_polygons"` + // Types that are assignable to HasDenoise: + // *Options_Denoise + HasDenoise isOptions_HasDenoise `protobuf_oneof:"has_denoise"` + // Types that are assignable to HasGeneralize: + // *Options_Generalize + HasGeneralize isOptions_HasGeneralize `protobuf_oneof:"has_generalize"` + // Types that are assignable to HasShowLocations: + // *Options_ShowLocations + HasShowLocations isOptions_HasShowLocations `protobuf_oneof:"has_show_locations"` + Trace []*Location `protobuf:"bytes,27,rep,name=trace,proto3" json:"trace,omitempty"` // Trace points for map matching + ShapeMatch ShapeMatch `protobuf:"varint,28,opt,name=shape_match,json=shapeMatch,proto3,enum=valhalla.ShapeMatch" json:"shape_match,omitempty"` // The matching algorithm based on the type of input [default = walk_or_snap] + //deprecated = 29; + // + // Types that are assignable to HasGpsAccuracy: + // *Options_GpsAccuracy + HasGpsAccuracy isOptions_HasGpsAccuracy `protobuf_oneof:"has_gps_accuracy"` + // Types that are assignable to HasSearchRadius: + // *Options_SearchRadius + HasSearchRadius isOptions_HasSearchRadius `protobuf_oneof:"has_search_radius"` + // Types that are assignable to HasTurnPenaltyFactor: + // *Options_TurnPenaltyFactor + HasTurnPenaltyFactor isOptions_HasTurnPenaltyFactor `protobuf_oneof:"has_turn_penalty_factor"` + FilterAction FilterAction `protobuf:"varint,33,opt,name=filter_action,json=filterAction,proto3,enum=valhalla.FilterAction" json:"filter_action,omitempty"` // The trace filter action - either exclude or include + FilterAttributes []string `protobuf:"bytes,34,rep,name=filter_attributes,json=filterAttributes,proto3" json:"filter_attributes,omitempty"` // The filter list for trace attributes + // Types that are assignable to HasBreakageDistance: + // *Options_BreakageDistance + HasBreakageDistance isOptions_HasBreakageDistance `protobuf_oneof:"has_breakage_distance"` + // Types that are assignable to HasUseTimestamps: + // *Options_UseTimestamps + HasUseTimestamps isOptions_HasUseTimestamps `protobuf_oneof:"has_use_timestamps"` + ShapeFormat ShapeFormat `protobuf:"varint,38,opt,name=shape_format,json=shapeFormat,proto3,enum=valhalla.ShapeFormat" json:"shape_format,omitempty"` // Shape format (defaults to polyline6 encoding) + // Types that are assignable to HasAlternates: + // *Options_Alternates + HasAlternates isOptions_HasAlternates `protobuf_oneof:"has_alternates"` + // Types that are assignable to HasInterpolationDistance: + // *Options_InterpolationDistance + HasInterpolationDistance isOptions_HasInterpolationDistance `protobuf_oneof:"has_interpolation_distance"` + // Types that are assignable to HasGuidanceViews: + // *Options_GuidanceViews + HasGuidanceViews isOptions_HasGuidanceViews `protobuf_oneof:"has_guidance_views"` + // 42 is reserved + // + // Types that are assignable to HasHeightPrecision: + // *Options_HeightPrecision + HasHeightPrecision isOptions_HasHeightPrecision `protobuf_oneof:"has_height_precision"` + // Types that are assignable to HasRoundaboutExits: + // *Options_RoundaboutExits + HasRoundaboutExits isOptions_HasRoundaboutExits `protobuf_oneof:"has_roundabout_exits"` + // Types that are assignable to HasLinearReferences: + // *Options_LinearReferences + HasLinearReferences isOptions_HasLinearReferences `protobuf_oneof:"has_linear_references"` + Recostings []*Costing `protobuf:"bytes,46,rep,name=recostings,proto3" json:"recostings,omitempty"` // CostingType options to use to recost a path after it has been found + ExcludePolygons []*Ring `protobuf:"bytes,47,rep,name=exclude_polygons,json=excludePolygons,proto3" json:"exclude_polygons,omitempty"` // Rings/polygons to exclude entire areas during path finding + // Types that are assignable to HasPrioritizeBidirectional: + // *Options_PrioritizeBidirectional + HasPrioritizeBidirectional isOptions_HasPrioritizeBidirectional `protobuf_oneof:"has_prioritize_bidirectional"` + // Types that are assignable to HasExpansionAction: + // *Options_ExpansionAction + HasExpansionAction isOptions_HasExpansionAction `protobuf_oneof:"has_expansion_action"` + // Types that are assignable to HasSkipOpposites: + // *Options_SkipOpposites + HasSkipOpposites isOptions_HasSkipOpposites `protobuf_oneof:"has_skip_opposites"` + ExpansionProperties []Options_ExpansionProperties `protobuf:"varint,51,rep,packed,name=expansion_properties,json=expansionProperties,proto3,enum=valhalla.Options_ExpansionProperties" json:"expansion_properties,omitempty"` // The array keys (ExpansionTypes enum) to return in the /expansions's GeoJSON "properties" + PbfFieldSelector *PbfFieldSelector `protobuf:"bytes,52,opt,name=pbf_field_selector,json=pbfFieldSelector,proto3" json:"pbf_field_selector,omitempty"` // Which pbf fields to include in the pbf format response + Reverse bool `protobuf:"varint,53,opt,name=reverse,proto3" json:"reverse,omitempty"` // should the isochrone expansion be done in the reverse direction, ignored for multimodal isochrones + // Types that are assignable to HasMatrixLocations: + // *Options_MatrixLocations + HasMatrixLocations isOptions_HasMatrixLocations `protobuf_oneof:"has_matrix_locations"` +} + +func (x *Options) Reset() { + *x = Options{} + if protoimpl.UnsafeEnabled { + mi := &file_options_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Options) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Options) ProtoMessage() {} + +func (x *Options) ProtoReflect() protoreflect.Message { + mi := &file_options_proto_msgTypes[5] + 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 Options.ProtoReflect.Descriptor instead. +func (*Options) Descriptor() ([]byte, []int) { + return file_options_proto_rawDescGZIP(), []int{5} +} + +func (x *Options) GetUnits() Options_Units { + if x != nil { + return x.Units + } + return Options_kilometers +} + +func (m *Options) GetHasLanguage() isOptions_HasLanguage { + if m != nil { + return m.HasLanguage + } + return nil +} + +func (x *Options) GetLanguage() string { + if x, ok := x.GetHasLanguage().(*Options_Language); ok { + return x.Language + } + return "" +} + +func (x *Options) GetDirectionsType() DirectionsType { + if x != nil { + return x.DirectionsType + } + return DirectionsType_instructions +} + +func (x *Options) GetFormat() Options_Format { + if x != nil { + return x.Format + } + return Options_json +} + +func (m *Options) GetHasId() isOptions_HasId { + if m != nil { + return m.HasId + } + return nil +} + +func (x *Options) GetId() string { + if x, ok := x.GetHasId().(*Options_Id); ok { + return x.Id + } + return "" +} + +func (m *Options) GetHasJsonp() isOptions_HasJsonp { + if m != nil { + return m.HasJsonp + } + return nil +} + +func (x *Options) GetJsonp() string { + if x, ok := x.GetHasJsonp().(*Options_Jsonp); ok { + return x.Jsonp + } + return "" +} + +func (m *Options) GetHasEncodedPolyline() isOptions_HasEncodedPolyline { + if m != nil { + return m.HasEncodedPolyline + } + return nil +} + +func (x *Options) GetEncodedPolyline() string { + if x, ok := x.GetHasEncodedPolyline().(*Options_EncodedPolyline); ok { + return x.EncodedPolyline + } + return "" +} + +func (x *Options) GetAction() Options_Action { + if x != nil { + return x.Action + } + return Options_no_action +} + +func (m *Options) GetHasRange() isOptions_HasRange { + if m != nil { + return m.HasRange + } + return nil +} + +func (x *Options) GetRange() bool { + if x, ok := x.GetHasRange().(*Options_Range); ok { + return x.Range + } + return false +} + +func (m *Options) GetHasVerbose() isOptions_HasVerbose { + if m != nil { + return m.HasVerbose + } + return nil +} + +func (x *Options) GetVerbose() bool { + if x, ok := x.GetHasVerbose().(*Options_Verbose); ok { + return x.Verbose + } + return false +} + +func (x *Options) GetCostingType() Costing_Type { + if x != nil { + return x.CostingType + } + return Costing_none_ +} + +func (x *Options) GetCostings() map[int32]*Costing { + if x != nil { + return x.Costings + } + return nil +} + +func (x *Options) GetLocations() []*Location { + if x != nil { + return x.Locations + } + return nil +} + +func (x *Options) GetExcludeLocations() []*Location { + if x != nil { + return x.ExcludeLocations + } + return nil +} + +func (x *Options) GetSources() []*Location { + if x != nil { + return x.Sources + } + return nil +} + +func (x *Options) GetTargets() []*Location { + if x != nil { + return x.Targets + } + return nil +} + +func (x *Options) GetDateTimeType() Options_DateTimeType { + if x != nil { + return x.DateTimeType + } + return Options_no_time +} + +func (m *Options) GetHasDateTime() isOptions_HasDateTime { + if m != nil { + return m.HasDateTime + } + return nil +} + +func (x *Options) GetDateTime() string { + if x, ok := x.GetHasDateTime().(*Options_DateTime); ok { + return x.DateTime + } + return "" +} + +func (x *Options) GetShape() []*Location { + if x != nil { + return x.Shape + } + return nil +} + +func (m *Options) GetHasResampleDistance() isOptions_HasResampleDistance { + if m != nil { + return m.HasResampleDistance + } + return nil +} + +func (x *Options) GetResampleDistance() float64 { + if x, ok := x.GetHasResampleDistance().(*Options_ResampleDistance); ok { + return x.ResampleDistance + } + return 0 +} + +func (x *Options) GetContours() []*Contour { + if x != nil { + return x.Contours + } + return nil +} + +func (m *Options) GetHasPolygons() isOptions_HasPolygons { + if m != nil { + return m.HasPolygons + } + return nil +} + +func (x *Options) GetPolygons() bool { + if x, ok := x.GetHasPolygons().(*Options_Polygons); ok { + return x.Polygons + } + return false +} + +func (m *Options) GetHasDenoise() isOptions_HasDenoise { + if m != nil { + return m.HasDenoise + } + return nil +} + +func (x *Options) GetDenoise() float32 { + if x, ok := x.GetHasDenoise().(*Options_Denoise); ok { + return x.Denoise + } + return 0 +} + +func (m *Options) GetHasGeneralize() isOptions_HasGeneralize { + if m != nil { + return m.HasGeneralize + } + return nil +} + +func (x *Options) GetGeneralize() float32 { + if x, ok := x.GetHasGeneralize().(*Options_Generalize); ok { + return x.Generalize + } + return 0 +} + +func (m *Options) GetHasShowLocations() isOptions_HasShowLocations { + if m != nil { + return m.HasShowLocations + } + return nil +} + +func (x *Options) GetShowLocations() bool { + if x, ok := x.GetHasShowLocations().(*Options_ShowLocations); ok { + return x.ShowLocations + } + return false +} + +func (x *Options) GetTrace() []*Location { + if x != nil { + return x.Trace + } + return nil +} + +func (x *Options) GetShapeMatch() ShapeMatch { + if x != nil { + return x.ShapeMatch + } + return ShapeMatch_walk_or_snap +} + +func (m *Options) GetHasGpsAccuracy() isOptions_HasGpsAccuracy { + if m != nil { + return m.HasGpsAccuracy + } + return nil +} + +func (x *Options) GetGpsAccuracy() float32 { + if x, ok := x.GetHasGpsAccuracy().(*Options_GpsAccuracy); ok { + return x.GpsAccuracy + } + return 0 +} + +func (m *Options) GetHasSearchRadius() isOptions_HasSearchRadius { + if m != nil { + return m.HasSearchRadius + } + return nil +} + +func (x *Options) GetSearchRadius() float32 { + if x, ok := x.GetHasSearchRadius().(*Options_SearchRadius); ok { + return x.SearchRadius + } + return 0 +} + +func (m *Options) GetHasTurnPenaltyFactor() isOptions_HasTurnPenaltyFactor { + if m != nil { + return m.HasTurnPenaltyFactor + } + return nil +} + +func (x *Options) GetTurnPenaltyFactor() float32 { + if x, ok := x.GetHasTurnPenaltyFactor().(*Options_TurnPenaltyFactor); ok { + return x.TurnPenaltyFactor + } + return 0 +} + +func (x *Options) GetFilterAction() FilterAction { + if x != nil { + return x.FilterAction + } + return FilterAction_no_action +} + +func (x *Options) GetFilterAttributes() []string { + if x != nil { + return x.FilterAttributes + } + return nil +} + +func (m *Options) GetHasBreakageDistance() isOptions_HasBreakageDistance { + if m != nil { + return m.HasBreakageDistance + } + return nil +} + +func (x *Options) GetBreakageDistance() float32 { + if x, ok := x.GetHasBreakageDistance().(*Options_BreakageDistance); ok { + return x.BreakageDistance + } + return 0 +} + +func (m *Options) GetHasUseTimestamps() isOptions_HasUseTimestamps { + if m != nil { + return m.HasUseTimestamps + } + return nil +} + +func (x *Options) GetUseTimestamps() bool { + if x, ok := x.GetHasUseTimestamps().(*Options_UseTimestamps); ok { + return x.UseTimestamps + } + return false +} + +func (x *Options) GetShapeFormat() ShapeFormat { + if x != nil { + return x.ShapeFormat + } + return ShapeFormat_polyline6 +} + +func (m *Options) GetHasAlternates() isOptions_HasAlternates { + if m != nil { + return m.HasAlternates + } + return nil +} + +func (x *Options) GetAlternates() uint32 { + if x, ok := x.GetHasAlternates().(*Options_Alternates); ok { + return x.Alternates + } + return 0 +} + +func (m *Options) GetHasInterpolationDistance() isOptions_HasInterpolationDistance { + if m != nil { + return m.HasInterpolationDistance + } + return nil +} + +func (x *Options) GetInterpolationDistance() float32 { + if x, ok := x.GetHasInterpolationDistance().(*Options_InterpolationDistance); ok { + return x.InterpolationDistance + } + return 0 +} + +func (m *Options) GetHasGuidanceViews() isOptions_HasGuidanceViews { + if m != nil { + return m.HasGuidanceViews + } + return nil +} + +func (x *Options) GetGuidanceViews() bool { + if x, ok := x.GetHasGuidanceViews().(*Options_GuidanceViews); ok { + return x.GuidanceViews + } + return false +} + +func (m *Options) GetHasHeightPrecision() isOptions_HasHeightPrecision { + if m != nil { + return m.HasHeightPrecision + } + return nil +} + +func (x *Options) GetHeightPrecision() uint32 { + if x, ok := x.GetHasHeightPrecision().(*Options_HeightPrecision); ok { + return x.HeightPrecision + } + return 0 +} + +func (m *Options) GetHasRoundaboutExits() isOptions_HasRoundaboutExits { + if m != nil { + return m.HasRoundaboutExits + } + return nil +} + +func (x *Options) GetRoundaboutExits() bool { + if x, ok := x.GetHasRoundaboutExits().(*Options_RoundaboutExits); ok { + return x.RoundaboutExits + } + return false +} + +func (m *Options) GetHasLinearReferences() isOptions_HasLinearReferences { + if m != nil { + return m.HasLinearReferences + } + return nil +} + +func (x *Options) GetLinearReferences() bool { + if x, ok := x.GetHasLinearReferences().(*Options_LinearReferences); ok { + return x.LinearReferences + } + return false +} + +func (x *Options) GetRecostings() []*Costing { + if x != nil { + return x.Recostings + } + return nil +} + +func (x *Options) GetExcludePolygons() []*Ring { + if x != nil { + return x.ExcludePolygons + } + return nil +} + +func (m *Options) GetHasPrioritizeBidirectional() isOptions_HasPrioritizeBidirectional { + if m != nil { + return m.HasPrioritizeBidirectional + } + return nil +} + +func (x *Options) GetPrioritizeBidirectional() bool { + if x, ok := x.GetHasPrioritizeBidirectional().(*Options_PrioritizeBidirectional); ok { + return x.PrioritizeBidirectional + } + return false +} + +func (m *Options) GetHasExpansionAction() isOptions_HasExpansionAction { + if m != nil { + return m.HasExpansionAction + } + return nil +} + +func (x *Options) GetExpansionAction() Options_Action { + if x, ok := x.GetHasExpansionAction().(*Options_ExpansionAction); ok { + return x.ExpansionAction + } + return Options_no_action +} + +func (m *Options) GetHasSkipOpposites() isOptions_HasSkipOpposites { + if m != nil { + return m.HasSkipOpposites + } + return nil +} + +func (x *Options) GetSkipOpposites() bool { + if x, ok := x.GetHasSkipOpposites().(*Options_SkipOpposites); ok { + return x.SkipOpposites + } + return false +} + +func (x *Options) GetExpansionProperties() []Options_ExpansionProperties { + if x != nil { + return x.ExpansionProperties + } + return nil +} + +func (x *Options) GetPbfFieldSelector() *PbfFieldSelector { + if x != nil { + return x.PbfFieldSelector + } + return nil +} + +func (x *Options) GetReverse() bool { + if x != nil { + return x.Reverse + } + return false +} + +func (m *Options) GetHasMatrixLocations() isOptions_HasMatrixLocations { + if m != nil { + return m.HasMatrixLocations + } + return nil +} + +func (x *Options) GetMatrixLocations() uint32 { + if x, ok := x.GetHasMatrixLocations().(*Options_MatrixLocations); ok { + return x.MatrixLocations + } + return 0 +} + +type isOptions_HasLanguage interface { + isOptions_HasLanguage() +} + +type Options_Language struct { + Language string `protobuf:"bytes,2,opt,name=language,proto3,oneof"` // Based on IETF BCP 47 language tag string [default = "en-US"] +} + +func (*Options_Language) isOptions_HasLanguage() {} + +type isOptions_HasId interface { + isOptions_HasId() +} + +type Options_Id struct { + Id string `protobuf:"bytes,5,opt,name=id,proto3,oneof"` // id for the request +} + +func (*Options_Id) isOptions_HasId() {} + +type isOptions_HasJsonp interface { + isOptions_HasJsonp() +} + +type Options_Jsonp struct { + Jsonp string `protobuf:"bytes,6,opt,name=jsonp,proto3,oneof"` // javascript callback for the request +} + +func (*Options_Jsonp) isOptions_HasJsonp() {} + +type isOptions_HasEncodedPolyline interface { + isOptions_HasEncodedPolyline() +} + +type Options_EncodedPolyline struct { + EncodedPolyline string `protobuf:"bytes,7,opt,name=encoded_polyline,json=encodedPolyline,proto3,oneof"` // polyline 6 encoded shape used in /height /trace_* +} + +func (*Options_EncodedPolyline) isOptions_HasEncodedPolyline() {} + +type isOptions_HasRange interface { + isOptions_HasRange() +} + +type Options_Range struct { + Range bool `protobuf:"varint,10,opt,name=range,proto3,oneof"` // Used in /height if the range between points should be serialized [default = false] +} + +func (*Options_Range) isOptions_HasRange() {} + +type isOptions_HasVerbose interface { + isOptions_HasVerbose() +} + +type Options_Verbose struct { + Verbose bool `protobuf:"varint,11,opt,name=verbose,proto3,oneof"` // Used in /locate & /status request to give back extensive information [default = false] +} + +func (*Options_Verbose) isOptions_HasVerbose() {} + +type isOptions_HasDateTime interface { + isOptions_HasDateTime() +} + +type Options_DateTime struct { + DateTime string `protobuf:"bytes,19,opt,name=date_time,json=dateTime,proto3,oneof"` // And what day and time +} + +func (*Options_DateTime) isOptions_HasDateTime() {} + +type isOptions_HasResampleDistance interface { + isOptions_HasResampleDistance() +} + +type Options_ResampleDistance struct { + ResampleDistance float64 `protobuf:"fixed64,21,opt,name=resample_distance,json=resampleDistance,proto3,oneof"` // Resampling shape at regular intervals +} + +func (*Options_ResampleDistance) isOptions_HasResampleDistance() {} + +type isOptions_HasPolygons interface { + isOptions_HasPolygons() +} + +type Options_Polygons struct { + Polygons bool `protobuf:"varint,23,opt,name=polygons,proto3,oneof"` // Boolean value to determine whether to return geojson polygons or linestrings as the contours +} + +func (*Options_Polygons) isOptions_HasPolygons() {} + +type isOptions_HasDenoise interface { + isOptions_HasDenoise() +} + +type Options_Denoise struct { + Denoise float32 `protobuf:"fixed32,24,opt,name=denoise,proto3,oneof"` // A floating point value from 0 to 1 which can be used to remove smaller contours (default 1.0) +} + +func (*Options_Denoise) isOptions_HasDenoise() {} + +type isOptions_HasGeneralize interface { + isOptions_HasGeneralize() +} + +type Options_Generalize struct { + Generalize float32 `protobuf:"fixed32,25,opt,name=generalize,proto3,oneof"` // Meters used as the tolerance for Douglas-Peucker generalization +} + +func (*Options_Generalize) isOptions_HasGeneralize() {} + +type isOptions_HasShowLocations interface { + isOptions_HasShowLocations() +} + +type Options_ShowLocations struct { + ShowLocations bool `protobuf:"varint,26,opt,name=show_locations,json=showLocations,proto3,oneof"` // Add original locations to the isochrone geojson response +} + +func (*Options_ShowLocations) isOptions_HasShowLocations() {} + +type isOptions_HasGpsAccuracy interface { + isOptions_HasGpsAccuracy() +} + +type Options_GpsAccuracy struct { + GpsAccuracy float32 `protobuf:"fixed32,30,opt,name=gps_accuracy,json=gpsAccuracy,proto3,oneof"` // The gps accuracy associated with the supplied trace points +} + +func (*Options_GpsAccuracy) isOptions_HasGpsAccuracy() {} + +type isOptions_HasSearchRadius interface { + isOptions_HasSearchRadius() +} + +type Options_SearchRadius struct { + SearchRadius float32 `protobuf:"fixed32,31,opt,name=search_radius,json=searchRadius,proto3,oneof"` // The search radius associated with the supplied trace points +} + +func (*Options_SearchRadius) isOptions_HasSearchRadius() {} + +type isOptions_HasTurnPenaltyFactor interface { + isOptions_HasTurnPenaltyFactor() +} + +type Options_TurnPenaltyFactor struct { + TurnPenaltyFactor float32 `protobuf:"fixed32,32,opt,name=turn_penalty_factor,json=turnPenaltyFactor,proto3,oneof"` // The turn penalty factor associated with the supplied trace points +} + +func (*Options_TurnPenaltyFactor) isOptions_HasTurnPenaltyFactor() {} + +type isOptions_HasBreakageDistance interface { + isOptions_HasBreakageDistance() +} + +type Options_BreakageDistance struct { + BreakageDistance float32 `protobuf:"fixed32,36,opt,name=breakage_distance,json=breakageDistance,proto3,oneof"` // Map-matching breaking distance (distance between GPS trace points) +} + +func (*Options_BreakageDistance) isOptions_HasBreakageDistance() {} + +type isOptions_HasUseTimestamps interface { + isOptions_HasUseTimestamps() +} + +type Options_UseTimestamps struct { + UseTimestamps bool `protobuf:"varint,37,opt,name=use_timestamps,json=useTimestamps,proto3,oneof"` // Use timestamps to compute elapsed time for trace_route and trace_attributes [default = false] +} + +func (*Options_UseTimestamps) isOptions_HasUseTimestamps() {} + +type isOptions_HasAlternates interface { + isOptions_HasAlternates() +} + +type Options_Alternates struct { + Alternates uint32 `protobuf:"varint,39,opt,name=alternates,proto3,oneof"` // Maximum number of alternate routes that can be returned +} + +func (*Options_Alternates) isOptions_HasAlternates() {} + +type isOptions_HasInterpolationDistance interface { + isOptions_HasInterpolationDistance() +} + +type Options_InterpolationDistance struct { + InterpolationDistance float32 `protobuf:"fixed32,40,opt,name=interpolation_distance,json=interpolationDistance,proto3,oneof"` // Map-matching interpolation distance beyond which trace points are merged +} + +func (*Options_InterpolationDistance) isOptions_HasInterpolationDistance() {} + +type isOptions_HasGuidanceViews interface { + isOptions_HasGuidanceViews() +} + +type Options_GuidanceViews struct { + GuidanceViews bool `protobuf:"varint,41,opt,name=guidance_views,json=guidanceViews,proto3,oneof"` // Whether to return guidance_views in the response +} + +func (*Options_GuidanceViews) isOptions_HasGuidanceViews() {} + +type isOptions_HasHeightPrecision interface { + isOptions_HasHeightPrecision() +} + +type Options_HeightPrecision struct { + HeightPrecision uint32 `protobuf:"varint,43,opt,name=height_precision,json=heightPrecision,proto3,oneof"` // Number of digits precision for heights returned [default = 0] +} + +func (*Options_HeightPrecision) isOptions_HasHeightPrecision() {} + +type isOptions_HasRoundaboutExits interface { + isOptions_HasRoundaboutExits() +} + +type Options_RoundaboutExits struct { + RoundaboutExits bool `protobuf:"varint,44,opt,name=roundabout_exits,json=roundaboutExits,proto3,oneof"` // Whether to announce roundabout exit maneuvers [default = true] +} + +func (*Options_RoundaboutExits) isOptions_HasRoundaboutExits() {} + +type isOptions_HasLinearReferences interface { + isOptions_HasLinearReferences() +} + +type Options_LinearReferences struct { + LinearReferences bool `protobuf:"varint,45,opt,name=linear_references,json=linearReferences,proto3,oneof"` // Include linear references for graph edges returned in certain responses. +} + +func (*Options_LinearReferences) isOptions_HasLinearReferences() {} + +type isOptions_HasPrioritizeBidirectional interface { + isOptions_HasPrioritizeBidirectional() +} + +type Options_PrioritizeBidirectional struct { + PrioritizeBidirectional bool `protobuf:"varint,48,opt,name=prioritize_bidirectional,json=prioritizeBidirectional,proto3,oneof"` // Prioritize bidirectional a* when depart_at date_time.type is specified [default = false] +} + +func (*Options_PrioritizeBidirectional) isOptions_HasPrioritizeBidirectional() {} + +type isOptions_HasExpansionAction interface { + isOptions_HasExpansionAction() +} + +type Options_ExpansionAction struct { + ExpansionAction Options_Action `protobuf:"varint,49,opt,name=expansion_action,json=expansionAction,proto3,enum=valhalla.Options_Action,oneof"` // Meta action for /expansion endpoint +} + +func (*Options_ExpansionAction) isOptions_HasExpansionAction() {} + +type isOptions_HasSkipOpposites interface { + isOptions_HasSkipOpposites() +} + +type Options_SkipOpposites struct { + SkipOpposites bool `protobuf:"varint,50,opt,name=skip_opposites,json=skipOpposites,proto3,oneof"` // Whether to return opposite edges encountered during expansion +} + +func (*Options_SkipOpposites) isOptions_HasSkipOpposites() {} + +type isOptions_HasMatrixLocations interface { + isOptions_HasMatrixLocations() +} + +type Options_MatrixLocations struct { + MatrixLocations uint32 `protobuf:"varint,54,opt,name=matrix_locations,json=matrixLocations,proto3,oneof"` // a one to many or many to one time distance matrix. Does not affect +} + +func (*Options_MatrixLocations) isOptions_HasMatrixLocations() {} + +type Costing_Options struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to HasManeuverPenalty: + // *Costing_Options_ManeuverPenalty + HasManeuverPenalty isCosting_Options_HasManeuverPenalty `protobuf_oneof:"has_maneuver_penalty"` + // Types that are assignable to HasDestinationOnlyPenalty: + // *Costing_Options_DestinationOnlyPenalty + HasDestinationOnlyPenalty isCosting_Options_HasDestinationOnlyPenalty `protobuf_oneof:"has_destination_only_penalty"` + // Types that are assignable to HasGateCost: + // *Costing_Options_GateCost + HasGateCost isCosting_Options_HasGateCost `protobuf_oneof:"has_gate_cost"` + // Types that are assignable to HasGatePenalty: + // *Costing_Options_GatePenalty + HasGatePenalty isCosting_Options_HasGatePenalty `protobuf_oneof:"has_gate_penalty"` + // Types that are assignable to HasTollBoothCost: + // *Costing_Options_TollBoothCost + HasTollBoothCost isCosting_Options_HasTollBoothCost `protobuf_oneof:"has_toll_booth_cost"` + // Types that are assignable to HasTollBoothPenalty: + // *Costing_Options_TollBoothPenalty + HasTollBoothPenalty isCosting_Options_HasTollBoothPenalty `protobuf_oneof:"has_toll_booth_penalty"` + // Types that are assignable to HasAlleyPenalty: + // *Costing_Options_AlleyPenalty + HasAlleyPenalty isCosting_Options_HasAlleyPenalty `protobuf_oneof:"has_alley_penalty"` + // Types that are assignable to HasCountryCrossingCost: + // *Costing_Options_CountryCrossingCost + HasCountryCrossingCost isCosting_Options_HasCountryCrossingCost `protobuf_oneof:"has_country_crossing_cost"` + // Types that are assignable to HasCountryCrossingPenalty: + // *Costing_Options_CountryCrossingPenalty + HasCountryCrossingPenalty isCosting_Options_HasCountryCrossingPenalty `protobuf_oneof:"has_country_crossing_penalty"` + // Types that are assignable to HasFerryCost: + // *Costing_Options_FerryCost + HasFerryCost isCosting_Options_HasFerryCost `protobuf_oneof:"has_ferry_cost"` + // Types that are assignable to HasAvoidBadSurfaces: + // *Costing_Options_AvoidBadSurfaces + HasAvoidBadSurfaces isCosting_Options_HasAvoidBadSurfaces `protobuf_oneof:"has_avoid_bad_surfaces"` + // Types that are assignable to HasUseFerry: + // *Costing_Options_UseFerry + HasUseFerry isCosting_Options_HasUseFerry `protobuf_oneof:"has_use_ferry"` + // Types that are assignable to HasUseHighways: + // *Costing_Options_UseHighways + HasUseHighways isCosting_Options_HasUseHighways `protobuf_oneof:"has_use_highways"` + // Types that are assignable to HasUseTolls: + // *Costing_Options_UseTolls + HasUseTolls isCosting_Options_HasUseTolls `protobuf_oneof:"has_use_tolls"` + // Types that are assignable to HasUseRoads: + // *Costing_Options_UseRoads + HasUseRoads isCosting_Options_HasUseRoads `protobuf_oneof:"has_use_roads"` + // Types that are assignable to HasMaxDistance: + // *Costing_Options_MaxDistance + HasMaxDistance isCosting_Options_HasMaxDistance `protobuf_oneof:"has_max_distance"` + // Types that are assignable to HasWalkingSpeed: + // *Costing_Options_WalkingSpeed + HasWalkingSpeed isCosting_Options_HasWalkingSpeed `protobuf_oneof:"has_walking_speed"` + // Types that are assignable to HasStepPenalty: + // *Costing_Options_StepPenalty + HasStepPenalty isCosting_Options_HasStepPenalty `protobuf_oneof:"has_step_penalty"` + // Types that are assignable to HasMaxGrade: + // *Costing_Options_MaxGrade + HasMaxGrade isCosting_Options_HasMaxGrade `protobuf_oneof:"has_max_grade"` + // Types that are assignable to HasMaxHikingDifficulty: + // *Costing_Options_MaxHikingDifficulty + HasMaxHikingDifficulty isCosting_Options_HasMaxHikingDifficulty `protobuf_oneof:"has_max_hiking_difficulty"` + // Types that are assignable to HasModeFactor: + // *Costing_Options_ModeFactor + HasModeFactor isCosting_Options_HasModeFactor `protobuf_oneof:"has_mode_factor"` + // Types that are assignable to HasWalkwayFactor: + // *Costing_Options_WalkwayFactor + HasWalkwayFactor isCosting_Options_HasWalkwayFactor `protobuf_oneof:"has_walkway_factor"` + // Types that are assignable to HasSidewalkFactor: + // *Costing_Options_SidewalkFactor + HasSidewalkFactor isCosting_Options_HasSidewalkFactor `protobuf_oneof:"has_sidewalk_factor"` + // Types that are assignable to HasAlleyFactor: + // *Costing_Options_AlleyFactor + HasAlleyFactor isCosting_Options_HasAlleyFactor `protobuf_oneof:"has_alley_factor"` + // Types that are assignable to HasDrivewayFactor: + // *Costing_Options_DrivewayFactor + HasDrivewayFactor isCosting_Options_HasDrivewayFactor `protobuf_oneof:"has_driveway_factor"` + // Types that are assignable to HasDrivewayPenalty: + // *Costing_Options_DrivewayPenalty + HasDrivewayPenalty isCosting_Options_HasDrivewayPenalty `protobuf_oneof:"has_driveway_penalty"` + // Types that are assignable to HasTransitStartEndMaxDistance: + // *Costing_Options_TransitStartEndMaxDistance + HasTransitStartEndMaxDistance isCosting_Options_HasTransitStartEndMaxDistance `protobuf_oneof:"has_transit_start_end_max_distance"` + // Types that are assignable to HasTransitTransferMaxDistance: + // *Costing_Options_TransitTransferMaxDistance + HasTransitTransferMaxDistance isCosting_Options_HasTransitTransferMaxDistance `protobuf_oneof:"has_transit_transfer_max_distance"` + // Types that are assignable to HasTransportType: + // *Costing_Options_TransportType + HasTransportType isCosting_Options_HasTransportType `protobuf_oneof:"has_transport_type"` + // Types that are assignable to HasTopSpeed: + // *Costing_Options_TopSpeed + HasTopSpeed isCosting_Options_HasTopSpeed `protobuf_oneof:"has_top_speed"` + // Types that are assignable to HasUseHills: + // *Costing_Options_UseHills + HasUseHills isCosting_Options_HasUseHills `protobuf_oneof:"has_use_hills"` + // Types that are assignable to HasUsePrimary: + // *Costing_Options_UsePrimary + HasUsePrimary isCosting_Options_HasUsePrimary `protobuf_oneof:"has_use_primary"` + // Types that are assignable to HasUseTrails: + // *Costing_Options_UseTrails + HasUseTrails isCosting_Options_HasUseTrails `protobuf_oneof:"has_use_trails"` + // Types that are assignable to HasLowClassPenalty: + // *Costing_Options_LowClassPenalty + HasLowClassPenalty isCosting_Options_HasLowClassPenalty `protobuf_oneof:"has_low_class_penalty"` + // Types that are assignable to HasHazmat: + // *Costing_Options_Hazmat + HasHazmat isCosting_Options_HasHazmat `protobuf_oneof:"has_hazmat"` + // Types that are assignable to HasWeight: + // *Costing_Options_Weight + HasWeight isCosting_Options_HasWeight `protobuf_oneof:"has_weight"` + // Types that are assignable to HasAxleLoad: + // *Costing_Options_AxleLoad + HasAxleLoad isCosting_Options_HasAxleLoad `protobuf_oneof:"has_axle_load"` + // Types that are assignable to HasHeight: + // *Costing_Options_Height + HasHeight isCosting_Options_HasHeight `protobuf_oneof:"has_height"` + // Types that are assignable to HasWidth: + // *Costing_Options_Width + HasWidth isCosting_Options_HasWidth `protobuf_oneof:"has_width"` + // Types that are assignable to HasLength: + // *Costing_Options_Length + HasLength isCosting_Options_HasLength `protobuf_oneof:"has_length"` + // Types that are assignable to HasCyclingSpeed: + // *Costing_Options_CyclingSpeed + HasCyclingSpeed isCosting_Options_HasCyclingSpeed `protobuf_oneof:"has_cycling_speed"` + // Types that are assignable to HasWheelchair: + // *Costing_Options_Wheelchair + HasWheelchair isCosting_Options_HasWheelchair `protobuf_oneof:"has_wheelchair"` + // Types that are assignable to HasBicycle: + // *Costing_Options_Bicycle + HasBicycle isCosting_Options_HasBicycle `protobuf_oneof:"has_bicycle"` + // Types that are assignable to HasUseBus: + // *Costing_Options_UseBus + HasUseBus isCosting_Options_HasUseBus `protobuf_oneof:"has_use_bus"` + // Types that are assignable to HasUseRail: + // *Costing_Options_UseRail + HasUseRail isCosting_Options_HasUseRail `protobuf_oneof:"has_use_rail"` + // Types that are assignable to HasUseTransfers: + // *Costing_Options_UseTransfers + HasUseTransfers isCosting_Options_HasUseTransfers `protobuf_oneof:"has_use_transfers"` + // Types that are assignable to HasTransferCost: + // *Costing_Options_TransferCost + HasTransferCost isCosting_Options_HasTransferCost `protobuf_oneof:"has_transfer_cost"` + // Types that are assignable to HasTransferPenalty: + // *Costing_Options_TransferPenalty + HasTransferPenalty isCosting_Options_HasTransferPenalty `protobuf_oneof:"has_transfer_penalty"` + FilterStopAction FilterAction `protobuf:"varint,49,opt,name=filter_stop_action,json=filterStopAction,proto3,enum=valhalla.FilterAction" json:"filter_stop_action,omitempty"` + FilterStopIds []string `protobuf:"bytes,50,rep,name=filter_stop_ids,json=filterStopIds,proto3" json:"filter_stop_ids,omitempty"` + FilterOperatorAction FilterAction `protobuf:"varint,51,opt,name=filter_operator_action,json=filterOperatorAction,proto3,enum=valhalla.FilterAction" json:"filter_operator_action,omitempty"` + FilterOperatorIds []string `protobuf:"bytes,52,rep,name=filter_operator_ids,json=filterOperatorIds,proto3" json:"filter_operator_ids,omitempty"` + FilterRouteAction FilterAction `protobuf:"varint,53,opt,name=filter_route_action,json=filterRouteAction,proto3,enum=valhalla.FilterAction" json:"filter_route_action,omitempty"` + FilterRouteIds []string `protobuf:"bytes,54,rep,name=filter_route_ids,json=filterRouteIds,proto3" json:"filter_route_ids,omitempty"` + // Types that are assignable to HasFlowMask: + // *Costing_Options_FlowMask + HasFlowMask isCosting_Options_HasFlowMask `protobuf_oneof:"has_flow_mask"` + // Types that are assignable to HasBikeShareCost: + // *Costing_Options_BikeShareCost + HasBikeShareCost isCosting_Options_HasBikeShareCost `protobuf_oneof:"has_bike_share_cost"` + // Types that are assignable to HasBikeSharePenalty: + // *Costing_Options_BikeSharePenalty + HasBikeSharePenalty isCosting_Options_HasBikeSharePenalty `protobuf_oneof:"has_bike_share_penalty"` + // Types that are assignable to HasRailFerryCost: + // *Costing_Options_RailFerryCost + HasRailFerryCost isCosting_Options_HasRailFerryCost `protobuf_oneof:"has_rail_ferry_cost"` + // Types that are assignable to HasUseRailFerry: + // *Costing_Options_UseRailFerry + HasUseRailFerry isCosting_Options_HasUseRailFerry `protobuf_oneof:"has_use_rail_ferry"` + // Types that are assignable to HasIgnoreRestrictions: + // *Costing_Options_IgnoreRestrictions + HasIgnoreRestrictions isCosting_Options_HasIgnoreRestrictions `protobuf_oneof:"has_ignore_restrictions"` + // Types that are assignable to HasIgnoreOneways: + // *Costing_Options_IgnoreOneways + HasIgnoreOneways isCosting_Options_HasIgnoreOneways `protobuf_oneof:"has_ignore_oneways"` + // Types that are assignable to HasIgnoreAccess: + // *Costing_Options_IgnoreAccess + HasIgnoreAccess isCosting_Options_HasIgnoreAccess `protobuf_oneof:"has_ignore_access"` + // Types that are assignable to HasIgnoreClosures: + // *Costing_Options_IgnoreClosures + HasIgnoreClosures isCosting_Options_HasIgnoreClosures `protobuf_oneof:"has_ignore_closures"` + // Types that are assignable to HasShortest: + // *Costing_Options_Shortest + HasShortest isCosting_Options_HasShortest `protobuf_oneof:"has_shortest"` + // Types that are assignable to HasServicePenalty: + // *Costing_Options_ServicePenalty + HasServicePenalty isCosting_Options_HasServicePenalty `protobuf_oneof:"has_service_penalty"` + // Types that are assignable to HasUseTracks: + // *Costing_Options_UseTracks + HasUseTracks isCosting_Options_HasUseTracks `protobuf_oneof:"has_use_tracks"` + // Types that are assignable to HasUseDistance: + // *Costing_Options_UseDistance + HasUseDistance isCosting_Options_HasUseDistance `protobuf_oneof:"has_use_distance"` + // Types that are assignable to HasUseLivingStreets: + // *Costing_Options_UseLivingStreets + HasUseLivingStreets isCosting_Options_HasUseLivingStreets `protobuf_oneof:"has_use_living_streets"` + // Types that are assignable to HasServiceFactor: + // *Costing_Options_ServiceFactor + HasServiceFactor isCosting_Options_HasServiceFactor `protobuf_oneof:"has_service_factor"` + // Types that are assignable to HasClosureFactor: + // *Costing_Options_ClosureFactor + HasClosureFactor isCosting_Options_HasClosureFactor `protobuf_oneof:"has_closure_factor"` + // Types that are assignable to HasPrivateAccessPenalty: + // *Costing_Options_PrivateAccessPenalty + HasPrivateAccessPenalty isCosting_Options_HasPrivateAccessPenalty `protobuf_oneof:"has_private_access_penalty"` + // Types that are assignable to HasExcludeUnpaved: + // *Costing_Options_ExcludeUnpaved + HasExcludeUnpaved isCosting_Options_HasExcludeUnpaved `protobuf_oneof:"has_exclude_unpaved"` + // Types that are assignable to HasIncludeHot: + // *Costing_Options_IncludeHot + HasIncludeHot isCosting_Options_HasIncludeHot `protobuf_oneof:"has_include_hot"` + // Types that are assignable to HasIncludeHov2: + // *Costing_Options_IncludeHov2 + HasIncludeHov2 isCosting_Options_HasIncludeHov2 `protobuf_oneof:"has_include_hov2"` + // Types that are assignable to HasIncludeHov3: + // *Costing_Options_IncludeHov3 + HasIncludeHov3 isCosting_Options_HasIncludeHov3 `protobuf_oneof:"has_include_hov3"` + // Types that are assignable to HasExcludeCashOnlyTolls: + // *Costing_Options_ExcludeCashOnlyTolls + HasExcludeCashOnlyTolls isCosting_Options_HasExcludeCashOnlyTolls `protobuf_oneof:"has_exclude_cash_only_tolls"` + // Types that are assignable to HasRestrictionProbability: + // *Costing_Options_RestrictionProbability + HasRestrictionProbability isCosting_Options_HasRestrictionProbability `protobuf_oneof:"has_restriction_probability"` + ExcludeEdges []*AvoidEdge `protobuf:"bytes,78,rep,name=exclude_edges,json=excludeEdges,proto3" json:"exclude_edges,omitempty"` + // Types that are assignable to HasElevatorPenalty: + // *Costing_Options_ElevatorPenalty + HasElevatorPenalty isCosting_Options_HasElevatorPenalty `protobuf_oneof:"has_elevator_penalty"` + FixedSpeed uint32 `protobuf:"varint,80,opt,name=fixed_speed,json=fixedSpeed,proto3" json:"fixed_speed,omitempty"` + AxleCount uint32 `protobuf:"varint,81,opt,name=axle_count,json=axleCount,proto3" json:"axle_count,omitempty"` + UseLit float32 `protobuf:"fixed32,82,opt,name=use_lit,json=useLit,proto3" json:"use_lit,omitempty"` +} + +func (x *Costing_Options) Reset() { + *x = Costing_Options{} + if protoimpl.UnsafeEnabled { + mi := &file_options_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Costing_Options) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Costing_Options) ProtoMessage() {} + +func (x *Costing_Options) ProtoReflect() protoreflect.Message { + mi := &file_options_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Costing_Options.ProtoReflect.Descriptor instead. +func (*Costing_Options) Descriptor() ([]byte, []int) { + return file_options_proto_rawDescGZIP(), []int{4, 0} +} + +func (m *Costing_Options) GetHasManeuverPenalty() isCosting_Options_HasManeuverPenalty { + if m != nil { + return m.HasManeuverPenalty + } + return nil +} + +func (x *Costing_Options) GetManeuverPenalty() float32 { + if x, ok := x.GetHasManeuverPenalty().(*Costing_Options_ManeuverPenalty); ok { + return x.ManeuverPenalty + } + return 0 +} + +func (m *Costing_Options) GetHasDestinationOnlyPenalty() isCosting_Options_HasDestinationOnlyPenalty { + if m != nil { + return m.HasDestinationOnlyPenalty + } + return nil +} + +func (x *Costing_Options) GetDestinationOnlyPenalty() float32 { + if x, ok := x.GetHasDestinationOnlyPenalty().(*Costing_Options_DestinationOnlyPenalty); ok { + return x.DestinationOnlyPenalty + } + return 0 +} + +func (m *Costing_Options) GetHasGateCost() isCosting_Options_HasGateCost { + if m != nil { + return m.HasGateCost + } + return nil +} + +func (x *Costing_Options) GetGateCost() float32 { + if x, ok := x.GetHasGateCost().(*Costing_Options_GateCost); ok { + return x.GateCost + } + return 0 +} + +func (m *Costing_Options) GetHasGatePenalty() isCosting_Options_HasGatePenalty { + if m != nil { + return m.HasGatePenalty + } + return nil +} + +func (x *Costing_Options) GetGatePenalty() float32 { + if x, ok := x.GetHasGatePenalty().(*Costing_Options_GatePenalty); ok { + return x.GatePenalty + } + return 0 +} + +func (m *Costing_Options) GetHasTollBoothCost() isCosting_Options_HasTollBoothCost { + if m != nil { + return m.HasTollBoothCost + } + return nil +} + +func (x *Costing_Options) GetTollBoothCost() float32 { + if x, ok := x.GetHasTollBoothCost().(*Costing_Options_TollBoothCost); ok { + return x.TollBoothCost + } + return 0 +} + +func (m *Costing_Options) GetHasTollBoothPenalty() isCosting_Options_HasTollBoothPenalty { + if m != nil { + return m.HasTollBoothPenalty + } + return nil +} + +func (x *Costing_Options) GetTollBoothPenalty() float32 { + if x, ok := x.GetHasTollBoothPenalty().(*Costing_Options_TollBoothPenalty); ok { + return x.TollBoothPenalty + } + return 0 +} + +func (m *Costing_Options) GetHasAlleyPenalty() isCosting_Options_HasAlleyPenalty { + if m != nil { + return m.HasAlleyPenalty + } + return nil +} + +func (x *Costing_Options) GetAlleyPenalty() float32 { + if x, ok := x.GetHasAlleyPenalty().(*Costing_Options_AlleyPenalty); ok { + return x.AlleyPenalty + } + return 0 +} + +func (m *Costing_Options) GetHasCountryCrossingCost() isCosting_Options_HasCountryCrossingCost { + if m != nil { + return m.HasCountryCrossingCost + } + return nil +} + +func (x *Costing_Options) GetCountryCrossingCost() float32 { + if x, ok := x.GetHasCountryCrossingCost().(*Costing_Options_CountryCrossingCost); ok { + return x.CountryCrossingCost + } + return 0 +} + +func (m *Costing_Options) GetHasCountryCrossingPenalty() isCosting_Options_HasCountryCrossingPenalty { + if m != nil { + return m.HasCountryCrossingPenalty + } + return nil +} + +func (x *Costing_Options) GetCountryCrossingPenalty() float32 { + if x, ok := x.GetHasCountryCrossingPenalty().(*Costing_Options_CountryCrossingPenalty); ok { + return x.CountryCrossingPenalty + } + return 0 +} + +func (m *Costing_Options) GetHasFerryCost() isCosting_Options_HasFerryCost { + if m != nil { + return m.HasFerryCost + } + return nil +} + +func (x *Costing_Options) GetFerryCost() float32 { + if x, ok := x.GetHasFerryCost().(*Costing_Options_FerryCost); ok { + return x.FerryCost + } + return 0 +} + +func (m *Costing_Options) GetHasAvoidBadSurfaces() isCosting_Options_HasAvoidBadSurfaces { + if m != nil { + return m.HasAvoidBadSurfaces + } + return nil +} + +func (x *Costing_Options) GetAvoidBadSurfaces() float32 { + if x, ok := x.GetHasAvoidBadSurfaces().(*Costing_Options_AvoidBadSurfaces); ok { + return x.AvoidBadSurfaces + } + return 0 +} + +func (m *Costing_Options) GetHasUseFerry() isCosting_Options_HasUseFerry { + if m != nil { + return m.HasUseFerry + } + return nil +} + +func (x *Costing_Options) GetUseFerry() float32 { + if x, ok := x.GetHasUseFerry().(*Costing_Options_UseFerry); ok { + return x.UseFerry + } + return 0 +} + +func (m *Costing_Options) GetHasUseHighways() isCosting_Options_HasUseHighways { + if m != nil { + return m.HasUseHighways + } + return nil +} + +func (x *Costing_Options) GetUseHighways() float32 { + if x, ok := x.GetHasUseHighways().(*Costing_Options_UseHighways); ok { + return x.UseHighways + } + return 0 +} + +func (m *Costing_Options) GetHasUseTolls() isCosting_Options_HasUseTolls { + if m != nil { + return m.HasUseTolls + } + return nil +} + +func (x *Costing_Options) GetUseTolls() float32 { + if x, ok := x.GetHasUseTolls().(*Costing_Options_UseTolls); ok { + return x.UseTolls + } + return 0 +} + +func (m *Costing_Options) GetHasUseRoads() isCosting_Options_HasUseRoads { + if m != nil { + return m.HasUseRoads + } + return nil +} + +func (x *Costing_Options) GetUseRoads() float32 { + if x, ok := x.GetHasUseRoads().(*Costing_Options_UseRoads); ok { + return x.UseRoads + } + return 0 +} + +func (m *Costing_Options) GetHasMaxDistance() isCosting_Options_HasMaxDistance { + if m != nil { + return m.HasMaxDistance + } + return nil +} + +func (x *Costing_Options) GetMaxDistance() uint32 { + if x, ok := x.GetHasMaxDistance().(*Costing_Options_MaxDistance); ok { + return x.MaxDistance + } + return 0 +} + +func (m *Costing_Options) GetHasWalkingSpeed() isCosting_Options_HasWalkingSpeed { + if m != nil { + return m.HasWalkingSpeed + } + return nil +} + +func (x *Costing_Options) GetWalkingSpeed() float32 { + if x, ok := x.GetHasWalkingSpeed().(*Costing_Options_WalkingSpeed); ok { + return x.WalkingSpeed + } + return 0 +} + +func (m *Costing_Options) GetHasStepPenalty() isCosting_Options_HasStepPenalty { + if m != nil { + return m.HasStepPenalty + } + return nil +} + +func (x *Costing_Options) GetStepPenalty() float32 { + if x, ok := x.GetHasStepPenalty().(*Costing_Options_StepPenalty); ok { + return x.StepPenalty + } + return 0 +} + +func (m *Costing_Options) GetHasMaxGrade() isCosting_Options_HasMaxGrade { + if m != nil { + return m.HasMaxGrade + } + return nil +} + +func (x *Costing_Options) GetMaxGrade() uint32 { + if x, ok := x.GetHasMaxGrade().(*Costing_Options_MaxGrade); ok { + return x.MaxGrade + } + return 0 +} + +func (m *Costing_Options) GetHasMaxHikingDifficulty() isCosting_Options_HasMaxHikingDifficulty { + if m != nil { + return m.HasMaxHikingDifficulty + } + return nil +} + +func (x *Costing_Options) GetMaxHikingDifficulty() uint32 { + if x, ok := x.GetHasMaxHikingDifficulty().(*Costing_Options_MaxHikingDifficulty); ok { + return x.MaxHikingDifficulty + } + return 0 +} + +func (m *Costing_Options) GetHasModeFactor() isCosting_Options_HasModeFactor { + if m != nil { + return m.HasModeFactor + } + return nil +} + +func (x *Costing_Options) GetModeFactor() float32 { + if x, ok := x.GetHasModeFactor().(*Costing_Options_ModeFactor); ok { + return x.ModeFactor + } + return 0 +} + +func (m *Costing_Options) GetHasWalkwayFactor() isCosting_Options_HasWalkwayFactor { + if m != nil { + return m.HasWalkwayFactor + } + return nil +} + +func (x *Costing_Options) GetWalkwayFactor() float32 { + if x, ok := x.GetHasWalkwayFactor().(*Costing_Options_WalkwayFactor); ok { + return x.WalkwayFactor + } + return 0 +} + +func (m *Costing_Options) GetHasSidewalkFactor() isCosting_Options_HasSidewalkFactor { + if m != nil { + return m.HasSidewalkFactor + } + return nil +} + +func (x *Costing_Options) GetSidewalkFactor() float32 { + if x, ok := x.GetHasSidewalkFactor().(*Costing_Options_SidewalkFactor); ok { + return x.SidewalkFactor + } + return 0 +} + +func (m *Costing_Options) GetHasAlleyFactor() isCosting_Options_HasAlleyFactor { + if m != nil { + return m.HasAlleyFactor + } + return nil +} + +func (x *Costing_Options) GetAlleyFactor() float32 { + if x, ok := x.GetHasAlleyFactor().(*Costing_Options_AlleyFactor); ok { + return x.AlleyFactor + } + return 0 +} + +func (m *Costing_Options) GetHasDrivewayFactor() isCosting_Options_HasDrivewayFactor { + if m != nil { + return m.HasDrivewayFactor + } + return nil +} + +func (x *Costing_Options) GetDrivewayFactor() float32 { + if x, ok := x.GetHasDrivewayFactor().(*Costing_Options_DrivewayFactor); ok { + return x.DrivewayFactor + } + return 0 +} + +func (m *Costing_Options) GetHasDrivewayPenalty() isCosting_Options_HasDrivewayPenalty { + if m != nil { + return m.HasDrivewayPenalty + } + return nil +} + +func (x *Costing_Options) GetDrivewayPenalty() float32 { + if x, ok := x.GetHasDrivewayPenalty().(*Costing_Options_DrivewayPenalty); ok { + return x.DrivewayPenalty + } + return 0 +} + +func (m *Costing_Options) GetHasTransitStartEndMaxDistance() isCosting_Options_HasTransitStartEndMaxDistance { + if m != nil { + return m.HasTransitStartEndMaxDistance + } + return nil +} + +func (x *Costing_Options) GetTransitStartEndMaxDistance() uint32 { + if x, ok := x.GetHasTransitStartEndMaxDistance().(*Costing_Options_TransitStartEndMaxDistance); ok { + return x.TransitStartEndMaxDistance + } + return 0 +} + +func (m *Costing_Options) GetHasTransitTransferMaxDistance() isCosting_Options_HasTransitTransferMaxDistance { + if m != nil { + return m.HasTransitTransferMaxDistance + } + return nil +} + +func (x *Costing_Options) GetTransitTransferMaxDistance() uint32 { + if x, ok := x.GetHasTransitTransferMaxDistance().(*Costing_Options_TransitTransferMaxDistance); ok { + return x.TransitTransferMaxDistance + } + return 0 +} + +func (m *Costing_Options) GetHasTransportType() isCosting_Options_HasTransportType { + if m != nil { + return m.HasTransportType + } + return nil +} + +func (x *Costing_Options) GetTransportType() string { + if x, ok := x.GetHasTransportType().(*Costing_Options_TransportType); ok { + return x.TransportType + } + return "" +} + +func (m *Costing_Options) GetHasTopSpeed() isCosting_Options_HasTopSpeed { + if m != nil { + return m.HasTopSpeed + } + return nil +} + +func (x *Costing_Options) GetTopSpeed() float32 { + if x, ok := x.GetHasTopSpeed().(*Costing_Options_TopSpeed); ok { + return x.TopSpeed + } + return 0 +} + +func (m *Costing_Options) GetHasUseHills() isCosting_Options_HasUseHills { + if m != nil { + return m.HasUseHills + } + return nil +} + +func (x *Costing_Options) GetUseHills() float32 { + if x, ok := x.GetHasUseHills().(*Costing_Options_UseHills); ok { + return x.UseHills + } + return 0 +} + +func (m *Costing_Options) GetHasUsePrimary() isCosting_Options_HasUsePrimary { + if m != nil { + return m.HasUsePrimary + } + return nil +} + +func (x *Costing_Options) GetUsePrimary() float32 { + if x, ok := x.GetHasUsePrimary().(*Costing_Options_UsePrimary); ok { + return x.UsePrimary + } + return 0 +} + +func (m *Costing_Options) GetHasUseTrails() isCosting_Options_HasUseTrails { + if m != nil { + return m.HasUseTrails + } + return nil +} + +func (x *Costing_Options) GetUseTrails() float32 { + if x, ok := x.GetHasUseTrails().(*Costing_Options_UseTrails); ok { + return x.UseTrails + } + return 0 +} + +func (m *Costing_Options) GetHasLowClassPenalty() isCosting_Options_HasLowClassPenalty { + if m != nil { + return m.HasLowClassPenalty + } + return nil +} + +func (x *Costing_Options) GetLowClassPenalty() float32 { + if x, ok := x.GetHasLowClassPenalty().(*Costing_Options_LowClassPenalty); ok { + return x.LowClassPenalty + } + return 0 +} + +func (m *Costing_Options) GetHasHazmat() isCosting_Options_HasHazmat { + if m != nil { + return m.HasHazmat + } + return nil +} + +func (x *Costing_Options) GetHazmat() bool { + if x, ok := x.GetHasHazmat().(*Costing_Options_Hazmat); ok { + return x.Hazmat + } + return false +} + +func (m *Costing_Options) GetHasWeight() isCosting_Options_HasWeight { + if m != nil { + return m.HasWeight + } + return nil +} + +func (x *Costing_Options) GetWeight() float32 { + if x, ok := x.GetHasWeight().(*Costing_Options_Weight); ok { + return x.Weight + } + return 0 +} + +func (m *Costing_Options) GetHasAxleLoad() isCosting_Options_HasAxleLoad { + if m != nil { + return m.HasAxleLoad + } + return nil +} + +func (x *Costing_Options) GetAxleLoad() float32 { + if x, ok := x.GetHasAxleLoad().(*Costing_Options_AxleLoad); ok { + return x.AxleLoad + } + return 0 +} + +func (m *Costing_Options) GetHasHeight() isCosting_Options_HasHeight { + if m != nil { + return m.HasHeight + } + return nil +} + +func (x *Costing_Options) GetHeight() float32 { + if x, ok := x.GetHasHeight().(*Costing_Options_Height); ok { + return x.Height + } + return 0 +} + +func (m *Costing_Options) GetHasWidth() isCosting_Options_HasWidth { + if m != nil { + return m.HasWidth + } + return nil +} + +func (x *Costing_Options) GetWidth() float32 { + if x, ok := x.GetHasWidth().(*Costing_Options_Width); ok { + return x.Width + } + return 0 +} + +func (m *Costing_Options) GetHasLength() isCosting_Options_HasLength { + if m != nil { + return m.HasLength + } + return nil +} + +func (x *Costing_Options) GetLength() float32 { + if x, ok := x.GetHasLength().(*Costing_Options_Length); ok { + return x.Length + } + return 0 +} + +func (m *Costing_Options) GetHasCyclingSpeed() isCosting_Options_HasCyclingSpeed { + if m != nil { + return m.HasCyclingSpeed + } + return nil +} + +func (x *Costing_Options) GetCyclingSpeed() float32 { + if x, ok := x.GetHasCyclingSpeed().(*Costing_Options_CyclingSpeed); ok { + return x.CyclingSpeed + } + return 0 +} + +func (m *Costing_Options) GetHasWheelchair() isCosting_Options_HasWheelchair { + if m != nil { + return m.HasWheelchair + } + return nil +} + +func (x *Costing_Options) GetWheelchair() bool { + if x, ok := x.GetHasWheelchair().(*Costing_Options_Wheelchair); ok { + return x.Wheelchair + } + return false +} + +func (m *Costing_Options) GetHasBicycle() isCosting_Options_HasBicycle { + if m != nil { + return m.HasBicycle + } + return nil +} + +func (x *Costing_Options) GetBicycle() bool { + if x, ok := x.GetHasBicycle().(*Costing_Options_Bicycle); ok { + return x.Bicycle + } + return false +} + +func (m *Costing_Options) GetHasUseBus() isCosting_Options_HasUseBus { + if m != nil { + return m.HasUseBus + } + return nil +} + +func (x *Costing_Options) GetUseBus() float32 { + if x, ok := x.GetHasUseBus().(*Costing_Options_UseBus); ok { + return x.UseBus + } + return 0 +} + +func (m *Costing_Options) GetHasUseRail() isCosting_Options_HasUseRail { + if m != nil { + return m.HasUseRail + } + return nil +} + +func (x *Costing_Options) GetUseRail() float32 { + if x, ok := x.GetHasUseRail().(*Costing_Options_UseRail); ok { + return x.UseRail + } + return 0 +} + +func (m *Costing_Options) GetHasUseTransfers() isCosting_Options_HasUseTransfers { + if m != nil { + return m.HasUseTransfers + } + return nil +} + +func (x *Costing_Options) GetUseTransfers() float32 { + if x, ok := x.GetHasUseTransfers().(*Costing_Options_UseTransfers); ok { + return x.UseTransfers + } + return 0 +} + +func (m *Costing_Options) GetHasTransferCost() isCosting_Options_HasTransferCost { + if m != nil { + return m.HasTransferCost + } + return nil +} + +func (x *Costing_Options) GetTransferCost() float32 { + if x, ok := x.GetHasTransferCost().(*Costing_Options_TransferCost); ok { + return x.TransferCost + } + return 0 +} + +func (m *Costing_Options) GetHasTransferPenalty() isCosting_Options_HasTransferPenalty { + if m != nil { + return m.HasTransferPenalty + } + return nil +} + +func (x *Costing_Options) GetTransferPenalty() float32 { + if x, ok := x.GetHasTransferPenalty().(*Costing_Options_TransferPenalty); ok { + return x.TransferPenalty + } + return 0 +} + +func (x *Costing_Options) GetFilterStopAction() FilterAction { + if x != nil { + return x.FilterStopAction + } + return FilterAction_no_action +} + +func (x *Costing_Options) GetFilterStopIds() []string { + if x != nil { + return x.FilterStopIds + } + return nil +} + +func (x *Costing_Options) GetFilterOperatorAction() FilterAction { + if x != nil { + return x.FilterOperatorAction + } + return FilterAction_no_action +} + +func (x *Costing_Options) GetFilterOperatorIds() []string { + if x != nil { + return x.FilterOperatorIds + } + return nil +} + +func (x *Costing_Options) GetFilterRouteAction() FilterAction { + if x != nil { + return x.FilterRouteAction + } + return FilterAction_no_action +} + +func (x *Costing_Options) GetFilterRouteIds() []string { + if x != nil { + return x.FilterRouteIds + } + return nil +} + +func (m *Costing_Options) GetHasFlowMask() isCosting_Options_HasFlowMask { + if m != nil { + return m.HasFlowMask + } + return nil +} + +func (x *Costing_Options) GetFlowMask() uint32 { + if x, ok := x.GetHasFlowMask().(*Costing_Options_FlowMask); ok { + return x.FlowMask + } + return 0 +} + +func (m *Costing_Options) GetHasBikeShareCost() isCosting_Options_HasBikeShareCost { + if m != nil { + return m.HasBikeShareCost + } + return nil +} + +func (x *Costing_Options) GetBikeShareCost() float32 { + if x, ok := x.GetHasBikeShareCost().(*Costing_Options_BikeShareCost); ok { + return x.BikeShareCost + } + return 0 +} + +func (m *Costing_Options) GetHasBikeSharePenalty() isCosting_Options_HasBikeSharePenalty { + if m != nil { + return m.HasBikeSharePenalty + } + return nil +} + +func (x *Costing_Options) GetBikeSharePenalty() float32 { + if x, ok := x.GetHasBikeSharePenalty().(*Costing_Options_BikeSharePenalty); ok { + return x.BikeSharePenalty + } + return 0 +} + +func (m *Costing_Options) GetHasRailFerryCost() isCosting_Options_HasRailFerryCost { + if m != nil { + return m.HasRailFerryCost + } + return nil +} + +func (x *Costing_Options) GetRailFerryCost() float32 { + if x, ok := x.GetHasRailFerryCost().(*Costing_Options_RailFerryCost); ok { + return x.RailFerryCost + } + return 0 +} + +func (m *Costing_Options) GetHasUseRailFerry() isCosting_Options_HasUseRailFerry { + if m != nil { + return m.HasUseRailFerry + } + return nil +} + +func (x *Costing_Options) GetUseRailFerry() float32 { + if x, ok := x.GetHasUseRailFerry().(*Costing_Options_UseRailFerry); ok { + return x.UseRailFerry + } + return 0 +} + +func (m *Costing_Options) GetHasIgnoreRestrictions() isCosting_Options_HasIgnoreRestrictions { + if m != nil { + return m.HasIgnoreRestrictions + } + return nil +} + +func (x *Costing_Options) GetIgnoreRestrictions() bool { + if x, ok := x.GetHasIgnoreRestrictions().(*Costing_Options_IgnoreRestrictions); ok { + return x.IgnoreRestrictions + } + return false +} + +func (m *Costing_Options) GetHasIgnoreOneways() isCosting_Options_HasIgnoreOneways { + if m != nil { + return m.HasIgnoreOneways + } + return nil +} + +func (x *Costing_Options) GetIgnoreOneways() bool { + if x, ok := x.GetHasIgnoreOneways().(*Costing_Options_IgnoreOneways); ok { + return x.IgnoreOneways + } + return false +} + +func (m *Costing_Options) GetHasIgnoreAccess() isCosting_Options_HasIgnoreAccess { + if m != nil { + return m.HasIgnoreAccess + } + return nil +} + +func (x *Costing_Options) GetIgnoreAccess() bool { + if x, ok := x.GetHasIgnoreAccess().(*Costing_Options_IgnoreAccess); ok { + return x.IgnoreAccess + } + return false +} + +func (m *Costing_Options) GetHasIgnoreClosures() isCosting_Options_HasIgnoreClosures { + if m != nil { + return m.HasIgnoreClosures + } + return nil +} + +func (x *Costing_Options) GetIgnoreClosures() bool { + if x, ok := x.GetHasIgnoreClosures().(*Costing_Options_IgnoreClosures); ok { + return x.IgnoreClosures + } + return false +} + +func (m *Costing_Options) GetHasShortest() isCosting_Options_HasShortest { + if m != nil { + return m.HasShortest + } + return nil +} + +func (x *Costing_Options) GetShortest() bool { + if x, ok := x.GetHasShortest().(*Costing_Options_Shortest); ok { + return x.Shortest + } + return false +} + +func (m *Costing_Options) GetHasServicePenalty() isCosting_Options_HasServicePenalty { + if m != nil { + return m.HasServicePenalty + } + return nil +} + +func (x *Costing_Options) GetServicePenalty() float32 { + if x, ok := x.GetHasServicePenalty().(*Costing_Options_ServicePenalty); ok { + return x.ServicePenalty + } + return 0 +} + +func (m *Costing_Options) GetHasUseTracks() isCosting_Options_HasUseTracks { + if m != nil { + return m.HasUseTracks + } + return nil +} + +func (x *Costing_Options) GetUseTracks() float32 { + if x, ok := x.GetHasUseTracks().(*Costing_Options_UseTracks); ok { + return x.UseTracks + } + return 0 +} + +func (m *Costing_Options) GetHasUseDistance() isCosting_Options_HasUseDistance { + if m != nil { + return m.HasUseDistance + } + return nil +} + +func (x *Costing_Options) GetUseDistance() float32 { + if x, ok := x.GetHasUseDistance().(*Costing_Options_UseDistance); ok { + return x.UseDistance + } + return 0 +} + +func (m *Costing_Options) GetHasUseLivingStreets() isCosting_Options_HasUseLivingStreets { + if m != nil { + return m.HasUseLivingStreets + } + return nil +} + +func (x *Costing_Options) GetUseLivingStreets() float32 { + if x, ok := x.GetHasUseLivingStreets().(*Costing_Options_UseLivingStreets); ok { + return x.UseLivingStreets + } + return 0 +} + +func (m *Costing_Options) GetHasServiceFactor() isCosting_Options_HasServiceFactor { + if m != nil { + return m.HasServiceFactor + } + return nil +} + +func (x *Costing_Options) GetServiceFactor() float32 { + if x, ok := x.GetHasServiceFactor().(*Costing_Options_ServiceFactor); ok { + return x.ServiceFactor + } + return 0 +} + +func (m *Costing_Options) GetHasClosureFactor() isCosting_Options_HasClosureFactor { + if m != nil { + return m.HasClosureFactor + } + return nil +} + +func (x *Costing_Options) GetClosureFactor() float32 { + if x, ok := x.GetHasClosureFactor().(*Costing_Options_ClosureFactor); ok { + return x.ClosureFactor + } + return 0 +} + +func (m *Costing_Options) GetHasPrivateAccessPenalty() isCosting_Options_HasPrivateAccessPenalty { + if m != nil { + return m.HasPrivateAccessPenalty + } + return nil +} + +func (x *Costing_Options) GetPrivateAccessPenalty() float32 { + if x, ok := x.GetHasPrivateAccessPenalty().(*Costing_Options_PrivateAccessPenalty); ok { + return x.PrivateAccessPenalty + } + return 0 +} + +func (m *Costing_Options) GetHasExcludeUnpaved() isCosting_Options_HasExcludeUnpaved { + if m != nil { + return m.HasExcludeUnpaved + } + return nil +} + +func (x *Costing_Options) GetExcludeUnpaved() bool { + if x, ok := x.GetHasExcludeUnpaved().(*Costing_Options_ExcludeUnpaved); ok { + return x.ExcludeUnpaved + } + return false +} + +func (m *Costing_Options) GetHasIncludeHot() isCosting_Options_HasIncludeHot { + if m != nil { + return m.HasIncludeHot + } + return nil +} + +func (x *Costing_Options) GetIncludeHot() bool { + if x, ok := x.GetHasIncludeHot().(*Costing_Options_IncludeHot); ok { + return x.IncludeHot + } + return false +} + +func (m *Costing_Options) GetHasIncludeHov2() isCosting_Options_HasIncludeHov2 { + if m != nil { + return m.HasIncludeHov2 + } + return nil +} + +func (x *Costing_Options) GetIncludeHov2() bool { + if x, ok := x.GetHasIncludeHov2().(*Costing_Options_IncludeHov2); ok { + return x.IncludeHov2 + } + return false +} + +func (m *Costing_Options) GetHasIncludeHov3() isCosting_Options_HasIncludeHov3 { + if m != nil { + return m.HasIncludeHov3 + } + return nil +} + +func (x *Costing_Options) GetIncludeHov3() bool { + if x, ok := x.GetHasIncludeHov3().(*Costing_Options_IncludeHov3); ok { + return x.IncludeHov3 + } + return false +} + +func (m *Costing_Options) GetHasExcludeCashOnlyTolls() isCosting_Options_HasExcludeCashOnlyTolls { + if m != nil { + return m.HasExcludeCashOnlyTolls + } + return nil +} + +func (x *Costing_Options) GetExcludeCashOnlyTolls() bool { + if x, ok := x.GetHasExcludeCashOnlyTolls().(*Costing_Options_ExcludeCashOnlyTolls); ok { + return x.ExcludeCashOnlyTolls + } + return false +} + +func (m *Costing_Options) GetHasRestrictionProbability() isCosting_Options_HasRestrictionProbability { + if m != nil { + return m.HasRestrictionProbability + } + return nil +} + +func (x *Costing_Options) GetRestrictionProbability() uint32 { + if x, ok := x.GetHasRestrictionProbability().(*Costing_Options_RestrictionProbability); ok { + return x.RestrictionProbability + } + return 0 +} + +func (x *Costing_Options) GetExcludeEdges() []*AvoidEdge { + if x != nil { + return x.ExcludeEdges + } + return nil +} + +func (m *Costing_Options) GetHasElevatorPenalty() isCosting_Options_HasElevatorPenalty { + if m != nil { + return m.HasElevatorPenalty + } + return nil +} + +func (x *Costing_Options) GetElevatorPenalty() float32 { + if x, ok := x.GetHasElevatorPenalty().(*Costing_Options_ElevatorPenalty); ok { + return x.ElevatorPenalty + } + return 0 +} + +func (x *Costing_Options) GetFixedSpeed() uint32 { + if x != nil { + return x.FixedSpeed + } + return 0 +} + +func (x *Costing_Options) GetAxleCount() uint32 { + if x != nil { + return x.AxleCount + } + return 0 +} + +func (x *Costing_Options) GetUseLit() float32 { + if x != nil { + return x.UseLit + } + return 0 +} + +type isCosting_Options_HasManeuverPenalty interface { + isCosting_Options_HasManeuverPenalty() +} + +type Costing_Options_ManeuverPenalty struct { + ManeuverPenalty float32 `protobuf:"fixed32,1,opt,name=maneuver_penalty,json=maneuverPenalty,proto3,oneof"` +} + +func (*Costing_Options_ManeuverPenalty) isCosting_Options_HasManeuverPenalty() {} + +type isCosting_Options_HasDestinationOnlyPenalty interface { + isCosting_Options_HasDestinationOnlyPenalty() +} + +type Costing_Options_DestinationOnlyPenalty struct { + DestinationOnlyPenalty float32 `protobuf:"fixed32,2,opt,name=destination_only_penalty,json=destinationOnlyPenalty,proto3,oneof"` +} + +func (*Costing_Options_DestinationOnlyPenalty) isCosting_Options_HasDestinationOnlyPenalty() {} + +type isCosting_Options_HasGateCost interface { + isCosting_Options_HasGateCost() +} + +type Costing_Options_GateCost struct { + GateCost float32 `protobuf:"fixed32,3,opt,name=gate_cost,json=gateCost,proto3,oneof"` +} + +func (*Costing_Options_GateCost) isCosting_Options_HasGateCost() {} + +type isCosting_Options_HasGatePenalty interface { + isCosting_Options_HasGatePenalty() +} + +type Costing_Options_GatePenalty struct { + GatePenalty float32 `protobuf:"fixed32,4,opt,name=gate_penalty,json=gatePenalty,proto3,oneof"` +} + +func (*Costing_Options_GatePenalty) isCosting_Options_HasGatePenalty() {} + +type isCosting_Options_HasTollBoothCost interface { + isCosting_Options_HasTollBoothCost() +} + +type Costing_Options_TollBoothCost struct { + TollBoothCost float32 `protobuf:"fixed32,5,opt,name=toll_booth_cost,json=tollBoothCost,proto3,oneof"` +} + +func (*Costing_Options_TollBoothCost) isCosting_Options_HasTollBoothCost() {} + +type isCosting_Options_HasTollBoothPenalty interface { + isCosting_Options_HasTollBoothPenalty() +} + +type Costing_Options_TollBoothPenalty struct { + TollBoothPenalty float32 `protobuf:"fixed32,6,opt,name=toll_booth_penalty,json=tollBoothPenalty,proto3,oneof"` +} + +func (*Costing_Options_TollBoothPenalty) isCosting_Options_HasTollBoothPenalty() {} + +type isCosting_Options_HasAlleyPenalty interface { + isCosting_Options_HasAlleyPenalty() +} + +type Costing_Options_AlleyPenalty struct { + AlleyPenalty float32 `protobuf:"fixed32,7,opt,name=alley_penalty,json=alleyPenalty,proto3,oneof"` +} + +func (*Costing_Options_AlleyPenalty) isCosting_Options_HasAlleyPenalty() {} + +type isCosting_Options_HasCountryCrossingCost interface { + isCosting_Options_HasCountryCrossingCost() +} + +type Costing_Options_CountryCrossingCost struct { + CountryCrossingCost float32 `protobuf:"fixed32,8,opt,name=country_crossing_cost,json=countryCrossingCost,proto3,oneof"` +} + +func (*Costing_Options_CountryCrossingCost) isCosting_Options_HasCountryCrossingCost() {} + +type isCosting_Options_HasCountryCrossingPenalty interface { + isCosting_Options_HasCountryCrossingPenalty() +} + +type Costing_Options_CountryCrossingPenalty struct { + CountryCrossingPenalty float32 `protobuf:"fixed32,9,opt,name=country_crossing_penalty,json=countryCrossingPenalty,proto3,oneof"` +} + +func (*Costing_Options_CountryCrossingPenalty) isCosting_Options_HasCountryCrossingPenalty() {} + +type isCosting_Options_HasFerryCost interface { + isCosting_Options_HasFerryCost() +} + +type Costing_Options_FerryCost struct { + FerryCost float32 `protobuf:"fixed32,10,opt,name=ferry_cost,json=ferryCost,proto3,oneof"` +} + +func (*Costing_Options_FerryCost) isCosting_Options_HasFerryCost() {} + +type isCosting_Options_HasAvoidBadSurfaces interface { + isCosting_Options_HasAvoidBadSurfaces() +} + +type Costing_Options_AvoidBadSurfaces struct { + AvoidBadSurfaces float32 `protobuf:"fixed32,11,opt,name=avoid_bad_surfaces,json=avoidBadSurfaces,proto3,oneof"` +} + +func (*Costing_Options_AvoidBadSurfaces) isCosting_Options_HasAvoidBadSurfaces() {} + +type isCosting_Options_HasUseFerry interface { + isCosting_Options_HasUseFerry() +} + +type Costing_Options_UseFerry struct { + UseFerry float32 `protobuf:"fixed32,12,opt,name=use_ferry,json=useFerry,proto3,oneof"` +} + +func (*Costing_Options_UseFerry) isCosting_Options_HasUseFerry() {} + +type isCosting_Options_HasUseHighways interface { + isCosting_Options_HasUseHighways() +} + +type Costing_Options_UseHighways struct { + UseHighways float32 `protobuf:"fixed32,13,opt,name=use_highways,json=useHighways,proto3,oneof"` +} + +func (*Costing_Options_UseHighways) isCosting_Options_HasUseHighways() {} + +type isCosting_Options_HasUseTolls interface { + isCosting_Options_HasUseTolls() +} + +type Costing_Options_UseTolls struct { + UseTolls float32 `protobuf:"fixed32,14,opt,name=use_tolls,json=useTolls,proto3,oneof"` +} + +func (*Costing_Options_UseTolls) isCosting_Options_HasUseTolls() {} + +type isCosting_Options_HasUseRoads interface { + isCosting_Options_HasUseRoads() +} + +type Costing_Options_UseRoads struct { + UseRoads float32 `protobuf:"fixed32,15,opt,name=use_roads,json=useRoads,proto3,oneof"` +} + +func (*Costing_Options_UseRoads) isCosting_Options_HasUseRoads() {} + +type isCosting_Options_HasMaxDistance interface { + isCosting_Options_HasMaxDistance() +} + +type Costing_Options_MaxDistance struct { + MaxDistance uint32 `protobuf:"varint,16,opt,name=max_distance,json=maxDistance,proto3,oneof"` +} + +func (*Costing_Options_MaxDistance) isCosting_Options_HasMaxDistance() {} + +type isCosting_Options_HasWalkingSpeed interface { + isCosting_Options_HasWalkingSpeed() +} + +type Costing_Options_WalkingSpeed struct { + WalkingSpeed float32 `protobuf:"fixed32,17,opt,name=walking_speed,json=walkingSpeed,proto3,oneof"` +} + +func (*Costing_Options_WalkingSpeed) isCosting_Options_HasWalkingSpeed() {} + +type isCosting_Options_HasStepPenalty interface { + isCosting_Options_HasStepPenalty() +} + +type Costing_Options_StepPenalty struct { + StepPenalty float32 `protobuf:"fixed32,18,opt,name=step_penalty,json=stepPenalty,proto3,oneof"` +} + +func (*Costing_Options_StepPenalty) isCosting_Options_HasStepPenalty() {} + +type isCosting_Options_HasMaxGrade interface { + isCosting_Options_HasMaxGrade() +} + +type Costing_Options_MaxGrade struct { + MaxGrade uint32 `protobuf:"varint,19,opt,name=max_grade,json=maxGrade,proto3,oneof"` +} + +func (*Costing_Options_MaxGrade) isCosting_Options_HasMaxGrade() {} + +type isCosting_Options_HasMaxHikingDifficulty interface { + isCosting_Options_HasMaxHikingDifficulty() +} + +type Costing_Options_MaxHikingDifficulty struct { + MaxHikingDifficulty uint32 `protobuf:"varint,20,opt,name=max_hiking_difficulty,json=maxHikingDifficulty,proto3,oneof"` +} + +func (*Costing_Options_MaxHikingDifficulty) isCosting_Options_HasMaxHikingDifficulty() {} + +type isCosting_Options_HasModeFactor interface { + isCosting_Options_HasModeFactor() +} + +type Costing_Options_ModeFactor struct { + ModeFactor float32 `protobuf:"fixed32,21,opt,name=mode_factor,json=modeFactor,proto3,oneof"` +} + +func (*Costing_Options_ModeFactor) isCosting_Options_HasModeFactor() {} + +type isCosting_Options_HasWalkwayFactor interface { + isCosting_Options_HasWalkwayFactor() +} + +type Costing_Options_WalkwayFactor struct { + WalkwayFactor float32 `protobuf:"fixed32,22,opt,name=walkway_factor,json=walkwayFactor,proto3,oneof"` +} + +func (*Costing_Options_WalkwayFactor) isCosting_Options_HasWalkwayFactor() {} + +type isCosting_Options_HasSidewalkFactor interface { + isCosting_Options_HasSidewalkFactor() +} + +type Costing_Options_SidewalkFactor struct { + SidewalkFactor float32 `protobuf:"fixed32,23,opt,name=sidewalk_factor,json=sidewalkFactor,proto3,oneof"` +} + +func (*Costing_Options_SidewalkFactor) isCosting_Options_HasSidewalkFactor() {} + +type isCosting_Options_HasAlleyFactor interface { + isCosting_Options_HasAlleyFactor() +} + +type Costing_Options_AlleyFactor struct { + AlleyFactor float32 `protobuf:"fixed32,24,opt,name=alley_factor,json=alleyFactor,proto3,oneof"` +} + +func (*Costing_Options_AlleyFactor) isCosting_Options_HasAlleyFactor() {} + +type isCosting_Options_HasDrivewayFactor interface { + isCosting_Options_HasDrivewayFactor() +} + +type Costing_Options_DrivewayFactor struct { + DrivewayFactor float32 `protobuf:"fixed32,25,opt,name=driveway_factor,json=drivewayFactor,proto3,oneof"` +} + +func (*Costing_Options_DrivewayFactor) isCosting_Options_HasDrivewayFactor() {} + +type isCosting_Options_HasDrivewayPenalty interface { + isCosting_Options_HasDrivewayPenalty() +} + +type Costing_Options_DrivewayPenalty struct { + DrivewayPenalty float32 `protobuf:"fixed32,26,opt,name=driveway_penalty,json=drivewayPenalty,proto3,oneof"` +} + +func (*Costing_Options_DrivewayPenalty) isCosting_Options_HasDrivewayPenalty() {} + +type isCosting_Options_HasTransitStartEndMaxDistance interface { + isCosting_Options_HasTransitStartEndMaxDistance() +} + +type Costing_Options_TransitStartEndMaxDistance struct { + TransitStartEndMaxDistance uint32 `protobuf:"varint,27,opt,name=transit_start_end_max_distance,json=transitStartEndMaxDistance,proto3,oneof"` +} + +func (*Costing_Options_TransitStartEndMaxDistance) isCosting_Options_HasTransitStartEndMaxDistance() { +} + +type isCosting_Options_HasTransitTransferMaxDistance interface { + isCosting_Options_HasTransitTransferMaxDistance() +} + +type Costing_Options_TransitTransferMaxDistance struct { + TransitTransferMaxDistance uint32 `protobuf:"varint,28,opt,name=transit_transfer_max_distance,json=transitTransferMaxDistance,proto3,oneof"` +} + +func (*Costing_Options_TransitTransferMaxDistance) isCosting_Options_HasTransitTransferMaxDistance() { +} + +type isCosting_Options_HasTransportType interface { + isCosting_Options_HasTransportType() +} + +type Costing_Options_TransportType struct { + TransportType string `protobuf:"bytes,29,opt,name=transport_type,json=transportType,proto3,oneof"` +} + +func (*Costing_Options_TransportType) isCosting_Options_HasTransportType() {} + +type isCosting_Options_HasTopSpeed interface { + isCosting_Options_HasTopSpeed() +} + +type Costing_Options_TopSpeed struct { + TopSpeed float32 `protobuf:"fixed32,30,opt,name=top_speed,json=topSpeed,proto3,oneof"` +} + +func (*Costing_Options_TopSpeed) isCosting_Options_HasTopSpeed() {} + +type isCosting_Options_HasUseHills interface { + isCosting_Options_HasUseHills() +} + +type Costing_Options_UseHills struct { + UseHills float32 `protobuf:"fixed32,31,opt,name=use_hills,json=useHills,proto3,oneof"` +} + +func (*Costing_Options_UseHills) isCosting_Options_HasUseHills() {} + +type isCosting_Options_HasUsePrimary interface { + isCosting_Options_HasUsePrimary() +} + +type Costing_Options_UsePrimary struct { + UsePrimary float32 `protobuf:"fixed32,32,opt,name=use_primary,json=usePrimary,proto3,oneof"` +} + +func (*Costing_Options_UsePrimary) isCosting_Options_HasUsePrimary() {} + +type isCosting_Options_HasUseTrails interface { + isCosting_Options_HasUseTrails() +} + +type Costing_Options_UseTrails struct { + UseTrails float32 `protobuf:"fixed32,33,opt,name=use_trails,json=useTrails,proto3,oneof"` +} + +func (*Costing_Options_UseTrails) isCosting_Options_HasUseTrails() {} + +type isCosting_Options_HasLowClassPenalty interface { + isCosting_Options_HasLowClassPenalty() +} + +type Costing_Options_LowClassPenalty struct { + LowClassPenalty float32 `protobuf:"fixed32,34,opt,name=low_class_penalty,json=lowClassPenalty,proto3,oneof"` +} + +func (*Costing_Options_LowClassPenalty) isCosting_Options_HasLowClassPenalty() {} + +type isCosting_Options_HasHazmat interface { + isCosting_Options_HasHazmat() +} + +type Costing_Options_Hazmat struct { + Hazmat bool `protobuf:"varint,35,opt,name=hazmat,proto3,oneof"` +} + +func (*Costing_Options_Hazmat) isCosting_Options_HasHazmat() {} + +type isCosting_Options_HasWeight interface { + isCosting_Options_HasWeight() +} + +type Costing_Options_Weight struct { + Weight float32 `protobuf:"fixed32,36,opt,name=weight,proto3,oneof"` +} + +func (*Costing_Options_Weight) isCosting_Options_HasWeight() {} + +type isCosting_Options_HasAxleLoad interface { + isCosting_Options_HasAxleLoad() +} + +type Costing_Options_AxleLoad struct { + AxleLoad float32 `protobuf:"fixed32,37,opt,name=axle_load,json=axleLoad,proto3,oneof"` +} + +func (*Costing_Options_AxleLoad) isCosting_Options_HasAxleLoad() {} + +type isCosting_Options_HasHeight interface { + isCosting_Options_HasHeight() +} + +type Costing_Options_Height struct { + Height float32 `protobuf:"fixed32,38,opt,name=height,proto3,oneof"` +} + +func (*Costing_Options_Height) isCosting_Options_HasHeight() {} + +type isCosting_Options_HasWidth interface { + isCosting_Options_HasWidth() +} + +type Costing_Options_Width struct { + Width float32 `protobuf:"fixed32,39,opt,name=width,proto3,oneof"` +} + +func (*Costing_Options_Width) isCosting_Options_HasWidth() {} + +type isCosting_Options_HasLength interface { + isCosting_Options_HasLength() +} + +type Costing_Options_Length struct { + Length float32 `protobuf:"fixed32,40,opt,name=length,proto3,oneof"` +} + +func (*Costing_Options_Length) isCosting_Options_HasLength() {} + +type isCosting_Options_HasCyclingSpeed interface { + isCosting_Options_HasCyclingSpeed() +} + +type Costing_Options_CyclingSpeed struct { + CyclingSpeed float32 `protobuf:"fixed32,41,opt,name=cycling_speed,json=cyclingSpeed,proto3,oneof"` +} + +func (*Costing_Options_CyclingSpeed) isCosting_Options_HasCyclingSpeed() {} + +type isCosting_Options_HasWheelchair interface { + isCosting_Options_HasWheelchair() +} + +type Costing_Options_Wheelchair struct { + Wheelchair bool `protobuf:"varint,42,opt,name=wheelchair,proto3,oneof"` +} + +func (*Costing_Options_Wheelchair) isCosting_Options_HasWheelchair() {} + +type isCosting_Options_HasBicycle interface { + isCosting_Options_HasBicycle() +} + +type Costing_Options_Bicycle struct { + Bicycle bool `protobuf:"varint,43,opt,name=bicycle,proto3,oneof"` +} + +func (*Costing_Options_Bicycle) isCosting_Options_HasBicycle() {} + +type isCosting_Options_HasUseBus interface { + isCosting_Options_HasUseBus() +} + +type Costing_Options_UseBus struct { + UseBus float32 `protobuf:"fixed32,44,opt,name=use_bus,json=useBus,proto3,oneof"` +} + +func (*Costing_Options_UseBus) isCosting_Options_HasUseBus() {} + +type isCosting_Options_HasUseRail interface { + isCosting_Options_HasUseRail() +} + +type Costing_Options_UseRail struct { + UseRail float32 `protobuf:"fixed32,45,opt,name=use_rail,json=useRail,proto3,oneof"` +} + +func (*Costing_Options_UseRail) isCosting_Options_HasUseRail() {} + +type isCosting_Options_HasUseTransfers interface { + isCosting_Options_HasUseTransfers() +} + +type Costing_Options_UseTransfers struct { + UseTransfers float32 `protobuf:"fixed32,46,opt,name=use_transfers,json=useTransfers,proto3,oneof"` +} + +func (*Costing_Options_UseTransfers) isCosting_Options_HasUseTransfers() {} + +type isCosting_Options_HasTransferCost interface { + isCosting_Options_HasTransferCost() +} + +type Costing_Options_TransferCost struct { + TransferCost float32 `protobuf:"fixed32,47,opt,name=transfer_cost,json=transferCost,proto3,oneof"` +} + +func (*Costing_Options_TransferCost) isCosting_Options_HasTransferCost() {} + +type isCosting_Options_HasTransferPenalty interface { + isCosting_Options_HasTransferPenalty() +} + +type Costing_Options_TransferPenalty struct { + TransferPenalty float32 `protobuf:"fixed32,48,opt,name=transfer_penalty,json=transferPenalty,proto3,oneof"` +} + +func (*Costing_Options_TransferPenalty) isCosting_Options_HasTransferPenalty() {} + +type isCosting_Options_HasFlowMask interface { + isCosting_Options_HasFlowMask() +} + +type Costing_Options_FlowMask struct { + FlowMask uint32 `protobuf:"varint,55,opt,name=flow_mask,json=flowMask,proto3,oneof"` +} + +func (*Costing_Options_FlowMask) isCosting_Options_HasFlowMask() {} + +type isCosting_Options_HasBikeShareCost interface { + isCosting_Options_HasBikeShareCost() +} + +type Costing_Options_BikeShareCost struct { + BikeShareCost float32 `protobuf:"fixed32,56,opt,name=bike_share_cost,json=bikeShareCost,proto3,oneof"` +} + +func (*Costing_Options_BikeShareCost) isCosting_Options_HasBikeShareCost() {} + +type isCosting_Options_HasBikeSharePenalty interface { + isCosting_Options_HasBikeSharePenalty() +} + +type Costing_Options_BikeSharePenalty struct { + BikeSharePenalty float32 `protobuf:"fixed32,57,opt,name=bike_share_penalty,json=bikeSharePenalty,proto3,oneof"` +} + +func (*Costing_Options_BikeSharePenalty) isCosting_Options_HasBikeSharePenalty() {} + +type isCosting_Options_HasRailFerryCost interface { + isCosting_Options_HasRailFerryCost() +} + +type Costing_Options_RailFerryCost struct { + RailFerryCost float32 `protobuf:"fixed32,58,opt,name=rail_ferry_cost,json=railFerryCost,proto3,oneof"` +} + +func (*Costing_Options_RailFerryCost) isCosting_Options_HasRailFerryCost() {} + +type isCosting_Options_HasUseRailFerry interface { + isCosting_Options_HasUseRailFerry() +} + +type Costing_Options_UseRailFerry struct { + UseRailFerry float32 `protobuf:"fixed32,59,opt,name=use_rail_ferry,json=useRailFerry,proto3,oneof"` +} + +func (*Costing_Options_UseRailFerry) isCosting_Options_HasUseRailFerry() {} + +type isCosting_Options_HasIgnoreRestrictions interface { + isCosting_Options_HasIgnoreRestrictions() +} + +type Costing_Options_IgnoreRestrictions struct { + IgnoreRestrictions bool `protobuf:"varint,60,opt,name=ignore_restrictions,json=ignoreRestrictions,proto3,oneof"` +} + +func (*Costing_Options_IgnoreRestrictions) isCosting_Options_HasIgnoreRestrictions() {} + +type isCosting_Options_HasIgnoreOneways interface { + isCosting_Options_HasIgnoreOneways() +} + +type Costing_Options_IgnoreOneways struct { + IgnoreOneways bool `protobuf:"varint,61,opt,name=ignore_oneways,json=ignoreOneways,proto3,oneof"` +} + +func (*Costing_Options_IgnoreOneways) isCosting_Options_HasIgnoreOneways() {} + +type isCosting_Options_HasIgnoreAccess interface { + isCosting_Options_HasIgnoreAccess() +} + +type Costing_Options_IgnoreAccess struct { + IgnoreAccess bool `protobuf:"varint,62,opt,name=ignore_access,json=ignoreAccess,proto3,oneof"` +} + +func (*Costing_Options_IgnoreAccess) isCosting_Options_HasIgnoreAccess() {} + +type isCosting_Options_HasIgnoreClosures interface { + isCosting_Options_HasIgnoreClosures() +} + +type Costing_Options_IgnoreClosures struct { + IgnoreClosures bool `protobuf:"varint,63,opt,name=ignore_closures,json=ignoreClosures,proto3,oneof"` +} + +func (*Costing_Options_IgnoreClosures) isCosting_Options_HasIgnoreClosures() {} + +type isCosting_Options_HasShortest interface { + isCosting_Options_HasShortest() +} + +type Costing_Options_Shortest struct { + Shortest bool `protobuf:"varint,64,opt,name=shortest,proto3,oneof"` +} + +func (*Costing_Options_Shortest) isCosting_Options_HasShortest() {} + +type isCosting_Options_HasServicePenalty interface { + isCosting_Options_HasServicePenalty() +} + +type Costing_Options_ServicePenalty struct { + ServicePenalty float32 `protobuf:"fixed32,65,opt,name=service_penalty,json=servicePenalty,proto3,oneof"` +} + +func (*Costing_Options_ServicePenalty) isCosting_Options_HasServicePenalty() {} + +type isCosting_Options_HasUseTracks interface { + isCosting_Options_HasUseTracks() +} + +type Costing_Options_UseTracks struct { + UseTracks float32 `protobuf:"fixed32,66,opt,name=use_tracks,json=useTracks,proto3,oneof"` +} + +func (*Costing_Options_UseTracks) isCosting_Options_HasUseTracks() {} + +type isCosting_Options_HasUseDistance interface { + isCosting_Options_HasUseDistance() +} + +type Costing_Options_UseDistance struct { + UseDistance float32 `protobuf:"fixed32,67,opt,name=use_distance,json=useDistance,proto3,oneof"` +} + +func (*Costing_Options_UseDistance) isCosting_Options_HasUseDistance() {} + +type isCosting_Options_HasUseLivingStreets interface { + isCosting_Options_HasUseLivingStreets() +} + +type Costing_Options_UseLivingStreets struct { + UseLivingStreets float32 `protobuf:"fixed32,68,opt,name=use_living_streets,json=useLivingStreets,proto3,oneof"` +} + +func (*Costing_Options_UseLivingStreets) isCosting_Options_HasUseLivingStreets() {} + +type isCosting_Options_HasServiceFactor interface { + isCosting_Options_HasServiceFactor() +} + +type Costing_Options_ServiceFactor struct { + ServiceFactor float32 `protobuf:"fixed32,69,opt,name=service_factor,json=serviceFactor,proto3,oneof"` +} + +func (*Costing_Options_ServiceFactor) isCosting_Options_HasServiceFactor() {} + +type isCosting_Options_HasClosureFactor interface { + isCosting_Options_HasClosureFactor() +} + +type Costing_Options_ClosureFactor struct { + ClosureFactor float32 `protobuf:"fixed32,70,opt,name=closure_factor,json=closureFactor,proto3,oneof"` +} + +func (*Costing_Options_ClosureFactor) isCosting_Options_HasClosureFactor() {} + +type isCosting_Options_HasPrivateAccessPenalty interface { + isCosting_Options_HasPrivateAccessPenalty() +} + +type Costing_Options_PrivateAccessPenalty struct { + PrivateAccessPenalty float32 `protobuf:"fixed32,71,opt,name=private_access_penalty,json=privateAccessPenalty,proto3,oneof"` +} + +func (*Costing_Options_PrivateAccessPenalty) isCosting_Options_HasPrivateAccessPenalty() {} + +type isCosting_Options_HasExcludeUnpaved interface { + isCosting_Options_HasExcludeUnpaved() +} + +type Costing_Options_ExcludeUnpaved struct { + ExcludeUnpaved bool `protobuf:"varint,72,opt,name=exclude_unpaved,json=excludeUnpaved,proto3,oneof"` +} + +func (*Costing_Options_ExcludeUnpaved) isCosting_Options_HasExcludeUnpaved() {} + +type isCosting_Options_HasIncludeHot interface { + isCosting_Options_HasIncludeHot() +} + +type Costing_Options_IncludeHot struct { + IncludeHot bool `protobuf:"varint,73,opt,name=include_hot,json=includeHot,proto3,oneof"` +} + +func (*Costing_Options_IncludeHot) isCosting_Options_HasIncludeHot() {} + +type isCosting_Options_HasIncludeHov2 interface { + isCosting_Options_HasIncludeHov2() +} + +type Costing_Options_IncludeHov2 struct { + IncludeHov2 bool `protobuf:"varint,74,opt,name=include_hov2,json=includeHov2,proto3,oneof"` +} + +func (*Costing_Options_IncludeHov2) isCosting_Options_HasIncludeHov2() {} + +type isCosting_Options_HasIncludeHov3 interface { + isCosting_Options_HasIncludeHov3() +} + +type Costing_Options_IncludeHov3 struct { + IncludeHov3 bool `protobuf:"varint,75,opt,name=include_hov3,json=includeHov3,proto3,oneof"` +} + +func (*Costing_Options_IncludeHov3) isCosting_Options_HasIncludeHov3() {} + +type isCosting_Options_HasExcludeCashOnlyTolls interface { + isCosting_Options_HasExcludeCashOnlyTolls() +} + +type Costing_Options_ExcludeCashOnlyTolls struct { + ExcludeCashOnlyTolls bool `protobuf:"varint,76,opt,name=exclude_cash_only_tolls,json=excludeCashOnlyTolls,proto3,oneof"` +} + +func (*Costing_Options_ExcludeCashOnlyTolls) isCosting_Options_HasExcludeCashOnlyTolls() {} + +type isCosting_Options_HasRestrictionProbability interface { + isCosting_Options_HasRestrictionProbability() +} + +type Costing_Options_RestrictionProbability struct { + RestrictionProbability uint32 `protobuf:"varint,77,opt,name=restriction_probability,json=restrictionProbability,proto3,oneof"` +} + +func (*Costing_Options_RestrictionProbability) isCosting_Options_HasRestrictionProbability() {} + +type isCosting_Options_HasElevatorPenalty interface { + isCosting_Options_HasElevatorPenalty() +} + +type Costing_Options_ElevatorPenalty struct { + ElevatorPenalty float32 `protobuf:"fixed32,79,opt,name=elevator_penalty,json=elevatorPenalty,proto3,oneof"` +} + +func (*Costing_Options_ElevatorPenalty) isCosting_Options_HasElevatorPenalty() {} + +var File_options_proto protoreflect.FileDescriptor + +var file_options_proto_rawDesc = []byte{ + 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x08, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x1a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7e, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x6f, + 0x75, 0x72, 0x12, 0x14, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, + 0x48, 0x00, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x12, 0x1c, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x02, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x0a, + 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x68, 0x61, + 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x0e, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x64, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x52, 0x69, 0x6e, 0x67, 0x12, + 0x28, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, + 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x78, 0x0a, 0x10, 0x50, 0x62, 0x66, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, + 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x72, 0x69, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x74, 0x72, 0x69, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x63, 0x0a, 0x09, 0x41, 0x76, 0x6f, 0x69, 0x64, 0x45, 0x64, 0x67, 0x65, + 0x12, 0x10, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0d, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x6c, + 0x6f, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x41, 0x6c, 0x6f, 0x6e, 0x67, 0x42, 0x08, 0x0a, 0x06, 0x68, 0x61, 0x73, + 0x5f, 0x69, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, + 0x6e, 0x74, 0x5f, 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x22, 0xdc, 0x29, 0x0a, 0x07, 0x43, 0x6f, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, + 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x48, 0x00, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, + 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, + 0x0f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x1a, 0xd1, 0x26, 0x0a, 0x07, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, 0x72, + 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, + 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, 0x72, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x12, 0x3a, 0x0a, 0x18, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x16, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4f, 0x6e, 0x6c, 0x79, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x1d, 0x0a, + 0x09, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, + 0x48, 0x02, 0x52, 0x08, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0c, + 0x67, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x03, 0x52, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x6f, 0x6c, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x68, 0x5f, + 0x63, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x48, 0x04, 0x52, 0x0d, 0x74, 0x6f, + 0x6c, 0x6c, 0x42, 0x6f, 0x6f, 0x74, 0x68, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x74, + 0x6f, 0x6c, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x68, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x48, 0x05, 0x52, 0x10, 0x74, 0x6f, 0x6c, 0x6c, 0x42, + 0x6f, 0x6f, 0x74, 0x68, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x25, 0x0a, 0x0d, 0x61, + 0x6c, 0x6c, 0x65, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x06, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x65, 0x79, 0x50, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x72, + 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x02, 0x48, 0x07, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x72, 0x6f, 0x73, + 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x72, 0x79, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x16, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x65, 0x72, 0x72, 0x79, 0x5f, 0x63, 0x6f, + 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, 0x09, 0x66, 0x65, 0x72, 0x72, + 0x79, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x76, 0x6f, 0x69, 0x64, 0x5f, 0x62, + 0x61, 0x64, 0x5f, 0x73, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x02, 0x48, 0x0a, 0x52, 0x10, 0x61, 0x76, 0x6f, 0x69, 0x64, 0x42, 0x61, 0x64, 0x53, 0x75, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x72, + 0x72, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0b, 0x52, 0x08, 0x75, 0x73, 0x65, 0x46, + 0x65, 0x72, 0x72, 0x79, 0x12, 0x23, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x5f, 0x68, 0x69, 0x67, 0x68, + 0x77, 0x61, 0x79, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0c, 0x52, 0x0b, 0x75, 0x73, + 0x65, 0x48, 0x69, 0x67, 0x68, 0x77, 0x61, 0x79, 0x73, 0x12, 0x1d, 0x0a, 0x09, 0x75, 0x73, 0x65, + 0x5f, 0x74, 0x6f, 0x6c, 0x6c, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0d, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x54, 0x6f, 0x6c, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x5f, + 0x72, 0x6f, 0x61, 0x64, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0e, 0x52, 0x08, 0x75, + 0x73, 0x65, 0x52, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x64, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0f, 0x52, + 0x0b, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0d, + 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x10, 0x52, 0x0c, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x70, + 0x65, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x02, 0x48, 0x11, 0x52, 0x0b, 0x73, 0x74, 0x65, + 0x70, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, + 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x12, 0x52, 0x08, 0x6d, + 0x61, 0x78, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x68, + 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x13, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x48, 0x69, 0x6b, + 0x69, 0x6e, 0x67, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x21, 0x0a, + 0x0b, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x14, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x12, 0x27, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6b, 0x77, 0x61, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x48, 0x15, 0x52, 0x0d, 0x77, 0x61, 0x6c, 0x6b, + 0x77, 0x61, 0x79, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x29, 0x0a, 0x0f, 0x73, 0x69, 0x64, + 0x65, 0x77, 0x61, 0x6c, 0x6b, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x16, 0x52, 0x0e, 0x73, 0x69, 0x64, 0x65, 0x77, 0x61, 0x6c, 0x6b, 0x46, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x65, 0x79, 0x5f, 0x66, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x02, 0x48, 0x17, 0x52, 0x0b, 0x61, 0x6c, + 0x6c, 0x65, 0x79, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x29, 0x0a, 0x0f, 0x64, 0x72, 0x69, + 0x76, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x19, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x18, 0x52, 0x0e, 0x64, 0x72, 0x69, 0x76, 0x65, 0x77, 0x61, 0x79, 0x46, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x12, 0x2b, 0x0a, 0x10, 0x64, 0x72, 0x69, 0x76, 0x65, 0x77, 0x61, 0x79, + 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x19, + 0x52, 0x0f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x77, 0x61, 0x79, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x12, 0x44, 0x0a, 0x1e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x1a, 0x52, 0x1a, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x4d, 0x61, 0x78, 0x44, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x1d, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x78, 0x5f, + 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x1b, + 0x52, 0x1a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0e, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1d, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x1c, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x74, 0x6f, 0x70, 0x5f, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x02, 0x48, 0x1d, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x53, + 0x70, 0x65, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x5f, 0x68, 0x69, 0x6c, 0x6c, + 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x02, 0x48, 0x1e, 0x52, 0x08, 0x75, 0x73, 0x65, 0x48, 0x69, + 0x6c, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x18, 0x20, 0x20, 0x01, 0x28, 0x02, 0x48, 0x1f, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x50, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x72, + 0x61, 0x69, 0x6c, 0x73, 0x18, 0x21, 0x20, 0x01, 0x28, 0x02, 0x48, 0x20, 0x52, 0x09, 0x75, 0x73, + 0x65, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6c, 0x6f, 0x77, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x22, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x21, 0x52, 0x0f, 0x6c, 0x6f, 0x77, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x06, 0x68, 0x61, 0x7a, 0x6d, 0x61, 0x74, 0x18, + 0x23, 0x20, 0x01, 0x28, 0x08, 0x48, 0x22, 0x52, 0x06, 0x68, 0x61, 0x7a, 0x6d, 0x61, 0x74, 0x12, + 0x18, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x24, 0x20, 0x01, 0x28, 0x02, 0x48, + 0x23, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x61, 0x78, 0x6c, + 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x25, 0x20, 0x01, 0x28, 0x02, 0x48, 0x24, 0x52, 0x08, + 0x61, 0x78, 0x6c, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x02, 0x48, 0x25, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x16, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x27, 0x20, 0x01, 0x28, + 0x02, 0x48, 0x26, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x28, 0x20, 0x01, 0x28, 0x02, 0x48, 0x27, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0d, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x6e, 0x67, 0x5f, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x29, 0x20, 0x01, 0x28, 0x02, 0x48, 0x28, 0x52, 0x0c, 0x63, + 0x79, 0x63, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0a, 0x77, + 0x68, 0x65, 0x65, 0x6c, 0x63, 0x68, 0x61, 0x69, 0x72, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x29, 0x52, 0x0a, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x63, 0x68, 0x61, 0x69, 0x72, 0x12, 0x1a, 0x0a, + 0x07, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x2a, + 0x52, 0x07, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x07, 0x75, 0x73, 0x65, + 0x5f, 0x62, 0x75, 0x73, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x02, 0x48, 0x2b, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x42, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x61, 0x69, 0x6c, + 0x18, 0x2d, 0x20, 0x01, 0x28, 0x02, 0x48, 0x2c, 0x52, 0x07, 0x75, 0x73, 0x65, 0x52, 0x61, 0x69, + 0x6c, 0x12, 0x25, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x73, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x02, 0x48, 0x2d, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x02, 0x48, + 0x2e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x73, 0x74, 0x12, + 0x2b, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x18, 0x30, 0x20, 0x01, 0x28, 0x02, 0x48, 0x2f, 0x52, 0x0f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x44, 0x0a, 0x12, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x61, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x10, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x6f, + 0x70, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x32, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x73, 0x12, 0x4c, 0x0a, 0x16, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, + 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x14, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x34, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x73, 0x12, 0x46, 0x0a, 0x13, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x35, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, + 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x36, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x09, 0x66, 0x6c, + 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x30, 0x52, + 0x08, 0x66, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x69, 0x6b, + 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x38, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x31, 0x52, 0x0d, 0x62, 0x69, 0x6b, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x43, + 0x6f, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x69, 0x6b, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x39, 0x20, 0x01, 0x28, 0x02, 0x48, + 0x32, 0x52, 0x10, 0x62, 0x69, 0x6b, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x50, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x66, 0x65, 0x72, 0x72, + 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x33, 0x52, 0x0d, + 0x72, 0x61, 0x69, 0x6c, 0x46, 0x65, 0x72, 0x72, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x26, 0x0a, + 0x0e, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x66, 0x65, 0x72, 0x72, 0x79, 0x18, + 0x3b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x34, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x52, 0x61, 0x69, 0x6c, + 0x46, 0x65, 0x72, 0x72, 0x79, 0x12, 0x31, 0x0a, 0x13, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, + 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x3c, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x35, 0x52, 0x12, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x74, + 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0e, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x65, 0x77, 0x61, 0x79, 0x73, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x36, 0x52, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4f, 0x6e, 0x65, 0x77, 0x61, 0x79, + 0x73, 0x12, 0x25, 0x0a, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x37, 0x52, 0x0c, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x0f, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x18, 0x3f, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x38, 0x52, 0x0e, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x75, + 0x72, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x73, 0x74, 0x18, + 0x40, 0x20, 0x01, 0x28, 0x08, 0x48, 0x39, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x73, + 0x74, 0x12, 0x29, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x18, 0x41, 0x20, 0x01, 0x28, 0x02, 0x48, 0x3a, 0x52, 0x0e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0a, + 0x75, 0x73, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x42, 0x20, 0x01, 0x28, 0x02, + 0x48, 0x3b, 0x52, 0x09, 0x75, 0x73, 0x65, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x23, 0x0a, + 0x0c, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x43, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x3c, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x5f, 0x6c, 0x69, 0x76, 0x69, 0x6e, 0x67, + 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x73, 0x18, 0x44, 0x20, 0x01, 0x28, 0x02, 0x48, 0x3d, + 0x52, 0x10, 0x75, 0x73, 0x65, 0x4c, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x65, + 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x18, 0x45, 0x20, 0x01, 0x28, 0x02, 0x48, 0x3e, 0x52, 0x0d, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x0e, 0x63, + 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x46, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x3f, 0x52, 0x0d, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x46, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x47, + 0x20, 0x01, 0x28, 0x02, 0x48, 0x40, 0x52, 0x14, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x0f, + 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x75, 0x6e, 0x70, 0x61, 0x76, 0x65, 0x64, 0x18, + 0x48, 0x20, 0x01, 0x28, 0x08, 0x48, 0x41, 0x52, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x55, 0x6e, 0x70, 0x61, 0x76, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x5f, 0x68, 0x6f, 0x74, 0x18, 0x49, 0x20, 0x01, 0x28, 0x08, 0x48, 0x42, 0x52, 0x0a, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x48, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x0c, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x6f, 0x76, 0x32, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x43, 0x52, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x48, 0x6f, 0x76, 0x32, 0x12, + 0x23, 0x0a, 0x0c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x6f, 0x76, 0x33, 0x18, + 0x4b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x44, 0x52, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x48, 0x6f, 0x76, 0x33, 0x12, 0x37, 0x0a, 0x17, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, + 0x63, 0x61, 0x73, 0x68, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x74, 0x6f, 0x6c, 0x6c, 0x73, 0x18, + 0x4c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x45, 0x52, 0x14, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x43, 0x61, 0x73, 0x68, 0x4f, 0x6e, 0x6c, 0x79, 0x54, 0x6f, 0x6c, 0x6c, 0x73, 0x12, 0x39, 0x0a, + 0x17, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, + 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x46, + 0x52, 0x16, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, + 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x0d, 0x65, 0x78, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x5f, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, 0x4e, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x41, 0x76, 0x6f, 0x69, 0x64, + 0x45, 0x64, 0x67, 0x65, 0x52, 0x0c, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, 0x64, 0x67, + 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x10, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x02, 0x48, 0x47, 0x52, 0x0f, + 0x65, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, + 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x50, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x78, 0x65, 0x64, 0x53, 0x70, 0x65, 0x65, 0x64, + 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x78, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x51, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x5f, 0x6c, 0x69, 0x74, 0x18, 0x52, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x4c, 0x69, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, + 0x6d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x42, 0x1e, 0x0a, 0x1c, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x73, + 0x74, 0x42, 0x12, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x6f, 0x6c, + 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x42, 0x18, 0x0a, 0x16, + 0x68, 0x61, 0x73, 0x5f, 0x74, 0x6f, 0x6c, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x68, 0x5f, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x6c, + 0x6c, 0x65, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x1b, 0x0a, 0x19, 0x68, + 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, + 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x42, 0x1e, 0x0a, 0x1c, 0x68, 0x61, 0x73, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, + 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x5f, + 0x66, 0x65, 0x72, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x68, 0x61, + 0x73, 0x5f, 0x61, 0x76, 0x6f, 0x69, 0x64, 0x5f, 0x62, 0x61, 0x64, 0x5f, 0x73, 0x75, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, + 0x66, 0x65, 0x72, 0x72, 0x79, 0x42, 0x12, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, + 0x5f, 0x68, 0x69, 0x67, 0x68, 0x77, 0x61, 0x79, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, 0x73, + 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x6f, 0x6c, 0x6c, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, + 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x6f, 0x61, 0x64, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x68, + 0x61, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, + 0x13, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x73, + 0x70, 0x65, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, + 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x68, 0x61, 0x73, + 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x66, 0x66, + 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x42, 0x11, 0x0a, 0x0f, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, + 0x5f, 0x77, 0x61, 0x6c, 0x6b, 0x77, 0x61, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, + 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x77, 0x61, 0x6c, 0x6b, 0x5f, + 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x6c, + 0x6c, 0x65, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, + 0x73, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x42, 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x77, 0x61, + 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x24, 0x0a, 0x22, 0x68, 0x61, 0x73, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x65, + 0x6e, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, + 0x23, 0x0a, 0x21, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, + 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x68, + 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x68, 0x69, 0x6c, 0x6c, 0x73, 0x42, 0x11, 0x0a, 0x0f, + 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, + 0x10, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6c, + 0x73, 0x42, 0x17, 0x0a, 0x15, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x68, 0x61, + 0x73, 0x5f, 0x68, 0x61, 0x7a, 0x6d, 0x61, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, + 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x78, + 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x42, 0x13, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x6e, 0x67, 0x5f, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x5f, 0x77, 0x68, 0x65, + 0x65, 0x6c, 0x63, 0x68, 0x61, 0x69, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x62, + 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, + 0x65, 0x5f, 0x62, 0x75, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, + 0x5f, 0x72, 0x61, 0x69, 0x6c, 0x42, 0x13, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x68, 0x61, + 0x73, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x42, + 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x66, + 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, + 0x62, 0x69, 0x6b, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x42, + 0x18, 0x0a, 0x16, 0x68, 0x61, 0x73, 0x5f, 0x62, 0x69, 0x6b, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, + 0x5f, 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x66, 0x65, 0x72, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, + 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x61, 0x69, 0x6c, + 0x5f, 0x66, 0x65, 0x72, 0x72, 0x79, 0x42, 0x19, 0x0a, 0x17, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x67, + 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, + 0x6f, 0x6e, 0x65, 0x77, 0x61, 0x79, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x15, 0x0a, 0x13, + 0x68, 0x61, 0x73, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x75, + 0x72, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x68, 0x6f, 0x72, 0x74, + 0x65, 0x73, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x68, 0x61, + 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x42, 0x12, 0x0a, 0x10, + 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x42, 0x18, 0x0a, 0x16, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x6c, 0x69, 0x76, 0x69, + 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, + 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x5f, + 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x1c, 0x0a, 0x1a, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x5f, 0x75, 0x6e, 0x70, 0x61, 0x76, 0x65, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x68, + 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x6f, 0x74, 0x42, 0x12, + 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x6f, + 0x76, 0x32, 0x42, 0x12, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x5f, 0x68, 0x6f, 0x76, 0x33, 0x42, 0x1d, 0x0a, 0x1b, 0x68, 0x61, 0x73, 0x5f, 0x65, 0x78, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x61, 0x73, 0x68, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, + 0x74, 0x6f, 0x6c, 0x6c, 0x73, 0x42, 0x1d, 0x0a, 0x1b, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x73, + 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x42, 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x65, 0x6c, 0x65, 0x76, + 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x22, 0xa6, 0x01, 0x0a, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x65, 0x5f, 0x10, 0x00, + 0x12, 0x0b, 0x0a, 0x07, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x07, 0x0a, + 0x03, 0x62, 0x75, 0x73, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x5f, + 0x73, 0x63, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x6f, 0x64, 0x61, 0x6c, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x65, 0x64, + 0x65, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x10, + 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x10, + 0x08, 0x12, 0x08, 0x0a, 0x04, 0x74, 0x61, 0x78, 0x69, 0x10, 0x09, 0x12, 0x09, 0x0a, 0x05, 0x61, + 0x75, 0x74, 0x6f, 0x5f, 0x10, 0x0a, 0x12, 0x0d, 0x0a, 0x09, 0x62, 0x69, 0x6b, 0x65, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x10, 0x0b, 0x42, 0x0d, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x63, + 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x22, 0x9a, 0x1b, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x52, 0x05, 0x75, 0x6e, 0x69, + 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, + 0x12, 0x41, 0x0a, 0x0f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x76, 0x61, 0x6c, 0x68, + 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x05, 0x6a, 0x73, 0x6f, 0x6e, 0x70, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x6a, 0x73, 0x6f, 0x6e, 0x70, 0x12, + 0x2b, 0x0a, 0x10, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x6c, + 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0f, 0x65, 0x6e, 0x63, + 0x6f, 0x64, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x30, 0x0a, 0x06, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, + 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, + 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, + 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x63, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x61, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x0b, 0x63, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, + 0x08, 0x63, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x11, + 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, + 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x65, 0x78, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, + 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1e, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1d, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x06, 0x52, 0x08, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, + 0x0a, 0x05, 0x73, 0x68, 0x61, 0x70, 0x65, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x05, 0x73, 0x68, 0x61, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x01, 0x48, 0x07, 0x52, 0x10, 0x72, 0x65, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x44, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x6f, + 0x75, 0x72, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x61, 0x6c, 0x68, + 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x6f, 0x75, 0x72, 0x52, 0x08, 0x63, 0x6f, + 0x6e, 0x74, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, + 0x6e, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x79, + 0x67, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x07, 0x64, 0x65, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x18, + 0x18, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, 0x07, 0x64, 0x65, 0x6e, 0x6f, 0x69, 0x73, 0x65, + 0x12, 0x20, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0b, 0x52, 0x0d, 0x73, 0x68, + 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, + 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, + 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x70, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x52, 0x0a, 0x73, 0x68, 0x61, 0x70, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x23, 0x0a, 0x0c, + 0x67, 0x70, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x18, 0x1e, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x0c, 0x52, 0x0b, 0x67, 0x70, 0x73, 0x41, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, + 0x79, 0x12, 0x25, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x72, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0d, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x74, 0x75, 0x72, 0x6e, + 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, + 0x20, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0e, 0x52, 0x11, 0x74, 0x75, 0x72, 0x6e, 0x50, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x3b, 0x0a, 0x0d, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x21, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x22, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x10, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x11, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x61, 0x67, 0x65, + 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x02, 0x48, + 0x0f, 0x52, 0x10, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x61, 0x67, 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x25, 0x20, 0x01, 0x28, 0x08, 0x48, 0x10, 0x52, 0x0d, 0x75, + 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x12, 0x38, 0x0a, 0x0c, + 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x26, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x53, 0x68, + 0x61, 0x70, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x0b, 0x73, 0x68, 0x61, 0x70, 0x65, + 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x0a, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x74, 0x65, 0x73, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x11, 0x52, 0x0a, 0x61, 0x6c, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x02, 0x48, 0x12, 0x52, 0x15, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x67, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x76, 0x69, + 0x65, 0x77, 0x73, 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x48, 0x13, 0x52, 0x0d, 0x67, 0x75, 0x69, + 0x64, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x69, 0x65, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x10, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x2b, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x14, 0x52, 0x0f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x72, + 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x10, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x61, 0x62, 0x6f, 0x75, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x2c, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x15, 0x52, 0x0f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x45, + 0x78, 0x69, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x11, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x5f, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x16, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, + 0x6c, 0x61, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x6f, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x73, 0x18, 0x2f, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x52, 0x69, 0x6e, 0x67, + 0x52, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, + 0x73, 0x12, 0x3b, 0x0a, 0x18, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x7a, 0x65, 0x5f, + 0x62, 0x69, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x30, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x17, 0x52, 0x17, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x7a, + 0x65, 0x42, 0x69, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x45, + 0x0a, 0x10, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x61, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x18, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0e, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x6f, 0x70, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x08, 0x48, 0x19, 0x52, + 0x0d, 0x73, 0x6b, 0x69, 0x70, 0x4f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x73, 0x12, 0x58, + 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x52, 0x13, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x12, 0x70, 0x62, 0x66, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x34, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, + 0x50, 0x62, 0x66, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x52, 0x10, 0x70, 0x62, 0x66, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x18, 0x35, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x10, + 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x36, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x1a, 0x52, 0x0f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x4e, 0x0a, 0x0d, 0x43, 0x6f, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x61, + 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x22, 0x0a, 0x05, 0x55, 0x6e, 0x69, + 0x74, 0x73, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x10, 0x01, 0x22, 0x2e, 0x0a, + 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x08, 0x0a, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x10, + 0x00, 0x12, 0x07, 0x0a, 0x03, 0x67, 0x70, 0x78, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x6f, 0x73, + 0x72, 0x6d, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x62, 0x66, 0x10, 0x03, 0x22, 0xdd, 0x01, + 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x10, 0x02, 0x12, 0x16, + 0x0a, 0x12, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x73, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, + 0x7a, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x73, 0x6f, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x65, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x10, + 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x10, 0x08, 0x12, 0x15, 0x0a, + 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x10, 0x0a, 0x12, 0x0c, 0x0a, 0x08, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x6f, 0x69, 0x64, 0x10, + 0x0b, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x0c, 0x22, 0x55, 0x0a, + 0x0c, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, + 0x07, 0x6e, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x61, 0x72, + 0x74, 0x5f, 0x61, 0x74, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, + 0x5f, 0x62, 0x79, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x61, 0x72, 0x69, 0x61, + 0x6e, 0x74, 0x10, 0x04, 0x22, 0x5a, 0x0a, 0x13, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x09, 0x0a, 0x05, 0x63, + 0x6f, 0x73, 0x74, 0x73, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x10, 0x04, + 0x42, 0x0e, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x68, 0x61, + 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x70, 0x42, 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x65, + 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x42, + 0x0b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x0d, 0x0a, 0x0b, + 0x68, 0x61, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x68, + 0x61, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x17, 0x0a, 0x15, + 0x68, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x64, 0x69, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x6f, 0x6c, + 0x79, 0x67, 0x6f, 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x6e, + 0x6f, 0x69, 0x73, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x5f, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x68, + 0x6f, 0x77, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x12, 0x0a, 0x10, + 0x68, 0x61, 0x73, 0x5f, 0x67, 0x70, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, + 0x42, 0x13, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, 0x19, 0x0a, 0x17, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x75, 0x72, + 0x6e, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x42, 0x17, 0x0a, 0x15, 0x68, 0x61, 0x73, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x61, 0x67, 0x65, + 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, + 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x42, + 0x10, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, + 0x73, 0x42, 0x1c, 0x0a, 0x1a, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, + 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x5f, + 0x76, 0x69, 0x65, 0x77, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x16, 0x0a, + 0x14, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x5f, + 0x65, 0x78, 0x69, 0x74, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6e, + 0x65, 0x61, 0x72, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x42, 0x1e, + 0x0a, 0x1c, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x7a, 0x65, + 0x5f, 0x62, 0x69, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x16, + 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x6b, + 0x69, 0x70, 0x5f, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x73, 0x42, 0x16, 0x0a, 0x14, + 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0x3b, 0x0a, 0x0a, 0x53, 0x68, 0x61, 0x70, 0x65, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x12, 0x10, 0x0a, 0x0c, 0x77, 0x61, 0x6c, 0x6b, 0x5f, 0x6f, 0x72, 0x5f, 0x73, 0x6e, + 0x61, 0x70, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x77, 0x61, 0x6c, + 0x6b, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x10, + 0x02, 0x2a, 0x37, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x0d, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x00, + 0x12, 0x0b, 0x0a, 0x07, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, + 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x10, 0x02, 0x2a, 0x3b, 0x0a, 0x0e, 0x44, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, + 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0x00, 0x12, 0x08, + 0x0a, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6d, 0x61, 0x6e, 0x65, + 0x75, 0x76, 0x65, 0x72, 0x73, 0x10, 0x02, 0x2a, 0x38, 0x0a, 0x0b, 0x53, 0x68, 0x61, 0x70, 0x65, + 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x6f, 0x6c, 0x79, 0x6c, 0x69, + 0x6e, 0x65, 0x36, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, + 0x65, 0x35, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x67, 0x65, 0x6f, 0x6a, 0x73, 0x6f, 0x6e, 0x10, + 0x02, 0x42, 0x40, 0x48, 0x03, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x2e, 0x63, 0x6f, 0x6f, 0x70, 0x67, + 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2d, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2d, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x61, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_options_proto_rawDescOnce sync.Once + file_options_proto_rawDescData = file_options_proto_rawDesc +) + +func file_options_proto_rawDescGZIP() []byte { + file_options_proto_rawDescOnce.Do(func() { + file_options_proto_rawDescData = protoimpl.X.CompressGZIP(file_options_proto_rawDescData) + }) + return file_options_proto_rawDescData +} + +var file_options_proto_enumTypes = make([]protoimpl.EnumInfo, 10) +var file_options_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_options_proto_goTypes = []interface{}{ + (ShapeMatch)(0), // 0: valhalla.ShapeMatch + (FilterAction)(0), // 1: valhalla.FilterAction + (DirectionsType)(0), // 2: valhalla.DirectionsType + (ShapeFormat)(0), // 3: valhalla.ShapeFormat + (Costing_Type)(0), // 4: valhalla.Costing.Type + (Options_Units)(0), // 5: valhalla.Options.Units + (Options_Format)(0), // 6: valhalla.Options.Format + (Options_Action)(0), // 7: valhalla.Options.Action + (Options_DateTimeType)(0), // 8: valhalla.Options.DateTimeType + (Options_ExpansionProperties)(0), // 9: valhalla.Options.ExpansionProperties + (*Contour)(nil), // 10: valhalla.Contour + (*Ring)(nil), // 11: valhalla.Ring + (*PbfFieldSelector)(nil), // 12: valhalla.PbfFieldSelector + (*AvoidEdge)(nil), // 13: valhalla.AvoidEdge + (*Costing)(nil), // 14: valhalla.Costing + (*Options)(nil), // 15: valhalla.Options + (*Costing_Options)(nil), // 16: valhalla.Costing.Options + nil, // 17: valhalla.Options.CostingsEntry + (*LatLng)(nil), // 18: valhalla.LatLng + (*Location)(nil), // 19: valhalla.Location +} +var file_options_proto_depIdxs = []int32{ + 18, // 0: valhalla.Ring.coords:type_name -> valhalla.LatLng + 16, // 1: valhalla.Costing.options:type_name -> valhalla.Costing.Options + 4, // 2: valhalla.Costing.type:type_name -> valhalla.Costing.Type + 5, // 3: valhalla.Options.units:type_name -> valhalla.Options.Units + 2, // 4: valhalla.Options.directions_type:type_name -> valhalla.DirectionsType + 6, // 5: valhalla.Options.format:type_name -> valhalla.Options.Format + 7, // 6: valhalla.Options.action:type_name -> valhalla.Options.Action + 4, // 7: valhalla.Options.costing_type:type_name -> valhalla.Costing.Type + 17, // 8: valhalla.Options.costings:type_name -> valhalla.Options.CostingsEntry + 19, // 9: valhalla.Options.locations:type_name -> valhalla.Location + 19, // 10: valhalla.Options.exclude_locations:type_name -> valhalla.Location + 19, // 11: valhalla.Options.sources:type_name -> valhalla.Location + 19, // 12: valhalla.Options.targets:type_name -> valhalla.Location + 8, // 13: valhalla.Options.date_time_type:type_name -> valhalla.Options.DateTimeType + 19, // 14: valhalla.Options.shape:type_name -> valhalla.Location + 10, // 15: valhalla.Options.contours:type_name -> valhalla.Contour + 19, // 16: valhalla.Options.trace:type_name -> valhalla.Location + 0, // 17: valhalla.Options.shape_match:type_name -> valhalla.ShapeMatch + 1, // 18: valhalla.Options.filter_action:type_name -> valhalla.FilterAction + 3, // 19: valhalla.Options.shape_format:type_name -> valhalla.ShapeFormat + 14, // 20: valhalla.Options.recostings:type_name -> valhalla.Costing + 11, // 21: valhalla.Options.exclude_polygons:type_name -> valhalla.Ring + 7, // 22: valhalla.Options.expansion_action:type_name -> valhalla.Options.Action + 9, // 23: valhalla.Options.expansion_properties:type_name -> valhalla.Options.ExpansionProperties + 12, // 24: valhalla.Options.pbf_field_selector:type_name -> valhalla.PbfFieldSelector + 1, // 25: valhalla.Costing.Options.filter_stop_action:type_name -> valhalla.FilterAction + 1, // 26: valhalla.Costing.Options.filter_operator_action:type_name -> valhalla.FilterAction + 1, // 27: valhalla.Costing.Options.filter_route_action:type_name -> valhalla.FilterAction + 13, // 28: valhalla.Costing.Options.exclude_edges:type_name -> valhalla.AvoidEdge + 14, // 29: valhalla.Options.CostingsEntry.value:type_name -> valhalla.Costing + 30, // [30:30] is the sub-list for method output_type + 30, // [30:30] is the sub-list for method input_type + 30, // [30:30] is the sub-list for extension type_name + 30, // [30:30] is the sub-list for extension extendee + 0, // [0:30] is the sub-list for field type_name +} + +func init() { file_options_proto_init() } +func file_options_proto_init() { + if File_options_proto != nil { + return + } + file_common_proto_init() + if !protoimpl.UnsafeEnabled { + file_options_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Contour); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_options_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Ring); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_options_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PbfFieldSelector); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_options_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AvoidEdge); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_options_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Costing); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_options_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Options); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_options_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Costing_Options); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_options_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*Contour_Time)(nil), + (*Contour_Color)(nil), + (*Contour_Distance)(nil), + } + file_options_proto_msgTypes[3].OneofWrappers = []interface{}{ + (*AvoidEdge_Id)(nil), + (*AvoidEdge_PercentAlong)(nil), + } + file_options_proto_msgTypes[4].OneofWrappers = []interface{}{ + (*Costing_Options_)(nil), + (*Costing_Name)(nil), + (*Costing_FilterClosures)(nil), + } + file_options_proto_msgTypes[5].OneofWrappers = []interface{}{ + (*Options_Language)(nil), + (*Options_Id)(nil), + (*Options_Jsonp)(nil), + (*Options_EncodedPolyline)(nil), + (*Options_Range)(nil), + (*Options_Verbose)(nil), + (*Options_DateTime)(nil), + (*Options_ResampleDistance)(nil), + (*Options_Polygons)(nil), + (*Options_Denoise)(nil), + (*Options_Generalize)(nil), + (*Options_ShowLocations)(nil), + (*Options_GpsAccuracy)(nil), + (*Options_SearchRadius)(nil), + (*Options_TurnPenaltyFactor)(nil), + (*Options_BreakageDistance)(nil), + (*Options_UseTimestamps)(nil), + (*Options_Alternates)(nil), + (*Options_InterpolationDistance)(nil), + (*Options_GuidanceViews)(nil), + (*Options_HeightPrecision)(nil), + (*Options_RoundaboutExits)(nil), + (*Options_LinearReferences)(nil), + (*Options_PrioritizeBidirectional)(nil), + (*Options_ExpansionAction)(nil), + (*Options_SkipOpposites)(nil), + (*Options_MatrixLocations)(nil), + } + file_options_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*Costing_Options_ManeuverPenalty)(nil), + (*Costing_Options_DestinationOnlyPenalty)(nil), + (*Costing_Options_GateCost)(nil), + (*Costing_Options_GatePenalty)(nil), + (*Costing_Options_TollBoothCost)(nil), + (*Costing_Options_TollBoothPenalty)(nil), + (*Costing_Options_AlleyPenalty)(nil), + (*Costing_Options_CountryCrossingCost)(nil), + (*Costing_Options_CountryCrossingPenalty)(nil), + (*Costing_Options_FerryCost)(nil), + (*Costing_Options_AvoidBadSurfaces)(nil), + (*Costing_Options_UseFerry)(nil), + (*Costing_Options_UseHighways)(nil), + (*Costing_Options_UseTolls)(nil), + (*Costing_Options_UseRoads)(nil), + (*Costing_Options_MaxDistance)(nil), + (*Costing_Options_WalkingSpeed)(nil), + (*Costing_Options_StepPenalty)(nil), + (*Costing_Options_MaxGrade)(nil), + (*Costing_Options_MaxHikingDifficulty)(nil), + (*Costing_Options_ModeFactor)(nil), + (*Costing_Options_WalkwayFactor)(nil), + (*Costing_Options_SidewalkFactor)(nil), + (*Costing_Options_AlleyFactor)(nil), + (*Costing_Options_DrivewayFactor)(nil), + (*Costing_Options_DrivewayPenalty)(nil), + (*Costing_Options_TransitStartEndMaxDistance)(nil), + (*Costing_Options_TransitTransferMaxDistance)(nil), + (*Costing_Options_TransportType)(nil), + (*Costing_Options_TopSpeed)(nil), + (*Costing_Options_UseHills)(nil), + (*Costing_Options_UsePrimary)(nil), + (*Costing_Options_UseTrails)(nil), + (*Costing_Options_LowClassPenalty)(nil), + (*Costing_Options_Hazmat)(nil), + (*Costing_Options_Weight)(nil), + (*Costing_Options_AxleLoad)(nil), + (*Costing_Options_Height)(nil), + (*Costing_Options_Width)(nil), + (*Costing_Options_Length)(nil), + (*Costing_Options_CyclingSpeed)(nil), + (*Costing_Options_Wheelchair)(nil), + (*Costing_Options_Bicycle)(nil), + (*Costing_Options_UseBus)(nil), + (*Costing_Options_UseRail)(nil), + (*Costing_Options_UseTransfers)(nil), + (*Costing_Options_TransferCost)(nil), + (*Costing_Options_TransferPenalty)(nil), + (*Costing_Options_FlowMask)(nil), + (*Costing_Options_BikeShareCost)(nil), + (*Costing_Options_BikeSharePenalty)(nil), + (*Costing_Options_RailFerryCost)(nil), + (*Costing_Options_UseRailFerry)(nil), + (*Costing_Options_IgnoreRestrictions)(nil), + (*Costing_Options_IgnoreOneways)(nil), + (*Costing_Options_IgnoreAccess)(nil), + (*Costing_Options_IgnoreClosures)(nil), + (*Costing_Options_Shortest)(nil), + (*Costing_Options_ServicePenalty)(nil), + (*Costing_Options_UseTracks)(nil), + (*Costing_Options_UseDistance)(nil), + (*Costing_Options_UseLivingStreets)(nil), + (*Costing_Options_ServiceFactor)(nil), + (*Costing_Options_ClosureFactor)(nil), + (*Costing_Options_PrivateAccessPenalty)(nil), + (*Costing_Options_ExcludeUnpaved)(nil), + (*Costing_Options_IncludeHot)(nil), + (*Costing_Options_IncludeHov2)(nil), + (*Costing_Options_IncludeHov3)(nil), + (*Costing_Options_ExcludeCashOnlyTolls)(nil), + (*Costing_Options_RestrictionProbability)(nil), + (*Costing_Options_ElevatorPenalty)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_options_proto_rawDesc, + NumEnums: 10, + NumMessages: 8, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_options_proto_goTypes, + DependencyIndexes: file_options_proto_depIdxs, + EnumInfos: file_options_proto_enumTypes, + MessageInfos: file_options_proto_msgTypes, + }.Build() + File_options_proto = out.File + file_options_proto_rawDesc = nil + file_options_proto_goTypes = nil + file_options_proto_depIdxs = nil +} diff --git a/proto/valhalla/options.proto b/proto/valhalla/options.proto new file mode 100644 index 0000000..6d7ca18 --- /dev/null +++ b/proto/valhalla/options.proto @@ -0,0 +1,485 @@ +syntax = "proto3"; +option optimize_for = LITE_RUNTIME; +option go_package = "git.coopgo.io/coopgo-platform/routing-service/proto/valhalla"; +package valhalla; +import public "common.proto"; + +message Contour { + oneof has_time { + float time = 1; // minutes + } + oneof has_color { + string color = 2; // hex color with out # - for example: "ff0000" for red + } + oneof has_distance { + float distance = 3; // kilometers + } +} + +message Ring { + repeated LatLng coords = 1; +} + +enum ShapeMatch { + walk_or_snap = 0; + edge_walk = 1; + map_snap = 2; +} + +enum FilterAction { + no_action = 0; + exclude = 1; + include = 2; +} + +enum DirectionsType { + instructions = 0; + none = 1; + maneuvers = 2; +} + +enum ShapeFormat { + polyline6 = 0; + polyline5 = 1; + geojson = 2; +} + +// use this to select which top level fields should be present in the pbf output +// the actions below are marked for each field that would provide a minimal response +message PbfFieldSelector { + bool options = 1; + bool trip = 2; // /trace_attributes + bool directions = 3; // /route /trace_route /optimized_route /centroid + bool status = 4; // /status + // TODO: enable these once we have objects for them + // bool isochrone = 5; + // bool matrix = 6; + // bool locate = 7; + // bool height = 8; + // bool expansion = 9; +} + +message AvoidEdge { + oneof has_id { + uint64 id = 1; + } + oneof has_percent_along { + float percent_along = 2; + } +} + +message Costing { + enum Type { + none_ = 0; + bicycle = 1; + bus = 2; + motor_scooter = 3; + multimodal = 4; // turns into pedestrian + transit + pedestrian = 5; + transit = 6; + truck = 7; + motorcycle = 8; + taxi = 9; + auto_ = 10; + bikeshare = 11; // turns into pedestrian + bike + } + + message Options { + oneof has_maneuver_penalty { + float maneuver_penalty = 1; + } + oneof has_destination_only_penalty { + float destination_only_penalty = 2; + } + oneof has_gate_cost { + float gate_cost = 3; + } + oneof has_gate_penalty { + float gate_penalty = 4; + } + oneof has_toll_booth_cost { + float toll_booth_cost = 5; + } + oneof has_toll_booth_penalty { + float toll_booth_penalty = 6; + } + oneof has_alley_penalty { + float alley_penalty = 7; + } + oneof has_country_crossing_cost { + float country_crossing_cost = 8; + } + oneof has_country_crossing_penalty { + float country_crossing_penalty = 9; + } + oneof has_ferry_cost { + float ferry_cost = 10; + } + oneof has_avoid_bad_surfaces { + float avoid_bad_surfaces = 11; + } + oneof has_use_ferry { + float use_ferry = 12; + } + oneof has_use_highways { + float use_highways = 13; + } + oneof has_use_tolls { + float use_tolls = 14; + } + oneof has_use_roads { + float use_roads = 15; + } + oneof has_max_distance { + uint32 max_distance = 16; + } + oneof has_walking_speed { + float walking_speed = 17; + } + oneof has_step_penalty { + float step_penalty = 18; + } + oneof has_max_grade { + uint32 max_grade = 19; + } + oneof has_max_hiking_difficulty { + uint32 max_hiking_difficulty = 20; + } + oneof has_mode_factor { + float mode_factor = 21; + } + oneof has_walkway_factor { + float walkway_factor = 22; + } + oneof has_sidewalk_factor { + float sidewalk_factor = 23; + } + oneof has_alley_factor { + float alley_factor = 24; + } + oneof has_driveway_factor { + float driveway_factor = 25; + } + oneof has_driveway_penalty { + float driveway_penalty = 26; + } + oneof has_transit_start_end_max_distance { + uint32 transit_start_end_max_distance = 27; + } + oneof has_transit_transfer_max_distance { + uint32 transit_transfer_max_distance = 28; + } + oneof has_transport_type { + string transport_type = 29; + } + oneof has_top_speed { + float top_speed = 30; + } + oneof has_use_hills { + float use_hills = 31; + } + oneof has_use_primary { + float use_primary = 32; + } + oneof has_use_trails { + float use_trails = 33; + } + oneof has_low_class_penalty { + float low_class_penalty = 34; + } + oneof has_hazmat { + bool hazmat = 35; + } + oneof has_weight { + float weight = 36; + } + oneof has_axle_load { + float axle_load = 37; + } + oneof has_height { + float height = 38; + } + oneof has_width { + float width = 39; + } + oneof has_length { + float length = 40; + } + oneof has_cycling_speed { + float cycling_speed = 41; + } + oneof has_wheelchair { + bool wheelchair = 42; + } + oneof has_bicycle { + bool bicycle = 43; + } + oneof has_use_bus { + float use_bus = 44; + } + oneof has_use_rail { + float use_rail = 45; + } + oneof has_use_transfers { + float use_transfers = 46; + } + oneof has_transfer_cost { + float transfer_cost = 47; + } + oneof has_transfer_penalty { + float transfer_penalty = 48; + } + FilterAction filter_stop_action = 49; + repeated string filter_stop_ids = 50; + FilterAction filter_operator_action = 51; + repeated string filter_operator_ids = 52; + FilterAction filter_route_action = 53; + repeated string filter_route_ids = 54; + oneof has_flow_mask { + uint32 flow_mask = 55; + } + oneof has_bike_share_cost { + float bike_share_cost = 56; + } + oneof has_bike_share_penalty { + float bike_share_penalty = 57; + } + oneof has_rail_ferry_cost { + float rail_ferry_cost = 58; + } + oneof has_use_rail_ferry { + float use_rail_ferry = 59; + } + oneof has_ignore_restrictions { + bool ignore_restrictions = 60; + } + oneof has_ignore_oneways { + bool ignore_oneways = 61; + } + oneof has_ignore_access { + bool ignore_access = 62; + } + oneof has_ignore_closures { + bool ignore_closures = 63; + } + oneof has_shortest { + bool shortest = 64; + } + oneof has_service_penalty { + float service_penalty = 65; + } + oneof has_use_tracks { + float use_tracks = 66; + } + oneof has_use_distance { + float use_distance = 67; + } + oneof has_use_living_streets { + float use_living_streets = 68; + } + oneof has_service_factor { + float service_factor = 69; + } + oneof has_closure_factor { + float closure_factor = 70; + } + oneof has_private_access_penalty { + float private_access_penalty = 71; + } + oneof has_exclude_unpaved { + bool exclude_unpaved = 72; + } + oneof has_include_hot { + bool include_hot = 73; + } + oneof has_include_hov2 { + bool include_hov2 = 74; + } + oneof has_include_hov3 { + bool include_hov3 = 75; + } + oneof has_exclude_cash_only_tolls { + bool exclude_cash_only_tolls = 76; + } + oneof has_restriction_probability { + uint32 restriction_probability = 77; + } + repeated AvoidEdge exclude_edges = 78; + oneof has_elevator_penalty { + float elevator_penalty = 79; + } + uint32 fixed_speed = 80; + uint32 axle_count = 81; + float use_lit = 82; + } + + oneof has_options { + Options options = 1; + } + Type type = 2; + oneof has_name { + string name = 3; + } + + // this is used internally only, setting it in your request will have no effect + oneof has_filter_closures { + bool filter_closures = 4; + } +} + +message Options { + + enum Units { + kilometers = 0; + miles = 1; + } + + enum Format { + json = 0; + gpx = 1; + osrm = 2; + pbf = 3; + } + + enum Action { + no_action = 0; + route = 1; + locate = 2; + sources_to_targets = 3; + optimized_route = 4; + isochrone = 5; + trace_route = 6; + trace_attributes = 7; + height = 8; + transit_available = 9; + expansion = 10; + centroid = 11; + status = 12; + } + + enum DateTimeType { + no_time = 0; + current = 1; + depart_at = 2; + arrive_by = 3; + invariant = 4; + } + + enum ExpansionProperties { + costs = 0; + durations = 1; + distances = 2; + statuses = 3; + edge_ids = 4; + } + + Units units = 1; // kilometers or miles + oneof has_language { + string language = 2; // Based on IETF BCP 47 language tag string [default = "en-US"] + } + DirectionsType directions_type = 3; // Enable/disable narrative production [default = instructions] + Format format = 4; // What the response format should be [default = json] + oneof has_id { + string id = 5; // id for the request + } + oneof has_jsonp { + string jsonp = 6; // javascript callback for the request + } + oneof has_encoded_polyline { + string encoded_polyline = 7; // polyline 6 encoded shape used in /height /trace_* + } + Action action = 8; // Action signifying the request type + //deprecated = 9; + oneof has_range { + bool range = 10; // Used in /height if the range between points should be serialized [default = false] + } + // verbose needs to stay oneof, so that matrix serializer can default to true + oneof has_verbose { + bool verbose = 11; // Used in /locate & /status request to give back extensive information [default = false] + } + Costing.Type costing_type = 12; // The main costing to use with the action, in multimodal this is the first costing to use + map costings = 13; // A map of Costing.Type enum to its Costing object + repeated Location locations = 14; // Locations for /route /optimized /locate /isochrone + repeated Location exclude_locations = 15; // Avoids for any costing + repeated Location sources = 16; // Sources for /sources_to_targets + repeated Location targets = 17; // Targets for /sources_to_targets + DateTimeType date_time_type = 18; // Are you leaving now or then or arriving then + oneof has_date_time { + string date_time = 19; // And what day and time + } + repeated Location shape = 20; // Raw shape for map matching + oneof has_resample_distance { + double resample_distance = 21; // Resampling shape at regular intervals + } + repeated Contour contours = 22; // List of isochrone contours + oneof has_polygons { + bool polygons = 23; // Boolean value to determine whether to return geojson polygons or linestrings as the contours + } + oneof has_denoise { + float denoise = 24; // A floating point value from 0 to 1 which can be used to remove smaller contours (default 1.0) + } + oneof has_generalize { + float generalize = 25; // Meters used as the tolerance for Douglas-Peucker generalization + } + oneof has_show_locations { + bool show_locations = 26; // Add original locations to the isochrone geojson response + } + repeated Location trace = 27; // Trace points for map matching + ShapeMatch shape_match = 28; // The matching algorithm based on the type of input [default = walk_or_snap] + //deprecated = 29; + oneof has_gps_accuracy { + float gps_accuracy = 30; // The gps accuracy associated with the supplied trace points + } + oneof has_search_radius { + float search_radius = 31; // The search radius associated with the supplied trace points + } + oneof has_turn_penalty_factor { + float turn_penalty_factor = 32; // The turn penalty factor associated with the supplied trace points + } + FilterAction filter_action = 33; // The trace filter action - either exclude or include + repeated string filter_attributes = 34; // The filter list for trace attributes + oneof has_breakage_distance { + float breakage_distance = 36; // Map-matching breaking distance (distance between GPS trace points) + } + oneof has_use_timestamps { + bool use_timestamps = 37; // Use timestamps to compute elapsed time for trace_route and trace_attributes [default = false] + } + ShapeFormat shape_format = 38; // Shape format (defaults to polyline6 encoding) + oneof has_alternates { + uint32 alternates = 39; // Maximum number of alternate routes that can be returned + } + oneof has_interpolation_distance { + float interpolation_distance = 40; // Map-matching interpolation distance beyond which trace points are merged + } + oneof has_guidance_views { + bool guidance_views = 41; // Whether to return guidance_views in the response + } + // 42 is reserved + oneof has_height_precision { + uint32 height_precision = 43; // Number of digits precision for heights returned [default = 0] + } + oneof has_roundabout_exits { + bool roundabout_exits = 44; // Whether to announce roundabout exit maneuvers [default = true] + } + oneof has_linear_references { + bool linear_references = 45; // Include linear references for graph edges returned in certain responses. + } + repeated Costing recostings = 46; // CostingType options to use to recost a path after it has been found + repeated Ring exclude_polygons = 47; // Rings/polygons to exclude entire areas during path finding + oneof has_prioritize_bidirectional { + bool prioritize_bidirectional = 48; // Prioritize bidirectional a* when depart_at date_time.type is specified [default = false] + } + oneof has_expansion_action { + Action expansion_action = 49; // Meta action for /expansion endpoint + } + oneof has_skip_opposites { + bool skip_opposites = 50; // Whether to return opposite edges encountered during expansion + } + repeated ExpansionProperties expansion_properties = 51; // The array keys (ExpansionTypes enum) to return in the /expansions's GeoJSON "properties" + PbfFieldSelector pbf_field_selector = 52; // Which pbf fields to include in the pbf format response + bool reverse = 53; // should the isochrone expansion be done in the reverse direction, ignored for multimodal isochrones + oneof has_matrix_locations { // Number of matrix locations found that will trigger an early exit from + uint32 matrix_locations = 54; // a one to many or many to one time distance matrix. Does not affect + } // sources_to_targets when either sources or targets has more than 1 location + // or when CostMatrix is the selected matrix mode. +} diff --git a/proto/valhalla/sign.pb.go b/proto/valhalla/sign.pb.go new file mode 100644 index 0000000..f99843e --- /dev/null +++ b/proto/valhalla/sign.pb.go @@ -0,0 +1,357 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v3.19.4 +// source: sign.proto + +package valhalla + +import ( + 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) +) + +type TripSignElement struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` // The actual sign element text, examples: I 95 North or Derry Street + IsRouteNumber bool `protobuf:"varint,2,opt,name=is_route_number,json=isRouteNumber,proto3" json:"is_route_number,omitempty"` // true if sign element is a reference route number such as: I 81 South or US 322 West + ConsecutiveCount uint32 `protobuf:"varint,3,opt,name=consecutive_count,json=consecutiveCount,proto3" json:"consecutive_count,omitempty"` // The frequency of this sign element within a set a consecutive signs + Pronunciation *Pronunciation `protobuf:"bytes,4,opt,name=pronunciation,proto3" json:"pronunciation,omitempty"` // The pronunciation associated with this sign element +} + +func (x *TripSignElement) Reset() { + *x = TripSignElement{} + if protoimpl.UnsafeEnabled { + mi := &file_sign_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TripSignElement) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TripSignElement) ProtoMessage() {} + +func (x *TripSignElement) ProtoReflect() protoreflect.Message { + mi := &file_sign_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 TripSignElement.ProtoReflect.Descriptor instead. +func (*TripSignElement) Descriptor() ([]byte, []int) { + return file_sign_proto_rawDescGZIP(), []int{0} +} + +func (x *TripSignElement) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +func (x *TripSignElement) GetIsRouteNumber() bool { + if x != nil { + return x.IsRouteNumber + } + return false +} + +func (x *TripSignElement) GetConsecutiveCount() uint32 { + if x != nil { + return x.ConsecutiveCount + } + return 0 +} + +func (x *TripSignElement) GetPronunciation() *Pronunciation { + if x != nil { + return x.Pronunciation + } + return nil +} + +type TripSign struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ExitNumbers []*TripSignElement `protobuf:"bytes,1,rep,name=exit_numbers,json=exitNumbers,proto3" json:"exit_numbers,omitempty"` // The list of exit numbers, example: 67B + ExitOntoStreets []*TripSignElement `protobuf:"bytes,2,rep,name=exit_onto_streets,json=exitOntoStreets,proto3" json:"exit_onto_streets,omitempty"` // The list of exit branch street names, examples: I 95 North or Baltimore-Washington Parkway + ExitTowardLocations []*TripSignElement `protobuf:"bytes,3,rep,name=exit_toward_locations,json=exitTowardLocations,proto3" json:"exit_toward_locations,omitempty"` // The list of exit toward locations, examples: New York or I 395 South + ExitNames []*TripSignElement `protobuf:"bytes,4,rep,name=exit_names,json=exitNames,proto3" json:"exit_names,omitempty"` // The list of exit names - not used much in US, example: Gettysburg Pike + GuideOntoStreets []*TripSignElement `protobuf:"bytes,5,rep,name=guide_onto_streets,json=guideOntoStreets,proto3" json:"guide_onto_streets,omitempty"` // The list of guide branch street names, examples: US 22 West or Baltimore-Washington Parkway + GuideTowardLocations []*TripSignElement `protobuf:"bytes,6,rep,name=guide_toward_locations,json=guideTowardLocations,proto3" json:"guide_toward_locations,omitempty"` // The list of guide toward locations, examples: Lewistown or US 15 + JunctionNames []*TripSignElement `protobuf:"bytes,7,rep,name=junction_names,json=junctionNames,proto3" json:"junction_names,omitempty"` // The list of junction names, examples: 万年橋東 or Mannenbashi East + GuidanceViewJunctions []*TripSignElement `protobuf:"bytes,8,rep,name=guidance_view_junctions,json=guidanceViewJunctions,proto3" json:"guidance_view_junctions,omitempty"` // The list of guidance view junctions, examples: AB12345;1 or AB12345;E + GuidanceViewSignboards []*TripSignElement `protobuf:"bytes,9,rep,name=guidance_view_signboards,json=guidanceViewSignboards,proto3" json:"guidance_view_signboards,omitempty"` // The list of guidance view signboards, examples: SI_721701166;1 or SI_721701166;2 +} + +func (x *TripSign) Reset() { + *x = TripSign{} + if protoimpl.UnsafeEnabled { + mi := &file_sign_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TripSign) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TripSign) ProtoMessage() {} + +func (x *TripSign) ProtoReflect() protoreflect.Message { + mi := &file_sign_proto_msgTypes[1] + 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 TripSign.ProtoReflect.Descriptor instead. +func (*TripSign) Descriptor() ([]byte, []int) { + return file_sign_proto_rawDescGZIP(), []int{1} +} + +func (x *TripSign) GetExitNumbers() []*TripSignElement { + if x != nil { + return x.ExitNumbers + } + return nil +} + +func (x *TripSign) GetExitOntoStreets() []*TripSignElement { + if x != nil { + return x.ExitOntoStreets + } + return nil +} + +func (x *TripSign) GetExitTowardLocations() []*TripSignElement { + if x != nil { + return x.ExitTowardLocations + } + return nil +} + +func (x *TripSign) GetExitNames() []*TripSignElement { + if x != nil { + return x.ExitNames + } + return nil +} + +func (x *TripSign) GetGuideOntoStreets() []*TripSignElement { + if x != nil { + return x.GuideOntoStreets + } + return nil +} + +func (x *TripSign) GetGuideTowardLocations() []*TripSignElement { + if x != nil { + return x.GuideTowardLocations + } + return nil +} + +func (x *TripSign) GetJunctionNames() []*TripSignElement { + if x != nil { + return x.JunctionNames + } + return nil +} + +func (x *TripSign) GetGuidanceViewJunctions() []*TripSignElement { + if x != nil { + return x.GuidanceViewJunctions + } + return nil +} + +func (x *TripSign) GetGuidanceViewSignboards() []*TripSignElement { + if x != nil { + return x.GuidanceViewSignboards + } + return nil +} + +var File_sign_proto protoreflect.FileDescriptor + +var file_sign_proto_rawDesc = []byte{ + 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x76, 0x61, + 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x1a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb9, 0x01, 0x0a, 0x0f, 0x54, 0x72, 0x69, 0x70, 0x53, 0x69, 0x67, + 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x26, 0x0a, 0x0f, + 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x3d, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6e, 0x75, 0x6e, 0x63, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x6e, 0x75, 0x6e, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6e, 0x75, 0x6e, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x9c, 0x05, 0x0a, 0x08, 0x54, 0x72, 0x69, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x3c, 0x0a, + 0x0c, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, + 0x72, 0x69, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, + 0x65, 0x78, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x65, + 0x78, 0x69, 0x74, 0x5f, 0x6f, 0x6e, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, + 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x0f, 0x65, 0x78, 0x69, 0x74, 0x4f, 0x6e, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x65, + 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x15, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x74, 0x6f, 0x77, 0x61, 0x72, + 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, + 0x70, 0x53, 0x69, 0x67, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x13, 0x65, 0x78, + 0x69, 0x74, 0x54, 0x6f, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x38, 0x0a, 0x0a, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, + 0x2e, 0x54, 0x72, 0x69, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x09, 0x65, 0x78, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x12, 0x67, + 0x75, 0x69, 0x64, 0x65, 0x5f, 0x6f, 0x6e, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, + 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x10, 0x67, 0x75, 0x69, 0x64, 0x65, 0x4f, 0x6e, 0x74, 0x6f, 0x53, 0x74, 0x72, + 0x65, 0x65, 0x74, 0x73, 0x12, 0x4f, 0x0a, 0x16, 0x67, 0x75, 0x69, 0x64, 0x65, 0x5f, 0x74, 0x6f, + 0x77, 0x61, 0x72, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, + 0x54, 0x72, 0x69, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x14, 0x67, 0x75, 0x69, 0x64, 0x65, 0x54, 0x6f, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x53, 0x69, 0x67, + 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0d, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x17, 0x67, 0x75, 0x69, 0x64, 0x61, + 0x6e, 0x63, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x45, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x15, 0x67, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x18, 0x67, 0x75, + 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x73, 0x69, 0x67, 0x6e, + 0x62, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x53, 0x69, 0x67, 0x6e, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x16, 0x67, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, + 0x65, 0x56, 0x69, 0x65, 0x77, 0x53, 0x69, 0x67, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x42, + 0x40, 0x48, 0x03, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x2e, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2e, + 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, + 0x61, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_sign_proto_rawDescOnce sync.Once + file_sign_proto_rawDescData = file_sign_proto_rawDesc +) + +func file_sign_proto_rawDescGZIP() []byte { + file_sign_proto_rawDescOnce.Do(func() { + file_sign_proto_rawDescData = protoimpl.X.CompressGZIP(file_sign_proto_rawDescData) + }) + return file_sign_proto_rawDescData +} + +var file_sign_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_sign_proto_goTypes = []interface{}{ + (*TripSignElement)(nil), // 0: valhalla.TripSignElement + (*TripSign)(nil), // 1: valhalla.TripSign + (*Pronunciation)(nil), // 2: valhalla.Pronunciation +} +var file_sign_proto_depIdxs = []int32{ + 2, // 0: valhalla.TripSignElement.pronunciation:type_name -> valhalla.Pronunciation + 0, // 1: valhalla.TripSign.exit_numbers:type_name -> valhalla.TripSignElement + 0, // 2: valhalla.TripSign.exit_onto_streets:type_name -> valhalla.TripSignElement + 0, // 3: valhalla.TripSign.exit_toward_locations:type_name -> valhalla.TripSignElement + 0, // 4: valhalla.TripSign.exit_names:type_name -> valhalla.TripSignElement + 0, // 5: valhalla.TripSign.guide_onto_streets:type_name -> valhalla.TripSignElement + 0, // 6: valhalla.TripSign.guide_toward_locations:type_name -> valhalla.TripSignElement + 0, // 7: valhalla.TripSign.junction_names:type_name -> valhalla.TripSignElement + 0, // 8: valhalla.TripSign.guidance_view_junctions:type_name -> valhalla.TripSignElement + 0, // 9: valhalla.TripSign.guidance_view_signboards:type_name -> valhalla.TripSignElement + 10, // [10:10] is the sub-list for method output_type + 10, // [10:10] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name +} + +func init() { file_sign_proto_init() } +func file_sign_proto_init() { + if File_sign_proto != nil { + return + } + file_common_proto_init() + if !protoimpl.UnsafeEnabled { + file_sign_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TripSignElement); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sign_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TripSign); 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_sign_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_sign_proto_goTypes, + DependencyIndexes: file_sign_proto_depIdxs, + MessageInfos: file_sign_proto_msgTypes, + }.Build() + File_sign_proto = out.File + file_sign_proto_rawDesc = nil + file_sign_proto_goTypes = nil + file_sign_proto_depIdxs = nil +} diff --git a/proto/valhalla/sign.proto b/proto/valhalla/sign.proto new file mode 100644 index 0000000..0fb7476 --- /dev/null +++ b/proto/valhalla/sign.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; +option optimize_for = LITE_RUNTIME; +option go_package = "git.coopgo.io/coopgo-platform/routing-service/proto/valhalla"; +package valhalla; +import public "common.proto"; + +message TripSignElement { + string text = 1; // The actual sign element text, examples: I 95 North or Derry Street + bool is_route_number = 2; // true if sign element is a reference route number such as: I 81 South or US 322 West + uint32 consecutive_count = 3; // The frequency of this sign element within a set a consecutive signs + Pronunciation pronunciation = 4; // The pronunciation associated with this sign element +} + +message TripSign { + repeated TripSignElement exit_numbers = 1; // The list of exit numbers, example: 67B + repeated TripSignElement exit_onto_streets = 2; // The list of exit branch street names, examples: I 95 North or Baltimore-Washington Parkway + repeated TripSignElement exit_toward_locations = 3; // The list of exit toward locations, examples: New York or I 395 South + repeated TripSignElement exit_names = 4; // The list of exit names - not used much in US, example: Gettysburg Pike + repeated TripSignElement guide_onto_streets = 5; // The list of guide branch street names, examples: US 22 West or Baltimore-Washington Parkway + repeated TripSignElement guide_toward_locations = 6; // The list of guide toward locations, examples: Lewistown or US 15 + repeated TripSignElement junction_names = 7; // The list of junction names, examples: 万年橋東 or Mannenbashi East + repeated TripSignElement guidance_view_junctions = 8; // The list of guidance view junctions, examples: AB12345;1 or AB12345;E + repeated TripSignElement guidance_view_signboards = 9; // The list of guidance view signboards, examples: SI_721701166;1 or SI_721701166;2 +} diff --git a/proto/valhalla/status.pb.go b/proto/valhalla/status.pb.go new file mode 100644 index 0000000..e987b01 --- /dev/null +++ b/proto/valhalla/status.pb.go @@ -0,0 +1,368 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v3.19.4 +// source: status.proto + +package valhalla + +import ( + 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) +) + +type Status struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to HasHasTiles: + // *Status_HasTiles + HasHasTiles isStatus_HasHasTiles `protobuf_oneof:"has_has_tiles"` + // Types that are assignable to HasHasAdmins: + // *Status_HasAdmins + HasHasAdmins isStatus_HasHasAdmins `protobuf_oneof:"has_has_admins"` + // Types that are assignable to HasHasTimezones: + // *Status_HasTimezones + HasHasTimezones isStatus_HasHasTimezones `protobuf_oneof:"has_has_timezones"` + // Types that are assignable to HasHasLiveTraffic: + // *Status_HasLiveTraffic + HasHasLiveTraffic isStatus_HasHasLiveTraffic `protobuf_oneof:"has_has_live_traffic"` + // Types that are assignable to HasBbox: + // *Status_Bbox + HasBbox isStatus_HasBbox `protobuf_oneof:"has_bbox"` + // Types that are assignable to HasVersion: + // *Status_Version + HasVersion isStatus_HasVersion `protobuf_oneof:"has_version"` + // Types that are assignable to HasTilesetLastModified: + // *Status_TilesetLastModified + HasTilesetLastModified isStatus_HasTilesetLastModified `protobuf_oneof:"has_tileset_last_modified"` + AvailableActions []string `protobuf:"bytes,8,rep,name=available_actions,json=availableActions,proto3" json:"available_actions,omitempty"` +} + +func (x *Status) Reset() { + *x = Status{} + if protoimpl.UnsafeEnabled { + mi := &file_status_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Status) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Status) ProtoMessage() {} + +func (x *Status) ProtoReflect() protoreflect.Message { + mi := &file_status_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 Status.ProtoReflect.Descriptor instead. +func (*Status) Descriptor() ([]byte, []int) { + return file_status_proto_rawDescGZIP(), []int{0} +} + +func (m *Status) GetHasHasTiles() isStatus_HasHasTiles { + if m != nil { + return m.HasHasTiles + } + return nil +} + +func (x *Status) GetHasTiles() bool { + if x, ok := x.GetHasHasTiles().(*Status_HasTiles); ok { + return x.HasTiles + } + return false +} + +func (m *Status) GetHasHasAdmins() isStatus_HasHasAdmins { + if m != nil { + return m.HasHasAdmins + } + return nil +} + +func (x *Status) GetHasAdmins() bool { + if x, ok := x.GetHasHasAdmins().(*Status_HasAdmins); ok { + return x.HasAdmins + } + return false +} + +func (m *Status) GetHasHasTimezones() isStatus_HasHasTimezones { + if m != nil { + return m.HasHasTimezones + } + return nil +} + +func (x *Status) GetHasTimezones() bool { + if x, ok := x.GetHasHasTimezones().(*Status_HasTimezones); ok { + return x.HasTimezones + } + return false +} + +func (m *Status) GetHasHasLiveTraffic() isStatus_HasHasLiveTraffic { + if m != nil { + return m.HasHasLiveTraffic + } + return nil +} + +func (x *Status) GetHasLiveTraffic() bool { + if x, ok := x.GetHasHasLiveTraffic().(*Status_HasLiveTraffic); ok { + return x.HasLiveTraffic + } + return false +} + +func (m *Status) GetHasBbox() isStatus_HasBbox { + if m != nil { + return m.HasBbox + } + return nil +} + +func (x *Status) GetBbox() string { + if x, ok := x.GetHasBbox().(*Status_Bbox); ok { + return x.Bbox + } + return "" +} + +func (m *Status) GetHasVersion() isStatus_HasVersion { + if m != nil { + return m.HasVersion + } + return nil +} + +func (x *Status) GetVersion() string { + if x, ok := x.GetHasVersion().(*Status_Version); ok { + return x.Version + } + return "" +} + +func (m *Status) GetHasTilesetLastModified() isStatus_HasTilesetLastModified { + if m != nil { + return m.HasTilesetLastModified + } + return nil +} + +func (x *Status) GetTilesetLastModified() uint32 { + if x, ok := x.GetHasTilesetLastModified().(*Status_TilesetLastModified); ok { + return x.TilesetLastModified + } + return 0 +} + +func (x *Status) GetAvailableActions() []string { + if x != nil { + return x.AvailableActions + } + return nil +} + +type isStatus_HasHasTiles interface { + isStatus_HasHasTiles() +} + +type Status_HasTiles struct { + HasTiles bool `protobuf:"varint,1,opt,name=has_tiles,json=hasTiles,proto3,oneof"` +} + +func (*Status_HasTiles) isStatus_HasHasTiles() {} + +type isStatus_HasHasAdmins interface { + isStatus_HasHasAdmins() +} + +type Status_HasAdmins struct { + HasAdmins bool `protobuf:"varint,2,opt,name=has_admins,json=hasAdmins,proto3,oneof"` +} + +func (*Status_HasAdmins) isStatus_HasHasAdmins() {} + +type isStatus_HasHasTimezones interface { + isStatus_HasHasTimezones() +} + +type Status_HasTimezones struct { + HasTimezones bool `protobuf:"varint,3,opt,name=has_timezones,json=hasTimezones,proto3,oneof"` +} + +func (*Status_HasTimezones) isStatus_HasHasTimezones() {} + +type isStatus_HasHasLiveTraffic interface { + isStatus_HasHasLiveTraffic() +} + +type Status_HasLiveTraffic struct { + HasLiveTraffic bool `protobuf:"varint,4,opt,name=has_live_traffic,json=hasLiveTraffic,proto3,oneof"` +} + +func (*Status_HasLiveTraffic) isStatus_HasHasLiveTraffic() {} + +type isStatus_HasBbox interface { + isStatus_HasBbox() +} + +type Status_Bbox struct { + Bbox string `protobuf:"bytes,5,opt,name=bbox,proto3,oneof"` +} + +func (*Status_Bbox) isStatus_HasBbox() {} + +type isStatus_HasVersion interface { + isStatus_HasVersion() +} + +type Status_Version struct { + Version string `protobuf:"bytes,6,opt,name=version,proto3,oneof"` +} + +func (*Status_Version) isStatus_HasVersion() {} + +type isStatus_HasTilesetLastModified interface { + isStatus_HasTilesetLastModified() +} + +type Status_TilesetLastModified struct { + TilesetLastModified uint32 `protobuf:"varint,7,opt,name=tileset_last_modified,json=tilesetLastModified,proto3,oneof"` +} + +func (*Status_TilesetLastModified) isStatus_HasTilesetLastModified() {} + +var File_status_proto protoreflect.FileDescriptor + +var file_status_proto_rawDesc = []byte{ + 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, + 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x22, 0xb8, 0x03, 0x0a, 0x06, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x6c, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x68, 0x61, 0x73, 0x54, 0x69, 0x6c, + 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x09, 0x68, 0x61, 0x73, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x7a, + 0x6f, 0x6e, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0c, 0x68, 0x61, + 0x73, 0x54, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x61, + 0x73, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0e, 0x68, 0x61, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x54, + 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x12, 0x14, 0x0a, 0x04, 0x62, 0x62, 0x6f, 0x78, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x04, 0x62, 0x62, 0x6f, 0x78, 0x12, 0x1a, 0x0a, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x15, 0x74, 0x69, 0x6c, 0x65, + 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x13, 0x74, 0x69, 0x6c, 0x65, 0x73, + 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x2b, + 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x68, + 0x61, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x42, 0x10, 0x0a, 0x0e, + 0x68, 0x61, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x42, 0x13, + 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, + 0x6e, 0x65, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x6c, + 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x42, 0x0a, 0x0a, 0x08, 0x68, + 0x61, 0x73, 0x5f, 0x62, 0x62, 0x6f, 0x78, 0x42, 0x0d, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x1b, 0x0a, 0x19, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x69, + 0x6c, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x42, 0x40, 0x48, 0x03, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x2e, 0x63, 0x6f, 0x6f, + 0x70, 0x67, 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2d, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2d, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x61, 0x6c, + 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_status_proto_rawDescOnce sync.Once + file_status_proto_rawDescData = file_status_proto_rawDesc +) + +func file_status_proto_rawDescGZIP() []byte { + file_status_proto_rawDescOnce.Do(func() { + file_status_proto_rawDescData = protoimpl.X.CompressGZIP(file_status_proto_rawDescData) + }) + return file_status_proto_rawDescData +} + +var file_status_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_status_proto_goTypes = []interface{}{ + (*Status)(nil), // 0: valhalla.Status +} +var file_status_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_status_proto_init() } +func file_status_proto_init() { + if File_status_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_status_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Status); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_status_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*Status_HasTiles)(nil), + (*Status_HasAdmins)(nil), + (*Status_HasTimezones)(nil), + (*Status_HasLiveTraffic)(nil), + (*Status_Bbox)(nil), + (*Status_Version)(nil), + (*Status_TilesetLastModified)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_status_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_status_proto_goTypes, + DependencyIndexes: file_status_proto_depIdxs, + MessageInfos: file_status_proto_msgTypes, + }.Build() + File_status_proto = out.File + file_status_proto_rawDesc = nil + file_status_proto_goTypes = nil + file_status_proto_depIdxs = nil +} diff --git a/proto/valhalla/status.proto b/proto/valhalla/status.proto new file mode 100644 index 0000000..92c21a7 --- /dev/null +++ b/proto/valhalla/status.proto @@ -0,0 +1,29 @@ +syntax = "proto3"; +option optimize_for = LITE_RUNTIME; +option go_package = "git.coopgo.io/coopgo-platform/routing-service/proto/valhalla"; +package valhalla; + +message Status { + oneof has_has_tiles { + bool has_tiles = 1; + } + oneof has_has_admins { + bool has_admins = 2; + } + oneof has_has_timezones { + bool has_timezones = 3; + } + oneof has_has_live_traffic { + bool has_live_traffic = 4; + } + oneof has_bbox { + string bbox = 5; + } + oneof has_version { + string version = 6; + } + oneof has_tileset_last_modified { + uint32 tileset_last_modified = 7; + } + repeated string available_actions = 8; +} diff --git a/proto/valhalla/transit.pb.go b/proto/valhalla/transit.pb.go new file mode 100644 index 0000000..809d501 --- /dev/null +++ b/proto/valhalla/transit.pb.go @@ -0,0 +1,998 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v3.19.4 +// source: transit.proto + +package valhalla + +import ( + 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) +) + +type Transit_VehicleType int32 + +const ( + Transit_kTram Transit_VehicleType = 0 + Transit_kMetro Transit_VehicleType = 1 + Transit_kRail Transit_VehicleType = 2 + Transit_kBus Transit_VehicleType = 3 + Transit_kFerry Transit_VehicleType = 4 + Transit_kCableCar Transit_VehicleType = 5 + Transit_kGondola Transit_VehicleType = 6 + Transit_kFunicular Transit_VehicleType = 7 +) + +// Enum value maps for Transit_VehicleType. +var ( + Transit_VehicleType_name = map[int32]string{ + 0: "kTram", + 1: "kMetro", + 2: "kRail", + 3: "kBus", + 4: "kFerry", + 5: "kCableCar", + 6: "kGondola", + 7: "kFunicular", + } + Transit_VehicleType_value = map[string]int32{ + "kTram": 0, + "kMetro": 1, + "kRail": 2, + "kBus": 3, + "kFerry": 4, + "kCableCar": 5, + "kGondola": 6, + "kFunicular": 7, + } +) + +func (x Transit_VehicleType) Enum() *Transit_VehicleType { + p := new(Transit_VehicleType) + *p = x + return p +} + +func (x Transit_VehicleType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Transit_VehicleType) Descriptor() protoreflect.EnumDescriptor { + return file_transit_proto_enumTypes[0].Descriptor() +} + +func (Transit_VehicleType) Type() protoreflect.EnumType { + return &file_transit_proto_enumTypes[0] +} + +func (x Transit_VehicleType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *Transit_VehicleType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = Transit_VehicleType(num) + return nil +} + +// Deprecated: Use Transit_VehicleType.Descriptor instead. +func (Transit_VehicleType) EnumDescriptor() ([]byte, []int) { + return file_transit_proto_rawDescGZIP(), []int{0, 0} +} + +type Transit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Nodes []*Transit_Node `protobuf:"bytes,1,rep,name=nodes" json:"nodes,omitempty"` + StopPairs []*Transit_StopPair `protobuf:"bytes,2,rep,name=stop_pairs,json=stopPairs" json:"stop_pairs,omitempty"` + Routes []*Transit_Route `protobuf:"bytes,3,rep,name=routes" json:"routes,omitempty"` + Shapes []*Transit_Shape `protobuf:"bytes,4,rep,name=shapes" json:"shapes,omitempty"` +} + +func (x *Transit) Reset() { + *x = Transit{} + if protoimpl.UnsafeEnabled { + mi := &file_transit_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Transit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Transit) ProtoMessage() {} + +func (x *Transit) ProtoReflect() protoreflect.Message { + mi := &file_transit_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 Transit.ProtoReflect.Descriptor instead. +func (*Transit) Descriptor() ([]byte, []int) { + return file_transit_proto_rawDescGZIP(), []int{0} +} + +func (x *Transit) GetNodes() []*Transit_Node { + if x != nil { + return x.Nodes + } + return nil +} + +func (x *Transit) GetStopPairs() []*Transit_StopPair { + if x != nil { + return x.StopPairs + } + return nil +} + +func (x *Transit) GetRoutes() []*Transit_Route { + if x != nil { + return x.Routes + } + return nil +} + +func (x *Transit) GetShapes() []*Transit_Shape { + if x != nil { + return x.Shapes + } + return nil +} + +type Transit_Node struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Lon *float64 `protobuf:"fixed64,1,opt,name=lon" json:"lon,omitempty"` + Lat *float64 `protobuf:"fixed64,2,opt,name=lat" json:"lat,omitempty"` + Type *uint32 `protobuf:"varint,3,opt,name=type" json:"type,omitempty"` // comes from baldr::NodeType + Graphid *uint64 `protobuf:"varint,4,opt,name=graphid" json:"graphid,omitempty"` + PrevTypeGraphid *uint64 `protobuf:"varint,5,opt,name=prev_type_graphid,json=prevTypeGraphid" json:"prev_type_graphid,omitempty"` + Name *string `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"` + OnestopId *string `protobuf:"bytes,7,opt,name=onestop_id,json=onestopId" json:"onestop_id,omitempty"` + OsmConnectingWayId *uint64 `protobuf:"varint,8,opt,name=osm_connecting_way_id,json=osmConnectingWayId" json:"osm_connecting_way_id,omitempty"` // use as a hint to connect to osm + Timezone *string `protobuf:"bytes,9,opt,name=timezone" json:"timezone,omitempty"` + WheelchairBoarding *bool `protobuf:"varint,10,opt,name=wheelchair_boarding,json=wheelchairBoarding" json:"wheelchair_boarding,omitempty"` + Generated *bool `protobuf:"varint,11,opt,name=generated" json:"generated,omitempty"` + Traversability *uint32 `protobuf:"varint,12,opt,name=traversability" json:"traversability,omitempty"` + OsmConnectingLon *float64 `protobuf:"fixed64,13,opt,name=osm_connecting_lon,json=osmConnectingLon" json:"osm_connecting_lon,omitempty"` // use as a hint to connect to osm + OsmConnectingLat *float64 `protobuf:"fixed64,14,opt,name=osm_connecting_lat,json=osmConnectingLat" json:"osm_connecting_lat,omitempty"` // use as a hint to connect to osm +} + +func (x *Transit_Node) Reset() { + *x = Transit_Node{} + if protoimpl.UnsafeEnabled { + mi := &file_transit_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Transit_Node) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Transit_Node) ProtoMessage() {} + +func (x *Transit_Node) ProtoReflect() protoreflect.Message { + mi := &file_transit_proto_msgTypes[1] + 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 Transit_Node.ProtoReflect.Descriptor instead. +func (*Transit_Node) Descriptor() ([]byte, []int) { + return file_transit_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *Transit_Node) GetLon() float64 { + if x != nil && x.Lon != nil { + return *x.Lon + } + return 0 +} + +func (x *Transit_Node) GetLat() float64 { + if x != nil && x.Lat != nil { + return *x.Lat + } + return 0 +} + +func (x *Transit_Node) GetType() uint32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *Transit_Node) GetGraphid() uint64 { + if x != nil && x.Graphid != nil { + return *x.Graphid + } + return 0 +} + +func (x *Transit_Node) GetPrevTypeGraphid() uint64 { + if x != nil && x.PrevTypeGraphid != nil { + return *x.PrevTypeGraphid + } + return 0 +} + +func (x *Transit_Node) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *Transit_Node) GetOnestopId() string { + if x != nil && x.OnestopId != nil { + return *x.OnestopId + } + return "" +} + +func (x *Transit_Node) GetOsmConnectingWayId() uint64 { + if x != nil && x.OsmConnectingWayId != nil { + return *x.OsmConnectingWayId + } + return 0 +} + +func (x *Transit_Node) GetTimezone() string { + if x != nil && x.Timezone != nil { + return *x.Timezone + } + return "" +} + +func (x *Transit_Node) GetWheelchairBoarding() bool { + if x != nil && x.WheelchairBoarding != nil { + return *x.WheelchairBoarding + } + return false +} + +func (x *Transit_Node) GetGenerated() bool { + if x != nil && x.Generated != nil { + return *x.Generated + } + return false +} + +func (x *Transit_Node) GetTraversability() uint32 { + if x != nil && x.Traversability != nil { + return *x.Traversability + } + return 0 +} + +func (x *Transit_Node) GetOsmConnectingLon() float64 { + if x != nil && x.OsmConnectingLon != nil { + return *x.OsmConnectingLon + } + return 0 +} + +func (x *Transit_Node) GetOsmConnectingLat() float64 { + if x != nil && x.OsmConnectingLat != nil { + return *x.OsmConnectingLat + } + return 0 +} + +type Transit_StopPair struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BikesAllowed *bool `protobuf:"varint,1,opt,name=bikes_allowed,json=bikesAllowed" json:"bikes_allowed,omitempty"` + BlockId *uint32 `protobuf:"varint,2,opt,name=block_id,json=blockId" json:"block_id,omitempty"` + DestinationArrivalTime *uint32 `protobuf:"varint,3,opt,name=destination_arrival_time,json=destinationArrivalTime" json:"destination_arrival_time,omitempty"` + DestinationGraphid *uint64 `protobuf:"varint,4,opt,name=destination_graphid,json=destinationGraphid" json:"destination_graphid,omitempty"` + DestinationOnestopId *string `protobuf:"bytes,5,opt,name=destination_onestop_id,json=destinationOnestopId" json:"destination_onestop_id,omitempty"` + OperatedByOnestopId *string `protobuf:"bytes,6,opt,name=operated_by_onestop_id,json=operatedByOnestopId" json:"operated_by_onestop_id,omitempty"` + OriginDepartureTime *uint32 `protobuf:"varint,7,opt,name=origin_departure_time,json=originDepartureTime" json:"origin_departure_time,omitempty"` + OriginGraphid *uint64 `protobuf:"varint,8,opt,name=origin_graphid,json=originGraphid" json:"origin_graphid,omitempty"` + OriginOnestopId *string `protobuf:"bytes,9,opt,name=origin_onestop_id,json=originOnestopId" json:"origin_onestop_id,omitempty"` + RouteIndex *uint32 `protobuf:"varint,10,opt,name=route_index,json=routeIndex" json:"route_index,omitempty"` + ServiceAddedDates []uint32 `protobuf:"varint,11,rep,name=service_added_dates,json=serviceAddedDates" json:"service_added_dates,omitempty"` + ServiceDaysOfWeek []bool `protobuf:"varint,12,rep,name=service_days_of_week,json=serviceDaysOfWeek" json:"service_days_of_week,omitempty"` + ServiceEndDate *uint32 `protobuf:"varint,13,opt,name=service_end_date,json=serviceEndDate" json:"service_end_date,omitempty"` + ServiceExceptDates []uint32 `protobuf:"varint,14,rep,name=service_except_dates,json=serviceExceptDates" json:"service_except_dates,omitempty"` + ServiceStartDate *uint32 `protobuf:"varint,15,opt,name=service_start_date,json=serviceStartDate" json:"service_start_date,omitempty"` + TripHeadsign *string `protobuf:"bytes,16,opt,name=trip_headsign,json=tripHeadsign" json:"trip_headsign,omitempty"` + TripId *uint32 `protobuf:"varint,17,opt,name=trip_id,json=tripId" json:"trip_id,omitempty"` + WheelchairAccessible *bool `protobuf:"varint,18,opt,name=wheelchair_accessible,json=wheelchairAccessible" json:"wheelchair_accessible,omitempty"` + ShapeId *uint32 `protobuf:"varint,20,opt,name=shape_id,json=shapeId" json:"shape_id,omitempty"` + OriginDistTraveled *float32 `protobuf:"fixed32,21,opt,name=origin_dist_traveled,json=originDistTraveled" json:"origin_dist_traveled,omitempty"` + DestinationDistTraveled *float32 `protobuf:"fixed32,22,opt,name=destination_dist_traveled,json=destinationDistTraveled" json:"destination_dist_traveled,omitempty"` + FrequencyEndTime *uint32 `protobuf:"varint,23,opt,name=frequency_end_time,json=frequencyEndTime" json:"frequency_end_time,omitempty"` + FrequencyHeadwaySeconds *uint32 `protobuf:"varint,24,opt,name=frequency_headway_seconds,json=frequencyHeadwaySeconds" json:"frequency_headway_seconds,omitempty"` +} + +func (x *Transit_StopPair) Reset() { + *x = Transit_StopPair{} + if protoimpl.UnsafeEnabled { + mi := &file_transit_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Transit_StopPair) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Transit_StopPair) ProtoMessage() {} + +func (x *Transit_StopPair) ProtoReflect() protoreflect.Message { + mi := &file_transit_proto_msgTypes[2] + 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 Transit_StopPair.ProtoReflect.Descriptor instead. +func (*Transit_StopPair) Descriptor() ([]byte, []int) { + return file_transit_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *Transit_StopPair) GetBikesAllowed() bool { + if x != nil && x.BikesAllowed != nil { + return *x.BikesAllowed + } + return false +} + +func (x *Transit_StopPair) GetBlockId() uint32 { + if x != nil && x.BlockId != nil { + return *x.BlockId + } + return 0 +} + +func (x *Transit_StopPair) GetDestinationArrivalTime() uint32 { + if x != nil && x.DestinationArrivalTime != nil { + return *x.DestinationArrivalTime + } + return 0 +} + +func (x *Transit_StopPair) GetDestinationGraphid() uint64 { + if x != nil && x.DestinationGraphid != nil { + return *x.DestinationGraphid + } + return 0 +} + +func (x *Transit_StopPair) GetDestinationOnestopId() string { + if x != nil && x.DestinationOnestopId != nil { + return *x.DestinationOnestopId + } + return "" +} + +func (x *Transit_StopPair) GetOperatedByOnestopId() string { + if x != nil && x.OperatedByOnestopId != nil { + return *x.OperatedByOnestopId + } + return "" +} + +func (x *Transit_StopPair) GetOriginDepartureTime() uint32 { + if x != nil && x.OriginDepartureTime != nil { + return *x.OriginDepartureTime + } + return 0 +} + +func (x *Transit_StopPair) GetOriginGraphid() uint64 { + if x != nil && x.OriginGraphid != nil { + return *x.OriginGraphid + } + return 0 +} + +func (x *Transit_StopPair) GetOriginOnestopId() string { + if x != nil && x.OriginOnestopId != nil { + return *x.OriginOnestopId + } + return "" +} + +func (x *Transit_StopPair) GetRouteIndex() uint32 { + if x != nil && x.RouteIndex != nil { + return *x.RouteIndex + } + return 0 +} + +func (x *Transit_StopPair) GetServiceAddedDates() []uint32 { + if x != nil { + return x.ServiceAddedDates + } + return nil +} + +func (x *Transit_StopPair) GetServiceDaysOfWeek() []bool { + if x != nil { + return x.ServiceDaysOfWeek + } + return nil +} + +func (x *Transit_StopPair) GetServiceEndDate() uint32 { + if x != nil && x.ServiceEndDate != nil { + return *x.ServiceEndDate + } + return 0 +} + +func (x *Transit_StopPair) GetServiceExceptDates() []uint32 { + if x != nil { + return x.ServiceExceptDates + } + return nil +} + +func (x *Transit_StopPair) GetServiceStartDate() uint32 { + if x != nil && x.ServiceStartDate != nil { + return *x.ServiceStartDate + } + return 0 +} + +func (x *Transit_StopPair) GetTripHeadsign() string { + if x != nil && x.TripHeadsign != nil { + return *x.TripHeadsign + } + return "" +} + +func (x *Transit_StopPair) GetTripId() uint32 { + if x != nil && x.TripId != nil { + return *x.TripId + } + return 0 +} + +func (x *Transit_StopPair) GetWheelchairAccessible() bool { + if x != nil && x.WheelchairAccessible != nil { + return *x.WheelchairAccessible + } + return false +} + +func (x *Transit_StopPair) GetShapeId() uint32 { + if x != nil && x.ShapeId != nil { + return *x.ShapeId + } + return 0 +} + +func (x *Transit_StopPair) GetOriginDistTraveled() float32 { + if x != nil && x.OriginDistTraveled != nil { + return *x.OriginDistTraveled + } + return 0 +} + +func (x *Transit_StopPair) GetDestinationDistTraveled() float32 { + if x != nil && x.DestinationDistTraveled != nil { + return *x.DestinationDistTraveled + } + return 0 +} + +func (x *Transit_StopPair) GetFrequencyEndTime() uint32 { + if x != nil && x.FrequencyEndTime != nil { + return *x.FrequencyEndTime + } + return 0 +} + +func (x *Transit_StopPair) GetFrequencyHeadwaySeconds() uint32 { + if x != nil && x.FrequencyHeadwaySeconds != nil { + return *x.FrequencyHeadwaySeconds + } + return 0 +} + +type Transit_Route struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + OnestopId *string `protobuf:"bytes,2,opt,name=onestop_id,json=onestopId" json:"onestop_id,omitempty"` + OperatedByName *string `protobuf:"bytes,3,opt,name=operated_by_name,json=operatedByName" json:"operated_by_name,omitempty"` + OperatedByOnestopId *string `protobuf:"bytes,4,opt,name=operated_by_onestop_id,json=operatedByOnestopId" json:"operated_by_onestop_id,omitempty"` + OperatedByWebsite *string `protobuf:"bytes,5,opt,name=operated_by_website,json=operatedByWebsite" json:"operated_by_website,omitempty"` + RouteColor *uint32 `protobuf:"varint,6,opt,name=route_color,json=routeColor" json:"route_color,omitempty"` + RouteDesc *string `protobuf:"bytes,7,opt,name=route_desc,json=routeDesc" json:"route_desc,omitempty"` + RouteLongName *string `protobuf:"bytes,8,opt,name=route_long_name,json=routeLongName" json:"route_long_name,omitempty"` + RouteTextColor *uint32 `protobuf:"varint,9,opt,name=route_text_color,json=routeTextColor" json:"route_text_color,omitempty"` + VehicleType *Transit_VehicleType `protobuf:"varint,10,opt,name=vehicle_type,json=vehicleType,enum=valhalla.mjolnir.Transit_VehicleType" json:"vehicle_type,omitempty"` +} + +func (x *Transit_Route) Reset() { + *x = Transit_Route{} + if protoimpl.UnsafeEnabled { + mi := &file_transit_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Transit_Route) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Transit_Route) ProtoMessage() {} + +func (x *Transit_Route) ProtoReflect() protoreflect.Message { + mi := &file_transit_proto_msgTypes[3] + 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 Transit_Route.ProtoReflect.Descriptor instead. +func (*Transit_Route) Descriptor() ([]byte, []int) { + return file_transit_proto_rawDescGZIP(), []int{0, 2} +} + +func (x *Transit_Route) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *Transit_Route) GetOnestopId() string { + if x != nil && x.OnestopId != nil { + return *x.OnestopId + } + return "" +} + +func (x *Transit_Route) GetOperatedByName() string { + if x != nil && x.OperatedByName != nil { + return *x.OperatedByName + } + return "" +} + +func (x *Transit_Route) GetOperatedByOnestopId() string { + if x != nil && x.OperatedByOnestopId != nil { + return *x.OperatedByOnestopId + } + return "" +} + +func (x *Transit_Route) GetOperatedByWebsite() string { + if x != nil && x.OperatedByWebsite != nil { + return *x.OperatedByWebsite + } + return "" +} + +func (x *Transit_Route) GetRouteColor() uint32 { + if x != nil && x.RouteColor != nil { + return *x.RouteColor + } + return 0 +} + +func (x *Transit_Route) GetRouteDesc() string { + if x != nil && x.RouteDesc != nil { + return *x.RouteDesc + } + return "" +} + +func (x *Transit_Route) GetRouteLongName() string { + if x != nil && x.RouteLongName != nil { + return *x.RouteLongName + } + return "" +} + +func (x *Transit_Route) GetRouteTextColor() uint32 { + if x != nil && x.RouteTextColor != nil { + return *x.RouteTextColor + } + return 0 +} + +func (x *Transit_Route) GetVehicleType() Transit_VehicleType { + if x != nil && x.VehicleType != nil { + return *x.VehicleType + } + return Transit_kTram +} + +type Transit_Shape struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ShapeId *uint32 `protobuf:"varint,1,opt,name=shape_id,json=shapeId" json:"shape_id,omitempty"` + EncodedShape []byte `protobuf:"bytes,2,opt,name=encoded_shape,json=encodedShape" json:"encoded_shape,omitempty"` +} + +func (x *Transit_Shape) Reset() { + *x = Transit_Shape{} + if protoimpl.UnsafeEnabled { + mi := &file_transit_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Transit_Shape) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Transit_Shape) ProtoMessage() {} + +func (x *Transit_Shape) ProtoReflect() protoreflect.Message { + mi := &file_transit_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Transit_Shape.ProtoReflect.Descriptor instead. +func (*Transit_Shape) Descriptor() ([]byte, []int) { + return file_transit_proto_rawDescGZIP(), []int{0, 3} +} + +func (x *Transit_Shape) GetShapeId() uint32 { + if x != nil && x.ShapeId != nil { + return *x.ShapeId + } + return 0 +} + +func (x *Transit_Shape) GetEncodedShape() []byte { + if x != nil { + return x.EncodedShape + } + return nil +} + +var File_transit_proto protoreflect.FileDescriptor + +var file_transit_proto_rawDesc = []byte{ + 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x10, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x6d, 0x6a, 0x6f, 0x6c, 0x6e, 0x69, + 0x72, 0x22, 0xd1, 0x12, 0x0a, 0x07, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x12, 0x34, 0x0a, + 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x6d, 0x6a, 0x6f, 0x6c, 0x6e, 0x69, 0x72, 0x2e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, + 0x64, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x61, 0x69, 0x72, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, + 0x6c, 0x61, 0x2e, 0x6d, 0x6a, 0x6f, 0x6c, 0x6e, 0x69, 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x61, 0x69, 0x72, 0x52, 0x09, 0x73, 0x74, 0x6f, + 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x37, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, + 0x61, 0x2e, 0x6d, 0x6a, 0x6f, 0x6c, 0x6e, 0x69, 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, + 0x37, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x6d, 0x6a, 0x6f, 0x6c, 0x6e, + 0x69, 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x70, 0x65, + 0x52, 0x06, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x1a, 0xd9, 0x03, 0x0a, 0x04, 0x4e, 0x6f, 0x64, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, + 0x6c, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x03, 0x6c, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x61, + 0x70, 0x68, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x61, 0x70, + 0x68, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x5f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, + 0x70, 0x72, 0x65, 0x76, 0x54, 0x79, 0x70, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, + 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, + 0x49, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x6f, 0x73, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x12, 0x6f, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, + 0x57, 0x61, 0x79, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, + 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x63, 0x68, 0x61, 0x69, 0x72, 0x5f, + 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, + 0x77, 0x68, 0x65, 0x65, 0x6c, 0x63, 0x68, 0x61, 0x69, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x69, + 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x6f, 0x73, 0x6d, 0x5f, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x6f, 0x6e, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x6f, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x6f, 0x73, 0x6d, 0x5f, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x61, 0x74, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x10, 0x6f, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6e, + 0x67, 0x4c, 0x61, 0x74, 0x1a, 0x99, 0x08, 0x0a, 0x08, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x61, 0x69, + 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x69, 0x6b, 0x65, 0x73, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x62, 0x69, 0x6b, 0x65, 0x73, 0x41, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, + 0x64, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x16, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x64, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x61, 0x70, 0x68, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x16, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x65, 0x73, + 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x64, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, + 0x49, 0x64, 0x12, 0x33, 0x0a, 0x16, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, + 0x79, 0x5f, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x4f, 0x6e, + 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x44, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x64, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x6f, 0x6e, 0x65, + 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x4f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x1f, + 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x2e, 0x0a, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x11, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x64, 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x73, 0x12, + 0x2f, 0x0a, 0x14, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x5f, + 0x6f, 0x66, 0x5f, 0x77, 0x65, 0x65, 0x6b, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x08, 0x52, 0x11, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x61, 0x79, 0x73, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, + 0x12, 0x28, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x44, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, + 0x69, 0x70, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x74, 0x72, 0x69, 0x70, 0x48, 0x65, 0x61, 0x64, 0x73, 0x69, 0x67, 0x6e, 0x12, + 0x17, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x06, 0x74, 0x72, 0x69, 0x70, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x15, 0x77, 0x68, 0x65, 0x65, + 0x6c, 0x63, 0x68, 0x61, 0x69, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x63, 0x68, + 0x61, 0x69, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x73, 0x68, 0x61, 0x70, 0x65, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x65, 0x64, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x44, 0x69, + 0x73, 0x74, 0x54, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x64, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x5f, 0x74, + 0x72, 0x61, 0x76, 0x65, 0x6c, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, 0x17, 0x64, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x74, 0x54, 0x72, + 0x61, 0x76, 0x65, 0x6c, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x79, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x10, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x45, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x77, 0x61, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x79, 0x48, 0x65, 0x61, 0x64, 0x77, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x1a, 0xa5, 0x03, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x28, 0x0a, + 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x42, 0x79, 0x4f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x77, 0x65, 0x62, 0x73, + 0x69, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1d, 0x0a, + 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x65, 0x73, 0x63, 0x12, 0x26, 0x0a, 0x0f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4c, 0x6f, 0x6e, 0x67, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x65, + 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x48, + 0x0a, 0x0c, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, + 0x6d, 0x6a, 0x6f, 0x6c, 0x6e, 0x69, 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x2e, + 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x76, 0x65, 0x68, + 0x69, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x47, 0x0a, 0x05, 0x53, 0x68, 0x61, 0x70, + 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x68, 0x61, 0x70, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, + 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x53, 0x68, 0x61, 0x70, + 0x65, 0x22, 0x72, 0x0a, 0x0b, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x54, 0x72, 0x61, 0x6d, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x6b, + 0x4d, 0x65, 0x74, 0x72, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x52, 0x61, 0x69, 0x6c, + 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6b, 0x42, 0x75, 0x73, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, + 0x6b, 0x46, 0x65, 0x72, 0x72, 0x79, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x43, 0x61, 0x62, + 0x6c, 0x65, 0x43, 0x61, 0x72, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x47, 0x6f, 0x6e, 0x64, + 0x6f, 0x6c, 0x61, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x46, 0x75, 0x6e, 0x69, 0x63, 0x75, + 0x6c, 0x61, 0x72, 0x10, 0x07, 0x42, 0x40, 0x48, 0x03, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x2e, 0x63, + 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2d, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, + 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, +} + +var ( + file_transit_proto_rawDescOnce sync.Once + file_transit_proto_rawDescData = file_transit_proto_rawDesc +) + +func file_transit_proto_rawDescGZIP() []byte { + file_transit_proto_rawDescOnce.Do(func() { + file_transit_proto_rawDescData = protoimpl.X.CompressGZIP(file_transit_proto_rawDescData) + }) + return file_transit_proto_rawDescData +} + +var file_transit_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_transit_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_transit_proto_goTypes = []interface{}{ + (Transit_VehicleType)(0), // 0: valhalla.mjolnir.Transit.VehicleType + (*Transit)(nil), // 1: valhalla.mjolnir.Transit + (*Transit_Node)(nil), // 2: valhalla.mjolnir.Transit.Node + (*Transit_StopPair)(nil), // 3: valhalla.mjolnir.Transit.StopPair + (*Transit_Route)(nil), // 4: valhalla.mjolnir.Transit.Route + (*Transit_Shape)(nil), // 5: valhalla.mjolnir.Transit.Shape +} +var file_transit_proto_depIdxs = []int32{ + 2, // 0: valhalla.mjolnir.Transit.nodes:type_name -> valhalla.mjolnir.Transit.Node + 3, // 1: valhalla.mjolnir.Transit.stop_pairs:type_name -> valhalla.mjolnir.Transit.StopPair + 4, // 2: valhalla.mjolnir.Transit.routes:type_name -> valhalla.mjolnir.Transit.Route + 5, // 3: valhalla.mjolnir.Transit.shapes:type_name -> valhalla.mjolnir.Transit.Shape + 0, // 4: valhalla.mjolnir.Transit.Route.vehicle_type:type_name -> valhalla.mjolnir.Transit.VehicleType + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_transit_proto_init() } +func file_transit_proto_init() { + if File_transit_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_transit_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Transit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_transit_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Transit_Node); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_transit_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Transit_StopPair); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_transit_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Transit_Route); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_transit_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Transit_Shape); 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_transit_proto_rawDesc, + NumEnums: 1, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_transit_proto_goTypes, + DependencyIndexes: file_transit_proto_depIdxs, + EnumInfos: file_transit_proto_enumTypes, + MessageInfos: file_transit_proto_msgTypes, + }.Build() + File_transit_proto = out.File + file_transit_proto_rawDesc = nil + file_transit_proto_goTypes = nil + file_transit_proto_depIdxs = nil +} diff --git a/proto/valhalla/transit.proto b/proto/valhalla/transit.proto new file mode 100644 index 0000000..532f503 --- /dev/null +++ b/proto/valhalla/transit.proto @@ -0,0 +1,84 @@ +syntax = "proto2"; +option optimize_for = LITE_RUNTIME; +option go_package = "git.coopgo.io/coopgo-platform/routing-service/proto/valhalla"; +package valhalla.mjolnir; + +message Transit { + + message Node { // stations + optional double lon = 1; + optional double lat = 2; + optional uint32 type = 3; // comes from baldr::NodeType + optional uint64 graphid = 4; + optional uint64 prev_type_graphid = 5; + optional string name = 6; + optional string onestop_id = 7; + optional uint64 osm_connecting_way_id = 8; // use as a hint to connect to osm + optional string timezone = 9; + optional bool wheelchair_boarding = 10; + optional bool generated = 11; + optional uint32 traversability = 12; + optional double osm_connecting_lon = 13; // use as a hint to connect to osm + optional double osm_connecting_lat = 14; // use as a hint to connect to osm + } + + message StopPair { + optional bool bikes_allowed = 1; + optional uint32 block_id = 2; + optional uint32 destination_arrival_time = 3; + optional uint64 destination_graphid = 4; + optional string destination_onestop_id = 5; + optional string operated_by_onestop_id = 6; + optional uint32 origin_departure_time = 7; + optional uint64 origin_graphid = 8; + optional string origin_onestop_id = 9; + optional uint32 route_index = 10; + repeated uint32 service_added_dates = 11; + repeated bool service_days_of_week = 12; + optional uint32 service_end_date = 13; + repeated uint32 service_except_dates = 14; + optional uint32 service_start_date = 15; + optional string trip_headsign = 16; + optional uint32 trip_id = 17; + optional bool wheelchair_accessible = 18; + optional uint32 shape_id = 20; + optional float origin_dist_traveled = 21; + optional float destination_dist_traveled = 22; + optional uint32 frequency_end_time = 23; + optional uint32 frequency_headway_seconds = 24; + } + + enum VehicleType { + kTram = 0; + kMetro = 1; + kRail = 2; + kBus = 3; + kFerry = 4; + kCableCar = 5; + kGondola = 6; + kFunicular = 7; + } + + message Route { + optional string name = 1; + optional string onestop_id = 2; + optional string operated_by_name = 3; + optional string operated_by_onestop_id = 4; + optional string operated_by_website = 5; + optional uint32 route_color = 6; + optional string route_desc = 7; + optional string route_long_name = 8; + optional uint32 route_text_color = 9; + optional VehicleType vehicle_type = 10; + } + + message Shape { + optional uint32 shape_id = 1; + optional bytes encoded_shape = 2; + } + + repeated Node nodes = 1; + repeated StopPair stop_pairs = 2; + repeated Route routes = 3; + repeated Shape shapes = 4; +} diff --git a/proto/valhalla/transit_fetch.pb.go b/proto/valhalla/transit_fetch.pb.go new file mode 100644 index 0000000..92629b9 --- /dev/null +++ b/proto/valhalla/transit_fetch.pb.go @@ -0,0 +1,937 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v3.19.4 +// source: transit_fetch.proto + +package valhalla + +import ( + 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) +) + +type Transit_Fetch_VehicleType int32 + +const ( + Transit_Fetch_kTram Transit_Fetch_VehicleType = 0 + Transit_Fetch_kMetro Transit_Fetch_VehicleType = 1 + Transit_Fetch_kRail Transit_Fetch_VehicleType = 2 + Transit_Fetch_kBus Transit_Fetch_VehicleType = 3 + Transit_Fetch_kFerry Transit_Fetch_VehicleType = 4 + Transit_Fetch_kCableCar Transit_Fetch_VehicleType = 5 + Transit_Fetch_kGondola Transit_Fetch_VehicleType = 6 + Transit_Fetch_kFunicular Transit_Fetch_VehicleType = 7 +) + +// Enum value maps for Transit_Fetch_VehicleType. +var ( + Transit_Fetch_VehicleType_name = map[int32]string{ + 0: "kTram", + 1: "kMetro", + 2: "kRail", + 3: "kBus", + 4: "kFerry", + 5: "kCableCar", + 6: "kGondola", + 7: "kFunicular", + } + Transit_Fetch_VehicleType_value = map[string]int32{ + "kTram": 0, + "kMetro": 1, + "kRail": 2, + "kBus": 3, + "kFerry": 4, + "kCableCar": 5, + "kGondola": 6, + "kFunicular": 7, + } +) + +func (x Transit_Fetch_VehicleType) Enum() *Transit_Fetch_VehicleType { + p := new(Transit_Fetch_VehicleType) + *p = x + return p +} + +func (x Transit_Fetch_VehicleType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Transit_Fetch_VehicleType) Descriptor() protoreflect.EnumDescriptor { + return file_transit_fetch_proto_enumTypes[0].Descriptor() +} + +func (Transit_Fetch_VehicleType) Type() protoreflect.EnumType { + return &file_transit_fetch_proto_enumTypes[0] +} + +func (x Transit_Fetch_VehicleType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *Transit_Fetch_VehicleType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = Transit_Fetch_VehicleType(num) + return nil +} + +// Deprecated: Use Transit_Fetch_VehicleType.Descriptor instead. +func (Transit_Fetch_VehicleType) EnumDescriptor() ([]byte, []int) { + return file_transit_fetch_proto_rawDescGZIP(), []int{0, 0} +} + +type Transit_Fetch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Stops []*Transit_Fetch_Stop `protobuf:"bytes,1,rep,name=stops" json:"stops,omitempty"` + StopPairs []*Transit_Fetch_StopPair `protobuf:"bytes,2,rep,name=stop_pairs,json=stopPairs" json:"stop_pairs,omitempty"` + Routes []*Transit_Fetch_Route `protobuf:"bytes,3,rep,name=routes" json:"routes,omitempty"` + Shapes []*Transit_Fetch_Shape `protobuf:"bytes,4,rep,name=shapes" json:"shapes,omitempty"` +} + +func (x *Transit_Fetch) Reset() { + *x = Transit_Fetch{} + if protoimpl.UnsafeEnabled { + mi := &file_transit_fetch_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Transit_Fetch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Transit_Fetch) ProtoMessage() {} + +func (x *Transit_Fetch) ProtoReflect() protoreflect.Message { + mi := &file_transit_fetch_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 Transit_Fetch.ProtoReflect.Descriptor instead. +func (*Transit_Fetch) Descriptor() ([]byte, []int) { + return file_transit_fetch_proto_rawDescGZIP(), []int{0} +} + +func (x *Transit_Fetch) GetStops() []*Transit_Fetch_Stop { + if x != nil { + return x.Stops + } + return nil +} + +func (x *Transit_Fetch) GetStopPairs() []*Transit_Fetch_StopPair { + if x != nil { + return x.StopPairs + } + return nil +} + +func (x *Transit_Fetch) GetRoutes() []*Transit_Fetch_Route { + if x != nil { + return x.Routes + } + return nil +} + +func (x *Transit_Fetch) GetShapes() []*Transit_Fetch_Shape { + if x != nil { + return x.Shapes + } + return nil +} + +type Transit_Fetch_Stop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Lon *float32 `protobuf:"fixed32,1,opt,name=lon" json:"lon,omitempty"` + Lat *float32 `protobuf:"fixed32,2,opt,name=lat" json:"lat,omitempty"` + Graphid *uint64 `protobuf:"varint,3,opt,name=graphid" json:"graphid,omitempty"` + Name *string `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"` + OnestopId *string `protobuf:"bytes,5,opt,name=onestop_id,json=onestopId" json:"onestop_id,omitempty"` + OsmWayId *uint64 `protobuf:"varint,6,opt,name=osm_way_id,json=osmWayId" json:"osm_way_id,omitempty"` + Timezone *string `protobuf:"bytes,8,opt,name=timezone" json:"timezone,omitempty"` + WheelchairBoarding *bool `protobuf:"varint,9,opt,name=wheelchair_boarding,json=wheelchairBoarding" json:"wheelchair_boarding,omitempty"` +} + +func (x *Transit_Fetch_Stop) Reset() { + *x = Transit_Fetch_Stop{} + if protoimpl.UnsafeEnabled { + mi := &file_transit_fetch_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Transit_Fetch_Stop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Transit_Fetch_Stop) ProtoMessage() {} + +func (x *Transit_Fetch_Stop) ProtoReflect() protoreflect.Message { + mi := &file_transit_fetch_proto_msgTypes[1] + 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 Transit_Fetch_Stop.ProtoReflect.Descriptor instead. +func (*Transit_Fetch_Stop) Descriptor() ([]byte, []int) { + return file_transit_fetch_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *Transit_Fetch_Stop) GetLon() float32 { + if x != nil && x.Lon != nil { + return *x.Lon + } + return 0 +} + +func (x *Transit_Fetch_Stop) GetLat() float32 { + if x != nil && x.Lat != nil { + return *x.Lat + } + return 0 +} + +func (x *Transit_Fetch_Stop) GetGraphid() uint64 { + if x != nil && x.Graphid != nil { + return *x.Graphid + } + return 0 +} + +func (x *Transit_Fetch_Stop) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *Transit_Fetch_Stop) GetOnestopId() string { + if x != nil && x.OnestopId != nil { + return *x.OnestopId + } + return "" +} + +func (x *Transit_Fetch_Stop) GetOsmWayId() uint64 { + if x != nil && x.OsmWayId != nil { + return *x.OsmWayId + } + return 0 +} + +func (x *Transit_Fetch_Stop) GetTimezone() string { + if x != nil && x.Timezone != nil { + return *x.Timezone + } + return "" +} + +func (x *Transit_Fetch_Stop) GetWheelchairBoarding() bool { + if x != nil && x.WheelchairBoarding != nil { + return *x.WheelchairBoarding + } + return false +} + +type Transit_Fetch_StopPair struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BikesAllowed *bool `protobuf:"varint,1,opt,name=bikes_allowed,json=bikesAllowed" json:"bikes_allowed,omitempty"` + BlockId *uint32 `protobuf:"varint,2,opt,name=block_id,json=blockId" json:"block_id,omitempty"` + DestinationArrivalTime *uint32 `protobuf:"varint,3,opt,name=destination_arrival_time,json=destinationArrivalTime" json:"destination_arrival_time,omitempty"` + DestinationGraphid *uint64 `protobuf:"varint,4,opt,name=destination_graphid,json=destinationGraphid" json:"destination_graphid,omitempty"` + DestinationOnestopId *string `protobuf:"bytes,5,opt,name=destination_onestop_id,json=destinationOnestopId" json:"destination_onestop_id,omitempty"` + OperatedByOnestopId *string `protobuf:"bytes,6,opt,name=operated_by_onestop_id,json=operatedByOnestopId" json:"operated_by_onestop_id,omitempty"` + OriginDepartureTime *uint32 `protobuf:"varint,7,opt,name=origin_departure_time,json=originDepartureTime" json:"origin_departure_time,omitempty"` + OriginGraphid *uint64 `protobuf:"varint,8,opt,name=origin_graphid,json=originGraphid" json:"origin_graphid,omitempty"` + OriginOnestopId *string `protobuf:"bytes,9,opt,name=origin_onestop_id,json=originOnestopId" json:"origin_onestop_id,omitempty"` + RouteIndex *uint32 `protobuf:"varint,10,opt,name=route_index,json=routeIndex" json:"route_index,omitempty"` + ServiceAddedDates []uint32 `protobuf:"varint,11,rep,name=service_added_dates,json=serviceAddedDates" json:"service_added_dates,omitempty"` + ServiceDaysOfWeek []bool `protobuf:"varint,12,rep,name=service_days_of_week,json=serviceDaysOfWeek" json:"service_days_of_week,omitempty"` + ServiceEndDate *uint32 `protobuf:"varint,13,opt,name=service_end_date,json=serviceEndDate" json:"service_end_date,omitempty"` + ServiceExceptDates []uint32 `protobuf:"varint,14,rep,name=service_except_dates,json=serviceExceptDates" json:"service_except_dates,omitempty"` + ServiceStartDate *uint32 `protobuf:"varint,15,opt,name=service_start_date,json=serviceStartDate" json:"service_start_date,omitempty"` + TripHeadsign *string `protobuf:"bytes,16,opt,name=trip_headsign,json=tripHeadsign" json:"trip_headsign,omitempty"` + TripId *uint32 `protobuf:"varint,17,opt,name=trip_id,json=tripId" json:"trip_id,omitempty"` + WheelchairAccessible *bool `protobuf:"varint,18,opt,name=wheelchair_accessible,json=wheelchairAccessible" json:"wheelchair_accessible,omitempty"` + ShapeId *uint32 `protobuf:"varint,20,opt,name=shape_id,json=shapeId" json:"shape_id,omitempty"` + OriginDistTraveled *float32 `protobuf:"fixed32,21,opt,name=origin_dist_traveled,json=originDistTraveled" json:"origin_dist_traveled,omitempty"` + DestinationDistTraveled *float32 `protobuf:"fixed32,22,opt,name=destination_dist_traveled,json=destinationDistTraveled" json:"destination_dist_traveled,omitempty"` + FrequencyEndTime *uint32 `protobuf:"varint,23,opt,name=frequency_end_time,json=frequencyEndTime" json:"frequency_end_time,omitempty"` + FrequencyHeadwaySeconds *uint32 `protobuf:"varint,24,opt,name=frequency_headway_seconds,json=frequencyHeadwaySeconds" json:"frequency_headway_seconds,omitempty"` +} + +func (x *Transit_Fetch_StopPair) Reset() { + *x = Transit_Fetch_StopPair{} + if protoimpl.UnsafeEnabled { + mi := &file_transit_fetch_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Transit_Fetch_StopPair) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Transit_Fetch_StopPair) ProtoMessage() {} + +func (x *Transit_Fetch_StopPair) ProtoReflect() protoreflect.Message { + mi := &file_transit_fetch_proto_msgTypes[2] + 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 Transit_Fetch_StopPair.ProtoReflect.Descriptor instead. +func (*Transit_Fetch_StopPair) Descriptor() ([]byte, []int) { + return file_transit_fetch_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *Transit_Fetch_StopPair) GetBikesAllowed() bool { + if x != nil && x.BikesAllowed != nil { + return *x.BikesAllowed + } + return false +} + +func (x *Transit_Fetch_StopPair) GetBlockId() uint32 { + if x != nil && x.BlockId != nil { + return *x.BlockId + } + return 0 +} + +func (x *Transit_Fetch_StopPair) GetDestinationArrivalTime() uint32 { + if x != nil && x.DestinationArrivalTime != nil { + return *x.DestinationArrivalTime + } + return 0 +} + +func (x *Transit_Fetch_StopPair) GetDestinationGraphid() uint64 { + if x != nil && x.DestinationGraphid != nil { + return *x.DestinationGraphid + } + return 0 +} + +func (x *Transit_Fetch_StopPair) GetDestinationOnestopId() string { + if x != nil && x.DestinationOnestopId != nil { + return *x.DestinationOnestopId + } + return "" +} + +func (x *Transit_Fetch_StopPair) GetOperatedByOnestopId() string { + if x != nil && x.OperatedByOnestopId != nil { + return *x.OperatedByOnestopId + } + return "" +} + +func (x *Transit_Fetch_StopPair) GetOriginDepartureTime() uint32 { + if x != nil && x.OriginDepartureTime != nil { + return *x.OriginDepartureTime + } + return 0 +} + +func (x *Transit_Fetch_StopPair) GetOriginGraphid() uint64 { + if x != nil && x.OriginGraphid != nil { + return *x.OriginGraphid + } + return 0 +} + +func (x *Transit_Fetch_StopPair) GetOriginOnestopId() string { + if x != nil && x.OriginOnestopId != nil { + return *x.OriginOnestopId + } + return "" +} + +func (x *Transit_Fetch_StopPair) GetRouteIndex() uint32 { + if x != nil && x.RouteIndex != nil { + return *x.RouteIndex + } + return 0 +} + +func (x *Transit_Fetch_StopPair) GetServiceAddedDates() []uint32 { + if x != nil { + return x.ServiceAddedDates + } + return nil +} + +func (x *Transit_Fetch_StopPair) GetServiceDaysOfWeek() []bool { + if x != nil { + return x.ServiceDaysOfWeek + } + return nil +} + +func (x *Transit_Fetch_StopPair) GetServiceEndDate() uint32 { + if x != nil && x.ServiceEndDate != nil { + return *x.ServiceEndDate + } + return 0 +} + +func (x *Transit_Fetch_StopPair) GetServiceExceptDates() []uint32 { + if x != nil { + return x.ServiceExceptDates + } + return nil +} + +func (x *Transit_Fetch_StopPair) GetServiceStartDate() uint32 { + if x != nil && x.ServiceStartDate != nil { + return *x.ServiceStartDate + } + return 0 +} + +func (x *Transit_Fetch_StopPair) GetTripHeadsign() string { + if x != nil && x.TripHeadsign != nil { + return *x.TripHeadsign + } + return "" +} + +func (x *Transit_Fetch_StopPair) GetTripId() uint32 { + if x != nil && x.TripId != nil { + return *x.TripId + } + return 0 +} + +func (x *Transit_Fetch_StopPair) GetWheelchairAccessible() bool { + if x != nil && x.WheelchairAccessible != nil { + return *x.WheelchairAccessible + } + return false +} + +func (x *Transit_Fetch_StopPair) GetShapeId() uint32 { + if x != nil && x.ShapeId != nil { + return *x.ShapeId + } + return 0 +} + +func (x *Transit_Fetch_StopPair) GetOriginDistTraveled() float32 { + if x != nil && x.OriginDistTraveled != nil { + return *x.OriginDistTraveled + } + return 0 +} + +func (x *Transit_Fetch_StopPair) GetDestinationDistTraveled() float32 { + if x != nil && x.DestinationDistTraveled != nil { + return *x.DestinationDistTraveled + } + return 0 +} + +func (x *Transit_Fetch_StopPair) GetFrequencyEndTime() uint32 { + if x != nil && x.FrequencyEndTime != nil { + return *x.FrequencyEndTime + } + return 0 +} + +func (x *Transit_Fetch_StopPair) GetFrequencyHeadwaySeconds() uint32 { + if x != nil && x.FrequencyHeadwaySeconds != nil { + return *x.FrequencyHeadwaySeconds + } + return 0 +} + +type Transit_Fetch_Route struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + OnestopId *string `protobuf:"bytes,2,opt,name=onestop_id,json=onestopId" json:"onestop_id,omitempty"` + OperatedByName *string `protobuf:"bytes,3,opt,name=operated_by_name,json=operatedByName" json:"operated_by_name,omitempty"` + OperatedByOnestopId *string `protobuf:"bytes,4,opt,name=operated_by_onestop_id,json=operatedByOnestopId" json:"operated_by_onestop_id,omitempty"` + OperatedByWebsite *string `protobuf:"bytes,5,opt,name=operated_by_website,json=operatedByWebsite" json:"operated_by_website,omitempty"` + RouteColor *uint32 `protobuf:"varint,6,opt,name=route_color,json=routeColor" json:"route_color,omitempty"` + RouteDesc *string `protobuf:"bytes,7,opt,name=route_desc,json=routeDesc" json:"route_desc,omitempty"` + RouteLongName *string `protobuf:"bytes,8,opt,name=route_long_name,json=routeLongName" json:"route_long_name,omitempty"` + RouteTextColor *uint32 `protobuf:"varint,9,opt,name=route_text_color,json=routeTextColor" json:"route_text_color,omitempty"` + VehicleType *Transit_Fetch_VehicleType `protobuf:"varint,10,opt,name=vehicle_type,json=vehicleType,enum=valhalla.mjolnir.Transit_Fetch_VehicleType" json:"vehicle_type,omitempty"` +} + +func (x *Transit_Fetch_Route) Reset() { + *x = Transit_Fetch_Route{} + if protoimpl.UnsafeEnabled { + mi := &file_transit_fetch_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Transit_Fetch_Route) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Transit_Fetch_Route) ProtoMessage() {} + +func (x *Transit_Fetch_Route) ProtoReflect() protoreflect.Message { + mi := &file_transit_fetch_proto_msgTypes[3] + 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 Transit_Fetch_Route.ProtoReflect.Descriptor instead. +func (*Transit_Fetch_Route) Descriptor() ([]byte, []int) { + return file_transit_fetch_proto_rawDescGZIP(), []int{0, 2} +} + +func (x *Transit_Fetch_Route) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *Transit_Fetch_Route) GetOnestopId() string { + if x != nil && x.OnestopId != nil { + return *x.OnestopId + } + return "" +} + +func (x *Transit_Fetch_Route) GetOperatedByName() string { + if x != nil && x.OperatedByName != nil { + return *x.OperatedByName + } + return "" +} + +func (x *Transit_Fetch_Route) GetOperatedByOnestopId() string { + if x != nil && x.OperatedByOnestopId != nil { + return *x.OperatedByOnestopId + } + return "" +} + +func (x *Transit_Fetch_Route) GetOperatedByWebsite() string { + if x != nil && x.OperatedByWebsite != nil { + return *x.OperatedByWebsite + } + return "" +} + +func (x *Transit_Fetch_Route) GetRouteColor() uint32 { + if x != nil && x.RouteColor != nil { + return *x.RouteColor + } + return 0 +} + +func (x *Transit_Fetch_Route) GetRouteDesc() string { + if x != nil && x.RouteDesc != nil { + return *x.RouteDesc + } + return "" +} + +func (x *Transit_Fetch_Route) GetRouteLongName() string { + if x != nil && x.RouteLongName != nil { + return *x.RouteLongName + } + return "" +} + +func (x *Transit_Fetch_Route) GetRouteTextColor() uint32 { + if x != nil && x.RouteTextColor != nil { + return *x.RouteTextColor + } + return 0 +} + +func (x *Transit_Fetch_Route) GetVehicleType() Transit_Fetch_VehicleType { + if x != nil && x.VehicleType != nil { + return *x.VehicleType + } + return Transit_Fetch_kTram +} + +type Transit_Fetch_Shape struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ShapeId *uint32 `protobuf:"varint,1,opt,name=shape_id,json=shapeId" json:"shape_id,omitempty"` + EncodedShape []byte `protobuf:"bytes,2,opt,name=encoded_shape,json=encodedShape" json:"encoded_shape,omitempty"` +} + +func (x *Transit_Fetch_Shape) Reset() { + *x = Transit_Fetch_Shape{} + if protoimpl.UnsafeEnabled { + mi := &file_transit_fetch_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Transit_Fetch_Shape) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Transit_Fetch_Shape) ProtoMessage() {} + +func (x *Transit_Fetch_Shape) ProtoReflect() protoreflect.Message { + mi := &file_transit_fetch_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Transit_Fetch_Shape.ProtoReflect.Descriptor instead. +func (*Transit_Fetch_Shape) Descriptor() ([]byte, []int) { + return file_transit_fetch_proto_rawDescGZIP(), []int{0, 3} +} + +func (x *Transit_Fetch_Shape) GetShapeId() uint32 { + if x != nil && x.ShapeId != nil { + return *x.ShapeId + } + return 0 +} + +func (x *Transit_Fetch_Shape) GetEncodedShape() []byte { + if x != nil { + return x.EncodedShape + } + return nil +} + +var File_transit_fetch_proto protoreflect.FileDescriptor + +var file_transit_fetch_proto_rawDesc = []byte{ + 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, + 0x6d, 0x6a, 0x6f, 0x6c, 0x6e, 0x69, 0x72, 0x22, 0xfe, 0x10, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x5f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x6f, + 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x61, 0x2e, 0x6d, 0x6a, 0x6f, 0x6c, 0x6e, 0x69, 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x5f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x05, + 0x73, 0x74, 0x6f, 0x70, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x61, + 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x76, 0x61, 0x6c, 0x68, + 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x6d, 0x6a, 0x6f, 0x6c, 0x6e, 0x69, 0x72, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x50, + 0x61, 0x69, 0x72, 0x52, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x3d, + 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x6d, 0x6a, 0x6f, 0x6c, 0x6e, 0x69, + 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x2e, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3d, 0x0a, + 0x06, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x6d, 0x6a, 0x6f, 0x6c, 0x6e, 0x69, 0x72, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x2e, 0x53, + 0x68, 0x61, 0x70, 0x65, 0x52, 0x06, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x1a, 0xe2, 0x01, 0x0a, + 0x04, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x03, 0x6c, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x61, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x6c, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x61, + 0x70, 0x68, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x61, 0x70, + 0x68, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x73, 0x74, + 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x6e, 0x65, + 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x6f, 0x73, 0x6d, 0x5f, 0x77, 0x61, + 0x79, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6f, 0x73, 0x6d, 0x57, + 0x61, 0x79, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, + 0x12, 0x2f, 0x0a, 0x13, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x63, 0x68, 0x61, 0x69, 0x72, 0x5f, 0x62, + 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x77, + 0x68, 0x65, 0x65, 0x6c, 0x63, 0x68, 0x61, 0x69, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, + 0x67, 0x1a, 0x99, 0x08, 0x0a, 0x08, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x61, 0x69, 0x72, 0x12, 0x23, + 0x0a, 0x0d, 0x62, 0x69, 0x6b, 0x65, 0x73, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x62, 0x69, 0x6b, 0x65, 0x73, 0x41, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x38, + 0x0a, 0x18, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x72, + 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x16, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x72, + 0x69, 0x76, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, + 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x64, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, + 0x33, 0x0a, 0x16, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x6f, + 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x4f, 0x6e, 0x65, 0x73, 0x74, + 0x6f, 0x70, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x64, + 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, + 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x5f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x64, 0x12, + 0x2a, 0x0a, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x4f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2e, 0x0a, 0x13, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x41, 0x64, 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x14, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x5f, 0x6f, 0x66, 0x5f, + 0x77, 0x65, 0x65, 0x6b, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x08, 0x52, 0x11, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x44, 0x61, 0x79, 0x73, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x28, 0x0a, + 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, + 0x0e, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, + 0x63, 0x65, 0x70, 0x74, 0x44, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x70, 0x5f, + 0x68, 0x65, 0x61, 0x64, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x74, 0x72, 0x69, 0x70, 0x48, 0x65, 0x61, 0x64, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x17, 0x0a, 0x07, + 0x74, 0x72, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, + 0x72, 0x69, 0x70, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x15, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x63, 0x68, + 0x61, 0x69, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x63, 0x68, 0x61, 0x69, 0x72, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x68, + 0x61, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x68, + 0x61, 0x70, 0x65, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, + 0x64, 0x69, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x65, 0x64, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x12, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x74, 0x54, + 0x72, 0x61, 0x76, 0x65, 0x6c, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x64, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x76, + 0x65, 0x6c, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, 0x17, 0x64, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x76, 0x65, + 0x6c, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, + 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x10, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x77, 0x61, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x48, + 0x65, 0x61, 0x64, 0x77, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x1a, 0xab, 0x03, + 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, + 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x62, 0x79, 0x5f, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, + 0x4f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x42, 0x79, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x65, 0x73, 0x63, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4c, 0x6f, 0x6e, 0x67, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x5f, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x54, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x4e, 0x0a, 0x0c, 0x76, + 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2b, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x6d, 0x6a, 0x6f, + 0x6c, 0x6e, 0x69, 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x46, 0x65, 0x74, + 0x63, 0x68, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, + 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x47, 0x0a, 0x05, 0x53, + 0x68, 0x61, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x68, 0x61, 0x70, 0x65, 0x49, 0x64, 0x12, + 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x53, + 0x68, 0x61, 0x70, 0x65, 0x22, 0x72, 0x0a, 0x0b, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x54, 0x72, 0x61, 0x6d, 0x10, 0x00, 0x12, 0x0a, + 0x0a, 0x06, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x52, + 0x61, 0x69, 0x6c, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6b, 0x42, 0x75, 0x73, 0x10, 0x03, 0x12, + 0x0a, 0x0a, 0x06, 0x6b, 0x46, 0x65, 0x72, 0x72, 0x79, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x6b, + 0x43, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x47, + 0x6f, 0x6e, 0x64, 0x6f, 0x6c, 0x61, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x46, 0x75, 0x6e, + 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x10, 0x07, 0x42, 0x40, 0x48, 0x03, 0x5a, 0x3c, 0x67, 0x69, + 0x74, 0x2e, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6f, 0x70, + 0x67, 0x6f, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x72, 0x6f, 0x75, 0x74, + 0x69, 0x6e, 0x67, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2f, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, +} + +var ( + file_transit_fetch_proto_rawDescOnce sync.Once + file_transit_fetch_proto_rawDescData = file_transit_fetch_proto_rawDesc +) + +func file_transit_fetch_proto_rawDescGZIP() []byte { + file_transit_fetch_proto_rawDescOnce.Do(func() { + file_transit_fetch_proto_rawDescData = protoimpl.X.CompressGZIP(file_transit_fetch_proto_rawDescData) + }) + return file_transit_fetch_proto_rawDescData +} + +var file_transit_fetch_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_transit_fetch_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_transit_fetch_proto_goTypes = []interface{}{ + (Transit_Fetch_VehicleType)(0), // 0: valhalla.mjolnir.Transit_Fetch.VehicleType + (*Transit_Fetch)(nil), // 1: valhalla.mjolnir.Transit_Fetch + (*Transit_Fetch_Stop)(nil), // 2: valhalla.mjolnir.Transit_Fetch.Stop + (*Transit_Fetch_StopPair)(nil), // 3: valhalla.mjolnir.Transit_Fetch.StopPair + (*Transit_Fetch_Route)(nil), // 4: valhalla.mjolnir.Transit_Fetch.Route + (*Transit_Fetch_Shape)(nil), // 5: valhalla.mjolnir.Transit_Fetch.Shape +} +var file_transit_fetch_proto_depIdxs = []int32{ + 2, // 0: valhalla.mjolnir.Transit_Fetch.stops:type_name -> valhalla.mjolnir.Transit_Fetch.Stop + 3, // 1: valhalla.mjolnir.Transit_Fetch.stop_pairs:type_name -> valhalla.mjolnir.Transit_Fetch.StopPair + 4, // 2: valhalla.mjolnir.Transit_Fetch.routes:type_name -> valhalla.mjolnir.Transit_Fetch.Route + 5, // 3: valhalla.mjolnir.Transit_Fetch.shapes:type_name -> valhalla.mjolnir.Transit_Fetch.Shape + 0, // 4: valhalla.mjolnir.Transit_Fetch.Route.vehicle_type:type_name -> valhalla.mjolnir.Transit_Fetch.VehicleType + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_transit_fetch_proto_init() } +func file_transit_fetch_proto_init() { + if File_transit_fetch_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_transit_fetch_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Transit_Fetch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_transit_fetch_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Transit_Fetch_Stop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_transit_fetch_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Transit_Fetch_StopPair); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_transit_fetch_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Transit_Fetch_Route); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_transit_fetch_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Transit_Fetch_Shape); 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_transit_fetch_proto_rawDesc, + NumEnums: 1, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_transit_fetch_proto_goTypes, + DependencyIndexes: file_transit_fetch_proto_depIdxs, + EnumInfos: file_transit_fetch_proto_enumTypes, + MessageInfos: file_transit_fetch_proto_msgTypes, + }.Build() + File_transit_fetch_proto = out.File + file_transit_fetch_proto_rawDesc = nil + file_transit_fetch_proto_goTypes = nil + file_transit_fetch_proto_depIdxs = nil +} diff --git a/proto/valhalla/transit_fetch.proto b/proto/valhalla/transit_fetch.proto new file mode 100644 index 0000000..38855cf --- /dev/null +++ b/proto/valhalla/transit_fetch.proto @@ -0,0 +1,78 @@ +syntax = "proto2"; +option optimize_for = LITE_RUNTIME; +option go_package = "git.coopgo.io/coopgo-platform/routing-service/proto/valhalla"; +package valhalla.mjolnir; + +message Transit_Fetch { + + message Stop { + optional float lon = 1; + optional float lat = 2; + optional uint64 graphid = 3; + optional string name = 4; + optional string onestop_id = 5; + optional uint64 osm_way_id = 6; + optional string timezone = 8; + optional bool wheelchair_boarding = 9; + } + + message StopPair { + optional bool bikes_allowed = 1; + optional uint32 block_id = 2; + optional uint32 destination_arrival_time = 3; + optional uint64 destination_graphid = 4; + optional string destination_onestop_id = 5; + optional string operated_by_onestop_id = 6; + optional uint32 origin_departure_time = 7; + optional uint64 origin_graphid = 8; + optional string origin_onestop_id = 9; + optional uint32 route_index = 10; + repeated uint32 service_added_dates = 11; + repeated bool service_days_of_week = 12; + optional uint32 service_end_date = 13; + repeated uint32 service_except_dates = 14; + optional uint32 service_start_date = 15; + optional string trip_headsign = 16; + optional uint32 trip_id = 17; + optional bool wheelchair_accessible = 18; + optional uint32 shape_id = 20; + optional float origin_dist_traveled = 21; + optional float destination_dist_traveled = 22; + optional uint32 frequency_end_time = 23; + optional uint32 frequency_headway_seconds = 24; + } + + enum VehicleType { + kTram = 0; + kMetro = 1; + kRail = 2; + kBus = 3; + kFerry = 4; + kCableCar = 5; + kGondola = 6; + kFunicular = 7; + } + + message Route { + optional string name = 1; + optional string onestop_id = 2; + optional string operated_by_name = 3; + optional string operated_by_onestop_id = 4; + optional string operated_by_website = 5; + optional uint32 route_color = 6; + optional string route_desc = 7; + optional string route_long_name = 8; + optional uint32 route_text_color = 9; + optional VehicleType vehicle_type = 10; + } + + message Shape { + optional uint32 shape_id = 1; + optional bytes encoded_shape = 2; + } + + repeated Stop stops = 1; + repeated StopPair stop_pairs = 2; + repeated Route routes = 3; + repeated Shape shapes = 4; +} diff --git a/proto/valhalla/trip.pb.go b/proto/valhalla/trip.pb.go new file mode 100644 index 0000000..6346c08 --- /dev/null +++ b/proto/valhalla/trip.pb.go @@ -0,0 +1,2855 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v3.19.4 +// source: trip.proto + +package valhalla + +import ( + 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) +) + +type TripLeg_Traversability int32 + +const ( + TripLeg_kNone TripLeg_Traversability = 0 + TripLeg_kForward TripLeg_Traversability = 1 + TripLeg_kBackward TripLeg_Traversability = 2 + TripLeg_kBoth TripLeg_Traversability = 3 +) + +// Enum value maps for TripLeg_Traversability. +var ( + TripLeg_Traversability_name = map[int32]string{ + 0: "kNone", + 1: "kForward", + 2: "kBackward", + 3: "kBoth", + } + TripLeg_Traversability_value = map[string]int32{ + "kNone": 0, + "kForward": 1, + "kBackward": 2, + "kBoth": 3, + } +) + +func (x TripLeg_Traversability) Enum() *TripLeg_Traversability { + p := new(TripLeg_Traversability) + *p = x + return p +} + +func (x TripLeg_Traversability) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TripLeg_Traversability) Descriptor() protoreflect.EnumDescriptor { + return file_trip_proto_enumTypes[0].Descriptor() +} + +func (TripLeg_Traversability) Type() protoreflect.EnumType { + return &file_trip_proto_enumTypes[0] +} + +func (x TripLeg_Traversability) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TripLeg_Traversability.Descriptor instead. +func (TripLeg_Traversability) EnumDescriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 0} +} + +type TripLeg_Use int32 + +const ( + TripLeg_kRoadUse TripLeg_Use = 0 + TripLeg_kRampUse TripLeg_Use = 1 // Link - exits/entrance ramps. + TripLeg_kTurnChannelUse TripLeg_Use = 2 // Link - turn lane. + TripLeg_kTrackUse TripLeg_Use = 3 // Agricultural use; forest tracks + TripLeg_kDrivewayUse TripLeg_Use = 4 // Driveway/private service + TripLeg_kAlleyUse TripLeg_Use = 5 // Service road - limited route use + TripLeg_kParkingAisleUse TripLeg_Use = 6 // Access roads in parking areas + TripLeg_kEmergencyAccessUse TripLeg_Use = 7 // Emergency vehicles only + TripLeg_kDriveThruUse TripLeg_Use = 8 // Commercial drive-thru (banks/fast-food) + TripLeg_kCuldesacUse TripLeg_Use = 9 // Cul-de-sac (edge that forms a loop and is only + // connected at one node to another edge. + TripLeg_kLivingStreetUse TripLeg_Use = 10 // Shared space for cars, bikes, pedestrians + TripLeg_kServiceRoadUse TripLeg_Use = 11 // Generic service road (not driveway, alley, parking aisle, etc.) + // Bicycle specific uses + TripLeg_kCyclewayUse TripLeg_Use = 20 // Dedicated bicycle path + TripLeg_kMountainBikeUse TripLeg_Use = 21 // Mountain bike trail + TripLeg_kSidewalkUse TripLeg_Use = 24 + // Pedestrian specific uses + TripLeg_kFootwayUse TripLeg_Use = 25 + TripLeg_kStepsUse TripLeg_Use = 26 // Stairs + TripLeg_kPathUse TripLeg_Use = 27 + TripLeg_kPedestrianUse TripLeg_Use = 28 + TripLeg_kBridlewayUse TripLeg_Use = 29 + TripLeg_kPedestrianCrossingUse TripLeg_Use = 32 + TripLeg_kElevatorUse TripLeg_Use = 33 + TripLeg_kEscalatorUse TripLeg_Use = 34 + //Rest/Service Areas + TripLeg_kRestAreaUse TripLeg_Use = 30 + TripLeg_kServiceAreaUse TripLeg_Use = 31 + // Other... + TripLeg_kOtherUse TripLeg_Use = 40 + // Ferry and rail ferry + TripLeg_kFerryUse TripLeg_Use = 41 + TripLeg_kRailFerryUse TripLeg_Use = 42 + TripLeg_kConstructionUse TripLeg_Use = 43 // Road under construction + // Transit specific uses. Must be last in the list + TripLeg_kRailUse TripLeg_Use = 50 // Rail line + TripLeg_kBusUse TripLeg_Use = 51 // Bus line + TripLeg_kEgressConnectionUse TripLeg_Use = 52 // Connection between transit station and transit egress + TripLeg_kPlatformConnectionUse TripLeg_Use = 53 // Connection between transit station and transit platform + TripLeg_kTransitConnectionUse TripLeg_Use = 54 // Connection between road network and transit egress +) + +// Enum value maps for TripLeg_Use. +var ( + TripLeg_Use_name = map[int32]string{ + 0: "kRoadUse", + 1: "kRampUse", + 2: "kTurnChannelUse", + 3: "kTrackUse", + 4: "kDrivewayUse", + 5: "kAlleyUse", + 6: "kParkingAisleUse", + 7: "kEmergencyAccessUse", + 8: "kDriveThruUse", + 9: "kCuldesacUse", + 10: "kLivingStreetUse", + 11: "kServiceRoadUse", + 20: "kCyclewayUse", + 21: "kMountainBikeUse", + 24: "kSidewalkUse", + 25: "kFootwayUse", + 26: "kStepsUse", + 27: "kPathUse", + 28: "kPedestrianUse", + 29: "kBridlewayUse", + 32: "kPedestrianCrossingUse", + 33: "kElevatorUse", + 34: "kEscalatorUse", + 30: "kRestAreaUse", + 31: "kServiceAreaUse", + 40: "kOtherUse", + 41: "kFerryUse", + 42: "kRailFerryUse", + 43: "kConstructionUse", + 50: "kRailUse", + 51: "kBusUse", + 52: "kEgressConnectionUse", + 53: "kPlatformConnectionUse", + 54: "kTransitConnectionUse", + } + TripLeg_Use_value = map[string]int32{ + "kRoadUse": 0, + "kRampUse": 1, + "kTurnChannelUse": 2, + "kTrackUse": 3, + "kDrivewayUse": 4, + "kAlleyUse": 5, + "kParkingAisleUse": 6, + "kEmergencyAccessUse": 7, + "kDriveThruUse": 8, + "kCuldesacUse": 9, + "kLivingStreetUse": 10, + "kServiceRoadUse": 11, + "kCyclewayUse": 20, + "kMountainBikeUse": 21, + "kSidewalkUse": 24, + "kFootwayUse": 25, + "kStepsUse": 26, + "kPathUse": 27, + "kPedestrianUse": 28, + "kBridlewayUse": 29, + "kPedestrianCrossingUse": 32, + "kElevatorUse": 33, + "kEscalatorUse": 34, + "kRestAreaUse": 30, + "kServiceAreaUse": 31, + "kOtherUse": 40, + "kFerryUse": 41, + "kRailFerryUse": 42, + "kConstructionUse": 43, + "kRailUse": 50, + "kBusUse": 51, + "kEgressConnectionUse": 52, + "kPlatformConnectionUse": 53, + "kTransitConnectionUse": 54, + } +) + +func (x TripLeg_Use) Enum() *TripLeg_Use { + p := new(TripLeg_Use) + *p = x + return p +} + +func (x TripLeg_Use) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TripLeg_Use) Descriptor() protoreflect.EnumDescriptor { + return file_trip_proto_enumTypes[1].Descriptor() +} + +func (TripLeg_Use) Type() protoreflect.EnumType { + return &file_trip_proto_enumTypes[1] +} + +func (x TripLeg_Use) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TripLeg_Use.Descriptor instead. +func (TripLeg_Use) EnumDescriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 1} +} + +type TripLeg_Surface int32 + +const ( + TripLeg_kPavedSmooth TripLeg_Surface = 0 + TripLeg_kPaved TripLeg_Surface = 1 + TripLeg_kPavedRough TripLeg_Surface = 2 + TripLeg_kCompacted TripLeg_Surface = 3 + TripLeg_kDirt TripLeg_Surface = 4 + TripLeg_kGravel TripLeg_Surface = 5 + TripLeg_kPath TripLeg_Surface = 6 + TripLeg_kImpassable TripLeg_Surface = 7 +) + +// Enum value maps for TripLeg_Surface. +var ( + TripLeg_Surface_name = map[int32]string{ + 0: "kPavedSmooth", + 1: "kPaved", + 2: "kPavedRough", + 3: "kCompacted", + 4: "kDirt", + 5: "kGravel", + 6: "kPath", + 7: "kImpassable", + } + TripLeg_Surface_value = map[string]int32{ + "kPavedSmooth": 0, + "kPaved": 1, + "kPavedRough": 2, + "kCompacted": 3, + "kDirt": 4, + "kGravel": 5, + "kPath": 6, + "kImpassable": 7, + } +) + +func (x TripLeg_Surface) Enum() *TripLeg_Surface { + p := new(TripLeg_Surface) + *p = x + return p +} + +func (x TripLeg_Surface) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TripLeg_Surface) Descriptor() protoreflect.EnumDescriptor { + return file_trip_proto_enumTypes[2].Descriptor() +} + +func (TripLeg_Surface) Type() protoreflect.EnumType { + return &file_trip_proto_enumTypes[2] +} + +func (x TripLeg_Surface) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TripLeg_Surface.Descriptor instead. +func (TripLeg_Surface) EnumDescriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 2} +} + +type TripLeg_CycleLane int32 + +const ( + TripLeg_kNoCycleLane TripLeg_CycleLane = 0 + TripLeg_kShared TripLeg_CycleLane = 1 // Shared use lane (could be shared with pedestrians) + TripLeg_kDedicated TripLeg_CycleLane = 2 // Dedicated cycle lane + TripLeg_kSeparated TripLeg_CycleLane = 3 // A separate cycle lane (physical separation from the main carriageway +) + +// Enum value maps for TripLeg_CycleLane. +var ( + TripLeg_CycleLane_name = map[int32]string{ + 0: "kNoCycleLane", + 1: "kShared", + 2: "kDedicated", + 3: "kSeparated", + } + TripLeg_CycleLane_value = map[string]int32{ + "kNoCycleLane": 0, + "kShared": 1, + "kDedicated": 2, + "kSeparated": 3, + } +) + +func (x TripLeg_CycleLane) Enum() *TripLeg_CycleLane { + p := new(TripLeg_CycleLane) + *p = x + return p +} + +func (x TripLeg_CycleLane) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TripLeg_CycleLane) Descriptor() protoreflect.EnumDescriptor { + return file_trip_proto_enumTypes[3].Descriptor() +} + +func (TripLeg_CycleLane) Type() protoreflect.EnumType { + return &file_trip_proto_enumTypes[3] +} + +func (x TripLeg_CycleLane) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TripLeg_CycleLane.Descriptor instead. +func (TripLeg_CycleLane) EnumDescriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 3} +} + +type TripLeg_SacScale int32 + +const ( + TripLeg_kNoSacScale TripLeg_SacScale = 0 + TripLeg_kHiking TripLeg_SacScale = 1 + TripLeg_kMountainHiking TripLeg_SacScale = 2 + TripLeg_kDemandingMountainHiking TripLeg_SacScale = 3 + TripLeg_kAlpineHiking TripLeg_SacScale = 4 + TripLeg_kDemandingAlpineHiking TripLeg_SacScale = 5 + TripLeg_kDifficultAlpineHiking TripLeg_SacScale = 6 +) + +// Enum value maps for TripLeg_SacScale. +var ( + TripLeg_SacScale_name = map[int32]string{ + 0: "kNoSacScale", + 1: "kHiking", + 2: "kMountainHiking", + 3: "kDemandingMountainHiking", + 4: "kAlpineHiking", + 5: "kDemandingAlpineHiking", + 6: "kDifficultAlpineHiking", + } + TripLeg_SacScale_value = map[string]int32{ + "kNoSacScale": 0, + "kHiking": 1, + "kMountainHiking": 2, + "kDemandingMountainHiking": 3, + "kAlpineHiking": 4, + "kDemandingAlpineHiking": 5, + "kDifficultAlpineHiking": 6, + } +) + +func (x TripLeg_SacScale) Enum() *TripLeg_SacScale { + p := new(TripLeg_SacScale) + *p = x + return p +} + +func (x TripLeg_SacScale) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TripLeg_SacScale) Descriptor() protoreflect.EnumDescriptor { + return file_trip_proto_enumTypes[4].Descriptor() +} + +func (TripLeg_SacScale) Type() protoreflect.EnumType { + return &file_trip_proto_enumTypes[4] +} + +func (x TripLeg_SacScale) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TripLeg_SacScale.Descriptor instead. +func (TripLeg_SacScale) EnumDescriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 4} +} + +type TripLeg_Sidewalk int32 + +const ( + TripLeg_kNoSidewalk TripLeg_Sidewalk = 0 + TripLeg_kLeft TripLeg_Sidewalk = 1 + TripLeg_kRight TripLeg_Sidewalk = 2 + TripLeg_kBothSides TripLeg_Sidewalk = 3 +) + +// Enum value maps for TripLeg_Sidewalk. +var ( + TripLeg_Sidewalk_name = map[int32]string{ + 0: "kNoSidewalk", + 1: "kLeft", + 2: "kRight", + 3: "kBothSides", + } + TripLeg_Sidewalk_value = map[string]int32{ + "kNoSidewalk": 0, + "kLeft": 1, + "kRight": 2, + "kBothSides": 3, + } +) + +func (x TripLeg_Sidewalk) Enum() *TripLeg_Sidewalk { + p := new(TripLeg_Sidewalk) + *p = x + return p +} + +func (x TripLeg_Sidewalk) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TripLeg_Sidewalk) Descriptor() protoreflect.EnumDescriptor { + return file_trip_proto_enumTypes[5].Descriptor() +} + +func (TripLeg_Sidewalk) Type() protoreflect.EnumType { + return &file_trip_proto_enumTypes[5] +} + +func (x TripLeg_Sidewalk) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TripLeg_Sidewalk.Descriptor instead. +func (TripLeg_Sidewalk) EnumDescriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 5} +} + +type TripLeg_Node_Type int32 + +const ( + TripLeg_Node_kStreetIntersection TripLeg_Node_Type = 0 // Regular intersection of 2+ roads + TripLeg_Node_kGate TripLeg_Node_Type = 1 // Gate or rising bollard + TripLeg_Node_kBollard TripLeg_Node_Type = 2 // Bollard (fixed obstruction) + TripLeg_Node_kTollBooth TripLeg_Node_Type = 3 // Toll booth / fare collection + // TODO - for now there is no differentiation between bus and rail stops... + TripLeg_Node_kTransitEgress TripLeg_Node_Type = 4 // Transit egress + TripLeg_Node_kTransitStation TripLeg_Node_Type = 5 // Transit station + TripLeg_Node_kTransitPlatform TripLeg_Node_Type = 6 // Transit platform (rail and bus) + TripLeg_Node_kBikeShare TripLeg_Node_Type = 7 // Bike share location + TripLeg_Node_kParking TripLeg_Node_Type = 8 // Parking location + TripLeg_Node_kMotorwayJunction TripLeg_Node_Type = 9 // Highway = motorway_junction + TripLeg_Node_kBorderControl TripLeg_Node_Type = 10 // Border control + TripLeg_Node_kTollGantry TripLeg_Node_Type = 11 // Toll gantry + TripLeg_Node_kSumpBuster TripLeg_Node_Type = 12 // Sump Buster + TripLeg_Node_kBuildingEntrance TripLeg_Node_Type = 13 // Building Entrance + TripLeg_Node_kElevator TripLeg_Node_Type = 14 // Elevator +) + +// Enum value maps for TripLeg_Node_Type. +var ( + TripLeg_Node_Type_name = map[int32]string{ + 0: "kStreetIntersection", + 1: "kGate", + 2: "kBollard", + 3: "kTollBooth", + 4: "kTransitEgress", + 5: "kTransitStation", + 6: "kTransitPlatform", + 7: "kBikeShare", + 8: "kParking", + 9: "kMotorwayJunction", + 10: "kBorderControl", + 11: "kTollGantry", + 12: "kSumpBuster", + 13: "kBuildingEntrance", + 14: "kElevator", + } + TripLeg_Node_Type_value = map[string]int32{ + "kStreetIntersection": 0, + "kGate": 1, + "kBollard": 2, + "kTollBooth": 3, + "kTransitEgress": 4, + "kTransitStation": 5, + "kTransitPlatform": 6, + "kBikeShare": 7, + "kParking": 8, + "kMotorwayJunction": 9, + "kBorderControl": 10, + "kTollGantry": 11, + "kSumpBuster": 12, + "kBuildingEntrance": 13, + "kElevator": 14, + } +) + +func (x TripLeg_Node_Type) Enum() *TripLeg_Node_Type { + p := new(TripLeg_Node_Type) + *p = x + return p +} + +func (x TripLeg_Node_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TripLeg_Node_Type) Descriptor() protoreflect.EnumDescriptor { + return file_trip_proto_enumTypes[6].Descriptor() +} + +func (TripLeg_Node_Type) Type() protoreflect.EnumType { + return &file_trip_proto_enumTypes[6] +} + +func (x TripLeg_Node_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TripLeg_Node_Type.Descriptor instead. +func (TripLeg_Node_Type) EnumDescriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 7, 0} +} + +type TripLeg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OsmChangeset uint64 `protobuf:"varint,1,opt,name=osm_changeset,json=osmChangeset,proto3" json:"osm_changeset,omitempty"` + TripId uint64 `protobuf:"varint,2,opt,name=trip_id,json=tripId,proto3" json:"trip_id,omitempty"` + LegId uint32 `protobuf:"varint,3,opt,name=leg_id,json=legId,proto3" json:"leg_id,omitempty"` + LegCount uint32 `protobuf:"varint,4,opt,name=leg_count,json=legCount,proto3" json:"leg_count,omitempty"` + Location []*Location `protobuf:"bytes,5,rep,name=location,proto3" json:"location,omitempty"` + Node []*TripLeg_Node `protobuf:"bytes,6,rep,name=node,proto3" json:"node,omitempty"` + Admin []*TripLeg_Admin `protobuf:"bytes,7,rep,name=admin,proto3" json:"admin,omitempty"` + Shape string `protobuf:"bytes,8,opt,name=shape,proto3" json:"shape,omitempty"` + Bbox *BoundingBox `protobuf:"bytes,9,opt,name=bbox,proto3" json:"bbox,omitempty"` + ShapeAttributes *TripLeg_ShapeAttributes `protobuf:"bytes,10,opt,name=shape_attributes,json=shapeAttributes,proto3" json:"shape_attributes,omitempty"` + Incidents []*TripLeg_Incident `protobuf:"bytes,11,rep,name=incidents,proto3" json:"incidents,omitempty"` + Algorithms []string `protobuf:"bytes,12,rep,name=algorithms,proto3" json:"algorithms,omitempty"` + Closures []*TripLeg_Closure `protobuf:"bytes,13,rep,name=closures,proto3" json:"closures,omitempty"` +} + +func (x *TripLeg) Reset() { + *x = TripLeg{} + if protoimpl.UnsafeEnabled { + mi := &file_trip_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TripLeg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TripLeg) ProtoMessage() {} + +func (x *TripLeg) ProtoReflect() protoreflect.Message { + mi := &file_trip_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 TripLeg.ProtoReflect.Descriptor instead. +func (*TripLeg) Descriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0} +} + +func (x *TripLeg) GetOsmChangeset() uint64 { + if x != nil { + return x.OsmChangeset + } + return 0 +} + +func (x *TripLeg) GetTripId() uint64 { + if x != nil { + return x.TripId + } + return 0 +} + +func (x *TripLeg) GetLegId() uint32 { + if x != nil { + return x.LegId + } + return 0 +} + +func (x *TripLeg) GetLegCount() uint32 { + if x != nil { + return x.LegCount + } + return 0 +} + +func (x *TripLeg) GetLocation() []*Location { + if x != nil { + return x.Location + } + return nil +} + +func (x *TripLeg) GetNode() []*TripLeg_Node { + if x != nil { + return x.Node + } + return nil +} + +func (x *TripLeg) GetAdmin() []*TripLeg_Admin { + if x != nil { + return x.Admin + } + return nil +} + +func (x *TripLeg) GetShape() string { + if x != nil { + return x.Shape + } + return "" +} + +func (x *TripLeg) GetBbox() *BoundingBox { + if x != nil { + return x.Bbox + } + return nil +} + +func (x *TripLeg) GetShapeAttributes() *TripLeg_ShapeAttributes { + if x != nil { + return x.ShapeAttributes + } + return nil +} + +func (x *TripLeg) GetIncidents() []*TripLeg_Incident { + if x != nil { + return x.Incidents + } + return nil +} + +func (x *TripLeg) GetAlgorithms() []string { + if x != nil { + return x.Algorithms + } + return nil +} + +func (x *TripLeg) GetClosures() []*TripLeg_Closure { + if x != nil { + return x.Closures + } + return nil +} + +type TripRoute struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Legs []*TripLeg `protobuf:"bytes,1,rep,name=legs,proto3" json:"legs,omitempty"` +} + +func (x *TripRoute) Reset() { + *x = TripRoute{} + if protoimpl.UnsafeEnabled { + mi := &file_trip_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TripRoute) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TripRoute) ProtoMessage() {} + +func (x *TripRoute) ProtoReflect() protoreflect.Message { + mi := &file_trip_proto_msgTypes[1] + 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 TripRoute.ProtoReflect.Descriptor instead. +func (*TripRoute) Descriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{1} +} + +func (x *TripRoute) GetLegs() []*TripLeg { + if x != nil { + return x.Legs + } + return nil +} + +type Trip struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Routes []*TripRoute `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"` +} + +func (x *Trip) Reset() { + *x = Trip{} + if protoimpl.UnsafeEnabled { + mi := &file_trip_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Trip) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Trip) ProtoMessage() {} + +func (x *Trip) ProtoReflect() protoreflect.Message { + mi := &file_trip_proto_msgTypes[2] + 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 Trip.ProtoReflect.Descriptor instead. +func (*Trip) Descriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{2} +} + +func (x *Trip) GetRoutes() []*TripRoute { + if x != nil { + return x.Routes + } + return nil +} + +type TripLeg_LaneConnectivity struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromWayId uint64 `protobuf:"varint,1,opt,name=from_way_id,json=fromWayId,proto3" json:"from_way_id,omitempty"` + FromLanes string `protobuf:"bytes,2,opt,name=from_lanes,json=fromLanes,proto3" json:"from_lanes,omitempty"` + ToLanes string `protobuf:"bytes,3,opt,name=to_lanes,json=toLanes,proto3" json:"to_lanes,omitempty"` +} + +func (x *TripLeg_LaneConnectivity) Reset() { + *x = TripLeg_LaneConnectivity{} + if protoimpl.UnsafeEnabled { + mi := &file_trip_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TripLeg_LaneConnectivity) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TripLeg_LaneConnectivity) ProtoMessage() {} + +func (x *TripLeg_LaneConnectivity) ProtoReflect() protoreflect.Message { + mi := &file_trip_proto_msgTypes[3] + 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 TripLeg_LaneConnectivity.ProtoReflect.Descriptor instead. +func (*TripLeg_LaneConnectivity) Descriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *TripLeg_LaneConnectivity) GetFromWayId() uint64 { + if x != nil { + return x.FromWayId + } + return 0 +} + +func (x *TripLeg_LaneConnectivity) GetFromLanes() string { + if x != nil { + return x.FromLanes + } + return "" +} + +func (x *TripLeg_LaneConnectivity) GetToLanes() string { + if x != nil { + return x.ToLanes + } + return "" +} + +type TripLeg_TrafficSegment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SegmentId uint64 `protobuf:"varint,1,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"` + BeginPercent float32 `protobuf:"fixed32,2,opt,name=begin_percent,json=beginPercent,proto3" json:"begin_percent,omitempty"` + EndPercent float32 `protobuf:"fixed32,3,opt,name=end_percent,json=endPercent,proto3" json:"end_percent,omitempty"` + StartsSegment bool `protobuf:"varint,4,opt,name=starts_segment,json=startsSegment,proto3" json:"starts_segment,omitempty"` + EndsSegment bool `protobuf:"varint,5,opt,name=ends_segment,json=endsSegment,proto3" json:"ends_segment,omitempty"` +} + +func (x *TripLeg_TrafficSegment) Reset() { + *x = TripLeg_TrafficSegment{} + if protoimpl.UnsafeEnabled { + mi := &file_trip_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TripLeg_TrafficSegment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TripLeg_TrafficSegment) ProtoMessage() {} + +func (x *TripLeg_TrafficSegment) ProtoReflect() protoreflect.Message { + mi := &file_trip_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TripLeg_TrafficSegment.ProtoReflect.Descriptor instead. +func (*TripLeg_TrafficSegment) Descriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *TripLeg_TrafficSegment) GetSegmentId() uint64 { + if x != nil { + return x.SegmentId + } + return 0 +} + +func (x *TripLeg_TrafficSegment) GetBeginPercent() float32 { + if x != nil { + return x.BeginPercent + } + return 0 +} + +func (x *TripLeg_TrafficSegment) GetEndPercent() float32 { + if x != nil { + return x.EndPercent + } + return 0 +} + +func (x *TripLeg_TrafficSegment) GetStartsSegment() bool { + if x != nil { + return x.StartsSegment + } + return false +} + +func (x *TripLeg_TrafficSegment) GetEndsSegment() bool { + if x != nil { + return x.EndsSegment + } + return false +} + +type TripLeg_Restriction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type uint32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` +} + +func (x *TripLeg_Restriction) Reset() { + *x = TripLeg_Restriction{} + if protoimpl.UnsafeEnabled { + mi := &file_trip_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TripLeg_Restriction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TripLeg_Restriction) ProtoMessage() {} + +func (x *TripLeg_Restriction) ProtoReflect() protoreflect.Message { + mi := &file_trip_proto_msgTypes[5] + 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 TripLeg_Restriction.ProtoReflect.Descriptor instead. +func (*TripLeg_Restriction) Descriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 2} +} + +func (x *TripLeg_Restriction) GetType() uint32 { + if x != nil { + return x.Type + } + return 0 +} + +type TripLeg_Edge struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name []*StreetName `protobuf:"bytes,1,rep,name=name,proto3" json:"name,omitempty"` // street names + LengthKm float32 `protobuf:"fixed32,2,opt,name=length_km,json=lengthKm,proto3" json:"length_km,omitempty"` // km + Speed float32 `protobuf:"fixed32,3,opt,name=speed,proto3" json:"speed,omitempty"` // km/h + RoadClass RoadClass `protobuf:"varint,4,opt,name=road_class,json=roadClass,proto3,enum=valhalla.RoadClass" json:"road_class,omitempty"` + BeginHeading uint32 `protobuf:"varint,5,opt,name=begin_heading,json=beginHeading,proto3" json:"begin_heading,omitempty"` // 0-359 + EndHeading uint32 `protobuf:"varint,6,opt,name=end_heading,json=endHeading,proto3" json:"end_heading,omitempty"` // 0-359 + BeginShapeIndex uint32 `protobuf:"varint,7,opt,name=begin_shape_index,json=beginShapeIndex,proto3" json:"begin_shape_index,omitempty"` // inclusive + EndShapeIndex uint32 `protobuf:"varint,8,opt,name=end_shape_index,json=endShapeIndex,proto3" json:"end_shape_index,omitempty"` // inclusive + Traversability TripLeg_Traversability `protobuf:"varint,9,opt,name=traversability,proto3,enum=valhalla.TripLeg_Traversability" json:"traversability,omitempty"` + Use TripLeg_Use `protobuf:"varint,10,opt,name=use,proto3,enum=valhalla.TripLeg_Use" json:"use,omitempty"` + Toll bool `protobuf:"varint,11,opt,name=toll,proto3" json:"toll,omitempty"` + Unpaved bool `protobuf:"varint,12,opt,name=unpaved,proto3" json:"unpaved,omitempty"` + Tunnel bool `protobuf:"varint,13,opt,name=tunnel,proto3" json:"tunnel,omitempty"` + Bridge bool `protobuf:"varint,14,opt,name=bridge,proto3" json:"bridge,omitempty"` + Roundabout bool `protobuf:"varint,15,opt,name=roundabout,proto3" json:"roundabout,omitempty"` + InternalIntersection bool `protobuf:"varint,16,opt,name=internal_intersection,json=internalIntersection,proto3" json:"internal_intersection,omitempty"` + DriveOnLeft bool `protobuf:"varint,17,opt,name=drive_on_left,json=driveOnLeft,proto3" json:"drive_on_left,omitempty"` // [default = false] + Surface TripLeg_Surface `protobuf:"varint,18,opt,name=surface,proto3,enum=valhalla.TripLeg_Surface" json:"surface,omitempty"` + Sign *TripSign `protobuf:"bytes,19,opt,name=sign,proto3" json:"sign,omitempty"` + TravelMode TravelMode `protobuf:"varint,20,opt,name=travel_mode,json=travelMode,proto3,enum=valhalla.TravelMode" json:"travel_mode,omitempty"` + VehicleType VehicleType `protobuf:"varint,21,opt,name=vehicle_type,json=vehicleType,proto3,enum=valhalla.VehicleType" json:"vehicle_type,omitempty"` + PedestrianType PedestrianType `protobuf:"varint,22,opt,name=pedestrian_type,json=pedestrianType,proto3,enum=valhalla.PedestrianType" json:"pedestrian_type,omitempty"` + BicycleType BicycleType `protobuf:"varint,23,opt,name=bicycle_type,json=bicycleType,proto3,enum=valhalla.BicycleType" json:"bicycle_type,omitempty"` + TransitType TransitType `protobuf:"varint,24,opt,name=transit_type,json=transitType,proto3,enum=valhalla.TransitType" json:"transit_type,omitempty"` + TransitRouteInfo *TransitRouteInfo `protobuf:"bytes,25,opt,name=transit_route_info,json=transitRouteInfo,proto3" json:"transit_route_info,omitempty"` + Id uint64 `protobuf:"varint,26,opt,name=id,proto3" json:"id,omitempty"` + WayId uint64 `protobuf:"varint,27,opt,name=way_id,json=wayId,proto3" json:"way_id,omitempty"` + WeightedGrade float32 `protobuf:"fixed32,28,opt,name=weighted_grade,json=weightedGrade,proto3" json:"weighted_grade,omitempty"` + MaxUpwardGrade int32 `protobuf:"varint,29,opt,name=max_upward_grade,json=maxUpwardGrade,proto3" json:"max_upward_grade,omitempty"` // set to 32768 if no elevation data + MaxDownwardGrade int32 `protobuf:"varint,30,opt,name=max_downward_grade,json=maxDownwardGrade,proto3" json:"max_downward_grade,omitempty"` // set to 32768 if no elevation data + LaneCount uint32 `protobuf:"varint,31,opt,name=lane_count,json=laneCount,proto3" json:"lane_count,omitempty"` + CycleLane TripLeg_CycleLane `protobuf:"varint,32,opt,name=cycle_lane,json=cycleLane,proto3,enum=valhalla.TripLeg_CycleLane" json:"cycle_lane,omitempty"` + BicycleNetwork bool `protobuf:"varint,33,opt,name=bicycle_network,json=bicycleNetwork,proto3" json:"bicycle_network,omitempty"` // true if the edge is part of a bike network + Sidewalk TripLeg_Sidewalk `protobuf:"varint,34,opt,name=sidewalk,proto3,enum=valhalla.TripLeg_Sidewalk" json:"sidewalk,omitempty"` + Density uint32 `protobuf:"varint,35,opt,name=density,proto3" json:"density,omitempty"` + SpeedLimit uint32 `protobuf:"varint,36,opt,name=speed_limit,json=speedLimit,proto3" json:"speed_limit,omitempty"` // 0 if unavailable, 255 if unlimited + TruckSpeed float32 `protobuf:"fixed32,37,opt,name=truck_speed,json=truckSpeed,proto3" json:"truck_speed,omitempty"` // km/h, 0 if unavailable + TruckRoute bool `protobuf:"varint,38,opt,name=truck_route,json=truckRoute,proto3" json:"truck_route,omitempty"` + LaneConnectivity []*TripLeg_LaneConnectivity `protobuf:"bytes,39,rep,name=lane_connectivity,json=laneConnectivity,proto3" json:"lane_connectivity,omitempty"` + MeanElevation int32 `protobuf:"varint,40,opt,name=mean_elevation,json=meanElevation,proto3" json:"mean_elevation,omitempty"` // set to 32768 if no elevation data + TrafficSegment []*TripLeg_TrafficSegment `protobuf:"bytes,41,rep,name=traffic_segment,json=trafficSegment,proto3" json:"traffic_segment,omitempty"` + TurnLanes []*TurnLane `protobuf:"bytes,42,rep,name=turn_lanes,json=turnLanes,proto3" json:"turn_lanes,omitempty"` + HasTimeRestrictions bool `protobuf:"varint,43,opt,name=has_time_restrictions,json=hasTimeRestrictions,proto3" json:"has_time_restrictions,omitempty"` + DefaultSpeed float32 `protobuf:"fixed32,44,opt,name=default_speed,json=defaultSpeed,proto3" json:"default_speed,omitempty"` // km/h + Restriction *TripLeg_Restriction `protobuf:"bytes,45,opt,name=restriction,proto3" json:"restriction,omitempty"` + DestinationOnly bool `protobuf:"varint,46,opt,name=destination_only,json=destinationOnly,proto3" json:"destination_only,omitempty"` + IsUrban bool `protobuf:"varint,47,opt,name=is_urban,json=isUrban,proto3" json:"is_urban,omitempty"` // uses edge density to decide if edge is in an urban area + TaggedValue []*TaggedValue `protobuf:"bytes,48,rep,name=tagged_value,json=taggedValue,proto3" json:"tagged_value,omitempty"` + // for the part of the edge that is used in the path we must know where + // it starts and ends along the length of the edge as a percentage + SourceAlongEdge float32 `protobuf:"fixed32,49,opt,name=source_along_edge,json=sourceAlongEdge,proto3" json:"source_along_edge,omitempty"` + TargetAlongEdge float32 `protobuf:"fixed32,50,opt,name=target_along_edge,json=targetAlongEdge,proto3" json:"target_along_edge,omitempty"` + SacScale TripLeg_SacScale `protobuf:"varint,51,opt,name=sac_scale,json=sacScale,proto3,enum=valhalla.TripLeg_SacScale" json:"sac_scale,omitempty"` + Shoulder bool `protobuf:"varint,52,opt,name=shoulder,proto3" json:"shoulder,omitempty"` + Indoor bool `protobuf:"varint,53,opt,name=indoor,proto3" json:"indoor,omitempty"` +} + +func (x *TripLeg_Edge) Reset() { + *x = TripLeg_Edge{} + if protoimpl.UnsafeEnabled { + mi := &file_trip_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TripLeg_Edge) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TripLeg_Edge) ProtoMessage() {} + +func (x *TripLeg_Edge) ProtoReflect() protoreflect.Message { + mi := &file_trip_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TripLeg_Edge.ProtoReflect.Descriptor instead. +func (*TripLeg_Edge) Descriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 3} +} + +func (x *TripLeg_Edge) GetName() []*StreetName { + if x != nil { + return x.Name + } + return nil +} + +func (x *TripLeg_Edge) GetLengthKm() float32 { + if x != nil { + return x.LengthKm + } + return 0 +} + +func (x *TripLeg_Edge) GetSpeed() float32 { + if x != nil { + return x.Speed + } + return 0 +} + +func (x *TripLeg_Edge) GetRoadClass() RoadClass { + if x != nil { + return x.RoadClass + } + return RoadClass_kMotorway +} + +func (x *TripLeg_Edge) GetBeginHeading() uint32 { + if x != nil { + return x.BeginHeading + } + return 0 +} + +func (x *TripLeg_Edge) GetEndHeading() uint32 { + if x != nil { + return x.EndHeading + } + return 0 +} + +func (x *TripLeg_Edge) GetBeginShapeIndex() uint32 { + if x != nil { + return x.BeginShapeIndex + } + return 0 +} + +func (x *TripLeg_Edge) GetEndShapeIndex() uint32 { + if x != nil { + return x.EndShapeIndex + } + return 0 +} + +func (x *TripLeg_Edge) GetTraversability() TripLeg_Traversability { + if x != nil { + return x.Traversability + } + return TripLeg_kNone +} + +func (x *TripLeg_Edge) GetUse() TripLeg_Use { + if x != nil { + return x.Use + } + return TripLeg_kRoadUse +} + +func (x *TripLeg_Edge) GetToll() bool { + if x != nil { + return x.Toll + } + return false +} + +func (x *TripLeg_Edge) GetUnpaved() bool { + if x != nil { + return x.Unpaved + } + return false +} + +func (x *TripLeg_Edge) GetTunnel() bool { + if x != nil { + return x.Tunnel + } + return false +} + +func (x *TripLeg_Edge) GetBridge() bool { + if x != nil { + return x.Bridge + } + return false +} + +func (x *TripLeg_Edge) GetRoundabout() bool { + if x != nil { + return x.Roundabout + } + return false +} + +func (x *TripLeg_Edge) GetInternalIntersection() bool { + if x != nil { + return x.InternalIntersection + } + return false +} + +func (x *TripLeg_Edge) GetDriveOnLeft() bool { + if x != nil { + return x.DriveOnLeft + } + return false +} + +func (x *TripLeg_Edge) GetSurface() TripLeg_Surface { + if x != nil { + return x.Surface + } + return TripLeg_kPavedSmooth +} + +func (x *TripLeg_Edge) GetSign() *TripSign { + if x != nil { + return x.Sign + } + return nil +} + +func (x *TripLeg_Edge) GetTravelMode() TravelMode { + if x != nil { + return x.TravelMode + } + return TravelMode_kDrive +} + +func (x *TripLeg_Edge) GetVehicleType() VehicleType { + if x != nil { + return x.VehicleType + } + return VehicleType_kCar +} + +func (x *TripLeg_Edge) GetPedestrianType() PedestrianType { + if x != nil { + return x.PedestrianType + } + return PedestrianType_kFoot +} + +func (x *TripLeg_Edge) GetBicycleType() BicycleType { + if x != nil { + return x.BicycleType + } + return BicycleType_kRoad +} + +func (x *TripLeg_Edge) GetTransitType() TransitType { + if x != nil { + return x.TransitType + } + return TransitType_kTram +} + +func (x *TripLeg_Edge) GetTransitRouteInfo() *TransitRouteInfo { + if x != nil { + return x.TransitRouteInfo + } + return nil +} + +func (x *TripLeg_Edge) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *TripLeg_Edge) GetWayId() uint64 { + if x != nil { + return x.WayId + } + return 0 +} + +func (x *TripLeg_Edge) GetWeightedGrade() float32 { + if x != nil { + return x.WeightedGrade + } + return 0 +} + +func (x *TripLeg_Edge) GetMaxUpwardGrade() int32 { + if x != nil { + return x.MaxUpwardGrade + } + return 0 +} + +func (x *TripLeg_Edge) GetMaxDownwardGrade() int32 { + if x != nil { + return x.MaxDownwardGrade + } + return 0 +} + +func (x *TripLeg_Edge) GetLaneCount() uint32 { + if x != nil { + return x.LaneCount + } + return 0 +} + +func (x *TripLeg_Edge) GetCycleLane() TripLeg_CycleLane { + if x != nil { + return x.CycleLane + } + return TripLeg_kNoCycleLane +} + +func (x *TripLeg_Edge) GetBicycleNetwork() bool { + if x != nil { + return x.BicycleNetwork + } + return false +} + +func (x *TripLeg_Edge) GetSidewalk() TripLeg_Sidewalk { + if x != nil { + return x.Sidewalk + } + return TripLeg_kNoSidewalk +} + +func (x *TripLeg_Edge) GetDensity() uint32 { + if x != nil { + return x.Density + } + return 0 +} + +func (x *TripLeg_Edge) GetSpeedLimit() uint32 { + if x != nil { + return x.SpeedLimit + } + return 0 +} + +func (x *TripLeg_Edge) GetTruckSpeed() float32 { + if x != nil { + return x.TruckSpeed + } + return 0 +} + +func (x *TripLeg_Edge) GetTruckRoute() bool { + if x != nil { + return x.TruckRoute + } + return false +} + +func (x *TripLeg_Edge) GetLaneConnectivity() []*TripLeg_LaneConnectivity { + if x != nil { + return x.LaneConnectivity + } + return nil +} + +func (x *TripLeg_Edge) GetMeanElevation() int32 { + if x != nil { + return x.MeanElevation + } + return 0 +} + +func (x *TripLeg_Edge) GetTrafficSegment() []*TripLeg_TrafficSegment { + if x != nil { + return x.TrafficSegment + } + return nil +} + +func (x *TripLeg_Edge) GetTurnLanes() []*TurnLane { + if x != nil { + return x.TurnLanes + } + return nil +} + +func (x *TripLeg_Edge) GetHasTimeRestrictions() bool { + if x != nil { + return x.HasTimeRestrictions + } + return false +} + +func (x *TripLeg_Edge) GetDefaultSpeed() float32 { + if x != nil { + return x.DefaultSpeed + } + return 0 +} + +func (x *TripLeg_Edge) GetRestriction() *TripLeg_Restriction { + if x != nil { + return x.Restriction + } + return nil +} + +func (x *TripLeg_Edge) GetDestinationOnly() bool { + if x != nil { + return x.DestinationOnly + } + return false +} + +func (x *TripLeg_Edge) GetIsUrban() bool { + if x != nil { + return x.IsUrban + } + return false +} + +func (x *TripLeg_Edge) GetTaggedValue() []*TaggedValue { + if x != nil { + return x.TaggedValue + } + return nil +} + +func (x *TripLeg_Edge) GetSourceAlongEdge() float32 { + if x != nil { + return x.SourceAlongEdge + } + return 0 +} + +func (x *TripLeg_Edge) GetTargetAlongEdge() float32 { + if x != nil { + return x.TargetAlongEdge + } + return 0 +} + +func (x *TripLeg_Edge) GetSacScale() TripLeg_SacScale { + if x != nil { + return x.SacScale + } + return TripLeg_kNoSacScale +} + +func (x *TripLeg_Edge) GetShoulder() bool { + if x != nil { + return x.Shoulder + } + return false +} + +func (x *TripLeg_Edge) GetIndoor() bool { + if x != nil { + return x.Indoor + } + return false +} + +type TripLeg_IntersectingEdge struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BeginHeading uint32 `protobuf:"varint,1,opt,name=begin_heading,json=beginHeading,proto3" json:"begin_heading,omitempty"` // 0-359 + PrevNameConsistency bool `protobuf:"varint,2,opt,name=prev_name_consistency,json=prevNameConsistency,proto3" json:"prev_name_consistency,omitempty"` + CurrNameConsistency bool `protobuf:"varint,3,opt,name=curr_name_consistency,json=currNameConsistency,proto3" json:"curr_name_consistency,omitempty"` + Driveability TripLeg_Traversability `protobuf:"varint,4,opt,name=driveability,proto3,enum=valhalla.TripLeg_Traversability" json:"driveability,omitempty"` + Cyclability TripLeg_Traversability `protobuf:"varint,5,opt,name=cyclability,proto3,enum=valhalla.TripLeg_Traversability" json:"cyclability,omitempty"` + Walkability TripLeg_Traversability `protobuf:"varint,6,opt,name=walkability,proto3,enum=valhalla.TripLeg_Traversability" json:"walkability,omitempty"` + Use TripLeg_Use `protobuf:"varint,7,opt,name=use,proto3,enum=valhalla.TripLeg_Use" json:"use,omitempty"` + RoadClass RoadClass `protobuf:"varint,8,opt,name=road_class,json=roadClass,proto3,enum=valhalla.RoadClass" json:"road_class,omitempty"` + LaneCount uint32 `protobuf:"varint,9,opt,name=lane_count,json=laneCount,proto3" json:"lane_count,omitempty"` + Sign *TripSign `protobuf:"bytes,10,opt,name=sign,proto3" json:"sign,omitempty"` +} + +func (x *TripLeg_IntersectingEdge) Reset() { + *x = TripLeg_IntersectingEdge{} + if protoimpl.UnsafeEnabled { + mi := &file_trip_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TripLeg_IntersectingEdge) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TripLeg_IntersectingEdge) ProtoMessage() {} + +func (x *TripLeg_IntersectingEdge) ProtoReflect() protoreflect.Message { + mi := &file_trip_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TripLeg_IntersectingEdge.ProtoReflect.Descriptor instead. +func (*TripLeg_IntersectingEdge) Descriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 4} +} + +func (x *TripLeg_IntersectingEdge) GetBeginHeading() uint32 { + if x != nil { + return x.BeginHeading + } + return 0 +} + +func (x *TripLeg_IntersectingEdge) GetPrevNameConsistency() bool { + if x != nil { + return x.PrevNameConsistency + } + return false +} + +func (x *TripLeg_IntersectingEdge) GetCurrNameConsistency() bool { + if x != nil { + return x.CurrNameConsistency + } + return false +} + +func (x *TripLeg_IntersectingEdge) GetDriveability() TripLeg_Traversability { + if x != nil { + return x.Driveability + } + return TripLeg_kNone +} + +func (x *TripLeg_IntersectingEdge) GetCyclability() TripLeg_Traversability { + if x != nil { + return x.Cyclability + } + return TripLeg_kNone +} + +func (x *TripLeg_IntersectingEdge) GetWalkability() TripLeg_Traversability { + if x != nil { + return x.Walkability + } + return TripLeg_kNone +} + +func (x *TripLeg_IntersectingEdge) GetUse() TripLeg_Use { + if x != nil { + return x.Use + } + return TripLeg_kRoadUse +} + +func (x *TripLeg_IntersectingEdge) GetRoadClass() RoadClass { + if x != nil { + return x.RoadClass + } + return RoadClass_kMotorway +} + +func (x *TripLeg_IntersectingEdge) GetLaneCount() uint32 { + if x != nil { + return x.LaneCount + } + return 0 +} + +func (x *TripLeg_IntersectingEdge) GetSign() *TripSign { + if x != nil { + return x.Sign + } + return nil +} + +type TripLeg_Cost struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Seconds float64 `protobuf:"fixed64,1,opt,name=seconds,proto3" json:"seconds,omitempty"` + Cost float64 `protobuf:"fixed64,2,opt,name=cost,proto3" json:"cost,omitempty"` +} + +func (x *TripLeg_Cost) Reset() { + *x = TripLeg_Cost{} + if protoimpl.UnsafeEnabled { + mi := &file_trip_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TripLeg_Cost) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TripLeg_Cost) ProtoMessage() {} + +func (x *TripLeg_Cost) ProtoReflect() protoreflect.Message { + mi := &file_trip_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TripLeg_Cost.ProtoReflect.Descriptor instead. +func (*TripLeg_Cost) Descriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 5} +} + +func (x *TripLeg_Cost) GetSeconds() float64 { + if x != nil { + return x.Seconds + } + return 0 +} + +func (x *TripLeg_Cost) GetCost() float64 { + if x != nil { + return x.Cost + } + return 0 +} + +type TripLeg_PathCost struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ElapsedCost *TripLeg_Cost `protobuf:"bytes,1,opt,name=elapsed_cost,json=elapsedCost,proto3" json:"elapsed_cost,omitempty"` + TransitionCost *TripLeg_Cost `protobuf:"bytes,2,opt,name=transition_cost,json=transitionCost,proto3" json:"transition_cost,omitempty"` +} + +func (x *TripLeg_PathCost) Reset() { + *x = TripLeg_PathCost{} + if protoimpl.UnsafeEnabled { + mi := &file_trip_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TripLeg_PathCost) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TripLeg_PathCost) ProtoMessage() {} + +func (x *TripLeg_PathCost) ProtoReflect() protoreflect.Message { + mi := &file_trip_proto_msgTypes[9] + 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 TripLeg_PathCost.ProtoReflect.Descriptor instead. +func (*TripLeg_PathCost) Descriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 6} +} + +func (x *TripLeg_PathCost) GetElapsedCost() *TripLeg_Cost { + if x != nil { + return x.ElapsedCost + } + return nil +} + +func (x *TripLeg_PathCost) GetTransitionCost() *TripLeg_Cost { + if x != nil { + return x.TransitionCost + } + return nil +} + +type TripLeg_Node struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Edge *TripLeg_Edge `protobuf:"bytes,1,opt,name=edge,proto3" json:"edge,omitempty"` + IntersectingEdge []*TripLeg_IntersectingEdge `protobuf:"bytes,2,rep,name=intersecting_edge,json=intersectingEdge,proto3" json:"intersecting_edge,omitempty"` + AdminIndex uint32 `protobuf:"varint,3,opt,name=admin_index,json=adminIndex,proto3" json:"admin_index,omitempty"` // index into the admin list, 0 if unknown + Type TripLeg_Node_Type `protobuf:"varint,4,opt,name=type,proto3,enum=valhalla.TripLeg_Node_Type" json:"type,omitempty"` // The type of node + Fork bool `protobuf:"varint,5,opt,name=fork,proto3" json:"fork,omitempty"` // Fork + TransitPlatformInfo *TransitPlatformInfo `protobuf:"bytes,6,opt,name=transit_platform_info,json=transitPlatformInfo,proto3" json:"transit_platform_info,omitempty"` + TransitStationInfo *TransitStationInfo `protobuf:"bytes,7,opt,name=transit_station_info,json=transitStationInfo,proto3" json:"transit_station_info,omitempty"` + TransitEgressInfo *TransitEgressInfo `protobuf:"bytes,10,opt,name=transit_egress_info,json=transitEgressInfo,proto3" json:"transit_egress_info,omitempty"` + TimeZone string `protobuf:"bytes,11,opt,name=time_zone,json=timeZone,proto3" json:"time_zone,omitempty"` + Cost *TripLeg_PathCost `protobuf:"bytes,12,opt,name=cost,proto3" json:"cost,omitempty"` // how much cost did it take at this node in the path + Recosts []*TripLeg_PathCost `protobuf:"bytes,13,rep,name=recosts,proto3" json:"recosts,omitempty"` // how much cost did it take at this node in the path for recostings + BssInfo *BikeShareStationInfo `protobuf:"bytes,14,opt,name=bss_info,json=bssInfo,proto3" json:"bss_info,omitempty"` +} + +func (x *TripLeg_Node) Reset() { + *x = TripLeg_Node{} + if protoimpl.UnsafeEnabled { + mi := &file_trip_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TripLeg_Node) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TripLeg_Node) ProtoMessage() {} + +func (x *TripLeg_Node) ProtoReflect() protoreflect.Message { + mi := &file_trip_proto_msgTypes[10] + 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 TripLeg_Node.ProtoReflect.Descriptor instead. +func (*TripLeg_Node) Descriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 7} +} + +func (x *TripLeg_Node) GetEdge() *TripLeg_Edge { + if x != nil { + return x.Edge + } + return nil +} + +func (x *TripLeg_Node) GetIntersectingEdge() []*TripLeg_IntersectingEdge { + if x != nil { + return x.IntersectingEdge + } + return nil +} + +func (x *TripLeg_Node) GetAdminIndex() uint32 { + if x != nil { + return x.AdminIndex + } + return 0 +} + +func (x *TripLeg_Node) GetType() TripLeg_Node_Type { + if x != nil { + return x.Type + } + return TripLeg_Node_kStreetIntersection +} + +func (x *TripLeg_Node) GetFork() bool { + if x != nil { + return x.Fork + } + return false +} + +func (x *TripLeg_Node) GetTransitPlatformInfo() *TransitPlatformInfo { + if x != nil { + return x.TransitPlatformInfo + } + return nil +} + +func (x *TripLeg_Node) GetTransitStationInfo() *TransitStationInfo { + if x != nil { + return x.TransitStationInfo + } + return nil +} + +func (x *TripLeg_Node) GetTransitEgressInfo() *TransitEgressInfo { + if x != nil { + return x.TransitEgressInfo + } + return nil +} + +func (x *TripLeg_Node) GetTimeZone() string { + if x != nil { + return x.TimeZone + } + return "" +} + +func (x *TripLeg_Node) GetCost() *TripLeg_PathCost { + if x != nil { + return x.Cost + } + return nil +} + +func (x *TripLeg_Node) GetRecosts() []*TripLeg_PathCost { + if x != nil { + return x.Recosts + } + return nil +} + +func (x *TripLeg_Node) GetBssInfo() *BikeShareStationInfo { + if x != nil { + return x.BssInfo + } + return nil +} + +type TripLeg_Admin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CountryCode string `protobuf:"bytes,1,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"` + CountryText string `protobuf:"bytes,2,opt,name=country_text,json=countryText,proto3" json:"country_text,omitempty"` + StateCode string `protobuf:"bytes,3,opt,name=state_code,json=stateCode,proto3" json:"state_code,omitempty"` + StateText string `protobuf:"bytes,4,opt,name=state_text,json=stateText,proto3" json:"state_text,omitempty"` +} + +func (x *TripLeg_Admin) Reset() { + *x = TripLeg_Admin{} + if protoimpl.UnsafeEnabled { + mi := &file_trip_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TripLeg_Admin) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TripLeg_Admin) ProtoMessage() {} + +func (x *TripLeg_Admin) ProtoReflect() protoreflect.Message { + mi := &file_trip_proto_msgTypes[11] + 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 TripLeg_Admin.ProtoReflect.Descriptor instead. +func (*TripLeg_Admin) Descriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 8} +} + +func (x *TripLeg_Admin) GetCountryCode() string { + if x != nil { + return x.CountryCode + } + return "" +} + +func (x *TripLeg_Admin) GetCountryText() string { + if x != nil { + return x.CountryText + } + return "" +} + +func (x *TripLeg_Admin) GetStateCode() string { + if x != nil { + return x.StateCode + } + return "" +} + +func (x *TripLeg_Admin) GetStateText() string { + if x != nil { + return x.StateText + } + return "" +} + +type TripLeg_ShapeAttributes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Time []uint32 `protobuf:"varint,1,rep,packed,name=time,proto3" json:"time,omitempty"` // milliseconds + Length []uint32 `protobuf:"varint,2,rep,packed,name=length,proto3" json:"length,omitempty"` // decimeters + Speed []uint32 `protobuf:"varint,3,rep,packed,name=speed,proto3" json:"speed,omitempty"` // decimeters per sec + // 4 is reserved + SpeedLimit []uint32 `protobuf:"varint,5,rep,packed,name=speed_limit,json=speedLimit,proto3" json:"speed_limit,omitempty"` // speed limit in kph +} + +func (x *TripLeg_ShapeAttributes) Reset() { + *x = TripLeg_ShapeAttributes{} + if protoimpl.UnsafeEnabled { + mi := &file_trip_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TripLeg_ShapeAttributes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TripLeg_ShapeAttributes) ProtoMessage() {} + +func (x *TripLeg_ShapeAttributes) ProtoReflect() protoreflect.Message { + mi := &file_trip_proto_msgTypes[12] + 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 TripLeg_ShapeAttributes.ProtoReflect.Descriptor instead. +func (*TripLeg_ShapeAttributes) Descriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 9} +} + +func (x *TripLeg_ShapeAttributes) GetTime() []uint32 { + if x != nil { + return x.Time + } + return nil +} + +func (x *TripLeg_ShapeAttributes) GetLength() []uint32 { + if x != nil { + return x.Length + } + return nil +} + +func (x *TripLeg_ShapeAttributes) GetSpeed() []uint32 { + if x != nil { + return x.Speed + } + return nil +} + +func (x *TripLeg_ShapeAttributes) GetSpeedLimit() []uint32 { + if x != nil { + return x.SpeedLimit + } + return nil +} + +// we encapsulate the real incident object here so we can add information +// about where it is along the route, ie once its referenced to the route +type TripLeg_Incident struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *IncidentsTile_Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Valhalla additions to incident metadata goes here + BeginShapeIndex uint32 `protobuf:"varint,3,opt,name=begin_shape_index,json=beginShapeIndex,proto3" json:"begin_shape_index,omitempty"` + EndShapeIndex uint32 `protobuf:"varint,4,opt,name=end_shape_index,json=endShapeIndex,proto3" json:"end_shape_index,omitempty"` +} + +func (x *TripLeg_Incident) Reset() { + *x = TripLeg_Incident{} + if protoimpl.UnsafeEnabled { + mi := &file_trip_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TripLeg_Incident) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TripLeg_Incident) ProtoMessage() {} + +func (x *TripLeg_Incident) ProtoReflect() protoreflect.Message { + mi := &file_trip_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TripLeg_Incident.ProtoReflect.Descriptor instead. +func (*TripLeg_Incident) Descriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 10} +} + +func (x *TripLeg_Incident) GetMetadata() *IncidentsTile_Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *TripLeg_Incident) GetBeginShapeIndex() uint32 { + if x != nil { + return x.BeginShapeIndex + } + return 0 +} + +func (x *TripLeg_Incident) GetEndShapeIndex() uint32 { + if x != nil { + return x.EndShapeIndex + } + return 0 +} + +type TripLeg_Closure struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to HasBeginShapeIndex: + // *TripLeg_Closure_BeginShapeIndex + HasBeginShapeIndex isTripLeg_Closure_HasBeginShapeIndex `protobuf_oneof:"has_begin_shape_index"` + // Types that are assignable to HasEndShapeIndex: + // *TripLeg_Closure_EndShapeIndex + HasEndShapeIndex isTripLeg_Closure_HasEndShapeIndex `protobuf_oneof:"has_end_shape_index"` +} + +func (x *TripLeg_Closure) Reset() { + *x = TripLeg_Closure{} + if protoimpl.UnsafeEnabled { + mi := &file_trip_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TripLeg_Closure) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TripLeg_Closure) ProtoMessage() {} + +func (x *TripLeg_Closure) ProtoReflect() protoreflect.Message { + mi := &file_trip_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TripLeg_Closure.ProtoReflect.Descriptor instead. +func (*TripLeg_Closure) Descriptor() ([]byte, []int) { + return file_trip_proto_rawDescGZIP(), []int{0, 11} +} + +func (m *TripLeg_Closure) GetHasBeginShapeIndex() isTripLeg_Closure_HasBeginShapeIndex { + if m != nil { + return m.HasBeginShapeIndex + } + return nil +} + +func (x *TripLeg_Closure) GetBeginShapeIndex() uint32 { + if x, ok := x.GetHasBeginShapeIndex().(*TripLeg_Closure_BeginShapeIndex); ok { + return x.BeginShapeIndex + } + return 0 +} + +func (m *TripLeg_Closure) GetHasEndShapeIndex() isTripLeg_Closure_HasEndShapeIndex { + if m != nil { + return m.HasEndShapeIndex + } + return nil +} + +func (x *TripLeg_Closure) GetEndShapeIndex() uint32 { + if x, ok := x.GetHasEndShapeIndex().(*TripLeg_Closure_EndShapeIndex); ok { + return x.EndShapeIndex + } + return 0 +} + +type isTripLeg_Closure_HasBeginShapeIndex interface { + isTripLeg_Closure_HasBeginShapeIndex() +} + +type TripLeg_Closure_BeginShapeIndex struct { + BeginShapeIndex uint32 `protobuf:"varint,1,opt,name=begin_shape_index,json=beginShapeIndex,proto3,oneof"` +} + +func (*TripLeg_Closure_BeginShapeIndex) isTripLeg_Closure_HasBeginShapeIndex() {} + +type isTripLeg_Closure_HasEndShapeIndex interface { + isTripLeg_Closure_HasEndShapeIndex() +} + +type TripLeg_Closure_EndShapeIndex struct { + EndShapeIndex uint32 `protobuf:"varint,2,opt,name=end_shape_index,json=endShapeIndex,proto3,oneof"` +} + +func (*TripLeg_Closure_EndShapeIndex) isTripLeg_Closure_HasEndShapeIndex() {} + +var File_trip_proto protoreflect.FileDescriptor + +var file_trip_proto_rawDesc = []byte{ + 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x76, 0x61, + 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x1a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x0f, 0x69, 0x6e, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0xd8, 0x33, 0x0a, 0x07, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x12, 0x23, 0x0a, + 0x0d, 0x6f, 0x73, 0x6d, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6f, 0x73, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x65, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x72, 0x69, 0x70, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6c, + 0x65, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x67, + 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x2e, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x2a, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, + 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x61, 0x6c, + 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, + 0x61, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x70, 0x65, + 0x12, 0x29, 0x0a, 0x04, 0x62, 0x62, 0x6f, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x52, 0x04, 0x62, 0x62, 0x6f, 0x78, 0x12, 0x4c, 0x0a, 0x10, 0x73, + 0x68, 0x61, 0x70, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, + 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x53, 0x68, 0x61, 0x70, 0x65, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x0f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, + 0x49, 0x6e, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x18, + 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, + 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, + 0x52, 0x08, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x1a, 0x6c, 0x0a, 0x10, 0x4c, 0x61, + 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x1e, + 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x57, 0x61, 0x79, 0x49, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x4c, 0x61, 0x6e, 0x65, 0x73, 0x12, 0x19, 0x0a, + 0x08, 0x74, 0x6f, 0x5f, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x74, 0x6f, 0x4c, 0x61, 0x6e, 0x65, 0x73, 0x1a, 0xbf, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x63, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x65, + 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0c, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, + 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x73, 0x5f, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x65, + 0x6e, 0x64, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x21, 0x0a, 0x0b, 0x52, 0x65, + 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0xfe, 0x11, + 0x0a, 0x04, 0x45, 0x64, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, + 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x6b, 0x6d, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x08, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4b, 0x6d, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x0a, 0x72, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, + 0x6c, 0x61, 0x2e, 0x52, 0x6f, 0x61, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x09, 0x72, 0x6f, + 0x61, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x65, 0x67, 0x69, 0x6e, + 0x5f, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x62, 0x65, 0x67, 0x69, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b, + 0x65, 0x6e, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x48, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, + 0x11, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x53, + 0x68, 0x61, 0x70, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x64, + 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x68, 0x61, 0x70, 0x65, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x48, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x76, 0x61, 0x6c, 0x68, + 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x54, 0x72, 0x61, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x74, 0x72, 0x61, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x75, + 0x73, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x55, 0x73, 0x65, 0x52, + 0x03, 0x75, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x6f, 0x6c, 0x6c, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x04, 0x74, 0x6f, 0x6c, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x6e, 0x70, 0x61, + 0x76, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x75, 0x6e, 0x70, 0x61, 0x76, + 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x06, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x62, 0x6f, 0x75, 0x74, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x62, 0x6f, + 0x75, 0x74, 0x12, 0x33, 0x0a, 0x15, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x64, 0x72, 0x69, 0x76, 0x65, + 0x5f, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x64, 0x72, 0x69, 0x76, 0x65, 0x4f, 0x6e, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x33, 0x0a, 0x07, 0x73, + 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, + 0x53, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x07, 0x73, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x12, 0x26, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x53, 0x69, + 0x67, 0x6e, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x35, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x76, + 0x65, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, + 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x4d, + 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x38, 0x0a, 0x0c, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, + 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x76, 0x65, + 0x68, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x0f, 0x70, 0x65, 0x64, + 0x65, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x50, 0x65, + 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x70, 0x65, + 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x0c, + 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x42, 0x69, + 0x63, 0x79, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x62, 0x69, 0x63, 0x79, 0x63, + 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x48, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x77, 0x61, + 0x79, 0x5f, 0x69, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x77, 0x61, 0x79, 0x49, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x5f, 0x67, 0x72, + 0x61, 0x64, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x65, 0x64, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, + 0x75, 0x70, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x1d, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x70, 0x77, 0x61, 0x72, 0x64, 0x47, 0x72, 0x61, + 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x77, 0x61, + 0x72, 0x64, 0x5f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, + 0x6d, 0x61, 0x78, 0x44, 0x6f, 0x77, 0x6e, 0x77, 0x61, 0x72, 0x64, 0x47, 0x72, 0x61, 0x64, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1f, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x61, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x3a, 0x0a, 0x0a, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x20, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, + 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x65, + 0x52, 0x09, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x62, + 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x21, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x36, 0x0a, 0x08, 0x73, 0x69, 0x64, 0x65, 0x77, 0x61, 0x6c, 0x6b, + 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, + 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x53, 0x69, 0x64, 0x65, 0x77, 0x61, + 0x6c, 0x6b, 0x52, 0x08, 0x73, 0x69, 0x64, 0x65, 0x77, 0x61, 0x6c, 0x6b, 0x12, 0x18, 0x0a, 0x07, + 0x64, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x64, + 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x72, 0x75, 0x63, 0x6b, + 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x25, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x72, + 0x75, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x72, 0x75, 0x63, + 0x6b, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x74, + 0x72, 0x75, 0x63, 0x6b, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x4f, 0x0a, 0x11, 0x6c, 0x61, 0x6e, + 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x27, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, + 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x4c, 0x61, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x10, 0x6c, 0x61, 0x6e, 0x65, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x65, + 0x61, 0x6e, 0x5f, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x28, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x65, 0x61, 0x6e, 0x45, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x49, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x29, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x61, 0x6c, + 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x54, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x74, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x0a, + 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x75, 0x72, 0x6e, + 0x4c, 0x61, 0x6e, 0x65, 0x52, 0x09, 0x74, 0x75, 0x72, 0x6e, 0x4c, 0x61, 0x6e, 0x65, 0x73, 0x12, + 0x32, 0x0a, 0x15, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x74, + 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, + 0x68, 0x61, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, + 0x70, 0x65, 0x65, 0x64, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x3f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x74, + 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, + 0x2e, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x72, 0x65, + 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x2e, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x75, 0x72, 0x62, 0x61, 0x6e, + 0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x55, 0x72, 0x62, 0x61, 0x6e, 0x12, + 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, + 0x2e, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x61, + 0x67, 0x67, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x65, 0x64, 0x67, 0x65, 0x18, 0x31, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x6c, 0x6f, 0x6e, + 0x67, 0x45, 0x64, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, + 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x65, 0x64, 0x67, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, 0x6c, 0x6f, 0x6e, 0x67, 0x45, 0x64, 0x67, + 0x65, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x61, 0x63, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x33, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, + 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x53, 0x61, 0x63, 0x53, 0x63, 0x61, 0x6c, 0x65, + 0x52, 0x08, 0x73, 0x61, 0x63, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, + 0x6f, 0x75, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x34, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x68, + 0x6f, 0x75, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x64, 0x6f, 0x6f, 0x72, + 0x18, 0x35, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x6e, 0x64, 0x6f, 0x6f, 0x72, 0x1a, 0x91, + 0x04, 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x45, + 0x64, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x62, 0x65, 0x67, 0x69, + 0x6e, 0x48, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x72, 0x65, 0x76, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x72, 0x65, 0x76, 0x4e, 0x61, 0x6d, + 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x32, 0x0a, 0x15, + 0x63, 0x75, 0x72, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x63, 0x75, 0x72, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, + 0x12, 0x44, 0x0a, 0x0c, 0x64, 0x72, 0x69, 0x76, 0x65, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, + 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x64, 0x72, 0x69, 0x76, 0x65, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0b, 0x63, 0x79, 0x63, 0x6c, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x76, 0x61, + 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x54, + 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, + 0x79, 0x63, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0b, 0x77, 0x61, + 0x6c, 0x6b, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x20, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, + 0x65, 0x67, 0x2e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x52, 0x0b, 0x77, 0x61, 0x6c, 0x6b, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x27, + 0x0a, 0x03, 0x75, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x61, + 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x55, + 0x73, 0x65, 0x52, 0x03, 0x75, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x72, 0x6f, 0x61, 0x64, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x76, 0x61, + 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x52, 0x6f, 0x61, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x52, 0x09, 0x72, 0x6f, 0x61, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, + 0x61, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x6c, 0x61, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x69, + 0x67, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x04, 0x73, 0x69, + 0x67, 0x6e, 0x1a, 0x34, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x1a, 0x86, 0x01, 0x0a, 0x08, 0x50, 0x61, 0x74, + 0x68, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0c, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, + 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x61, + 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x43, + 0x6f, 0x73, 0x74, 0x52, 0x0b, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x73, 0x74, + 0x12, 0x3f, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, + 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, + 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x43, 0x6f, 0x73, + 0x74, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x73, + 0x74, 0x1a, 0xb2, 0x07, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x65, 0x64, + 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x45, 0x64, 0x67, 0x65, + 0x52, 0x04, 0x65, 0x64, 0x67, 0x65, 0x12, 0x4f, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, + 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x64, 0x67, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, + 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6e, + 0x67, 0x45, 0x64, 0x67, 0x65, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, + 0x69, 0x6e, 0x67, 0x45, 0x64, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, + 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6f, 0x72, + 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6f, 0x72, 0x6b, 0x12, 0x51, 0x0a, + 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x13, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x4e, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x4b, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x63, 0x6f, + 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x68, + 0x43, 0x6f, 0x73, 0x74, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x72, 0x65, + 0x63, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x61, + 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x68, 0x43, 0x6f, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x73, 0x74, 0x73, + 0x12, 0x39, 0x0a, 0x08, 0x62, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x42, 0x69, + 0x6b, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x07, 0x62, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x98, 0x02, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x6b, 0x47, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x42, 0x6f, 0x6c, + 0x6c, 0x61, 0x72, 0x64, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x54, 0x6f, 0x6c, 0x6c, 0x42, + 0x6f, 0x6f, 0x74, 0x68, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x05, 0x12, + 0x14, 0x0a, 0x10, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x42, 0x69, 0x6b, 0x65, 0x53, 0x68, + 0x61, 0x72, 0x65, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x50, 0x61, 0x72, 0x6b, 0x69, 0x6e, + 0x67, 0x10, 0x08, 0x12, 0x15, 0x0a, 0x11, 0x6b, 0x4d, 0x6f, 0x74, 0x6f, 0x72, 0x77, 0x61, 0x79, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x6b, 0x42, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x10, 0x0a, 0x12, 0x0f, + 0x0a, 0x0b, 0x6b, 0x54, 0x6f, 0x6c, 0x6c, 0x47, 0x61, 0x6e, 0x74, 0x72, 0x79, 0x10, 0x0b, 0x12, + 0x0f, 0x0a, 0x0b, 0x6b, 0x53, 0x75, 0x6d, 0x70, 0x42, 0x75, 0x73, 0x74, 0x65, 0x72, 0x10, 0x0c, + 0x12, 0x15, 0x0a, 0x11, 0x6b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, + 0x72, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x45, 0x6c, 0x65, 0x76, + 0x61, 0x74, 0x6f, 0x72, 0x10, 0x0e, 0x1a, 0x8b, 0x01, 0x0a, 0x05, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x74, + 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x72, 0x79, 0x54, 0x65, 0x78, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x74, + 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x54, 0x65, 0x78, 0x74, 0x1a, 0x84, 0x01, 0x0a, 0x0f, 0x53, 0x68, 0x61, 0x70, 0x65, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, + 0x42, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x05, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52, + 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52, + 0x0a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0x9c, 0x01, 0x0a, 0x08, + 0x49, 0x6e, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x61, 0x6c, + 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x49, 0x6e, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x54, + 0x69, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, + 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0f, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x68, 0x61, 0x70, 0x65, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x65, 0x6e, 0x64, + 0x53, 0x68, 0x61, 0x70, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0x91, 0x01, 0x0a, 0x07, 0x43, + 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, + 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x0f, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x68, 0x61, 0x70, 0x65, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x70, + 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x68, 0x61, 0x70, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x17, + 0x0a, 0x15, 0x68, 0x61, 0x73, 0x5f, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x68, 0x61, 0x70, + 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x65, + 0x6e, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x43, + 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6b, + 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x42, 0x61, + 0x63, 0x6b, 0x77, 0x61, 0x72, 0x64, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x42, 0x6f, 0x74, + 0x68, 0x10, 0x03, 0x22, 0x8f, 0x05, 0x0a, 0x03, 0x55, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x6b, + 0x52, 0x6f, 0x61, 0x64, 0x55, 0x73, 0x65, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x52, 0x61, + 0x6d, 0x70, 0x55, 0x73, 0x65, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x54, 0x75, 0x72, 0x6e, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, + 0x6b, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x6b, + 0x44, 0x72, 0x69, 0x76, 0x65, 0x77, 0x61, 0x79, 0x55, 0x73, 0x65, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x6b, 0x41, 0x6c, 0x6c, 0x65, 0x79, 0x55, 0x73, 0x65, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, + 0x6b, 0x50, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x41, 0x69, 0x73, 0x6c, 0x65, 0x55, 0x73, 0x65, + 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x73, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x6b, + 0x44, 0x72, 0x69, 0x76, 0x65, 0x54, 0x68, 0x72, 0x75, 0x55, 0x73, 0x65, 0x10, 0x08, 0x12, 0x10, + 0x0a, 0x0c, 0x6b, 0x43, 0x75, 0x6c, 0x64, 0x65, 0x73, 0x61, 0x63, 0x55, 0x73, 0x65, 0x10, 0x09, + 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x4c, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x52, 0x6f, 0x61, 0x64, 0x55, 0x73, 0x65, 0x10, 0x0b, 0x12, 0x10, 0x0a, 0x0c, 0x6b, + 0x43, 0x79, 0x63, 0x6c, 0x65, 0x77, 0x61, 0x79, 0x55, 0x73, 0x65, 0x10, 0x14, 0x12, 0x14, 0x0a, + 0x10, 0x6b, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x42, 0x69, 0x6b, 0x65, 0x55, 0x73, + 0x65, 0x10, 0x15, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x53, 0x69, 0x64, 0x65, 0x77, 0x61, 0x6c, 0x6b, + 0x55, 0x73, 0x65, 0x10, 0x18, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x46, 0x6f, 0x6f, 0x74, 0x77, 0x61, + 0x79, 0x55, 0x73, 0x65, 0x10, 0x19, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x53, 0x74, 0x65, 0x70, 0x73, + 0x55, 0x73, 0x65, 0x10, 0x1a, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x55, 0x73, + 0x65, 0x10, 0x1b, 0x12, 0x12, 0x0a, 0x0e, 0x6b, 0x50, 0x65, 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, + 0x61, 0x6e, 0x55, 0x73, 0x65, 0x10, 0x1c, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x42, 0x72, 0x69, 0x64, + 0x6c, 0x65, 0x77, 0x61, 0x79, 0x55, 0x73, 0x65, 0x10, 0x1d, 0x12, 0x1a, 0x0a, 0x16, 0x6b, 0x50, + 0x65, 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x55, 0x73, 0x65, 0x10, 0x20, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x45, 0x6c, 0x65, 0x76, 0x61, + 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x10, 0x21, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x45, 0x73, 0x63, + 0x61, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x10, 0x22, 0x12, 0x10, 0x0a, 0x0c, 0x6b, + 0x52, 0x65, 0x73, 0x74, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x10, 0x1e, 0x12, 0x13, 0x0a, + 0x0f, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, + 0x10, 0x1f, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x55, 0x73, 0x65, 0x10, + 0x28, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x46, 0x65, 0x72, 0x72, 0x79, 0x55, 0x73, 0x65, 0x10, 0x29, + 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x52, 0x61, 0x69, 0x6c, 0x46, 0x65, 0x72, 0x72, 0x79, 0x55, 0x73, + 0x65, 0x10, 0x2a, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x10, 0x2b, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x52, 0x61, + 0x69, 0x6c, 0x55, 0x73, 0x65, 0x10, 0x32, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x42, 0x75, 0x73, 0x55, + 0x73, 0x65, 0x10, 0x33, 0x12, 0x18, 0x0a, 0x14, 0x6b, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x10, 0x34, 0x12, 0x1a, + 0x0a, 0x16, 0x6b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x10, 0x35, 0x12, 0x19, 0x0a, 0x15, 0x6b, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x55, 0x73, 0x65, 0x10, 0x36, 0x22, 0x7c, 0x0a, 0x07, 0x53, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x50, 0x61, 0x76, 0x65, 0x64, 0x53, 0x6d, 0x6f, 0x6f, 0x74, 0x68, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x50, 0x61, 0x76, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0f, + 0x0a, 0x0b, 0x6b, 0x50, 0x61, 0x76, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x02, 0x12, + 0x0e, 0x0a, 0x0a, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x65, 0x64, 0x10, 0x03, 0x12, + 0x09, 0x0a, 0x05, 0x6b, 0x44, 0x69, 0x72, 0x74, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x47, + 0x72, 0x61, 0x76, 0x65, 0x6c, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x50, 0x61, 0x74, 0x68, + 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x49, 0x6d, 0x70, 0x61, 0x73, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x10, 0x07, 0x22, 0x4a, 0x0a, 0x09, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x65, + 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x4e, 0x6f, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x65, + 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x10, 0x01, 0x12, + 0x0e, 0x0a, 0x0a, 0x6b, 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, + 0x0e, 0x0a, 0x0a, 0x6b, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x03, 0x22, + 0xa6, 0x01, 0x0a, 0x08, 0x53, 0x61, 0x63, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x0f, 0x0a, 0x0b, + 0x6b, 0x4e, 0x6f, 0x53, 0x61, 0x63, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x10, 0x00, 0x12, 0x0b, 0x0a, + 0x07, 0x6b, 0x48, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x4d, + 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x48, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, + 0x1c, 0x0a, 0x18, 0x6b, 0x44, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x75, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x48, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x12, 0x11, 0x0a, + 0x0d, 0x6b, 0x41, 0x6c, 0x70, 0x69, 0x6e, 0x65, 0x48, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x04, + 0x12, 0x1a, 0x0a, 0x16, 0x6b, 0x44, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x6c, + 0x70, 0x69, 0x6e, 0x65, 0x48, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, + 0x6b, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x41, 0x6c, 0x70, 0x69, 0x6e, 0x65, + 0x48, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x06, 0x22, 0x42, 0x0a, 0x08, 0x53, 0x69, 0x64, 0x65, + 0x77, 0x61, 0x6c, 0x6b, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x4e, 0x6f, 0x53, 0x69, 0x64, 0x65, 0x77, + 0x61, 0x6c, 0x6b, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x4c, 0x65, 0x66, 0x74, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x52, 0x69, 0x67, 0x68, 0x74, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, + 0x6b, 0x42, 0x6f, 0x74, 0x68, 0x53, 0x69, 0x64, 0x65, 0x73, 0x10, 0x03, 0x22, 0x32, 0x0a, 0x09, + 0x54, 0x72, 0x69, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x6c, 0x65, 0x67, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, + 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x52, 0x04, 0x6c, 0x65, 0x67, 0x73, + 0x22, 0x33, 0x0a, 0x04, 0x54, 0x72, 0x69, 0x70, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x42, 0x40, 0x48, 0x03, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x2e, 0x63, + 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2d, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, + 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, + 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x50, 0x00, 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_trip_proto_rawDescOnce sync.Once + file_trip_proto_rawDescData = file_trip_proto_rawDesc +) + +func file_trip_proto_rawDescGZIP() []byte { + file_trip_proto_rawDescOnce.Do(func() { + file_trip_proto_rawDescData = protoimpl.X.CompressGZIP(file_trip_proto_rawDescData) + }) + return file_trip_proto_rawDescData +} + +var file_trip_proto_enumTypes = make([]protoimpl.EnumInfo, 7) +var file_trip_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_trip_proto_goTypes = []interface{}{ + (TripLeg_Traversability)(0), // 0: valhalla.TripLeg.Traversability + (TripLeg_Use)(0), // 1: valhalla.TripLeg.Use + (TripLeg_Surface)(0), // 2: valhalla.TripLeg.Surface + (TripLeg_CycleLane)(0), // 3: valhalla.TripLeg.CycleLane + (TripLeg_SacScale)(0), // 4: valhalla.TripLeg.SacScale + (TripLeg_Sidewalk)(0), // 5: valhalla.TripLeg.Sidewalk + (TripLeg_Node_Type)(0), // 6: valhalla.TripLeg.Node.Type + (*TripLeg)(nil), // 7: valhalla.TripLeg + (*TripRoute)(nil), // 8: valhalla.TripRoute + (*Trip)(nil), // 9: valhalla.Trip + (*TripLeg_LaneConnectivity)(nil), // 10: valhalla.TripLeg.LaneConnectivity + (*TripLeg_TrafficSegment)(nil), // 11: valhalla.TripLeg.TrafficSegment + (*TripLeg_Restriction)(nil), // 12: valhalla.TripLeg.Restriction + (*TripLeg_Edge)(nil), // 13: valhalla.TripLeg.Edge + (*TripLeg_IntersectingEdge)(nil), // 14: valhalla.TripLeg.IntersectingEdge + (*TripLeg_Cost)(nil), // 15: valhalla.TripLeg.Cost + (*TripLeg_PathCost)(nil), // 16: valhalla.TripLeg.PathCost + (*TripLeg_Node)(nil), // 17: valhalla.TripLeg.Node + (*TripLeg_Admin)(nil), // 18: valhalla.TripLeg.Admin + (*TripLeg_ShapeAttributes)(nil), // 19: valhalla.TripLeg.ShapeAttributes + (*TripLeg_Incident)(nil), // 20: valhalla.TripLeg.Incident + (*TripLeg_Closure)(nil), // 21: valhalla.TripLeg.Closure + (*Location)(nil), // 22: valhalla.Location + (*BoundingBox)(nil), // 23: valhalla.BoundingBox + (*StreetName)(nil), // 24: valhalla.StreetName + (RoadClass)(0), // 25: valhalla.RoadClass + (*TripSign)(nil), // 26: valhalla.TripSign + (TravelMode)(0), // 27: valhalla.TravelMode + (VehicleType)(0), // 28: valhalla.VehicleType + (PedestrianType)(0), // 29: valhalla.PedestrianType + (BicycleType)(0), // 30: valhalla.BicycleType + (TransitType)(0), // 31: valhalla.TransitType + (*TransitRouteInfo)(nil), // 32: valhalla.TransitRouteInfo + (*TurnLane)(nil), // 33: valhalla.TurnLane + (*TaggedValue)(nil), // 34: valhalla.TaggedValue + (*TransitPlatformInfo)(nil), // 35: valhalla.TransitPlatformInfo + (*TransitStationInfo)(nil), // 36: valhalla.TransitStationInfo + (*TransitEgressInfo)(nil), // 37: valhalla.TransitEgressInfo + (*BikeShareStationInfo)(nil), // 38: valhalla.BikeShareStationInfo + (*IncidentsTile_Metadata)(nil), // 39: valhalla.IncidentsTile.Metadata +} +var file_trip_proto_depIdxs = []int32{ + 22, // 0: valhalla.TripLeg.location:type_name -> valhalla.Location + 17, // 1: valhalla.TripLeg.node:type_name -> valhalla.TripLeg.Node + 18, // 2: valhalla.TripLeg.admin:type_name -> valhalla.TripLeg.Admin + 23, // 3: valhalla.TripLeg.bbox:type_name -> valhalla.BoundingBox + 19, // 4: valhalla.TripLeg.shape_attributes:type_name -> valhalla.TripLeg.ShapeAttributes + 20, // 5: valhalla.TripLeg.incidents:type_name -> valhalla.TripLeg.Incident + 21, // 6: valhalla.TripLeg.closures:type_name -> valhalla.TripLeg.Closure + 7, // 7: valhalla.TripRoute.legs:type_name -> valhalla.TripLeg + 8, // 8: valhalla.Trip.routes:type_name -> valhalla.TripRoute + 24, // 9: valhalla.TripLeg.Edge.name:type_name -> valhalla.StreetName + 25, // 10: valhalla.TripLeg.Edge.road_class:type_name -> valhalla.RoadClass + 0, // 11: valhalla.TripLeg.Edge.traversability:type_name -> valhalla.TripLeg.Traversability + 1, // 12: valhalla.TripLeg.Edge.use:type_name -> valhalla.TripLeg.Use + 2, // 13: valhalla.TripLeg.Edge.surface:type_name -> valhalla.TripLeg.Surface + 26, // 14: valhalla.TripLeg.Edge.sign:type_name -> valhalla.TripSign + 27, // 15: valhalla.TripLeg.Edge.travel_mode:type_name -> valhalla.TravelMode + 28, // 16: valhalla.TripLeg.Edge.vehicle_type:type_name -> valhalla.VehicleType + 29, // 17: valhalla.TripLeg.Edge.pedestrian_type:type_name -> valhalla.PedestrianType + 30, // 18: valhalla.TripLeg.Edge.bicycle_type:type_name -> valhalla.BicycleType + 31, // 19: valhalla.TripLeg.Edge.transit_type:type_name -> valhalla.TransitType + 32, // 20: valhalla.TripLeg.Edge.transit_route_info:type_name -> valhalla.TransitRouteInfo + 3, // 21: valhalla.TripLeg.Edge.cycle_lane:type_name -> valhalla.TripLeg.CycleLane + 5, // 22: valhalla.TripLeg.Edge.sidewalk:type_name -> valhalla.TripLeg.Sidewalk + 10, // 23: valhalla.TripLeg.Edge.lane_connectivity:type_name -> valhalla.TripLeg.LaneConnectivity + 11, // 24: valhalla.TripLeg.Edge.traffic_segment:type_name -> valhalla.TripLeg.TrafficSegment + 33, // 25: valhalla.TripLeg.Edge.turn_lanes:type_name -> valhalla.TurnLane + 12, // 26: valhalla.TripLeg.Edge.restriction:type_name -> valhalla.TripLeg.Restriction + 34, // 27: valhalla.TripLeg.Edge.tagged_value:type_name -> valhalla.TaggedValue + 4, // 28: valhalla.TripLeg.Edge.sac_scale:type_name -> valhalla.TripLeg.SacScale + 0, // 29: valhalla.TripLeg.IntersectingEdge.driveability:type_name -> valhalla.TripLeg.Traversability + 0, // 30: valhalla.TripLeg.IntersectingEdge.cyclability:type_name -> valhalla.TripLeg.Traversability + 0, // 31: valhalla.TripLeg.IntersectingEdge.walkability:type_name -> valhalla.TripLeg.Traversability + 1, // 32: valhalla.TripLeg.IntersectingEdge.use:type_name -> valhalla.TripLeg.Use + 25, // 33: valhalla.TripLeg.IntersectingEdge.road_class:type_name -> valhalla.RoadClass + 26, // 34: valhalla.TripLeg.IntersectingEdge.sign:type_name -> valhalla.TripSign + 15, // 35: valhalla.TripLeg.PathCost.elapsed_cost:type_name -> valhalla.TripLeg.Cost + 15, // 36: valhalla.TripLeg.PathCost.transition_cost:type_name -> valhalla.TripLeg.Cost + 13, // 37: valhalla.TripLeg.Node.edge:type_name -> valhalla.TripLeg.Edge + 14, // 38: valhalla.TripLeg.Node.intersecting_edge:type_name -> valhalla.TripLeg.IntersectingEdge + 6, // 39: valhalla.TripLeg.Node.type:type_name -> valhalla.TripLeg.Node.Type + 35, // 40: valhalla.TripLeg.Node.transit_platform_info:type_name -> valhalla.TransitPlatformInfo + 36, // 41: valhalla.TripLeg.Node.transit_station_info:type_name -> valhalla.TransitStationInfo + 37, // 42: valhalla.TripLeg.Node.transit_egress_info:type_name -> valhalla.TransitEgressInfo + 16, // 43: valhalla.TripLeg.Node.cost:type_name -> valhalla.TripLeg.PathCost + 16, // 44: valhalla.TripLeg.Node.recosts:type_name -> valhalla.TripLeg.PathCost + 38, // 45: valhalla.TripLeg.Node.bss_info:type_name -> valhalla.BikeShareStationInfo + 39, // 46: valhalla.TripLeg.Incident.metadata:type_name -> valhalla.IncidentsTile.Metadata + 47, // [47:47] is the sub-list for method output_type + 47, // [47:47] is the sub-list for method input_type + 47, // [47:47] is the sub-list for extension type_name + 47, // [47:47] is the sub-list for extension extendee + 0, // [0:47] is the sub-list for field type_name +} + +func init() { file_trip_proto_init() } +func file_trip_proto_init() { + if File_trip_proto != nil { + return + } + file_common_proto_init() + file_sign_proto_init() + file_incidents_proto_init() + if !protoimpl.UnsafeEnabled { + file_trip_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TripLeg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trip_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TripRoute); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trip_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Trip); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trip_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TripLeg_LaneConnectivity); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trip_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TripLeg_TrafficSegment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trip_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TripLeg_Restriction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trip_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TripLeg_Edge); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trip_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TripLeg_IntersectingEdge); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trip_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TripLeg_Cost); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trip_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TripLeg_PathCost); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trip_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TripLeg_Node); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trip_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TripLeg_Admin); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trip_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TripLeg_ShapeAttributes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trip_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TripLeg_Incident); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trip_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TripLeg_Closure); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_trip_proto_msgTypes[14].OneofWrappers = []interface{}{ + (*TripLeg_Closure_BeginShapeIndex)(nil), + (*TripLeg_Closure_EndShapeIndex)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trip_proto_rawDesc, + NumEnums: 7, + NumMessages: 15, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_trip_proto_goTypes, + DependencyIndexes: file_trip_proto_depIdxs, + EnumInfos: file_trip_proto_enumTypes, + MessageInfos: file_trip_proto_msgTypes, + }.Build() + File_trip_proto = out.File + file_trip_proto_rawDesc = nil + file_trip_proto_goTypes = nil + file_trip_proto_depIdxs = nil +} diff --git a/proto/valhalla/trip.proto b/proto/valhalla/trip.proto new file mode 100644 index 0000000..59268bb --- /dev/null +++ b/proto/valhalla/trip.proto @@ -0,0 +1,292 @@ +syntax = "proto3"; +option optimize_for = LITE_RUNTIME; +option go_package = "git.coopgo.io/coopgo-platform/routing-service/proto/valhalla"; +package valhalla; +import public "common.proto"; +import public "sign.proto"; +import "incidents.proto"; + +message TripLeg { + + enum Traversability { + kNone = 0; + kForward = 1; + kBackward = 2; + kBoth = 3; + } + + enum Use { + kRoadUse = 0; + kRampUse = 1; // Link - exits/entrance ramps. + kTurnChannelUse = 2; // Link - turn lane. + kTrackUse = 3; // Agricultural use; forest tracks + kDrivewayUse = 4; // Driveway/private service + kAlleyUse = 5; // Service road - limited route use + kParkingAisleUse = 6; // Access roads in parking areas + kEmergencyAccessUse = 7; // Emergency vehicles only + kDriveThruUse = 8; // Commercial drive-thru (banks/fast-food) + kCuldesacUse = 9; // Cul-de-sac (edge that forms a loop and is only + // connected at one node to another edge. + kLivingStreetUse = 10; // Shared space for cars, bikes, pedestrians + kServiceRoadUse = 11; // Generic service road (not driveway, alley, parking aisle, etc.) + + // Bicycle specific uses + kCyclewayUse = 20; // Dedicated bicycle path + kMountainBikeUse = 21; // Mountain bike trail + + kSidewalkUse = 24; + + // Pedestrian specific uses + kFootwayUse = 25; + kStepsUse = 26; // Stairs + kPathUse = 27; + kPedestrianUse = 28; + kBridlewayUse = 29; + kPedestrianCrossingUse = 32; + kElevatorUse = 33; + kEscalatorUse = 34; + + //Rest/Service Areas + kRestAreaUse = 30; + kServiceAreaUse = 31; + + // Other... + kOtherUse = 40; + + // Ferry and rail ferry + kFerryUse = 41; + kRailFerryUse = 42; + + kConstructionUse = 43; // Road under construction + + // Transit specific uses. Must be last in the list + kRailUse = 50; // Rail line + kBusUse = 51; // Bus line + kEgressConnectionUse = 52; // Connection between transit station and transit egress + kPlatformConnectionUse = 53; // Connection between transit station and transit platform + kTransitConnectionUse = 54; // Connection between road network and transit egress + } + + enum Surface { + kPavedSmooth = 0; + kPaved = 1; + kPavedRough = 2; + kCompacted = 3; + kDirt = 4; + kGravel = 5; + kPath = 6; + kImpassable = 7; + } + + enum CycleLane { + kNoCycleLane = 0; + kShared = 1; // Shared use lane (could be shared with pedestrians) + kDedicated = 2; // Dedicated cycle lane + kSeparated = 3; // A separate cycle lane (physical separation from the main carriageway + } + + enum SacScale { + kNoSacScale = 0; + kHiking = 1; + kMountainHiking = 2; + kDemandingMountainHiking = 3; + kAlpineHiking = 4; + kDemandingAlpineHiking = 5; + kDifficultAlpineHiking = 6; + } + + enum Sidewalk { + kNoSidewalk = 0; + kLeft = 1; + kRight = 2; + kBothSides = 3; + } + + message LaneConnectivity { + uint64 from_way_id = 1; + string from_lanes = 2; + string to_lanes = 3; + } + + message TrafficSegment { + uint64 segment_id = 1; + float begin_percent = 2; + float end_percent = 3; + bool starts_segment = 4; + bool ends_segment = 5; + } + + message Restriction{ + uint32 type = 1; + } + + message Edge { + repeated StreetName name = 1; // street names + float length_km = 2; // km + float speed = 3; // km/h + RoadClass road_class = 4; + uint32 begin_heading = 5; // 0-359 + uint32 end_heading = 6; // 0-359 + uint32 begin_shape_index = 7; // inclusive + uint32 end_shape_index = 8; // inclusive + Traversability traversability = 9; + Use use = 10; + bool toll = 11; + bool unpaved = 12; + bool tunnel = 13; + bool bridge = 14; + bool roundabout = 15; + bool internal_intersection = 16; + bool drive_on_left = 17; // [default = false] + Surface surface = 18; + TripSign sign = 19; + TravelMode travel_mode = 20; + VehicleType vehicle_type = 21; + PedestrianType pedestrian_type = 22; + BicycleType bicycle_type = 23; + TransitType transit_type = 24; + TransitRouteInfo transit_route_info = 25; + uint64 id = 26; + uint64 way_id = 27; + float weighted_grade = 28; + int32 max_upward_grade = 29; // set to 32768 if no elevation data + int32 max_downward_grade = 30; // set to 32768 if no elevation data + uint32 lane_count = 31; + CycleLane cycle_lane = 32; + bool bicycle_network = 33; // true if the edge is part of a bike network + Sidewalk sidewalk = 34; + uint32 density = 35; + uint32 speed_limit = 36; // 0 if unavailable, 255 if unlimited + float truck_speed = 37; // km/h, 0 if unavailable + bool truck_route = 38; + repeated LaneConnectivity lane_connectivity = 39; + int32 mean_elevation = 40; // set to 32768 if no elevation data + repeated TrafficSegment traffic_segment = 41; + repeated TurnLane turn_lanes = 42; + bool has_time_restrictions = 43; + float default_speed = 44; // km/h + Restriction restriction = 45; + bool destination_only = 46; + bool is_urban = 47; // uses edge density to decide if edge is in an urban area + repeated TaggedValue tagged_value = 48; + + // for the part of the edge that is used in the path we must know where + // it starts and ends along the length of the edge as a percentage + float source_along_edge = 49; + float target_along_edge = 50; + SacScale sac_scale = 51; + bool shoulder = 52; + bool indoor = 53; + } + + message IntersectingEdge { + uint32 begin_heading = 1; // 0-359 + bool prev_name_consistency = 2; + bool curr_name_consistency = 3; + Traversability driveability = 4; + Traversability cyclability = 5; + Traversability walkability = 6; + Use use = 7; + RoadClass road_class = 8; + uint32 lane_count = 9; + TripSign sign = 10; + } + + message Cost { + double seconds = 1; + double cost = 2; + } + + message PathCost { + Cost elapsed_cost = 1; + Cost transition_cost = 2; + } + + message Node { + enum Type { + kStreetIntersection = 0; // Regular intersection of 2+ roads + kGate = 1; // Gate or rising bollard + kBollard = 2; // Bollard (fixed obstruction) + kTollBooth = 3; // Toll booth / fare collection + // TODO - for now there is no differentiation between bus and rail stops... + kTransitEgress = 4; // Transit egress + kTransitStation = 5; // Transit station + kTransitPlatform = 6; // Transit platform (rail and bus) + kBikeShare = 7; // Bike share location + kParking = 8; // Parking location + kMotorwayJunction = 9; // Highway = motorway_junction + kBorderControl = 10; // Border control + kTollGantry = 11; // Toll gantry + kSumpBuster = 12; // Sump Buster + kBuildingEntrance = 13; // Building Entrance + kElevator = 14; // Elevator + } + Edge edge = 1; + repeated IntersectingEdge intersecting_edge = 2; + uint32 admin_index = 3; // index into the admin list, 0 if unknown + Type type = 4; // The type of node + bool fork = 5; // Fork + TransitPlatformInfo transit_platform_info = 6; + TransitStationInfo transit_station_info = 7; + TransitEgressInfo transit_egress_info = 10; + string time_zone = 11; + PathCost cost = 12; // how much cost did it take at this node in the path + repeated PathCost recosts = 13; // how much cost did it take at this node in the path for recostings + BikeShareStationInfo bss_info = 14; + } + + message Admin { + string country_code = 1; + string country_text = 2; + string state_code = 3; + string state_text = 4; + } + + message ShapeAttributes { + repeated uint32 time = 1 [packed=true]; // milliseconds + repeated uint32 length = 2 [packed=true]; // decimeters + repeated uint32 speed = 3 [packed=true]; // decimeters per sec + // 4 is reserved + repeated uint32 speed_limit = 5 [packed=true]; // speed limit in kph + } + + // we encapsulate the real incident object here so we can add information + // about where it is along the route, ie once its referenced to the route + message Incident { + valhalla.IncidentsTile.Metadata metadata = 1; + // Valhalla additions to incident metadata goes here + uint32 begin_shape_index = 3; + uint32 end_shape_index = 4; + }; + + message Closure { + oneof has_begin_shape_index { + uint32 begin_shape_index = 1; + } + oneof has_end_shape_index { + uint32 end_shape_index = 2; + } + }; + + uint64 osm_changeset = 1; + uint64 trip_id = 2; + uint32 leg_id = 3; + uint32 leg_count = 4; + repeated Location location = 5; + repeated Node node = 6; + repeated Admin admin = 7; + string shape = 8; + BoundingBox bbox = 9; + ShapeAttributes shape_attributes = 10; + repeated Incident incidents = 11; + repeated string algorithms = 12; + repeated Closure closures = 13; +} + +message TripRoute { + repeated TripLeg legs = 1; +} + +message Trip { + repeated TripRoute routes = 1; +} diff --git a/routing.go b/routing.go new file mode 100644 index 0000000..c1e2c1c --- /dev/null +++ b/routing.go @@ -0,0 +1,27 @@ +package routing + +import ( + "fmt" + + "github.com/paulmach/orb" +) + +type RoutingService interface { + Route(locations []orb.Point) (route *Route, err error) +} + +func NewRoutingService(service_type string, baseUrl string) (RoutingService, error) { + if service_type == "valhalla" { + return NewValhallaRouting(baseUrl) + } + + return nil, fmt.Errorf("%s routing service not supported", service_type) +} + +type Route struct { + Summary RouteSummary +} + +type RouteSummary struct { + Polyline string +} diff --git a/valhalla.go b/valhalla.go new file mode 100644 index 0000000..95fc33b --- /dev/null +++ b/valhalla.go @@ -0,0 +1,102 @@ +package routing + +import ( + "bytes" + "errors" + "io/ioutil" + "net/http" + + "git.coopgo.io/coopgo-platform/routing-service/encoding/polylines" + "git.coopgo.io/coopgo-platform/routing-service/proto/valhalla" + "github.com/paulmach/orb" + "google.golang.org/protobuf/proto" +) + +type ValhallaRouting struct { + BaseURL string +} + +func NewValhallaRouting(baseURL string) (*ValhallaRouting, error) { + return &ValhallaRouting{ + BaseURL: baseURL, + }, nil +} + +func (v *ValhallaRouting) Route(locations []orb.Point) (route *Route, err error) { + + valhalla_locations := []*valhalla.Location{} + + for _, loc := range locations { + valhalla_locations = append(valhalla_locations, &valhalla.Location{ + Ll: &valhalla.LatLng{ + HasLat: &valhalla.LatLng_Lat{Lat: loc.Lat()}, + HasLng: &valhalla.LatLng_Lng{Lng: loc.Lon()}, + }, + }) + } + + request := &valhalla.Api{ + Options: &valhalla.Options{ + Action: valhalla.Options_route, + Locations: valhalla_locations, + CostingType: valhalla.Costing_auto_, + Format: valhalla.Options_pbf, + }, + } + + resp, err := v.protocolBufferRequest(request, "route") + if err != nil { + return nil, err + } + + if len(resp.Directions.Routes) < 1 { + return nil, errors.New("no routes returnes by valhalla") + } + + decodedLinestring := orb.LineString{} + + for _, leg := range resp.Directions.Routes[0].Legs { + shape := leg.Shape + decodedShape := polylines.Decode(&shape, 6) + decodedLinestring = append(decodedLinestring, decodedShape...) + } + + return &Route{ + Summary: RouteSummary{ + Polyline: polylines.Encode(decodedLinestring), + }, + }, nil +} + +func (v *ValhallaRouting) protocolBufferRequest(api *valhalla.Api, path string) (*valhalla.Api, error) { + data, err := proto.Marshal(api) + if err != nil { + return nil, err + } + + req, err := http.NewRequest(http.MethodGet, v.BaseURL+path, bytes.NewBuffer(data)) + if err != nil { + return nil, err + } + req.Header.Set("Content-Type", "application/x-protobuf") + + client := http.Client{} + resp, err := client.Do(req) + //resp, err := http.Post(v.BaseURL+path, "application/x-protobuf", bytes.NewBuffer(data)) + if err != nil { + return nil, err + } + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, err + } + + response := valhalla.Api{} + err = proto.Unmarshal(body, &response) + if err != nil { + return nil, err + } + + return &response, nil +}