diff --git a/conformance/tests/ot_sort.py b/conformance/tests/ot_sort.py
new file mode 100644
index 00000000..dc01a45c
--- /dev/null
+++ b/conformance/tests/ot_sort.py
@@ -0,0 +1,45 @@
+from __future__ import absolute_import
+
+import gripql
+
+def test_sort_name(man):
+ errors = []
+
+ G = man.setGraph("swapi")
+
+ q = G.query().V().hasLabel("Character").sort( "name" )
+ last = ""
+ for row in q:
+ #print(row)
+ if row["data"]["name"] < last:
+ errors.append("incorrect sort: %s < %s" % (row["data"]["name"], last))
+ last = row["data"]["name"]
+ return errors
+
+
+
+def test_sort_units(man):
+ errors = []
+ G = man.setGraph("swapi")
+
+ q = G.query().V().hasLabel("Vehicle").sort( "max_atmosphering_speed" )
+ last = 0
+ for row in q:
+ #print(row)
+ value = row["data"]["max_atmosphering_speed"]
+ if value < last:
+ errors.append("incorrect sort: %s < %s" % (value, last))
+ last = value
+
+
+ q = G.query().V().hasLabel("Vehicle").sort( "max_atmosphering_speed", decending=True )
+ last = 1000000000
+ for row in q:
+ #print(row)
+ value = row["data"]["max_atmosphering_speed"]
+ if value > last:
+ errors.append("incorrect sort: %s > %s" % (value, last))
+ last = value
+
+ return errors
+
diff --git a/docs/docs/developer/architecture.d2 b/docs/docs/developer/architecture.d2
new file mode 100644
index 00000000..ecbd726e
--- /dev/null
+++ b/docs/docs/developer/architecture.d2
@@ -0,0 +1,90 @@
+
+
+gripql-python: "gripql/python" {
+ text: |md
+# gripql
+
+Python library
+|
+}
+
+gripql-python -> gripql.http
+
+grip-client : "cmd/" {
+ graph {
+ create
+ drop
+ stream
+ list
+ schema
+ }
+
+ data {
+ kvload
+ load
+ dump
+ mongoload
+ query
+ delete
+ }
+
+ config {
+ mapping
+ plugin
+ info
+ }
+
+ jobs {
+ job
+ }
+}
+
+grip-client -> gripql.grpc
+
+gripql : "gripql/" {
+
+ text: |md
+Protobuf defined code
+|
+ grpc
+ grpc-gateway
+
+ http -> grpc-gateway
+ grpc-gateway -> grpc : protobuf via network
+
+ http -> grpc-dgw
+}
+
+
+gripql.grpc -> server
+gripql.grpc-dgw -> server
+
+server : "server/" {
+
+}
+
+server -> pipeline
+
+pipeline {
+ gripql-parser
+ compiler
+}
+
+gdbi {
+ mongo
+ mongo-core
+ pebble
+}
+
+pipeline.compiler -> gdbi
+
+server -> jobs
+
+jobs {
+ store
+ search
+ drivers : {
+ opensearch
+ flat file
+ }
+}
\ No newline at end of file
diff --git a/docs/docs/index.xml b/docs/docs/index.xml
new file mode 100644
index 00000000..142a8eda
--- /dev/null
+++ b/docs/docs/index.xml
@@ -0,0 +1,242 @@
+
+
+
+ Docs on GRIP
+ https://bmeg.github.io/grip/docs/
+ Recent content in Docs on GRIP
+ Hugo -- gohugo.io
+ en-us
+
+ -
+
+ https://bmeg.github.io/grip/docs/tutorials/pathway-commons/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/tutorials/pathway-commons/
+ Get Pathway Commons release
curl -O http://www.pathwaycommons.org/archives/PC2/v10/PathwayCommons10.All.BIOPAX.owl.gz Convert to Property Graph
grip rdf --dump --gzip pc PathwayCommons10.All.BIOPAX.owl.gz -m "http://pathwaycommons.org/pc2/#=pc:" -m "http://www.biopax.org/release/biopax-level3.owl#=biopax:"
+
+ -
+ Amazon Purchase Network
+ https://bmeg.github.io/grip/docs/tutorials/amazon/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/tutorials/amazon/
+ Explore Amazon Product Co-Purchasing Network Metadata Download the data
curl -O http://snap.stanford.edu/data/bigdata/amazon/amazon-meta.txt.gz Convert the data into vertices and edges
python $GOPATH/src/github.com/bmeg/grip/example/amazon_convert.py amazon-meta.txt.gz amazon.data Create a graph called ‘amazon’
grip create amazon Load the vertices/edges into the graph
grip load amazon --edge amazon.data.edge --vertex amazon.data.vertex Query the graph
command line client
grip query amazon 'O.query().V().out()' python client
pip install "git+https://github.com/bmeg/grip.git#egg=gripql&subdirectory=gripql/python/" import gripql conn = gripql.Connection("http://localhost:8201") g = conn.graph("amazon") # Count the Vertices print g.
+
+ -
+ Basic Auth
+ https://bmeg.github.io/grip/docs/security/basic/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/security/basic/
+ Basic Auth By default, an GRIP server allows open access to its API endpoints, but it can be configured to require basic password authentication. To enable this, include users and passwords in your config file:
Server: BasicAuth: - User: testuser Password: abc123 Make sure to properly protect the configuration file so that it’s not readable by everyone:
$ chmod 600 grip.config.yml To use the password, set the GRIP_USER and GRIP_PASSWORD environment variables:
+
+ -
+ Database Configuration
+ https://bmeg.github.io/grip/docs/databases/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/databases/
+
+
+ -
+ Developers
+ https://bmeg.github.io/grip/docs/developers/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/developers/
+
+
+ -
+ drop
+ https://bmeg.github.io/grip/docs/commands/drop/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/commands/drop/
+ grip drop <graph> Deletes a graph.
+
+ -
+ Embedded KV Store
+ https://bmeg.github.io/grip/docs/databases/kvstore/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/databases/kvstore/
+ Embedded Key Value Stores GRIP supports storing vertices and edges in a variety of key-value stores including:
Badger BoltDB LevelDB Config:
Default: kv Driver: kv: Badger: grip.db
+
+ -
+ er
+ https://bmeg.github.io/grip/docs/commands/er/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/commands/er/
+ grip er The External Resource system allows GRIP to plug into existing data systems and integrate them into queriable graphs. The grip er sub command acts as a client to the external resource plugin proxies, issues command and displays the results. This is often useful for debugging external resources before making them part of an actual graph.
List collections provided by external resource
grip er list Get info about a collection
+
+ -
+ External Resource Proxies
+ https://bmeg.github.io/grip/docs/gripper/proxy/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/gripper/proxy/
+ GRIPPER GRIPPER proxy With the external resources normalized to a single data model, the graph model describes how to connect the set of collections into a graph model. Each GRIPPER is required to provide a GRPC interface that allows access to collections stored in the resource.
The required functions include:
rpc GetCollections(Empty) returns (stream Collection); GetCollections returns a list of all of the Collections accessible via this server.
rpc GetCollectionInfo(Collection) returns (CollectionInfo); GetCollectionInfo provides information, such as the list of indexed fields, in a collection.
+
+ -
+ Getting Started
+ https://bmeg.github.io/grip/docs/queries/getting_started/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/queries/getting_started/
+ Getting Started GRIP has an API for making graph queries using structured data. Queries are defined using a series of step operations.
Install the Python Client Available on PyPI.
pip install gripql Or install the latest development version:
pip install "git+https://github.com/bmeg/grip.git#subdirectory=gripql/python" Using the Python Client Let’s go through the features currently supported in the python client.
First, import the client and create a connection to an GRIP server:
import gripql G = gripql.
+
+ -
+ Graph Model
+ https://bmeg.github.io/grip/docs/gripper/graphmodel/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/gripper/graphmodel/
+ GRIPPER GRIP Plugable External Resources
Graph Model The graph model describes how GRIP will access multiple gripper servers. The mapping of these data resources is done using a graph. The vertices represent how each vertex type will be mapped, and the edges describe how edges will be created. The gid of each vertex represents the prefix domain of all vertices that can be found in that source.
The sources referenced by the graph are provided to GRIP at run time, each named resource is a different GRIPPER plugin that abstracts an external resource.
+
+ -
+ Graph Schemas
+ https://bmeg.github.io/grip/docs/graphql/graph_schemas/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/graphql/graph_schemas/
+ Graph Schemas Most GRIP based graphs are not required to have a strict schema. However, GraphQL requires a graph schema as part of it’s API. To utilize the GraphQL endpoint, there must be a Graph Schema provided to be used by the GRIP engine to determine how to render a GraphQL endpoint. Graph schemas are themselves an instance of a graph. As such, they can be traversed like any other graph.
+
+ -
+ GraphQL
+ https://bmeg.github.io/grip/docs/graphql/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/graphql/
+
+
+ -
+ GraphQL
+ https://bmeg.github.io/grip/docs/graphql/graphql/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/graphql/graphql/
+ GraphQL GraphQL support is considered Alpha. The code is not stable and the API will likely change. GraphQL access is only supported when using the MongoDB driver
GRIP supports GraphQL access of the property graphs. Currently this is read-only access to the graph.
Load built-in example graph Loading the example data and the example schema:
grip load example-graph See the example graph
grip dump example-graph --vertex --edge Sample components of the graph to produce a schema and store to a file
+
+ -
+ GRIP Commands
+ https://bmeg.github.io/grip/docs/commands/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/commands/
+
+
+ -
+ GRIP Plugable External Resources
+ https://bmeg.github.io/grip/docs/gripper/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/gripper/
+
+
+ -
+ GRIPPER
+ https://bmeg.github.io/grip/docs/databases/gripper/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/databases/gripper/
+ GRIPPER GRIP Plugable External Resources are data systems that GRIP can combine together to create graphs.
Example:
Drivers: swapi-driver: Gripper: ConfigFile: ./swapi.yaml Graph: swapi ConfigFile - Path to GRIPPER graph map
Graph - Name of the graph for the mapped external resources.
+
+ -
+ Intro
+ https://bmeg.github.io/grip/docs/gripper/gripper/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/gripper/gripper/
+ GRIPPER GRIP Plugin External Resources GRIP Plugin External Resources (GRIPPERs) are GRIP drivers that take external resources and allow GRIP to access them are part of a unified graph. To integrate new resources into the graph, you first deploy griper proxies that plug into the external resources. They are unique and configured to access specific resources. These provide a view into external resources as a series of document collections. For example, an SQL gripper would plug into an SQL server and provide the tables as a set of collections with each every row a document.
+
+ -
+ Iteration
+ https://bmeg.github.io/grip/docs/queries/iterations/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/queries/iterations/
+ Iteration API A common operation in graph search is the ability to iterative repeat a search pattern. For example, a ‘friend of a friend’ search may become a ‘friend of a friend of a friend’ search.
In the GripQL language cycles, iterations and conditional operations are encoded using ‘mark’ and ‘jump’ based interface. This operations are similar to using a ‘goto’ statement in a traditional programming language. While more primitive than the repeat mechanisms seen in Gremlin, this pattern allows for a much more simple query compilation and implementation.
+
+ -
+ Jobs API
+ https://bmeg.github.io/grip/docs/queries/jobs_api/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/queries/jobs_api/
+ Jobs API Not all queries return instantaneously, additionally some queries elements are used repeatedly. The query Jobs API provides a mechanism to submit graph traversals that will be evaluated asynchronously and can be retrieved at a later time.
Submitting a job job = G.query().V().hasLabel("Planet").out().submit() Getting job status jinfo = G.getJob(job["id"]) Example job info:
{ "id": "job-326392951", "graph": "test_graph_qd7rs7", "state": "COMPLETE", "count": "12", "query": [{"v": []}, {"hasLabel": ["Planet"]}, {"as": "a"}, {"out": []}], "timestamp": "2021-03-30T23:12:01-07:00" } Reading job results for row in G.
+
+ -
+ list
+ https://bmeg.github.io/grip/docs/commands/list/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/commands/list/
+ grip list graphs grip list graphs
+
+ -
+ MongoDB
+ https://bmeg.github.io/grip/docs/databases/mongo/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/databases/mongo/
+ MongoDB GRIP supports storing vertices and edges in MongoDB.
Config:
Default: mongo Drivers: mongo: MongoDB: URL: "mongodb://localhost:27000" DBName: "gripdb" Username: "" Password: "" UseCorePipeline: False BatchSize: 0 UseCorePipeline - Default is to use Mongo pipeline API to do graph traversals. By enabling UseCorePipeline, GRIP will do the traversal logic itself, only using Mongo for graph storage.
BatchSize - For core engine operations, GRIP dispatches element lookups in batches to minimize query overhead.
+
+ -
+ mongoload
+ https://bmeg.github.io/grip/docs/commands/mongoload/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/commands/mongoload/
+ grip mongoload
+
+ -
+ Operations
+ https://bmeg.github.io/grip/docs/queries/operations/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/queries/operations/
+ Start a Traversal .V([ids]) Start query from Vertex
G.query().V() Returns all vertices in graph
G.query().V(["vertex1"]) Returns:
{"gid" : "vertex1", "label":"TestVertex", "data":{}} .E([ids]) Start query from Edge
G.query().E() Returns all edges in graph
G.query().E(["edge1"]) Returns:
{"gid" : "edge1", "label":"TestEdge", "from": "vertex1", "to": "vertex2", "data":{}} Traverse the graph .in_(), inV() Following incoming edges. Optional argument is the edge label (or list of labels) that should be followed. If no argument is provided, all incoming edges.
+
+ -
+ PostgreSQL
+ https://bmeg.github.io/grip/docs/databases/psql/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/databases/psql/
+ PostgreSQL GRIP supports storing vertices and edges in PostgreSQL.
Config:
Default: psql Drivers: psql: PSQL: Host: localhost Port: 15432 User: "" Password: "" DBName: "grip" SSLMode: disable
+
+ -
+ query
+ https://bmeg.github.io/grip/docs/commands/query/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/commands/query/
+ grip query <graph> <query> Run a query on a graph.
+
+ -
+ Query a Graph
+ https://bmeg.github.io/grip/docs/queries/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/queries/
+
+
+ -
+ Referencing Fields
+ https://bmeg.github.io/grip/docs/queries/jsonpath/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/queries/jsonpath/
+ Referencing Vertex/Edge Properties Several operations (where, fields, render, etc.) reference properties of the vertices/edges during the traversal. GRIP uses a variation on JSONPath syntax as described in http://goessner.net/articles/ to reference fields during traversals.
The following query:
O.query().V(["ENSG00000012048"]).as_("gene").out("variant") Starts at vertex ENSG00000012048 and marks as gene:
{ "gid": "ENSG00000012048", "label": "gene", "data": { "symbol": { "ensembl": "ENSG00000012048", "hgnc": 1100, "entrez": 672, "hugo": "BRCA1" } "transcipts": ["ENST00000471181.7", "ENST00000357654.8", "ENST00000493795.5"] } } as “gene” and traverses the graph to:
+
+ -
+ Security
+ https://bmeg.github.io/grip/docs/security/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/security/
+
+
+ -
+ server
+ https://bmeg.github.io/grip/docs/commands/server/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/commands/server/
+ grip server The server command starts up a graph server and waits for incoming requests.
Default Configuration If invoked with no arguments or config files, GRIP will start up in embedded mode, using a Badger based graph driver.
Networking By default the GRIP server operates on 2 ports, 8201 is the HTTP based interface. Port 8202 is a GRPC based interface. Python, R and Javascript clients are designed to connect to the HTTP interface on 8201.
+
+ -
+ SQL
+ https://bmeg.github.io/grip/docs/databases/sql/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/databases/sql/
+ Connect to an existing SQL database Note: This driver is being superseded by the GRIPPER engine
GRIP supports modeling an existing SQL database as a graph. GRIP has been tested against PostgreSQL, but should work with MySQL (4.1+) and MariaDB.
Since GRIP uses Go’s database/sql package, we could (in thoery) support any SQL databases listed on: https://github.com/golang/go/wiki/SQLDrivers. Open an issue if you would like to request support for your favorite SQL database.
+
+ -
+ TCGA RNA Expression
+ https://bmeg.github.io/grip/docs/tutorials/tcga-rna/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/tutorials/tcga-rna/
+ Explore TCGA RNA Expression Data Create the graph
grip create tcga-rna Get the data
curl -O http://download.cbioportal.org/gbm_tcga_pub2013.tar.gz tar xvzf gbm_tcga_pub2013.tar.gz Load clinical data
./example/load_matrix.py tcga-rna gbm_tcga_pub2013/data_clinical.txt --row-label 'Donor' Load RNASeq data
./example/load_matrix.py tcga-rna gbm_tcga_pub2013/data_RNA_Seq_v2_expression_median.txt -t --index-col 1 --row-label RNASeq --row-prefix "RNA:" --exclude RNA:Hugo_Symbol Connect RNASeq data to Clinical data
./example/load_matrix.py tcga-rna gbm_tcga_pub2013/data_RNA_Seq_v2_expression_median.txt -t --index-col 1 --no-vertex --edge 'RNA:{_gid}' rna Connect Clinical data to subtypes
./example/load_matrix.py tcga-rna gbm_tcga_pub2013/data_clinical.txt --no-vertex -e "{EXPRESSION_SUBTYPE}" subtype --dst-vertex "{EXPRESSION_SUBTYPE}" Subtype Load Hugo Symbol to EntrezID translation table from RNA matrix annotations
+
+ -
+ Tutorials
+ https://bmeg.github.io/grip/docs/tutorials/
+ Mon, 01 Jan 0001 00:00:00 +0000
+ https://bmeg.github.io/grip/docs/tutorials/
+
+
+
+
diff --git a/engine/core/processors.go b/engine/core/processors.go
index 12696259..dd4d7d9f 100644
--- a/engine/core/processors.go
+++ b/engine/core/processors.go
@@ -3,23 +3,12 @@ package core
import (
"bytes"
"context"
- "encoding/binary"
- "encoding/json"
"fmt"
- "math"
- "reflect"
- "sort"
"github.com/bmeg/grip/engine/logic"
"github.com/bmeg/grip/gdbi"
- "github.com/bmeg/grip/gdbi/tpath"
- "github.com/bmeg/grip/gripql"
- "github.com/bmeg/grip/kvi"
- "github.com/bmeg/grip/log"
"github.com/bmeg/grip/util/copy"
- "github.com/influxdata/tdigest"
"github.com/spf13/cast"
- "golang.org/x/sync/errgroup"
)
////////////////////////////////////////////////////////////////////////////////
@@ -154,242 +143,6 @@ func (l *LookupEdges) Process(ctx context.Context, man gdbi.Manager, in gdbi.InP
////////////////////////////////////////////////////////////////////////////////
-// LookupVertexAdjOut finds out vertex
-type LookupVertexAdjOut struct {
- db gdbi.GraphInterface
- labels []string
- loadData bool
- emitNull bool
-}
-
-// Process runs out vertex
-func (l *LookupVertexAdjOut) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
- queryChan := make(chan gdbi.ElementLookup, 100)
- go func() {
- defer close(queryChan)
- for t := range in {
- if t.IsSignal() || t.IsNull() {
- queryChan <- gdbi.ElementLookup{
- Ref: t,
- }
- } else {
- queryChan <- gdbi.ElementLookup{
- ID: t.GetCurrentID(),
- Ref: t,
- }
- }
- }
- }()
- go func() {
- defer close(out)
- for ov := range l.db.GetOutChannel(ctx, queryChan, l.loadData, l.emitNull, l.labels) {
- if ov.IsSignal() {
- out <- ov.Ref
- } else {
- i := ov.Ref
- out <- i.AddCurrent(ov.Vertex)
- }
- }
- }()
- return ctx
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-// LookupEdgeAdjOut finds out edge
-type LookupEdgeAdjOut struct {
- db gdbi.GraphInterface
- labels []string
- loadData bool
-}
-
-// Process runs LookupEdgeAdjOut
-func (l *LookupEdgeAdjOut) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
- queryChan := make(chan gdbi.ElementLookup, 100)
- go func() {
- defer close(queryChan)
- for t := range in {
- if t.IsSignal() {
- queryChan <- gdbi.ElementLookup{Ref: t}
- } else {
- queryChan <- gdbi.ElementLookup{
- ID: t.GetCurrent().Get().To,
- Ref: t,
- }
- }
- }
- }()
- go func() {
- defer close(out)
- for v := range l.db.GetVertexChannel(ctx, queryChan, l.loadData) {
- i := v.Ref
- if i.IsSignal() {
- out <- i
- } else {
- out <- i.AddCurrent(v.Vertex)
- }
- }
- }()
- return ctx
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-// LookupVertexAdjIn finds incoming vertex
-type LookupVertexAdjIn struct {
- db gdbi.GraphInterface
- labels []string
- loadData bool
- emitNull bool
-}
-
-// Process runs LookupVertexAdjIn
-func (l *LookupVertexAdjIn) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
- queryChan := make(chan gdbi.ElementLookup, 100)
- go func() {
- defer close(queryChan)
- for t := range in {
- if t.IsSignal() {
- queryChan <- gdbi.ElementLookup{Ref: t}
- } else {
- queryChan <- gdbi.ElementLookup{
- ID: t.GetCurrentID(),
- Ref: t,
- }
- }
- }
- }()
- go func() {
- defer close(out)
- for v := range l.db.GetInChannel(ctx, queryChan, l.loadData, l.emitNull, l.labels) {
- i := v.Ref
- if i.IsSignal() {
- out <- i
- } else {
- out <- i.AddCurrent(v.Vertex)
- }
- }
- }()
- return ctx
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-// LookupEdgeAdjIn finds incoming edge
-type LookupEdgeAdjIn struct {
- db gdbi.GraphInterface
- labels []string
- loadData bool
-}
-
-// Process runs LookupEdgeAdjIn
-func (l *LookupEdgeAdjIn) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
- queryChan := make(chan gdbi.ElementLookup, 100)
- go func() {
- defer close(queryChan)
- for t := range in {
- if t.IsSignal() {
- queryChan <- gdbi.ElementLookup{Ref: t}
- } else {
- queryChan <- gdbi.ElementLookup{
- ID: t.GetCurrent().Get().From,
- Ref: t,
- }
- }
- }
- }()
- go func() {
- defer close(out)
- for v := range l.db.GetVertexChannel(ctx, queryChan, l.loadData) {
- i := v.Ref
- if i.IsSignal() {
- out <- i
- } else {
- out <- i.AddCurrent(v.Vertex)
- }
- }
- }()
- return ctx
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-// InE finds the incoming edges
-type InE struct {
- db gdbi.GraphInterface
- labels []string
- loadData bool
- emitNull bool
-}
-
-// Process runs InE
-func (l *InE) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
- queryChan := make(chan gdbi.ElementLookup, 100)
- go func() {
- defer close(queryChan)
- for t := range in {
- if t.IsSignal() {
- queryChan <- gdbi.ElementLookup{Ref: t}
- } else {
- queryChan <- gdbi.ElementLookup{
- ID: t.GetCurrentID(),
- Ref: t,
- }
- }
- }
- }()
- go func() {
- defer close(out)
- for v := range l.db.GetInEdgeChannel(ctx, queryChan, l.loadData, l.emitNull, l.labels) {
- i := v.Ref
- if i.IsSignal() {
- out <- i
- } else {
- out <- i.AddCurrent(v.Edge)
- }
- }
- }()
- return ctx
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-// OutE finds the outgoing edges
-type OutE struct {
- db gdbi.GraphInterface
- labels []string
- loadData bool
- emitNull bool
-}
-
-// Process runs OutE
-func (l *OutE) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
- queryChan := make(chan gdbi.ElementLookup, 100)
- go func() {
- defer close(queryChan)
- for t := range in {
- if t.IsSignal() {
- queryChan <- gdbi.ElementLookup{Ref: t}
- } else {
- queryChan <- gdbi.ElementLookup{
- ID: t.GetCurrentID(),
- Ref: t,
- }
- }
- }
- }()
- go func() {
- defer close(out)
- for v := range l.db.GetOutEdgeChannel(ctx, queryChan, l.loadData, l.emitNull, l.labels) {
- i := v.Ref
- out <- i.AddCurrent(v.Edge)
- }
- }()
- return ctx
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
// Fields selects fields from current element
type Fields struct {
keys []string
@@ -436,74 +189,6 @@ func (r *Render) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe,
////////////////////////////////////////////////////////////////////////////////
-// Render takes current state and renders into requested structure
-type Pivot struct {
- Stmt *gripql.PivotStep
-}
-
-// Process runs the pivot processor
-func (r *Pivot) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
- go func() {
- defer close(out)
- kv := man.GetTempKV()
- defer kv.Close()
- kv.BulkWrite(func(bl kvi.KVBulkWrite) error {
- for t := range in {
- if t.IsSignal() {
- out <- t
- continue
- }
- //fmt.Printf("Checking %#v\n", t.GetCurrent())
- id := gdbi.TravelerPathLookup(t, r.Stmt.Id)
- if idStr, ok := id.(string); ok {
- field := gdbi.TravelerPathLookup(t, r.Stmt.Field)
- if fieldStr, ok := field.(string); ok {
- value := gdbi.TravelerPathLookup(t, r.Stmt.Value)
- if v, err := json.Marshal(value); err == nil {
- key := bytes.Join([][]byte{[]byte(idStr), []byte(fieldStr)}, []byte{0})
- bl.Set(key, v)
- }
- }
- }
- }
- return nil
- })
- kv.View(func(it kvi.KVIterator) error {
- it.Seek([]byte{0})
- lastKey := ""
- curDict := map[string]any{}
- for it.Seek([]byte{0}); it.Valid(); it.Next() {
- tmp := bytes.Split(it.Key(), []byte{0})
- curKey := string(tmp[0])
- curField := string(tmp[1])
- if lastKey == "" {
- lastKey = curKey
- }
- var curData any
- value, _ := it.Value()
- json.Unmarshal(value, &curData)
- if lastKey != curKey {
- curDict["_id"] = curKey
- out <- &gdbi.BaseTraveler{Render: curDict}
- curDict = map[string]any{}
- curDict[curField] = curData
- lastKey = curKey
- } else {
- curDict[curField] = curData
- }
- }
- if lastKey != "" {
- curDict["_id"] = lastKey
- out <- &gdbi.BaseTraveler{Render: curDict}
- }
- return nil
- })
- }()
- return ctx
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
// Path tells system to return path data
type Path struct {
Template interface{} //this isn't really used yet.
@@ -582,92 +267,6 @@ func (r *Unwind) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe,
////////////////////////////////////////////////////////////////////////////////
-// Group
-type Group struct {
- grouping map[string]string
-}
-
-func (r *Group) reduce(curTraveler *gdbi.BaseTraveler, newTraveler *gdbi.BaseTraveler) {
- for dest, field := range r.grouping {
- v := gdbi.TravelerPathLookup(newTraveler, field)
- if curTraveler.Current != nil {
- if a, ok := curTraveler.Current.Data[dest]; ok {
- if aSlice, ok := a.([]any); ok {
- curTraveler.Current.Data[dest] = append(aSlice, v)
- } else if !ok {
- // overwrite existing data
- curTraveler.Current.Data[dest] = []any{v}
- }
- } else {
- curTraveler.Current.Data[dest] = []any{v}
- }
- }
- }
-}
-
-// Process runs the render processor
-func (r *Group) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
- go func() {
- defer close(out)
- kv := man.GetTempKV()
- defer kv.Close()
-
- //collect
- kv.BulkWrite(func(bl kvi.KVBulkWrite) error {
- var idx uint64 = 0
- idxKey := make([]byte, 8)
- for t := range in {
- if t.IsSignal() {
- out <- t
- continue
- } else {
- //fmt.Printf("Checking %#v\n", t.GetCurrent())
- idStr := t.GetCurrentID()
- binary.LittleEndian.PutUint64(idxKey, idx)
- key := append([]byte(idStr), idxKey...) // the key is the graph element key, plus the index
- if v, err := json.Marshal(t); err == nil {
- bl.Set(key, v)
- }
- idx++
- }
- }
- return nil
- })
- //group
- kv.View(func(it kvi.KVIterator) error {
- it.Seek([]byte{0})
- lastKey := ""
- var curTraveler *gdbi.BaseTraveler
- for it.Seek([]byte{0}); it.Valid(); it.Next() {
- k := it.Key()
- curKey := string(k[0 : len(k)-8]) // remove index suffix
- newTraveler := gdbi.BaseTraveler{}
- value, _ := it.Value()
- json.Unmarshal(value, &newTraveler)
- //fmt.Printf("curKey: (%s) %s\n", curKey, newTraveler)
- if lastKey != curKey {
- if curTraveler != nil {
- out <- curTraveler
- }
- curTraveler = &newTraveler
- lastKey = curKey
- r.reduce(curTraveler, &newTraveler)
- } else {
- r.reduce(curTraveler, &newTraveler)
- }
- }
- if lastKey != "" {
- out <- curTraveler
- }
- return nil
- })
-
- }()
- return ctx
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
// ToType
type ToType struct {
Field string
@@ -694,112 +293,6 @@ func (tt *ToType) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe,
////////////////////////////////////////////////////////////////////////////////
-// Has filters based on data
-type Has struct {
- stmt *gripql.HasExpression
-}
-
-// Process runs Has
-func (w *Has) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
- go func() {
- defer close(out)
- for t := range in {
- if t.IsSignal() {
- out <- t
- continue
- }
-
- if logic.MatchesHasExpression(t, w.stmt) {
- out <- t
- }
- }
- }()
- return ctx
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-// HasLabel filters elements based on their label.
-type HasLabel struct {
- labels []string
-}
-
-// Process runs Count
-func (h *HasLabel) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
- labels := dedupStringSlice(h.labels)
- go func() {
- defer close(out)
- for t := range in {
- if t.IsSignal() {
- out <- t
- continue
- }
- if contains(labels, t.GetCurrent().Get().Label) {
- out <- t
- }
- }
- }()
- return ctx
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-// HasKey filters elements based on whether it has one or more properties.
-type HasKey struct {
- keys []string
-}
-
-// Process runs Count
-func (h *HasKey) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
- go func() {
- keys := dedupStringSlice(h.keys)
- defer close(out)
- for t := range in {
- if t.IsSignal() {
- out <- t
- continue
- }
- found := true
- for _, key := range keys {
- if !gdbi.TravelerPathExists(t, key) {
- found = false
- }
- }
- if found {
- out <- t
- }
- }
- }()
- return ctx
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-// HasID filters elements based on their id.
-type HasID struct {
- ids []string
-}
-
-// Process runs Count
-func (h *HasID) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
- go func() {
- defer close(out)
- ids := dedupStringSlice(h.ids)
- for t := range in {
- if t.IsSignal() {
- out <- t
- continue
- }
- if contains(ids, t.GetCurrentID()) {
- out <- t
- }
- }
- }()
- return ctx
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
// Count incoming elements
type Count struct{}
@@ -1066,281 +559,3 @@ func (s *MarkSelect) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPi
}()
return ctx
}
-
-////////////////////////////////////////////////////////////////////////////////
-
-type both struct {
- db gdbi.GraphInterface
- labels []string
- lastType gdbi.DataType
- toType gdbi.DataType
- loadData bool
-}
-
-func (b both) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
- go func() {
- defer close(out)
- var procs []gdbi.Processor
- switch b.lastType {
- case gdbi.VertexData:
- switch b.toType {
- case gdbi.EdgeData:
- procs = []gdbi.Processor{
- &InE{db: b.db, loadData: b.loadData, labels: b.labels},
- &OutE{db: b.db, loadData: b.loadData, labels: b.labels},
- }
- default:
- procs = []gdbi.Processor{
- &LookupVertexAdjIn{db: b.db, labels: b.labels, loadData: b.loadData},
- &LookupVertexAdjOut{db: b.db, labels: b.labels, loadData: b.loadData},
- }
- }
- case gdbi.EdgeData:
- procs = []gdbi.Processor{
- &LookupEdgeAdjIn{db: b.db, labels: b.labels, loadData: b.loadData},
- &LookupEdgeAdjOut{db: b.db, labels: b.labels, loadData: b.loadData},
- }
- }
- chanIn := make([]chan gdbi.Traveler, len(procs))
- chanOut := make([]chan gdbi.Traveler, len(procs))
- for i := range procs {
- chanIn[i] = make(chan gdbi.Traveler, 1000)
- chanOut[i] = make(chan gdbi.Traveler, 1000)
- }
- for i, p := range procs {
- p.Process(ctx, man, chanIn[i], chanOut[i])
- }
- for t := range in {
- if t.IsSignal() {
- out <- t
- continue
- }
- for _, ch := range chanIn {
- ch <- t
- }
- }
- for _, ch := range chanIn {
- close(ch)
- }
- for i := range procs {
- for c := range chanOut[i] {
- out <- c
- }
- }
- }()
- return ctx
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-type aggregate struct {
- aggregations []*gripql.Aggregate
-}
-
-func (agg *aggregate) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
- aChans := make(map[string](chan gdbi.Traveler))
- g, ctx := errgroup.WithContext(ctx)
-
- // # of travelers to buffer for agg
- bufferSize := 1000
- for _, a := range agg.aggregations {
- aChans[a.Name] = make(chan gdbi.Traveler, bufferSize)
- }
-
- g.Go(func() error {
- for t := range in {
- if t.IsSignal() {
- out <- t
- continue
- }
- for _, a := range agg.aggregations {
- aChans[a.Name] <- t
- }
- }
- for _, a := range agg.aggregations {
- if aChans[a.Name] != nil {
- close(aChans[a.Name])
- //aChans[a.Name] = nil
- }
- }
- return nil
- })
-
- for _, a := range agg.aggregations {
- a := a
- switch a.Aggregation.(type) {
- case *gripql.Aggregate_Term:
- g.Go(func() error {
- // max # of terms to collect before failing
- // since the term can be a string this still isn't particularly safe
- // the terms could be arbitrarily large strings and storing this many could eat up
- // lots of memory.
- maxTerms := 100000
-
- tagg := a.GetTerm()
- size := tagg.Size
-
- // Collect error to return. Because we are reading a channel, it must be fully emptied
- // If we return error before fully emptying channel, upstream processes will lock
- var outErr error
- fieldTermCounts := map[interface{}]int{}
- for t := range aChans[a.Name] {
- if len(fieldTermCounts) > maxTerms {
- outErr = fmt.Errorf("term aggreagtion: collected more unique terms (%v) than allowed (%v)", len(fieldTermCounts), maxTerms)
- } else {
- val := gdbi.TravelerPathLookup(t, tagg.Field)
- if val != nil {
- k := reflect.TypeOf(val).Kind()
- if k != reflect.Array && k != reflect.Slice && k != reflect.Map {
- fieldTermCounts[val]++
-
- }
- }
- }
- }
-
- count := 0
- for term, tcount := range fieldTermCounts {
- if size <= 0 || count < int(size) {
- //sTerm, _ := structpb.NewValue(term)
- //fmt.Printf("Term: %s %s %d\n", a.Name, sTerm, tcount)
- out <- &gdbi.BaseTraveler{Aggregation: &gdbi.Aggregate{Name: a.Name, Key: term, Value: float64(tcount)}}
- }
- }
- return outErr
- })
-
- case *gripql.Aggregate_Histogram:
-
- g.Go(func() error {
- // max # of values to collect before failing
- maxValues := 10000000
-
- hagg := a.GetHistogram()
- i := float64(hagg.Interval)
-
- c := 0
- fieldValues := []float64{}
-
- // Collect error to return. Because we are reading a channel, it must be fully emptied
- // If we return error before fully emptying channel, upstream processes will lock
- var outErr error
- for t := range aChans[a.Name] {
- val := gdbi.TravelerPathLookup(t, hagg.Field)
- if val != nil {
- fval, err := cast.ToFloat64E(val)
- if err != nil {
- outErr = fmt.Errorf("histogram aggregation: can't convert %v to float64", val)
- }
- fieldValues = append(fieldValues, fval)
- if c > maxValues {
- outErr = fmt.Errorf("histogram aggreagtion: collected more values (%v) than allowed (%v)", c, maxValues)
- }
- c++
- }
- }
- if len(fieldValues) > 0 {
- sort.Float64s(fieldValues)
- min := fieldValues[0]
- max := fieldValues[len(fieldValues)-1]
-
- for bucket := math.Floor(min/i) * i; bucket <= max; bucket += i {
- var count float64
- for _, v := range fieldValues {
- if v >= bucket && v < (bucket+i) {
- count++
- }
- }
- //sBucket, _ := structpb.NewValue(bucket)
- out <- &gdbi.BaseTraveler{Aggregation: &gdbi.Aggregate{Name: a.Name, Key: bucket, Value: float64(count)}}
- }
- }
- return outErr
- })
-
- case *gripql.Aggregate_Percentile:
-
- g.Go(func() error {
- pagg := a.GetPercentile()
- percents := pagg.Percents
-
- var outErr error
- td := tdigest.New()
- for t := range aChans[a.Name] {
- val := gdbi.TravelerPathLookup(t, pagg.Field)
- fval, err := cast.ToFloat64E(val)
- if err != nil {
- outErr = fmt.Errorf("percentile aggregation: can't convert %v to float64", val)
- }
- td.Add(fval, 1)
- }
-
- for _, p := range percents {
- q := td.Quantile(p / 100)
- //sp, _ := structpb.NewValue(p)
- out <- &gdbi.BaseTraveler{Aggregation: &gdbi.Aggregate{Name: a.Name, Key: p, Value: q}}
- }
-
- return outErr
- })
-
- case *gripql.Aggregate_Field:
- g.Go(func() error {
- fa := a.GetField()
- fieldCounts := map[interface{}]int{}
- for t := range aChans[a.Name] {
- val := gdbi.TravelerPathLookup(t, fa.Field)
- if m, ok := val.(map[string]interface{}); ok {
- for k := range m {
- if !tpath.IsGraphField(k) {
- fieldCounts[k]++
- }
- }
- }
- }
- for term, tcount := range fieldCounts {
- out <- &gdbi.BaseTraveler{Aggregation: &gdbi.Aggregate{Name: a.Name, Key: term, Value: float64(tcount)}}
- }
- return nil
- })
-
- case *gripql.Aggregate_Type:
- g.Go(func() error {
- fa := a.GetType()
- fieldTypes := map[string]int{}
- for t := range aChans[a.Name] {
- val := gdbi.TravelerPathLookup(t, fa.Field)
- tname := gripql.GetFieldType(val)
- fieldTypes[tname]++
- }
- for term, tcount := range fieldTypes {
- out <- &gdbi.BaseTraveler{Aggregation: &gdbi.Aggregate{Name: a.Name, Key: term, Value: float64(tcount)}}
- }
- return nil
- })
-
- case *gripql.Aggregate_Count:
- g.Go(func() error {
- count := 0
- for range aChans[a.Name] {
- count++
- }
- out <- &gdbi.BaseTraveler{Aggregation: &gdbi.Aggregate{Name: a.Name, Key: "count", Value: float64(count)}}
- return nil
- })
-
- default:
- log.Errorf("Error: unknown aggregation type: %T", a.Aggregation)
- continue
- }
- }
-
- go func() {
- if err := g.Wait(); err != nil {
- log.WithFields(log.Fields{"error": err}).Error("one or more aggregation failed")
- }
- close(out)
- }()
-
- return ctx
-}
diff --git a/engine/core/processors_aggregate.go b/engine/core/processors_aggregate.go
new file mode 100644
index 00000000..642425fa
--- /dev/null
+++ b/engine/core/processors_aggregate.go
@@ -0,0 +1,231 @@
+package core
+
+import (
+ "context"
+ "fmt"
+ "math"
+ "reflect"
+ "sort"
+
+ "github.com/bmeg/grip/gdbi"
+ "github.com/bmeg/grip/gdbi/tpath"
+ "github.com/bmeg/grip/gripql"
+ "github.com/bmeg/grip/log"
+ "github.com/influxdata/tdigest"
+ "github.com/spf13/cast"
+ "golang.org/x/sync/errgroup"
+)
+
+////////////////////////////////////////////////////////////////////////////////
+
+type aggregate struct {
+ aggregations []*gripql.Aggregate
+}
+
+func (agg *aggregate) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
+ aChans := make(map[string](chan gdbi.Traveler))
+ g, ctx := errgroup.WithContext(ctx)
+
+ // # of travelers to buffer for agg
+ bufferSize := 1000
+ for _, a := range agg.aggregations {
+ aChans[a.Name] = make(chan gdbi.Traveler, bufferSize)
+ }
+
+ g.Go(func() error {
+ for t := range in {
+ if t.IsSignal() {
+ out <- t
+ continue
+ }
+ for _, a := range agg.aggregations {
+ aChans[a.Name] <- t
+ }
+ }
+ for _, a := range agg.aggregations {
+ if aChans[a.Name] != nil {
+ close(aChans[a.Name])
+ //aChans[a.Name] = nil
+ }
+ }
+ return nil
+ })
+
+ for _, a := range agg.aggregations {
+ a := a
+ switch a.Aggregation.(type) {
+ case *gripql.Aggregate_Term:
+ g.Go(func() error {
+ // max # of terms to collect before failing
+ // since the term can be a string this still isn't particularly safe
+ // the terms could be arbitrarily large strings and storing this many could eat up
+ // lots of memory.
+ maxTerms := 100000
+
+ tagg := a.GetTerm()
+ size := tagg.Size
+
+ // Collect error to return. Because we are reading a channel, it must be fully emptied
+ // If we return error before fully emptying channel, upstream processes will lock
+ var outErr error
+ fieldTermCounts := map[interface{}]int{}
+ for t := range aChans[a.Name] {
+ if len(fieldTermCounts) > maxTerms {
+ outErr = fmt.Errorf("term aggreagtion: collected more unique terms (%v) than allowed (%v)", len(fieldTermCounts), maxTerms)
+ } else {
+ val := gdbi.TravelerPathLookup(t, tagg.Field)
+ if val != nil {
+ k := reflect.TypeOf(val).Kind()
+ if k != reflect.Array && k != reflect.Slice && k != reflect.Map {
+ fieldTermCounts[val]++
+
+ }
+ }
+ }
+ }
+
+ count := 0
+ for term, tcount := range fieldTermCounts {
+ if size <= 0 || count < int(size) {
+ //sTerm, _ := structpb.NewValue(term)
+ //fmt.Printf("Term: %s %s %d\n", a.Name, sTerm, tcount)
+ out <- &gdbi.BaseTraveler{Aggregation: &gdbi.Aggregate{Name: a.Name, Key: term, Value: float64(tcount)}}
+ }
+ }
+ return outErr
+ })
+
+ case *gripql.Aggregate_Histogram:
+
+ g.Go(func() error {
+ // max # of values to collect before failing
+ maxValues := 10000000
+
+ hagg := a.GetHistogram()
+ i := float64(hagg.Interval)
+
+ c := 0
+ fieldValues := []float64{}
+
+ // Collect error to return. Because we are reading a channel, it must be fully emptied
+ // If we return error before fully emptying channel, upstream processes will lock
+ var outErr error
+ for t := range aChans[a.Name] {
+ val := gdbi.TravelerPathLookup(t, hagg.Field)
+ if val != nil {
+ fval, err := cast.ToFloat64E(val)
+ if err != nil {
+ outErr = fmt.Errorf("histogram aggregation: can't convert %v to float64", val)
+ }
+ fieldValues = append(fieldValues, fval)
+ if c > maxValues {
+ outErr = fmt.Errorf("histogram aggreagtion: collected more values (%v) than allowed (%v)", c, maxValues)
+ }
+ c++
+ }
+ }
+ if len(fieldValues) > 0 {
+ sort.Float64s(fieldValues)
+ min := fieldValues[0]
+ max := fieldValues[len(fieldValues)-1]
+
+ for bucket := math.Floor(min/i) * i; bucket <= max; bucket += i {
+ var count float64
+ for _, v := range fieldValues {
+ if v >= bucket && v < (bucket+i) {
+ count++
+ }
+ }
+ //sBucket, _ := structpb.NewValue(bucket)
+ out <- &gdbi.BaseTraveler{Aggregation: &gdbi.Aggregate{Name: a.Name, Key: bucket, Value: float64(count)}}
+ }
+ }
+ return outErr
+ })
+
+ case *gripql.Aggregate_Percentile:
+
+ g.Go(func() error {
+ pagg := a.GetPercentile()
+ percents := pagg.Percents
+
+ var outErr error
+ td := tdigest.New()
+ for t := range aChans[a.Name] {
+ val := gdbi.TravelerPathLookup(t, pagg.Field)
+ fval, err := cast.ToFloat64E(val)
+ if err != nil {
+ outErr = fmt.Errorf("percentile aggregation: can't convert %v to float64", val)
+ }
+ td.Add(fval, 1)
+ }
+
+ for _, p := range percents {
+ q := td.Quantile(p / 100)
+ //sp, _ := structpb.NewValue(p)
+ out <- &gdbi.BaseTraveler{Aggregation: &gdbi.Aggregate{Name: a.Name, Key: p, Value: q}}
+ }
+
+ return outErr
+ })
+
+ case *gripql.Aggregate_Field:
+ g.Go(func() error {
+ fa := a.GetField()
+ fieldCounts := map[interface{}]int{}
+ for t := range aChans[a.Name] {
+ val := gdbi.TravelerPathLookup(t, fa.Field)
+ if m, ok := val.(map[string]interface{}); ok {
+ for k := range m {
+ if !tpath.IsGraphField(k) {
+ fieldCounts[k]++
+ }
+ }
+ }
+ }
+ for term, tcount := range fieldCounts {
+ out <- &gdbi.BaseTraveler{Aggregation: &gdbi.Aggregate{Name: a.Name, Key: term, Value: float64(tcount)}}
+ }
+ return nil
+ })
+
+ case *gripql.Aggregate_Type:
+ g.Go(func() error {
+ fa := a.GetType()
+ fieldTypes := map[string]int{}
+ for t := range aChans[a.Name] {
+ val := gdbi.TravelerPathLookup(t, fa.Field)
+ tname := gripql.GetFieldType(val)
+ fieldTypes[tname]++
+ }
+ for term, tcount := range fieldTypes {
+ out <- &gdbi.BaseTraveler{Aggregation: &gdbi.Aggregate{Name: a.Name, Key: term, Value: float64(tcount)}}
+ }
+ return nil
+ })
+
+ case *gripql.Aggregate_Count:
+ g.Go(func() error {
+ count := 0
+ for range aChans[a.Name] {
+ count++
+ }
+ out <- &gdbi.BaseTraveler{Aggregation: &gdbi.Aggregate{Name: a.Name, Key: "count", Value: float64(count)}}
+ return nil
+ })
+
+ default:
+ log.Errorf("Error: unknown aggregation type: %T", a.Aggregation)
+ continue
+ }
+ }
+
+ go func() {
+ if err := g.Wait(); err != nil {
+ log.WithFields(log.Fields{"error": err}).Error("one or more aggregation failed")
+ }
+ close(out)
+ }()
+
+ return ctx
+}
diff --git a/engine/core/processors_group.go b/engine/core/processors_group.go
new file mode 100644
index 00000000..44095377
--- /dev/null
+++ b/engine/core/processors_group.go
@@ -0,0 +1,94 @@
+package core
+
+import (
+ "context"
+ "encoding/binary"
+ "encoding/json"
+
+ "github.com/bmeg/grip/gdbi"
+ "github.com/bmeg/grip/kvi"
+)
+
+// Group
+type Group struct {
+ grouping map[string]string
+}
+
+func (r *Group) reduce(curTraveler *gdbi.BaseTraveler, newTraveler *gdbi.BaseTraveler) {
+ for dest, field := range r.grouping {
+ v := gdbi.TravelerPathLookup(newTraveler, field)
+ if curTraveler.Current != nil {
+ if a, ok := curTraveler.Current.Data[dest]; ok {
+ if aSlice, ok := a.([]any); ok {
+ curTraveler.Current.Data[dest] = append(aSlice, v)
+ } else if !ok {
+ // overwrite existing data
+ curTraveler.Current.Data[dest] = []any{v}
+ }
+ } else {
+ curTraveler.Current.Data[dest] = []any{v}
+ }
+ }
+ }
+}
+
+// Process runs the render processor
+func (r *Group) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
+ go func() {
+ defer close(out)
+ kv := man.GetTempKV()
+ defer kv.Close()
+
+ //collect
+ kv.BulkWrite(func(bl kvi.KVBulkWrite) error {
+ var idx uint64 = 0
+ idxKey := make([]byte, 8)
+ for t := range in {
+ if t.IsSignal() {
+ out <- t
+ continue
+ } else {
+ //fmt.Printf("Checking %#v\n", t.GetCurrent())
+ idStr := t.GetCurrentID()
+ binary.LittleEndian.PutUint64(idxKey, idx)
+ key := append([]byte(idStr), idxKey...) // the key is the graph element key, plus the index
+ if v, err := json.Marshal(t); err == nil {
+ bl.Set(key, v)
+ }
+ idx++
+ }
+ }
+ return nil
+ })
+ //group
+ kv.View(func(it kvi.KVIterator) error {
+ it.Seek([]byte{0})
+ lastKey := ""
+ var curTraveler *gdbi.BaseTraveler
+ for it.Seek([]byte{0}); it.Valid(); it.Next() {
+ k := it.Key()
+ curKey := string(k[0 : len(k)-8]) // remove index suffix
+ newTraveler := gdbi.BaseTraveler{}
+ value, _ := it.Value()
+ json.Unmarshal(value, &newTraveler)
+ //fmt.Printf("curKey: (%s) %s\n", curKey, newTraveler)
+ if lastKey != curKey {
+ if curTraveler != nil {
+ out <- curTraveler
+ }
+ curTraveler = &newTraveler
+ lastKey = curKey
+ r.reduce(curTraveler, &newTraveler)
+ } else {
+ r.reduce(curTraveler, &newTraveler)
+ }
+ }
+ if lastKey != "" {
+ out <- curTraveler
+ }
+ return nil
+ })
+
+ }()
+ return ctx
+}
diff --git a/engine/core/processors_has.go b/engine/core/processors_has.go
new file mode 100644
index 00000000..756da192
--- /dev/null
+++ b/engine/core/processors_has.go
@@ -0,0 +1,115 @@
+package core
+
+import (
+ "context"
+
+ "github.com/bmeg/grip/engine/logic"
+ "github.com/bmeg/grip/gdbi"
+ "github.com/bmeg/grip/gripql"
+)
+
+////////////////////////////////////////////////////////////////////////////////
+
+// Has filters based on data
+type Has struct {
+ stmt *gripql.HasExpression
+}
+
+// Process runs Has
+func (w *Has) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
+ go func() {
+ defer close(out)
+ for t := range in {
+ if t.IsSignal() {
+ out <- t
+ continue
+ }
+
+ if logic.MatchesHasExpression(t, w.stmt) {
+ out <- t
+ }
+ }
+ }()
+ return ctx
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+// HasLabel filters elements based on their label.
+type HasLabel struct {
+ labels []string
+}
+
+// Process runs Count
+func (h *HasLabel) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
+ labels := dedupStringSlice(h.labels)
+ go func() {
+ defer close(out)
+ for t := range in {
+ if t.IsSignal() {
+ out <- t
+ continue
+ }
+ if contains(labels, t.GetCurrent().Get().Label) {
+ out <- t
+ }
+ }
+ }()
+ return ctx
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+// HasKey filters elements based on whether it has one or more properties.
+type HasKey struct {
+ keys []string
+}
+
+// Process runs Count
+func (h *HasKey) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
+ go func() {
+ keys := dedupStringSlice(h.keys)
+ defer close(out)
+ for t := range in {
+ if t.IsSignal() {
+ out <- t
+ continue
+ }
+ found := true
+ for _, key := range keys {
+ if !gdbi.TravelerPathExists(t, key) {
+ found = false
+ }
+ }
+ if found {
+ out <- t
+ }
+ }
+ }()
+ return ctx
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+// HasID filters elements based on their id.
+type HasID struct {
+ ids []string
+}
+
+// Process runs Count
+func (h *HasID) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
+ go func() {
+ defer close(out)
+ ids := dedupStringSlice(h.ids)
+ for t := range in {
+ if t.IsSignal() {
+ out <- t
+ continue
+ }
+ if contains(ids, t.GetCurrentID()) {
+ out <- t
+ }
+ }
+ }()
+ return ctx
+}
diff --git a/engine/core/processors_move.go b/engine/core/processors_move.go
new file mode 100644
index 00000000..98513e43
--- /dev/null
+++ b/engine/core/processors_move.go
@@ -0,0 +1,307 @@
+package core
+
+import (
+ "context"
+
+ "github.com/bmeg/grip/gdbi"
+)
+
+////////////////////////////////////////////////////////////////////////////////
+
+// LookupVertexAdjOut finds out vertex
+type LookupVertexAdjOut struct {
+ db gdbi.GraphInterface
+ labels []string
+ loadData bool
+ emitNull bool
+}
+
+// Process runs out vertex
+func (l *LookupVertexAdjOut) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
+ queryChan := make(chan gdbi.ElementLookup, 100)
+ go func() {
+ defer close(queryChan)
+ for t := range in {
+ if t.IsSignal() || t.IsNull() {
+ queryChan <- gdbi.ElementLookup{
+ Ref: t,
+ }
+ } else {
+ queryChan <- gdbi.ElementLookup{
+ ID: t.GetCurrentID(),
+ Ref: t,
+ }
+ }
+ }
+ }()
+ go func() {
+ defer close(out)
+ for ov := range l.db.GetOutChannel(ctx, queryChan, l.loadData, l.emitNull, l.labels) {
+ if ov.IsSignal() {
+ out <- ov.Ref
+ } else {
+ i := ov.Ref
+ out <- i.AddCurrent(ov.Vertex)
+ }
+ }
+ }()
+ return ctx
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+// LookupEdgeAdjOut finds out edge
+type LookupEdgeAdjOut struct {
+ db gdbi.GraphInterface
+ labels []string
+ loadData bool
+}
+
+// Process runs LookupEdgeAdjOut
+func (l *LookupEdgeAdjOut) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
+ queryChan := make(chan gdbi.ElementLookup, 100)
+ go func() {
+ defer close(queryChan)
+ for t := range in {
+ if t.IsSignal() {
+ queryChan <- gdbi.ElementLookup{Ref: t}
+ } else {
+ queryChan <- gdbi.ElementLookup{
+ ID: t.GetCurrent().Get().To,
+ Ref: t,
+ }
+ }
+ }
+ }()
+ go func() {
+ defer close(out)
+ for v := range l.db.GetVertexChannel(ctx, queryChan, l.loadData) {
+ i := v.Ref
+ if i.IsSignal() {
+ out <- i
+ } else {
+ out <- i.AddCurrent(v.Vertex)
+ }
+ }
+ }()
+ return ctx
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+// LookupVertexAdjIn finds incoming vertex
+type LookupVertexAdjIn struct {
+ db gdbi.GraphInterface
+ labels []string
+ loadData bool
+ emitNull bool
+}
+
+// Process runs LookupVertexAdjIn
+func (l *LookupVertexAdjIn) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
+ queryChan := make(chan gdbi.ElementLookup, 100)
+ go func() {
+ defer close(queryChan)
+ for t := range in {
+ if t.IsSignal() {
+ queryChan <- gdbi.ElementLookup{Ref: t}
+ } else {
+ queryChan <- gdbi.ElementLookup{
+ ID: t.GetCurrentID(),
+ Ref: t,
+ }
+ }
+ }
+ }()
+ go func() {
+ defer close(out)
+ for v := range l.db.GetInChannel(ctx, queryChan, l.loadData, l.emitNull, l.labels) {
+ i := v.Ref
+ if i.IsSignal() {
+ out <- i
+ } else {
+ out <- i.AddCurrent(v.Vertex)
+ }
+ }
+ }()
+ return ctx
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+// LookupEdgeAdjIn finds incoming edge
+type LookupEdgeAdjIn struct {
+ db gdbi.GraphInterface
+ labels []string
+ loadData bool
+}
+
+// Process runs LookupEdgeAdjIn
+func (l *LookupEdgeAdjIn) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
+ queryChan := make(chan gdbi.ElementLookup, 100)
+ go func() {
+ defer close(queryChan)
+ for t := range in {
+ if t.IsSignal() {
+ queryChan <- gdbi.ElementLookup{Ref: t}
+ } else {
+ queryChan <- gdbi.ElementLookup{
+ ID: t.GetCurrent().Get().From,
+ Ref: t,
+ }
+ }
+ }
+ }()
+ go func() {
+ defer close(out)
+ for v := range l.db.GetVertexChannel(ctx, queryChan, l.loadData) {
+ i := v.Ref
+ if i.IsSignal() {
+ out <- i
+ } else {
+ out <- i.AddCurrent(v.Vertex)
+ }
+ }
+ }()
+ return ctx
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+// InE finds the incoming edges
+type InE struct {
+ db gdbi.GraphInterface
+ labels []string
+ loadData bool
+ emitNull bool
+}
+
+// Process runs InE
+func (l *InE) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
+ queryChan := make(chan gdbi.ElementLookup, 100)
+ go func() {
+ defer close(queryChan)
+ for t := range in {
+ if t.IsSignal() {
+ queryChan <- gdbi.ElementLookup{Ref: t}
+ } else {
+ queryChan <- gdbi.ElementLookup{
+ ID: t.GetCurrentID(),
+ Ref: t,
+ }
+ }
+ }
+ }()
+ go func() {
+ defer close(out)
+ for v := range l.db.GetInEdgeChannel(ctx, queryChan, l.loadData, l.emitNull, l.labels) {
+ i := v.Ref
+ if i.IsSignal() {
+ out <- i
+ } else {
+ out <- i.AddCurrent(v.Edge)
+ }
+ }
+ }()
+ return ctx
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+// OutE finds the outgoing edges
+type OutE struct {
+ db gdbi.GraphInterface
+ labels []string
+ loadData bool
+ emitNull bool
+}
+
+// Process runs OutE
+func (l *OutE) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
+ queryChan := make(chan gdbi.ElementLookup, 100)
+ go func() {
+ defer close(queryChan)
+ for t := range in {
+ if t.IsSignal() {
+ queryChan <- gdbi.ElementLookup{Ref: t}
+ } else {
+ queryChan <- gdbi.ElementLookup{
+ ID: t.GetCurrentID(),
+ Ref: t,
+ }
+ }
+ }
+ }()
+ go func() {
+ defer close(out)
+ for v := range l.db.GetOutEdgeChannel(ctx, queryChan, l.loadData, l.emitNull, l.labels) {
+ i := v.Ref
+ out <- i.AddCurrent(v.Edge)
+ }
+ }()
+ return ctx
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+type both struct {
+ db gdbi.GraphInterface
+ labels []string
+ lastType gdbi.DataType
+ toType gdbi.DataType
+ loadData bool
+}
+
+func (b both) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
+ go func() {
+ defer close(out)
+ var procs []gdbi.Processor
+ switch b.lastType {
+ case gdbi.VertexData:
+ switch b.toType {
+ case gdbi.EdgeData:
+ procs = []gdbi.Processor{
+ &InE{db: b.db, loadData: b.loadData, labels: b.labels},
+ &OutE{db: b.db, loadData: b.loadData, labels: b.labels},
+ }
+ default:
+ procs = []gdbi.Processor{
+ &LookupVertexAdjIn{db: b.db, labels: b.labels, loadData: b.loadData},
+ &LookupVertexAdjOut{db: b.db, labels: b.labels, loadData: b.loadData},
+ }
+ }
+ case gdbi.EdgeData:
+ procs = []gdbi.Processor{
+ &LookupEdgeAdjIn{db: b.db, labels: b.labels, loadData: b.loadData},
+ &LookupEdgeAdjOut{db: b.db, labels: b.labels, loadData: b.loadData},
+ }
+ }
+ chanIn := make([]chan gdbi.Traveler, len(procs))
+ chanOut := make([]chan gdbi.Traveler, len(procs))
+ for i := range procs {
+ chanIn[i] = make(chan gdbi.Traveler, 1000)
+ chanOut[i] = make(chan gdbi.Traveler, 1000)
+ }
+ for i, p := range procs {
+ p.Process(ctx, man, chanIn[i], chanOut[i])
+ }
+ for t := range in {
+ if t.IsSignal() {
+ out <- t
+ continue
+ }
+ for _, ch := range chanIn {
+ ch <- t
+ }
+ }
+ for _, ch := range chanIn {
+ close(ch)
+ }
+ for i := range procs {
+ for c := range chanOut[i] {
+ out <- c
+ }
+ }
+ }()
+ return ctx
+}
diff --git a/engine/core/processors_pivot.go b/engine/core/processors_pivot.go
new file mode 100644
index 00000000..23821c79
--- /dev/null
+++ b/engine/core/processors_pivot.go
@@ -0,0 +1,77 @@
+package core
+
+import (
+ "bytes"
+ "context"
+ "encoding/json"
+
+ "github.com/bmeg/grip/gdbi"
+ "github.com/bmeg/grip/gripql"
+ "github.com/bmeg/grip/kvi"
+)
+
+// Pivot take an ID, field and value triple an turns it into a merged element
+type Pivot struct {
+ Stmt *gripql.PivotStep
+}
+
+// Process runs the pivot processor
+func (r *Pivot) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
+ go func() {
+ defer close(out)
+ kv := man.GetTempKV()
+ defer kv.Close()
+ kv.BulkWrite(func(bl kvi.KVBulkWrite) error {
+ for t := range in {
+ if t.IsSignal() {
+ out <- t
+ continue
+ }
+ //fmt.Printf("Checking %#v\n", t.GetCurrent())
+ id := gdbi.TravelerPathLookup(t, r.Stmt.Id)
+ if idStr, ok := id.(string); ok {
+ field := gdbi.TravelerPathLookup(t, r.Stmt.Field)
+ if fieldStr, ok := field.(string); ok {
+ value := gdbi.TravelerPathLookup(t, r.Stmt.Value)
+ if v, err := json.Marshal(value); err == nil {
+ key := bytes.Join([][]byte{[]byte(idStr), []byte(fieldStr)}, []byte{0})
+ bl.Set(key, v)
+ }
+ }
+ }
+ }
+ return nil
+ })
+ kv.View(func(it kvi.KVIterator) error {
+ it.Seek([]byte{0})
+ lastKey := ""
+ curDict := map[string]any{}
+ for it.Seek([]byte{0}); it.Valid(); it.Next() {
+ tmp := bytes.Split(it.Key(), []byte{0})
+ curKey := string(tmp[0])
+ curField := string(tmp[1])
+ if lastKey == "" {
+ lastKey = curKey
+ }
+ var curData any
+ value, _ := it.Value()
+ json.Unmarshal(value, &curData)
+ if lastKey != curKey {
+ curDict["_id"] = curKey
+ out <- &gdbi.BaseTraveler{Render: curDict}
+ curDict = map[string]any{}
+ curDict[curField] = curData
+ lastKey = curKey
+ } else {
+ curDict[curField] = curData
+ }
+ }
+ if lastKey != "" {
+ curDict["_id"] = lastKey
+ out <- &gdbi.BaseTraveler{Render: curDict}
+ }
+ return nil
+ })
+ }()
+ return ctx
+}
diff --git a/engine/core/processors_sort.go b/engine/core/processors_sort.go
new file mode 100644
index 00000000..7143476c
--- /dev/null
+++ b/engine/core/processors_sort.go
@@ -0,0 +1,80 @@
+package core
+
+import (
+ "context"
+ "encoding/json"
+
+ "github.com/bmeg/grip/engine/logic"
+ "github.com/bmeg/grip/gdbi"
+ "github.com/bmeg/grip/gripql"
+ "github.com/bmeg/grip/log"
+)
+
+// Sort rows
+type Sort struct {
+ sortFields []*gripql.SortField
+}
+
+// FromBytes implements logic.SortConf.
+func (s *Sort) FromBytes(v []byte) gdbi.Traveler {
+ newTraveler := gdbi.BaseTraveler{}
+ err := json.Unmarshal(v, &newTraveler)
+ if err != nil {
+ log.Errorf("sort error: %s", err)
+ }
+ return &newTraveler
+}
+
+// ToBytes implements logic.SortConf.
+func (s *Sort) ToBytes(a gdbi.Traveler) []byte {
+ v, _ := json.Marshal(a)
+ return v
+}
+
+func (s *Sort) Compare(a, b gdbi.Traveler) int {
+ for _, f := range s.sortFields {
+ aVal := gdbi.TravelerPathLookup(a, f.Field)
+ bVal := gdbi.TravelerPathLookup(b, f.Field)
+ x := logic.CompareAny(aVal, bVal)
+ //fmt.Printf("Compare %s v %s = %d\n", aVal, bVal, x)
+ if x != 0 {
+ if f.Decending {
+ return -x
+ } else {
+ return x
+ }
+ }
+ }
+ return 0
+}
+
+// Process runs LookupEdges
+func (s *Sort) Process(ctx context.Context, man gdbi.Manager, in gdbi.InPipe, out gdbi.OutPipe) context.Context {
+
+ signals := []gdbi.Traveler{}
+
+ //sorter := logic.NewMemSorter[gdbi.Traveler](s)
+
+ tmpDir := man.GetTmpDir()
+ sorter := logic.NewKVSorter(tmpDir, s)
+
+ go func() {
+ defer close(out)
+ for t := range in {
+ if t.IsSignal() {
+ signals = append(signals, t)
+ } else {
+ sorter.Add(t)
+ }
+ }
+ //emit signals first (?)
+ for _, s := range signals {
+ out <- s
+ }
+ for i := range sorter.Sorted() {
+ out <- i
+ }
+ sorter.Close()
+ }()
+ return ctx
+}
diff --git a/engine/core/statement_compiler.go b/engine/core/statement_compiler.go
index f6123497..d099c5a7 100644
--- a/engine/core/statement_compiler.go
+++ b/engine/core/statement_compiler.go
@@ -233,6 +233,10 @@ func (sc *DefaultStmtCompiler) Aggregate(stmt *gripql.GraphStatement_Aggregate,
return &aggregate{stmt.Aggregate.Aggregations}, nil
}
+func (sc *DefaultStmtCompiler) Sort(gs *gripql.GraphStatement_Sort, ps *gdbi.State) (gdbi.Processor, error) {
+ return &Sort{gs.Sort.Fields}, nil
+}
+
func (sc *DefaultStmtCompiler) Custom(gs *gripql.GraphStatement, ps *gdbi.State) (gdbi.Processor, error) {
switch stmt := gs.GetStatement().(type) {
diff --git a/engine/logic/sorter.go b/engine/logic/sorter.go
new file mode 100644
index 00000000..e95cc294
--- /dev/null
+++ b/engine/logic/sorter.go
@@ -0,0 +1,13 @@
+package logic
+
+type SortConf[SortType any] interface {
+ FromBytes([]byte) SortType
+ ToBytes(a SortType) []byte // ToBytes used for marshaling with gob
+ Compare(a, b SortType) int
+}
+
+type Sorter[T any] interface {
+ Add(T)
+ Sorted() chan T
+ Close() error
+}
diff --git a/engine/logic/sorter_compare.go b/engine/logic/sorter_compare.go
new file mode 100644
index 00000000..1a9d45fc
--- /dev/null
+++ b/engine/logic/sorter_compare.go
@@ -0,0 +1,329 @@
+package logic
+
+import (
+ "fmt"
+ "reflect"
+
+ "github.com/bmeg/grip/log"
+)
+
+func IsNumeric(a reflect.Type) bool {
+ switch a.Kind() {
+ case reflect.Int, reflect.Int16, reflect.Int32, reflect.Int64,
+ reflect.Uint, reflect.Uint16, reflect.Uint32, reflect.Uint64,
+ reflect.Float32, reflect.Float64:
+ return true
+ default:
+ return false
+ }
+}
+
+// CompareNumbers compares two numbers (of any compatible numeric type) and returns an int
+// as expected by the sort package.
+func CompareNumbers(a, b any) (int, error) {
+ // Check the types using type switches
+ switch x := a.(type) {
+ case int:
+ // Compare int with other types
+ switch y := b.(type) {
+ case int:
+ return CompareInts(int64(x), int64(y)), nil
+ case int16:
+ return CompareInts(int64(x), int64(y)), nil
+ case int32:
+ return CompareInts(int64(x), int64(y)), nil
+ case int64:
+ return CompareInts(int64(x), y), nil
+ case uint16:
+ return CompareInts(int64(x), int64(y)), nil
+ case uint32:
+ return CompareInts(int64(x), int64(y)), nil
+ case uint64:
+ return CompareInts(int64(x), int64(y)), nil
+ case float32:
+ return CompareFloats(float64(x), float64(y)), nil
+ case float64:
+ return CompareFloats(float64(x), y), nil
+ }
+ case int16:
+ // Compare int16 with other types
+ switch y := b.(type) {
+ case int16:
+ return CompareInts(int64(x), int64(y)), nil
+ case int:
+ return CompareInts(int64(x), int64(y)), nil
+ case int32:
+ return CompareInts(int64(x), int64(y)), nil
+ case int64:
+ return CompareInts(int64(x), y), nil
+ case uint16:
+ return CompareInts(int64(x), int64(y)), nil
+ case uint32:
+ return CompareInts(int64(x), int64(y)), nil
+ case uint64:
+ return CompareInts(int64(x), int64(y)), nil
+ case float32:
+ return CompareFloats(float64(x), float64(y)), nil
+ case float64:
+ return CompareFloats(float64(x), y), nil
+ }
+ case int32:
+ // Compare int32 with other types
+ switch y := b.(type) {
+ case int32:
+ return CompareInts(int64(x), int64(y)), nil
+ case int:
+ return CompareInts(int64(x), int64(y)), nil
+ case int16:
+ return CompareInts(int64(x), int64(y)), nil
+ case int64:
+ return CompareInts(int64(x), y), nil
+ case uint16:
+ return CompareInts(int64(x), int64(y)), nil
+ case uint32:
+ return CompareInts(int64(x), int64(y)), nil
+ case uint64:
+ return CompareInts(int64(x), int64(y)), nil
+ case float32:
+ return CompareFloats(float64(x), float64(y)), nil
+ case float64:
+ return CompareFloats(float64(x), y), nil
+ }
+ case int64:
+ // Compare int64 with other types
+ switch y := b.(type) {
+ case int64:
+ return CompareInts(x, y), nil
+ case int:
+ return CompareInts(x, int64(y)), nil
+ case int16:
+ return CompareInts(x, int64(y)), nil
+ case int32:
+ return CompareInts(x, int64(y)), nil
+ case uint16:
+ return CompareInts(x, int64(y)), nil
+ case uint32:
+ return CompareInts(x, int64(y)), nil
+ case uint64:
+ return CompareInts(x, int64(y)), nil
+ case float32:
+ return CompareFloats(float64(x), float64(y)), nil
+ case float64:
+ return CompareFloats(float64(x), y), nil
+ }
+ case uint16:
+ // Compare uint16 with other types
+ switch y := b.(type) {
+ case uint16:
+ return CompareInts(int64(x), int64(y)), nil
+ case int:
+ return CompareInts(int64(x), int64(y)), nil
+ case int16:
+ return CompareInts(int64(x), int64(y)), nil
+ case int32:
+ return CompareInts(int64(x), int64(y)), nil
+ case int64:
+ return CompareInts(int64(x), y), nil
+ case uint32:
+ return CompareInts(int64(x), int64(y)), nil
+ case uint64:
+ return CompareInts(int64(x), int64(y)), nil
+ case float32:
+ return CompareFloats(float64(x), float64(y)), nil
+ case float64:
+ return CompareFloats(float64(x), y), nil
+ }
+ case uint32:
+ // Compare uint32 with other types
+ switch y := b.(type) {
+ case uint32:
+ return CompareInts(int64(x), int64(y)), nil
+ case int:
+ return CompareInts(int64(x), int64(y)), nil
+ case int16:
+ return CompareInts(int64(x), int64(y)), nil
+ case int32:
+ return CompareInts(int64(x), int64(y)), nil
+ case int64:
+ return CompareInts(int64(x), y), nil
+ case uint16:
+ return CompareInts(int64(x), int64(y)), nil
+ case uint64:
+ return CompareInts(int64(x), int64(y)), nil
+ case float32:
+ return CompareFloats(float64(x), float64(y)), nil
+ case float64:
+ return CompareFloats(float64(x), y), nil
+ }
+ case uint64:
+ // Compare uint64 with other types
+ switch y := b.(type) {
+ case uint64:
+ return CompareInts(int64(x), int64(y)), nil
+ case int:
+ return CompareInts(int64(x), int64(y)), nil
+ case int16:
+ return CompareInts(int64(x), int64(y)), nil
+ case int32:
+ return CompareInts(int64(x), int64(y)), nil
+ case int64:
+ return CompareInts(int64(x), y), nil
+ case uint16:
+ return CompareInts(int64(x), int64(y)), nil
+ case uint32:
+ return CompareInts(int64(x), int64(y)), nil
+ case float32:
+ return CompareFloats(float64(x), float64(y)), nil
+ case float64:
+ return CompareFloats(float64(x), y), nil
+ }
+ case float32:
+ // Compare float32 with other types
+ switch y := b.(type) {
+ case float32:
+ return CompareFloats(float64(x), float64(y)), nil
+ case float64:
+ return CompareFloats(float64(x), y), nil
+ case int:
+ return CompareFloats(float64(x), float64(y)), nil
+ case int16:
+ return CompareFloats(float64(x), float64(y)), nil
+ case int32:
+ return CompareFloats(float64(x), float64(y)), nil
+ case int64:
+ return CompareFloats(float64(x), float64(y)), nil
+ case uint16:
+ return CompareFloats(float64(x), float64(y)), nil
+ case uint32:
+ return CompareFloats(float64(x), float64(y)), nil
+ case uint64:
+ return CompareFloats(float64(x), float64(y)), nil
+ }
+ case float64:
+ // Compare float64 with other types
+ switch y := b.(type) {
+ case float64:
+ return CompareFloats(x, y), nil
+ case float32:
+ return CompareFloats(x, float64(y)), nil
+ case int:
+ return CompareFloats(x, float64(y)), nil
+ case int16:
+ return CompareFloats(x, float64(y)), nil
+ case int32:
+ return CompareFloats(x, float64(y)), nil
+ case int64:
+ return CompareFloats(x, float64(y)), nil
+ case uint16:
+ return CompareFloats(x, float64(y)), nil
+ case uint32:
+ return CompareFloats(x, float64(y)), nil
+ case uint64:
+ return CompareFloats(x, float64(y)), nil
+ }
+ }
+
+ // If we reach here, the types are not comparable
+ return 0, fmt.Errorf("incompatible types: %s and %s", reflect.TypeOf(a).String(), reflect.TypeOf(b).String())
+}
+
+// CompareInts is a helper function to compare two int values and return the appropriate comparison result.
+func CompareInts(x, y int64) int {
+ if x < y {
+ return -1
+ } else if x > y {
+ return 1
+ }
+ return 0
+}
+
+// CompareFloats is a helper function to compare two float values and return the appropriate comparison result.
+func CompareFloats(x, y float64) int {
+ if x < y {
+ return -1
+ } else if x > y {
+ return 1
+ }
+ return 0
+}
+
+// CompareAny compares two variables of any type.
+func CompareAny(a, b any) int {
+
+ if a == nil && b != nil {
+ return -1
+ } else if a != nil && b == nil {
+ return 1
+ } else if a == nil && b == nil {
+ return 0
+ }
+
+ // Get the types of the variables.
+ ta := reflect.TypeOf(a)
+ tb := reflect.TypeOf(b)
+
+ // If the types are not the same, return a comparison based on type names.
+ if ta != tb {
+ if IsNumeric(ta) && IsNumeric(tb) {
+ o, _ := CompareNumbers(a, b)
+ return o
+ }
+ return int(ta.Kind()) - int(tb.Kind())
+ }
+
+ // Compare values based on their types.
+ switch ta.Kind() {
+ case reflect.Int:
+ // Compare integer values.
+ return CompareInts(int64(a.(int)), int64(b.(int)))
+ case reflect.Float64:
+ // Compare float values.
+ return CompareFloats(a.(float64), b.(float64))
+ case reflect.String:
+ // Compare string values.
+ return CompareStrings(a.(string), b.(string))
+ case reflect.Bool:
+ // Compare boolean values.
+ return CompareBooleans(a.(bool), b.(bool))
+ case reflect.Struct:
+ // Optionally handle structs here.
+ // For now, just comparing based on memory address.
+ return ComparePointers(a, b)
+ default:
+ // For unsupported types, we just use pointers for comparison.
+ log.Warningf("Unsupported types: %s %s", ta, tb)
+ return ComparePointers(a, b)
+ }
+}
+
+// CompareStrings compares two string values.
+func CompareStrings(a, b string) int {
+ if a < b {
+ return -1
+ } else if a > b {
+ return 1
+ }
+ return 0
+}
+
+// CompareBooleans compares two boolean values.
+func CompareBooleans(a, b bool) int {
+ if !a && b {
+ return -1
+ } else if a && !b {
+ return 1
+ }
+ return 0
+}
+
+// ComparePointers compares two pointers.
+func ComparePointers(a, b interface{}) int {
+ ptrA := reflect.ValueOf(a).Pointer()
+ ptrB := reflect.ValueOf(b).Pointer()
+ if ptrA < ptrB {
+ return -1
+ } else if ptrA > ptrB {
+ return 1
+ }
+ return 0
+}
diff --git a/engine/logic/sorter_kv.go b/engine/logic/sorter_kv.go
new file mode 100644
index 00000000..920b3dec
--- /dev/null
+++ b/engine/logic/sorter_kv.go
@@ -0,0 +1,73 @@
+package logic
+
+import (
+ "github.com/cockroachdb/pebble"
+)
+
+const (
+ maxWriterBuffer = 3 << 30
+)
+
+type kvCompare[T any] struct {
+ conf SortConf[T]
+}
+
+type KVSorter[T any] struct {
+ kv *pebble.DB
+ batch *pebble.Batch
+ curSize int
+ compare kvCompare[T]
+}
+
+// Close implements gdbi.Sorter.
+func (ks *KVSorter[T]) Close() error {
+ return ks.kv.Close()
+}
+
+// Add implements gdbi.Sorter.
+func (ks *KVSorter[T]) Add(value T) {
+ k := ks.compare.conf.ToBytes(value)
+ ks.curSize += len(k)
+ ks.batch.Set(k, nil, nil)
+ if ks.curSize > maxWriterBuffer {
+ ks.batch.Commit(nil)
+ ks.batch.Reset()
+ ks.curSize = 0
+ }
+}
+
+// Sorted implements gdbi.Sorter.
+func (ks *KVSorter[T]) Sorted() chan T {
+ ks.batch.Commit(nil)
+ ks.batch.Close()
+
+ out := make(chan T)
+ go func() {
+ iter, _ := ks.kv.NewIter(nil)
+ for iter.First(); iter.Valid(); iter.Next() {
+ v := iter.Key()
+ var o T = ks.compare.conf.FromBytes(v)
+ out <- o
+ }
+ defer close(out)
+ }()
+ return out
+}
+
+func (ks *kvCompare[T]) compareEncoded(a, b []byte) int {
+ aT := ks.conf.FromBytes(a)
+ bT := ks.conf.FromBytes(b)
+ return ks.conf.Compare(aT, bT)
+}
+
+func NewKVSorter[T any](path string, conf SortConf[T]) Sorter[T] {
+ comp := kvCompare[T]{conf}
+ c := *pebble.DefaultComparer
+ c.Compare = comp.compareEncoded
+ o := &KVSorter[T]{}
+ o.kv, _ = pebble.Open(path, &pebble.Options{Comparer: &c})
+ o.batch = o.kv.NewBatch()
+ o.curSize = 0
+ o.compare = comp
+ return o
+}
diff --git a/engine/logic/sorter_mem.go b/engine/logic/sorter_mem.go
new file mode 100644
index 00000000..91edc0d4
--- /dev/null
+++ b/engine/logic/sorter_mem.go
@@ -0,0 +1,36 @@
+package logic
+
+import "slices"
+
+type MemSorter[T any] struct {
+ data []T
+ conf SortConf[T]
+}
+
+// Add implements Sorter.
+func (m *MemSorter[T]) Add(value T) {
+ m.data = append(m.data, value)
+}
+
+// Close implements Sorter.
+func (m *MemSorter[T]) Close() error {
+ return nil
+}
+
+// Sorted implements Sorter.
+func (m *MemSorter[T]) Sorted() chan T {
+ slices.SortFunc(m.data, m.conf.Compare)
+ out := make(chan T)
+ go func() {
+ defer close(out)
+ for _, i := range m.data {
+ out <- i
+ }
+ }()
+ return out
+}
+
+func NewMemSorter[T any](conf SortConf[T]) Sorter[T] {
+ o := make([]T, 0, 10)
+ return &MemSorter[T]{o, conf}
+}
diff --git a/engine/manager.go b/engine/manager.go
index 6a425b71..c6c5f963 100644
--- a/engine/manager.go
+++ b/engine/manager.go
@@ -1,6 +1,7 @@
package engine
import (
+ "io"
"os"
"github.com/bmeg/grip/gdbi"
@@ -10,15 +11,21 @@ import (
// NewManager creates a resource manager
func NewManager(workDir string) gdbi.Manager {
- return &manager{[]kvi.KVInterface{}, []string{}, workDir}
+ return &manager{[]io.Closer{}, []string{}, workDir}
}
type manager struct {
- kvs []kvi.KVInterface
+ kvs []io.Closer
paths []string
workDir string
}
+// GetTmpDir implements gdbi.Manager.
+func (bm *manager) GetTmpDir() string {
+ td, _ := os.MkdirTemp(bm.workDir, "tmp")
+ return td
+}
+
func (bm *manager) GetTempKV() kvi.KVInterface {
td, _ := os.MkdirTemp(bm.workDir, "kvTmp")
kv, _ := badgerdb.NewKVInterface(td, kvi.Options{})
diff --git a/gdbi/interface.go b/gdbi/interface.go
index 5029df83..4de3e1b6 100644
--- a/gdbi/interface.go
+++ b/gdbi/interface.go
@@ -192,5 +192,6 @@ type GraphInterface interface {
type Manager interface {
//Get handle to temporary KeyValue store driver
GetTempKV() kvi.KVInterface
+ GetTmpDir() string
Cleanup()
}
diff --git a/gdbi/pipeline.go b/gdbi/pipeline.go
index f79da8fc..ee406d2b 100644
--- a/gdbi/pipeline.go
+++ b/gdbi/pipeline.go
@@ -86,5 +86,7 @@ type StatementCompiler interface {
Fields(gs *gripql.GraphStatement_Fields, ps *State) (Processor, error)
Aggregate(gs *gripql.GraphStatement_Aggregate, ps *State) (Processor, error)
+ Sort(gs *gripql.GraphStatement_Sort, ps *State) (Processor, error)
+
Custom(gs *gripql.GraphStatement, ps *State) (Processor, error)
}
diff --git a/gdbi/statement_processor.go b/gdbi/statement_processor.go
index 21576229..cf207afd 100644
--- a/gdbi/statement_processor.go
+++ b/gdbi/statement_processor.go
@@ -250,6 +250,10 @@ func StatementProcessor(
ps.LastType = AggregationData
return out, err
+ case *gripql.GraphStatement_Sort:
+ out, err := sc.Sort(stmt, ps)
+ return out, err
+
default:
return sc.Custom(gs, ps)
diff --git a/gripql/gripql.pb.go b/gripql/gripql.pb.go
index 380a7e0b..e623187d 100644
--- a/gripql/gripql.pb.go
+++ b/gripql/gripql.pb.go
@@ -417,6 +417,7 @@ type GraphStatement struct {
// *GraphStatement_Aggregate
// *GraphStatement_Render
// *GraphStatement_Path
+ // *GraphStatement_Sort
// *GraphStatement_Mark
// *GraphStatement_Jump
// *GraphStatement_Set
@@ -680,6 +681,13 @@ func (x *GraphStatement) GetPath() *structpb.ListValue {
return nil
}
+func (x *GraphStatement) GetSort() *Sorting {
+ if x, ok := x.GetStatement().(*GraphStatement_Sort); ok {
+ return x.Sort
+ }
+ return nil
+}
+
func (x *GraphStatement) GetMark() string {
if x, ok := x.GetStatement().(*GraphStatement_Mark); ok {
return x.Mark
@@ -836,6 +844,10 @@ type GraphStatement_Path struct {
Path *structpb.ListValue `protobuf:"bytes,63,opt,name=path,proto3,oneof"`
}
+type GraphStatement_Sort struct {
+ Sort *Sorting `protobuf:"bytes,65,opt,name=sort,proto3,oneof"`
+}
+
type GraphStatement_Mark struct {
Mark string `protobuf:"bytes,70,opt,name=mark,proto3,oneof"`
}
@@ -914,6 +926,8 @@ func (*GraphStatement_Render) isGraphStatement_Statement() {}
func (*GraphStatement_Path) isGraphStatement_Statement() {}
+func (*GraphStatement_Sort) isGraphStatement_Statement() {}
+
func (*GraphStatement_Mark) isGraphStatement_Statement() {}
func (*GraphStatement_Jump) isGraphStatement_Statement() {}
@@ -1968,6 +1982,283 @@ func (x *HasCondition) GetCondition() Condition {
return Condition_UNKNOWN_CONDITION
}
+type Sorting struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Fields []*SortField `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"`
+}
+
+func (x *Sorting) Reset() {
+ *x = Sorting{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_gripql_proto_msgTypes[21]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Sorting) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Sorting) ProtoMessage() {}
+
+func (x *Sorting) ProtoReflect() protoreflect.Message {
+ mi := &file_gripql_proto_msgTypes[21]
+ 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 Sorting.ProtoReflect.Descriptor instead.
+func (*Sorting) Descriptor() ([]byte, []int) {
+ return file_gripql_proto_rawDescGZIP(), []int{21}
+}
+
+func (x *Sorting) GetFields() []*SortField {
+ if x != nil {
+ return x.Fields
+ }
+ return nil
+}
+
+type SortField struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Field string `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
+ Decending bool `protobuf:"varint,2,opt,name=decending,proto3" json:"decending,omitempty"`
+}
+
+func (x *SortField) Reset() {
+ *x = SortField{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_gripql_proto_msgTypes[22]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SortField) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SortField) ProtoMessage() {}
+
+func (x *SortField) ProtoReflect() protoreflect.Message {
+ mi := &file_gripql_proto_msgTypes[22]
+ 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 SortField.ProtoReflect.Descriptor instead.
+func (*SortField) Descriptor() ([]byte, []int) {
+ return file_gripql_proto_rawDescGZIP(), []int{22}
+}
+
+func (x *SortField) GetField() string {
+ if x != nil {
+ return x.Field
+ }
+ return ""
+}
+
+func (x *SortField) GetDecending() bool {
+ if x != nil {
+ return x.Decending
+ }
+ return false
+}
+
+type SelectStatement struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Marks []string `protobuf:"bytes,1,rep,name=marks,proto3" json:"marks,omitempty"`
+}
+
+func (x *SelectStatement) Reset() {
+ *x = SelectStatement{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_gripql_proto_msgTypes[23]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SelectStatement) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SelectStatement) ProtoMessage() {}
+
+func (x *SelectStatement) ProtoReflect() protoreflect.Message {
+ mi := &file_gripql_proto_msgTypes[23]
+ 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 SelectStatement.ProtoReflect.Descriptor instead.
+func (*SelectStatement) Descriptor() ([]byte, []int) {
+ return file_gripql_proto_rawDescGZIP(), []int{23}
+}
+
+func (x *SelectStatement) GetMarks() []string {
+ if x != nil {
+ return x.Marks
+ }
+ return nil
+}
+
+type Selection struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Types that are assignable to Result:
+ //
+ // *Selection_Vertex
+ // *Selection_Edge
+ Result isSelection_Result `protobuf_oneof:"result"`
+}
+
+func (x *Selection) Reset() {
+ *x = Selection{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_gripql_proto_msgTypes[24]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Selection) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Selection) ProtoMessage() {}
+
+func (x *Selection) ProtoReflect() protoreflect.Message {
+ mi := &file_gripql_proto_msgTypes[24]
+ 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 Selection.ProtoReflect.Descriptor instead.
+func (*Selection) Descriptor() ([]byte, []int) {
+ return file_gripql_proto_rawDescGZIP(), []int{24}
+}
+
+func (m *Selection) GetResult() isSelection_Result {
+ if m != nil {
+ return m.Result
+ }
+ return nil
+}
+
+func (x *Selection) GetVertex() *Vertex {
+ if x, ok := x.GetResult().(*Selection_Vertex); ok {
+ return x.Vertex
+ }
+ return nil
+}
+
+func (x *Selection) GetEdge() *Edge {
+ if x, ok := x.GetResult().(*Selection_Edge); ok {
+ return x.Edge
+ }
+ return nil
+}
+
+type isSelection_Result interface {
+ isSelection_Result()
+}
+
+type Selection_Vertex struct {
+ Vertex *Vertex `protobuf:"bytes,1,opt,name=vertex,proto3,oneof"`
+}
+
+type Selection_Edge struct {
+ Edge *Edge `protobuf:"bytes,2,opt,name=edge,proto3,oneof"`
+}
+
+func (*Selection_Vertex) isSelection_Result() {}
+
+func (*Selection_Edge) isSelection_Result() {}
+
+type Selections struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Selections map[string]*Selection `protobuf:"bytes,1,rep,name=selections,proto3" json:"selections,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *Selections) Reset() {
+ *x = Selections{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_gripql_proto_msgTypes[25]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Selections) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Selections) ProtoMessage() {}
+
+func (x *Selections) ProtoReflect() protoreflect.Message {
+ mi := &file_gripql_proto_msgTypes[25]
+ 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 Selections.ProtoReflect.Descriptor instead.
+func (*Selections) Descriptor() ([]byte, []int) {
+ return file_gripql_proto_rawDescGZIP(), []int{25}
+}
+
+func (x *Selections) GetSelections() map[string]*Selection {
+ if x != nil {
+ return x.Selections
+ }
+ return nil
+}
+
type Jump struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -1981,7 +2272,7 @@ type Jump struct {
func (x *Jump) Reset() {
*x = Jump{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[21]
+ mi := &file_gripql_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1994,7 +2285,7 @@ func (x *Jump) String() string {
func (*Jump) ProtoMessage() {}
func (x *Jump) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[21]
+ mi := &file_gripql_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2007,7 +2298,7 @@ func (x *Jump) ProtoReflect() protoreflect.Message {
// Deprecated: Use Jump.ProtoReflect.Descriptor instead.
func (*Jump) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{21}
+ return file_gripql_proto_rawDescGZIP(), []int{26}
}
func (x *Jump) GetMark() string {
@@ -2043,7 +2334,7 @@ type Set struct {
func (x *Set) Reset() {
*x = Set{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[22]
+ mi := &file_gripql_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2056,7 +2347,7 @@ func (x *Set) String() string {
func (*Set) ProtoMessage() {}
func (x *Set) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[22]
+ mi := &file_gripql_proto_msgTypes[27]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2069,7 +2360,7 @@ func (x *Set) ProtoReflect() protoreflect.Message {
// Deprecated: Use Set.ProtoReflect.Descriptor instead.
func (*Set) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{22}
+ return file_gripql_proto_rawDescGZIP(), []int{27}
}
func (x *Set) GetKey() string {
@@ -2098,7 +2389,7 @@ type Increment struct {
func (x *Increment) Reset() {
*x = Increment{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[23]
+ mi := &file_gripql_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2111,7 +2402,7 @@ func (x *Increment) String() string {
func (*Increment) ProtoMessage() {}
func (x *Increment) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[23]
+ mi := &file_gripql_proto_msgTypes[28]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2124,7 +2415,7 @@ func (x *Increment) ProtoReflect() protoreflect.Message {
// Deprecated: Use Increment.ProtoReflect.Descriptor instead.
func (*Increment) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{23}
+ return file_gripql_proto_rawDescGZIP(), []int{28}
}
func (x *Increment) GetKey() string {
@@ -2154,7 +2445,7 @@ type Vertex struct {
func (x *Vertex) Reset() {
*x = Vertex{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[24]
+ mi := &file_gripql_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2167,7 +2458,7 @@ func (x *Vertex) String() string {
func (*Vertex) ProtoMessage() {}
func (x *Vertex) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[24]
+ mi := &file_gripql_proto_msgTypes[29]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2180,7 +2471,7 @@ func (x *Vertex) ProtoReflect() protoreflect.Message {
// Deprecated: Use Vertex.ProtoReflect.Descriptor instead.
func (*Vertex) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{24}
+ return file_gripql_proto_rawDescGZIP(), []int{29}
}
func (x *Vertex) GetGid() string {
@@ -2219,7 +2510,7 @@ type Edge struct {
func (x *Edge) Reset() {
*x = Edge{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[25]
+ mi := &file_gripql_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2232,7 +2523,7 @@ func (x *Edge) String() string {
func (*Edge) ProtoMessage() {}
func (x *Edge) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[25]
+ mi := &file_gripql_proto_msgTypes[30]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2245,7 +2536,7 @@ func (x *Edge) ProtoReflect() protoreflect.Message {
// Deprecated: Use Edge.ProtoReflect.Descriptor instead.
func (*Edge) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{25}
+ return file_gripql_proto_rawDescGZIP(), []int{30}
}
func (x *Edge) GetGid() string {
@@ -2302,7 +2593,7 @@ type QueryResult struct {
func (x *QueryResult) Reset() {
*x = QueryResult{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[26]
+ mi := &file_gripql_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2315,7 +2606,7 @@ func (x *QueryResult) String() string {
func (*QueryResult) ProtoMessage() {}
func (x *QueryResult) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[26]
+ mi := &file_gripql_proto_msgTypes[31]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2328,7 +2619,7 @@ func (x *QueryResult) ProtoReflect() protoreflect.Message {
// Deprecated: Use QueryResult.ProtoReflect.Descriptor instead.
func (*QueryResult) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{26}
+ return file_gripql_proto_rawDescGZIP(), []int{31}
}
func (m *QueryResult) GetResult() isQueryResult_Result {
@@ -2432,7 +2723,7 @@ type QueryJob struct {
func (x *QueryJob) Reset() {
*x = QueryJob{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[27]
+ mi := &file_gripql_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2445,7 +2736,7 @@ func (x *QueryJob) String() string {
func (*QueryJob) ProtoMessage() {}
func (x *QueryJob) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[27]
+ mi := &file_gripql_proto_msgTypes[32]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2458,7 +2749,7 @@ func (x *QueryJob) ProtoReflect() protoreflect.Message {
// Deprecated: Use QueryJob.ProtoReflect.Descriptor instead.
func (*QueryJob) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{27}
+ return file_gripql_proto_rawDescGZIP(), []int{32}
}
func (x *QueryJob) GetId() string {
@@ -2488,7 +2779,7 @@ type ExtendQuery struct {
func (x *ExtendQuery) Reset() {
*x = ExtendQuery{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[28]
+ mi := &file_gripql_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2501,7 +2792,7 @@ func (x *ExtendQuery) String() string {
func (*ExtendQuery) ProtoMessage() {}
func (x *ExtendQuery) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[28]
+ mi := &file_gripql_proto_msgTypes[33]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2514,7 +2805,7 @@ func (x *ExtendQuery) ProtoReflect() protoreflect.Message {
// Deprecated: Use ExtendQuery.ProtoReflect.Descriptor instead.
func (*ExtendQuery) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{28}
+ return file_gripql_proto_rawDescGZIP(), []int{33}
}
func (x *ExtendQuery) GetSrcId() string {
@@ -2554,7 +2845,7 @@ type JobStatus struct {
func (x *JobStatus) Reset() {
*x = JobStatus{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[29]
+ mi := &file_gripql_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2567,7 +2858,7 @@ func (x *JobStatus) String() string {
func (*JobStatus) ProtoMessage() {}
func (x *JobStatus) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[29]
+ mi := &file_gripql_proto_msgTypes[34]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2580,7 +2871,7 @@ func (x *JobStatus) ProtoReflect() protoreflect.Message {
// Deprecated: Use JobStatus.ProtoReflect.Descriptor instead.
func (*JobStatus) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{29}
+ return file_gripql_proto_rawDescGZIP(), []int{34}
}
func (x *JobStatus) GetId() string {
@@ -2636,7 +2927,7 @@ type EditResult struct {
func (x *EditResult) Reset() {
*x = EditResult{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[30]
+ mi := &file_gripql_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2649,7 +2940,7 @@ func (x *EditResult) String() string {
func (*EditResult) ProtoMessage() {}
func (x *EditResult) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[30]
+ mi := &file_gripql_proto_msgTypes[35]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2662,7 +2953,7 @@ func (x *EditResult) ProtoReflect() protoreflect.Message {
// Deprecated: Use EditResult.ProtoReflect.Descriptor instead.
func (*EditResult) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{30}
+ return file_gripql_proto_rawDescGZIP(), []int{35}
}
func (x *EditResult) GetId() string {
@@ -2684,7 +2975,7 @@ type BulkEditResult struct {
func (x *BulkEditResult) Reset() {
*x = BulkEditResult{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[31]
+ mi := &file_gripql_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2697,7 +2988,7 @@ func (x *BulkEditResult) String() string {
func (*BulkEditResult) ProtoMessage() {}
func (x *BulkEditResult) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[31]
+ mi := &file_gripql_proto_msgTypes[36]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2710,7 +3001,7 @@ func (x *BulkEditResult) ProtoReflect() protoreflect.Message {
// Deprecated: Use BulkEditResult.ProtoReflect.Descriptor instead.
func (*BulkEditResult) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{31}
+ return file_gripql_proto_rawDescGZIP(), []int{36}
}
func (x *BulkEditResult) GetInsertCount() int32 {
@@ -2739,7 +3030,7 @@ type BulkJsonEditResult struct {
func (x *BulkJsonEditResult) Reset() {
*x = BulkJsonEditResult{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[32]
+ mi := &file_gripql_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2752,7 +3043,7 @@ func (x *BulkJsonEditResult) String() string {
func (*BulkJsonEditResult) ProtoMessage() {}
func (x *BulkJsonEditResult) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[32]
+ mi := &file_gripql_proto_msgTypes[37]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2765,7 +3056,7 @@ func (x *BulkJsonEditResult) ProtoReflect() protoreflect.Message {
// Deprecated: Use BulkJsonEditResult.ProtoReflect.Descriptor instead.
func (*BulkJsonEditResult) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{32}
+ return file_gripql_proto_rawDescGZIP(), []int{37}
}
func (x *BulkJsonEditResult) GetInsertCount() int32 {
@@ -2795,7 +3086,7 @@ type GraphElement struct {
func (x *GraphElement) Reset() {
*x = GraphElement{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[33]
+ mi := &file_gripql_proto_msgTypes[38]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2808,7 +3099,7 @@ func (x *GraphElement) String() string {
func (*GraphElement) ProtoMessage() {}
func (x *GraphElement) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[33]
+ mi := &file_gripql_proto_msgTypes[38]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2821,7 +3112,7 @@ func (x *GraphElement) ProtoReflect() protoreflect.Message {
// Deprecated: Use GraphElement.ProtoReflect.Descriptor instead.
func (*GraphElement) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{33}
+ return file_gripql_proto_rawDescGZIP(), []int{38}
}
func (x *GraphElement) GetGraph() string {
@@ -2856,7 +3147,7 @@ type GraphID struct {
func (x *GraphID) Reset() {
*x = GraphID{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[34]
+ mi := &file_gripql_proto_msgTypes[39]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2869,7 +3160,7 @@ func (x *GraphID) String() string {
func (*GraphID) ProtoMessage() {}
func (x *GraphID) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[34]
+ mi := &file_gripql_proto_msgTypes[39]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2882,7 +3173,7 @@ func (x *GraphID) ProtoReflect() protoreflect.Message {
// Deprecated: Use GraphID.ProtoReflect.Descriptor instead.
func (*GraphID) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{34}
+ return file_gripql_proto_rawDescGZIP(), []int{39}
}
func (x *GraphID) GetGraph() string {
@@ -2904,7 +3195,7 @@ type ElementID struct {
func (x *ElementID) Reset() {
*x = ElementID{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[35]
+ mi := &file_gripql_proto_msgTypes[40]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2917,7 +3208,7 @@ func (x *ElementID) String() string {
func (*ElementID) ProtoMessage() {}
func (x *ElementID) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[35]
+ mi := &file_gripql_proto_msgTypes[40]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2930,7 +3221,7 @@ func (x *ElementID) ProtoReflect() protoreflect.Message {
// Deprecated: Use ElementID.ProtoReflect.Descriptor instead.
func (*ElementID) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{35}
+ return file_gripql_proto_rawDescGZIP(), []int{40}
}
func (x *ElementID) GetGraph() string {
@@ -2960,7 +3251,7 @@ type IndexID struct {
func (x *IndexID) Reset() {
*x = IndexID{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[36]
+ mi := &file_gripql_proto_msgTypes[41]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2973,7 +3264,7 @@ func (x *IndexID) String() string {
func (*IndexID) ProtoMessage() {}
func (x *IndexID) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[36]
+ mi := &file_gripql_proto_msgTypes[41]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2986,7 +3277,7 @@ func (x *IndexID) ProtoReflect() protoreflect.Message {
// Deprecated: Use IndexID.ProtoReflect.Descriptor instead.
func (*IndexID) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{36}
+ return file_gripql_proto_rawDescGZIP(), []int{41}
}
func (x *IndexID) GetGraph() string {
@@ -3021,7 +3312,7 @@ type Timestamp struct {
func (x *Timestamp) Reset() {
*x = Timestamp{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[37]
+ mi := &file_gripql_proto_msgTypes[42]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3034,7 +3325,7 @@ func (x *Timestamp) String() string {
func (*Timestamp) ProtoMessage() {}
func (x *Timestamp) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[37]
+ mi := &file_gripql_proto_msgTypes[42]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3047,7 +3338,7 @@ func (x *Timestamp) ProtoReflect() protoreflect.Message {
// Deprecated: Use Timestamp.ProtoReflect.Descriptor instead.
func (*Timestamp) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{37}
+ return file_gripql_proto_rawDescGZIP(), []int{42}
}
func (x *Timestamp) GetTimestamp() string {
@@ -3066,7 +3357,7 @@ type Empty struct {
func (x *Empty) Reset() {
*x = Empty{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[38]
+ mi := &file_gripql_proto_msgTypes[43]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3079,7 +3370,7 @@ func (x *Empty) String() string {
func (*Empty) ProtoMessage() {}
func (x *Empty) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[38]
+ mi := &file_gripql_proto_msgTypes[43]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3092,7 +3383,7 @@ func (x *Empty) ProtoReflect() protoreflect.Message {
// Deprecated: Use Empty.ProtoReflect.Descriptor instead.
func (*Empty) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{38}
+ return file_gripql_proto_rawDescGZIP(), []int{43}
}
type ListGraphsResponse struct {
@@ -3106,7 +3397,7 @@ type ListGraphsResponse struct {
func (x *ListGraphsResponse) Reset() {
*x = ListGraphsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[39]
+ mi := &file_gripql_proto_msgTypes[44]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3119,7 +3410,7 @@ func (x *ListGraphsResponse) String() string {
func (*ListGraphsResponse) ProtoMessage() {}
func (x *ListGraphsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[39]
+ mi := &file_gripql_proto_msgTypes[44]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3132,7 +3423,7 @@ func (x *ListGraphsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListGraphsResponse.ProtoReflect.Descriptor instead.
func (*ListGraphsResponse) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{39}
+ return file_gripql_proto_rawDescGZIP(), []int{44}
}
func (x *ListGraphsResponse) GetGraphs() []string {
@@ -3153,7 +3444,7 @@ type ListIndicesResponse struct {
func (x *ListIndicesResponse) Reset() {
*x = ListIndicesResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[40]
+ mi := &file_gripql_proto_msgTypes[45]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3166,7 +3457,7 @@ func (x *ListIndicesResponse) String() string {
func (*ListIndicesResponse) ProtoMessage() {}
func (x *ListIndicesResponse) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[40]
+ mi := &file_gripql_proto_msgTypes[45]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3179,7 +3470,7 @@ func (x *ListIndicesResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListIndicesResponse.ProtoReflect.Descriptor instead.
func (*ListIndicesResponse) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{40}
+ return file_gripql_proto_rawDescGZIP(), []int{45}
}
func (x *ListIndicesResponse) GetIndices() []*IndexID {
@@ -3201,7 +3492,7 @@ type ListLabelsResponse struct {
func (x *ListLabelsResponse) Reset() {
*x = ListLabelsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[41]
+ mi := &file_gripql_proto_msgTypes[46]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3214,7 +3505,7 @@ func (x *ListLabelsResponse) String() string {
func (*ListLabelsResponse) ProtoMessage() {}
func (x *ListLabelsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[41]
+ mi := &file_gripql_proto_msgTypes[46]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3227,7 +3518,7 @@ func (x *ListLabelsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListLabelsResponse.ProtoReflect.Descriptor instead.
func (*ListLabelsResponse) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{41}
+ return file_gripql_proto_rawDescGZIP(), []int{46}
}
func (x *ListLabelsResponse) GetVertexLabels() []string {
@@ -3258,7 +3549,7 @@ type TableInfo struct {
func (x *TableInfo) Reset() {
*x = TableInfo{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[42]
+ mi := &file_gripql_proto_msgTypes[47]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3271,7 +3562,7 @@ func (x *TableInfo) String() string {
func (*TableInfo) ProtoMessage() {}
func (x *TableInfo) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[42]
+ mi := &file_gripql_proto_msgTypes[47]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3284,7 +3575,7 @@ func (x *TableInfo) ProtoReflect() protoreflect.Message {
// Deprecated: Use TableInfo.ProtoReflect.Descriptor instead.
func (*TableInfo) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{42}
+ return file_gripql_proto_rawDescGZIP(), []int{47}
}
func (x *TableInfo) GetSource() string {
@@ -3328,7 +3619,7 @@ type DeleteData struct {
func (x *DeleteData) Reset() {
*x = DeleteData{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[43]
+ mi := &file_gripql_proto_msgTypes[48]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3341,7 +3632,7 @@ func (x *DeleteData) String() string {
func (*DeleteData) ProtoMessage() {}
func (x *DeleteData) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[43]
+ mi := &file_gripql_proto_msgTypes[48]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3354,7 +3645,7 @@ func (x *DeleteData) ProtoReflect() protoreflect.Message {
// Deprecated: Use DeleteData.ProtoReflect.Descriptor instead.
func (*DeleteData) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{43}
+ return file_gripql_proto_rawDescGZIP(), []int{48}
}
func (x *DeleteData) GetGraph() string {
@@ -3391,7 +3682,7 @@ type RawJson struct {
func (x *RawJson) Reset() {
*x = RawJson{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[44]
+ mi := &file_gripql_proto_msgTypes[49]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3404,7 +3695,7 @@ func (x *RawJson) String() string {
func (*RawJson) ProtoMessage() {}
func (x *RawJson) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[44]
+ mi := &file_gripql_proto_msgTypes[49]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3417,7 +3708,7 @@ func (x *RawJson) ProtoReflect() protoreflect.Message {
// Deprecated: Use RawJson.ProtoReflect.Descriptor instead.
func (*RawJson) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{44}
+ return file_gripql_proto_rawDescGZIP(), []int{49}
}
func (x *RawJson) GetGraph() string {
@@ -3454,7 +3745,7 @@ type PluginConfig struct {
func (x *PluginConfig) Reset() {
*x = PluginConfig{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[45]
+ mi := &file_gripql_proto_msgTypes[50]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3467,7 +3758,7 @@ func (x *PluginConfig) String() string {
func (*PluginConfig) ProtoMessage() {}
func (x *PluginConfig) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[45]
+ mi := &file_gripql_proto_msgTypes[50]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3480,7 +3771,7 @@ func (x *PluginConfig) ProtoReflect() protoreflect.Message {
// Deprecated: Use PluginConfig.ProtoReflect.Descriptor instead.
func (*PluginConfig) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{45}
+ return file_gripql_proto_rawDescGZIP(), []int{50}
}
func (x *PluginConfig) GetName() string {
@@ -3516,7 +3807,7 @@ type PluginStatus struct {
func (x *PluginStatus) Reset() {
*x = PluginStatus{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[46]
+ mi := &file_gripql_proto_msgTypes[51]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3529,7 +3820,7 @@ func (x *PluginStatus) String() string {
func (*PluginStatus) ProtoMessage() {}
func (x *PluginStatus) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[46]
+ mi := &file_gripql_proto_msgTypes[51]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3542,7 +3833,7 @@ func (x *PluginStatus) ProtoReflect() protoreflect.Message {
// Deprecated: Use PluginStatus.ProtoReflect.Descriptor instead.
func (*PluginStatus) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{46}
+ return file_gripql_proto_rawDescGZIP(), []int{51}
}
func (x *PluginStatus) GetName() string {
@@ -3570,7 +3861,7 @@ type ListDriversResponse struct {
func (x *ListDriversResponse) Reset() {
*x = ListDriversResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[47]
+ mi := &file_gripql_proto_msgTypes[52]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3583,7 +3874,7 @@ func (x *ListDriversResponse) String() string {
func (*ListDriversResponse) ProtoMessage() {}
func (x *ListDriversResponse) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[47]
+ mi := &file_gripql_proto_msgTypes[52]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3596,7 +3887,7 @@ func (x *ListDriversResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListDriversResponse.ProtoReflect.Descriptor instead.
func (*ListDriversResponse) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{47}
+ return file_gripql_proto_rawDescGZIP(), []int{52}
}
func (x *ListDriversResponse) GetDrivers() []string {
@@ -3617,7 +3908,7 @@ type ListPluginsResponse struct {
func (x *ListPluginsResponse) Reset() {
*x = ListPluginsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_gripql_proto_msgTypes[48]
+ mi := &file_gripql_proto_msgTypes[53]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3630,7 +3921,7 @@ func (x *ListPluginsResponse) String() string {
func (*ListPluginsResponse) ProtoMessage() {}
func (x *ListPluginsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_gripql_proto_msgTypes[48]
+ mi := &file_gripql_proto_msgTypes[53]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3643,7 +3934,7 @@ func (x *ListPluginsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListPluginsResponse.ProtoReflect.Descriptor instead.
func (*ListPluginsResponse) Descriptor() ([]byte, []int) {
- return file_gripql_proto_rawDescGZIP(), []int{48}
+ return file_gripql_proto_rawDescGZIP(), []int{53}
}
func (x *ListPluginsResponse) GetPlugins() []string {
@@ -3676,7 +3967,7 @@ var file_gripql_proto_rawDesc = []byte{
0x65, 0x72, 0x79, 0x22, 0x38, 0x0a, 0x08, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x74, 0x12,
0x2c, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16,
0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x53, 0x74, 0x61,
- 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x9d, 0x0c,
+ 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0xc4, 0x0c,
0x0a, 0x0e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74,
0x12, 0x2a, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69,
@@ -3765,497 +4056,526 @@ var file_gripql_proto_rawDesc = []byte{
0x12, 0x30, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61,
- 0x74, 0x68, 0x12, 0x14, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x46, 0x20, 0x01, 0x28, 0x09,
- 0x48, 0x00, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x04, 0x6a, 0x75, 0x6d, 0x70,
- 0x18, 0x47, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e,
- 0x4a, 0x75, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x04, 0x6a, 0x75, 0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x03,
- 0x73, 0x65, 0x74, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x67, 0x72, 0x69, 0x70,
- 0x71, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x03, 0x73, 0x65, 0x74, 0x12, 0x31, 0x0a,
- 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x11, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d,
- 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74,
- 0x42, 0x0b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x31, 0x0a,
- 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04,
- 0x73, 0x74, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x6f, 0x70,
- 0x22, 0x62, 0x0a, 0x13, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x12, 0x35, 0x0a,
- 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x41, 0x67, 0x67,
- 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x45, 0x0a, 0x0c, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x69,
+ 0x74, 0x68, 0x12, 0x25, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e,
+ 0x67, 0x48, 0x00, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x6d, 0x61, 0x72,
+ 0x6b, 0x18, 0x46, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x12,
+ 0x22, 0x0a, 0x04, 0x6a, 0x75, 0x6d, 0x70, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e,
+ 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4a, 0x75, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x04, 0x6a,
+ 0x75, 0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x03, 0x73, 0x65, 0x74, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x0b, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52,
+ 0x03, 0x73, 0x65, 0x74, 0x12, 0x31, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e,
+ 0x74, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c,
+ 0x2e, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 0x69, 0x6e,
+ 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65,
+ 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x31, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a,
+ 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74,
+ 0x61, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x05, 0x52, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x22, 0x62, 0x0a, 0x13, 0x41, 0x67, 0x67, 0x72, 0x65,
+ 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14,
+ 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67,
+ 0x72, 0x61, 0x70, 0x68, 0x12, 0x35, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x69,
0x70, 0x71, 0x6c, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x61,
- 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xef, 0x02, 0x0a, 0x09,
- 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a,
- 0x04, 0x74, 0x65, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72,
- 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x12, 0x3f, 0x0a, 0x0a,
- 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e,
- 0x74, 0x69, 0x6c, 0x65, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48,
- 0x00, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x3c, 0x0a,
- 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67,
- 0x72, 0x61, 0x6d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00,
- 0x52, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x30, 0x0a, 0x05, 0x66,
- 0x69, 0x65, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x69,
- 0x70, 0x71, 0x6c, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x2d, 0x0a,
- 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72,
- 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x05,
- 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72,
- 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0d,
- 0x0a, 0x0b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3b, 0x0a,
- 0x0f, 0x54, 0x65, 0x72, 0x6d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x49, 0x0a, 0x15, 0x50, 0x65,
- 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72,
- 0x63, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x01, 0x52, 0x08, 0x70, 0x65, 0x72,
- 0x63, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x48, 0x0a, 0x14, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72,
- 0x61, 0x6d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a,
- 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69,
- 0x65, 0x6c, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22,
- 0x28, 0x0a, 0x10, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74,
+ 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x45, 0x0a, 0x0c, 0x41,
+ 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x0a, 0x0c, 0x61,
+ 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65,
+ 0x67, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x22, 0xef, 0x02, 0x0a, 0x09, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65,
+ 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x54, 0x65, 0x72, 0x6d,
+ 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x74,
+ 0x65, 0x72, 0x6d, 0x12, 0x3f, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c,
+ 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c,
+ 0x2e, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x41, 0x67, 0x67, 0x72, 0x65,
+ 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e,
+ 0x74, 0x69, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61,
+ 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c,
+ 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72,
+ 0x61, 0x6d, 0x12, 0x30, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64,
+ 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x66,
+ 0x69, 0x65, 0x6c, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65,
+ 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x74,
+ 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x43, 0x6f, 0x75, 0x6e,
+ 0x74, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x05,
+ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3b, 0x0a, 0x0f, 0x54, 0x65, 0x72, 0x6d, 0x41, 0x67, 0x67, 0x72,
+ 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x12, 0x0a,
+ 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x69, 0x7a,
+ 0x65, 0x22, 0x49, 0x0a, 0x15, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x41,
+ 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69,
+ 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64,
+ 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03,
+ 0x28, 0x01, 0x52, 0x08, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x48, 0x0a, 0x14,
+ 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e,
+ 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x6e,
+ 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x28, 0x0a, 0x10, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41,
+ 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69,
+ 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64,
+ 0x22, 0x27, 0x0a, 0x0f, 0x54, 0x79, 0x70, 0x65, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x27, 0x0a, 0x0f, 0x54, 0x79, 0x70,
- 0x65, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05,
- 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65,
- 0x6c, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x67, 0x67, 0x72, 0x65,
- 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x75, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12,
- 0x31, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
- 0x19, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x46,
- 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c,
- 0x64, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72,
- 0x79, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3b, 0x0a,
- 0x06, 0x54, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1b, 0x0a,
- 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x47, 0x0a, 0x09, 0x50, 0x69,
- 0x76, 0x6f, 0x74, 0x53, 0x74, 0x65, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x14, 0x0a,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x22, 0x6c, 0x0a, 0x16, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x67, 0x67, 0x72,
- 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a,
- 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
- 0x65, 0x12, 0x28, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
- 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
- 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x22, 0x4c, 0x0a, 0x11, 0x48, 0x61, 0x73, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73,
- 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x72,
- 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x48, 0x61, 0x73, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22,
- 0xda, 0x01, 0x0a, 0x0d, 0x48, 0x61, 0x73, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f,
- 0x6e, 0x12, 0x2d, 0x0a, 0x03, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
+ 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x43, 0x6f, 0x75,
+ 0x6e, 0x74, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x75, 0x0a,
+ 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x31, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73,
+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e,
+ 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x46, 0x69, 0x65,
+ 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3b, 0x0a, 0x06, 0x54, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14,
+ 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66,
+ 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d,
+ 0x65, 0x22, 0x47, 0x0a, 0x09, 0x50, 0x69, 0x76, 0x6f, 0x74, 0x53, 0x74, 0x65, 0x70, 0x12, 0x0e,
+ 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14,
+ 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66,
+ 0x69, 0x65, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x6c, 0x0a, 0x16, 0x4e, 0x61,
+ 0x6d, 0x65, 0x64, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
+ 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x6b,
+ 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4c, 0x0a, 0x11, 0x48, 0x61, 0x73, 0x45,
+ 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x37, 0x0a,
+ 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x48, 0x61, 0x73, 0x45,
+ 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65,
+ 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xda, 0x01, 0x0a, 0x0d, 0x48, 0x61, 0x73, 0x45, 0x78,
+ 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x03, 0x61, 0x6e, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x48,
+ 0x61, 0x73, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74,
+ 0x48, 0x00, 0x52, 0x03, 0x61, 0x6e, 0x64, 0x12, 0x2b, 0x0a, 0x02, 0x6f, 0x72, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x48, 0x61, 0x73,
+ 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00,
+ 0x52, 0x02, 0x6f, 0x72, 0x12, 0x29, 0x0a, 0x03, 0x6e, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x48, 0x61, 0x73, 0x45, 0x78,
+ 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x6e, 0x6f, 0x74, 0x12,
+ 0x34, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x48, 0x61, 0x73, 0x43,
+ 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64,
+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73,
+ 0x69, 0x6f, 0x6e, 0x22, 0x7f, 0x0a, 0x0c, 0x48, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74,
+ 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e,
+ 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69,
+ 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x34, 0x0a, 0x07, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12,
+ 0x29, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x11, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x65,
+ 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0x3f, 0x0a, 0x09, 0x53, 0x6f,
+ 0x72, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1c, 0x0a,
+ 0x09, 0x64, 0x65, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x09, 0x64, 0x65, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x27, 0x0a, 0x0f, 0x53,
+ 0x65, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14,
+ 0x0a, 0x05, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6d,
+ 0x61, 0x72, 0x6b, 0x73, 0x22, 0x63, 0x0a, 0x09, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x0e, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x56, 0x65, 0x72, 0x74, 0x65,
+ 0x78, 0x48, 0x00, 0x52, 0x06, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x04, 0x65,
+ 0x64, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x72, 0x69, 0x70,
+ 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x48, 0x00, 0x52, 0x04, 0x65, 0x64, 0x67, 0x65, 0x42,
+ 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xa2, 0x01, 0x0a, 0x0a, 0x53, 0x65,
+ 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x42, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67,
+ 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x50, 0x0a, 0x0f,
+ 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
+ 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
+ 0x79, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x11, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x65,
+ 0x0a, 0x04, 0x4a, 0x75, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x35, 0x0a, 0x0a, 0x65, 0x78,
+ 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x48, 0x61, 0x73, 0x45, 0x78, 0x70, 0x72, 0x65,
- 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6e, 0x64,
- 0x12, 0x2b, 0x0a, 0x02, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
- 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x48, 0x61, 0x73, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73,
- 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x02, 0x6f, 0x72, 0x12, 0x29, 0x0a,
- 0x03, 0x6e, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x72, 0x69,
- 0x70, 0x71, 0x6c, 0x2e, 0x48, 0x61, 0x73, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f,
- 0x6e, 0x48, 0x00, 0x52, 0x03, 0x6e, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64,
- 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x72,
- 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x48, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,
- 0x6e, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c,
- 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x7f, 0x0a, 0x0c,
- 0x48, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03,
+ 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f,
+ 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x04, 0x65, 0x6d, 0x69, 0x74, 0x22, 0x45, 0x0a, 0x03, 0x53, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03,
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
- 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2f, 0x0a, 0x09,
- 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32,
- 0x11, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69,
- 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x65, 0x0a,
- 0x04, 0x4a, 0x75, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x35, 0x0a, 0x0a, 0x65, 0x78, 0x70,
- 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
- 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x48, 0x61, 0x73, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73,
- 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
- 0x12, 0x12, 0x0a, 0x04, 0x65, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04,
- 0x65, 0x6d, 0x69, 0x74, 0x22, 0x45, 0x0a, 0x03, 0x53, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b,
- 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67,
- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56,
- 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x33, 0x0a, 0x09, 0x49,
- 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x22, 0x5d, 0x0a, 0x06, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69,
- 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05,
- 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62,
- 0x65, 0x6c, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
- 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22,
- 0x7f, 0x0a, 0x04, 0x45, 0x64, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62,
- 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12,
- 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66,
- 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x02, 0x74, 0x6f, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x33, 0x0a, 0x09,
+ 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
+ 0x65, 0x22, 0x5d, 0x0a, 0x06, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x67,
+ 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12, 0x14, 0x0a,
+ 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61,
+ 0x62, 0x65, 0x6c, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
- 0x22, 0xa7, 0x02, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
- 0x12, 0x28, 0x0a, 0x06, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x22, 0x7f, 0x0a, 0x04, 0x45, 0x64, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61,
+ 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c,
+ 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+ 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74,
+ 0x61, 0x22, 0xa7, 0x02, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x12, 0x28, 0x0a, 0x06, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x0e, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x56, 0x65, 0x72, 0x74, 0x65,
+ 0x78, 0x48, 0x00, 0x52, 0x06, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x04, 0x65,
+ 0x64, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x72, 0x69, 0x70,
+ 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x48, 0x00, 0x52, 0x04, 0x65, 0x64, 0x67, 0x65, 0x12,
+ 0x44, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4e,
+ 0x61, 0x6d, 0x65, 0x64, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
+ 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x06, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52,
+ 0x06, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12,
+ 0x30, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x74,
+ 0x68, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x30, 0x0a, 0x08, 0x51,
+ 0x75, 0x65, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x22, 0x68, 0x0a,
+ 0x0b, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x15, 0x0a, 0x06,
+ 0x73, 0x72, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x72,
+ 0x63, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x12, 0x2c, 0x0a, 0x05, 0x71, 0x75, 0x65,
+ 0x72, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71,
+ 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+ 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0xbb, 0x01, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x12, 0x26, 0x0a, 0x05, 0x73,
+ 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x67, 0x72, 0x69,
+ 0x70, 0x71, 0x6c, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
+ 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x05, 0x71, 0x75, 0x65,
+ 0x72, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71,
+ 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+ 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
+ 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65,
+ 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x1c, 0x0a, 0x0a, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73,
+ 0x75, 0x6c, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x02, 0x69, 0x64, 0x22, 0x54, 0x0a, 0x0e, 0x42, 0x75, 0x6c, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x52,
+ 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f,
+ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x73,
+ 0x65, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x72, 0x72, 0x6f,
+ 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65,
+ 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x4f, 0x0a, 0x12, 0x42, 0x75, 0x6c,
+ 0x6b, 0x4a, 0x73, 0x6f, 0x6e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12,
+ 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x75,
+ 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03,
+ 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x6e, 0x0a, 0x0c, 0x47, 0x72,
+ 0x61, 0x70, 0x68, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72,
+ 0x61, 0x70, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68,
+ 0x12, 0x26, 0x0a, 0x06, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x0e, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78,
- 0x48, 0x00, 0x52, 0x06, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x04, 0x65, 0x64,
- 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71,
- 0x6c, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x48, 0x00, 0x52, 0x04, 0x65, 0x64, 0x67, 0x65, 0x12, 0x44,
- 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4e, 0x61,
- 0x6d, 0x65, 0x64, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
- 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x06, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x06,
- 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
- 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30,
- 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c,
- 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68,
- 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x30, 0x0a, 0x08, 0x51, 0x75,
- 0x65, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x22, 0x68, 0x0a, 0x0b,
- 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x73,
- 0x72, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x72, 0x63,
- 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x12, 0x2c, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72,
- 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c,
- 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52,
- 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0xbb, 0x01, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74,
- 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x67, 0x72, 0x69, 0x70,
- 0x71, 0x6c, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61,
- 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72,
- 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c,
- 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52,
- 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
- 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
- 0x74, 0x61, 0x6d, 0x70, 0x22, 0x1c, 0x0a, 0x0a, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75,
- 0x6c, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
- 0x69, 0x64, 0x22, 0x54, 0x0a, 0x0e, 0x42, 0x75, 0x6c, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65,
- 0x73, 0x75, 0x6c, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x63,
- 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x65,
- 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72,
- 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x72,
- 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x4f, 0x0a, 0x12, 0x42, 0x75, 0x6c, 0x6b,
- 0x4a, 0x73, 0x6f, 0x6e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x21,
- 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e,
- 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
- 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x6e, 0x0a, 0x0c, 0x47, 0x72, 0x61,
- 0x70, 0x68, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61,
+ 0x52, 0x06, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x04, 0x65, 0x64, 0x67, 0x65,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e,
+ 0x45, 0x64, 0x67, 0x65, 0x52, 0x04, 0x65, 0x64, 0x67, 0x65, 0x22, 0x1f, 0x0a, 0x07, 0x47, 0x72,
+ 0x61, 0x70, 0x68, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x22, 0x31, 0x0a, 0x09, 0x45,
+ 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70,
+ 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x12, 0x0e,
+ 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4b,
+ 0x0a, 0x07, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61,
0x70, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x12,
- 0x26, 0x0a, 0x06, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x0e, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x52,
- 0x06, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x04, 0x65, 0x64, 0x67, 0x65, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45,
- 0x64, 0x67, 0x65, 0x52, 0x04, 0x65, 0x64, 0x67, 0x65, 0x22, 0x1f, 0x0a, 0x07, 0x47, 0x72, 0x61,
- 0x70, 0x68, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x22, 0x31, 0x0a, 0x09, 0x45, 0x6c,
- 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x12, 0x0e, 0x0a,
- 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4b, 0x0a,
- 0x07, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70,
- 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x12, 0x14,
- 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c,
- 0x61, 0x62, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x29, 0x0a, 0x09, 0x54, 0x69,
- 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
- 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65,
- 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2c,
- 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x61, 0x70, 0x68, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x72, 0x61, 0x70, 0x68, 0x73, 0x18, 0x01,
- 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x67, 0x72, 0x61, 0x70, 0x68, 0x73, 0x22, 0x40, 0x0a, 0x13,
- 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01,
- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x49, 0x6e,
- 0x64, 0x65, 0x78, 0x49, 0x44, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x22, 0x5a,
- 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5f, 0x6c,
- 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x65, 0x72,
- 0x74, 0x65, 0x78, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x64, 0x67,
- 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a,
- 0x65, 0x64, 0x67, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x09, 0x54,
- 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72,
- 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
- 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
- 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x03,
- 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x39, 0x0a, 0x08,
- 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e,
- 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x66,
- 0x6f, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07,
- 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x61, 0x70, 0x1a, 0x3a, 0x0a, 0x0c, 0x4c, 0x69, 0x6e, 0x6b, 0x4d,
- 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+ 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x29, 0x0a, 0x09, 0x54,
+ 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65,
+ 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d,
+ 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22,
+ 0x2c, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x61, 0x70, 0x68, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x72, 0x61, 0x70, 0x68, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x67, 0x72, 0x61, 0x70, 0x68, 0x73, 0x22, 0x40, 0x0a,
+ 0x13, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x49,
+ 0x6e, 0x64, 0x65, 0x78, 0x49, 0x44, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x22,
+ 0x5a, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5f,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x65,
+ 0x72, 0x74, 0x65, 0x78, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x64,
+ 0x67, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52,
+ 0x0a, 0x65, 0x64, 0x67, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x09,
+ 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18,
+ 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x39, 0x0a,
+ 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x1e, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e,
+ 0x66, 0x6f, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
+ 0x07, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x61, 0x70, 0x1a, 0x3a, 0x0a, 0x0c, 0x4c, 0x69, 0x6e, 0x6b,
+ 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x3a, 0x02, 0x38, 0x01, 0x22, 0x54, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61,
+ 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x74,
+ 0x69, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x76, 0x65, 0x72, 0x74,
+ 0x69, 0x63, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20,
+ 0x03, 0x28, 0x09, 0x52, 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x07, 0x52,
+ 0x61, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x12, 0x36, 0x0a, 0x0a,
+ 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x09, 0x65, 0x78, 0x74, 0x72, 0x61,
+ 0x41, 0x72, 0x67, 0x73, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74,
+ 0x61, 0x22, 0xaf, 0x01, 0x0a, 0x0c, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x38,
+ 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20,
+ 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x39, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
- 0x02, 0x38, 0x01, 0x22, 0x54, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74,
- 0x61, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x74, 0x69,
- 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x76, 0x65, 0x72, 0x74, 0x69,
- 0x63, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03,
- 0x28, 0x09, 0x52, 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x07, 0x52, 0x61,
- 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x12, 0x36, 0x0a, 0x0a, 0x65,
- 0x78, 0x74, 0x72, 0x61, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
- 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x09, 0x65, 0x78, 0x74, 0x72, 0x61, 0x41,
- 0x72, 0x67, 0x73, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
- 0x22, 0xaf, 0x01, 0x0a, 0x0c, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
- 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x38, 0x0a,
- 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e,
- 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x6e,
- 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
- 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x39, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69,
- 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
- 0x38, 0x01, 0x22, 0x38, 0x0a, 0x0c, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2f, 0x0a, 0x13,
- 0x4c, 0x69, 0x73, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x73, 0x18, 0x01,
- 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x73, 0x22, 0x2f, 0x0a,
- 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x18,
- 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2a, 0xa2,
- 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x11,
- 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f,
- 0x4e, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x45, 0x51, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4e,
- 0x45, 0x51, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x54, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03,
- 0x47, 0x54, 0x45, 0x10, 0x04, 0x12, 0x06, 0x0a, 0x02, 0x4c, 0x54, 0x10, 0x05, 0x12, 0x07, 0x0a,
- 0x03, 0x4c, 0x54, 0x45, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4e, 0x53, 0x49, 0x44, 0x45,
- 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x55, 0x54, 0x53, 0x49, 0x44, 0x45, 0x10, 0x08, 0x12,
- 0x0b, 0x0a, 0x07, 0x42, 0x45, 0x54, 0x57, 0x45, 0x45, 0x4e, 0x10, 0x09, 0x12, 0x0a, 0x0a, 0x06,
- 0x57, 0x49, 0x54, 0x48, 0x49, 0x4e, 0x10, 0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x49, 0x54, 0x48,
- 0x4f, 0x55, 0x54, 0x10, 0x0b, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e,
- 0x53, 0x10, 0x0c, 0x2a, 0x49, 0x0a, 0x08, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
- 0x0a, 0x0a, 0x06, 0x51, 0x55, 0x45, 0x55, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52,
- 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4d, 0x50,
- 0x4c, 0x45, 0x54, 0x45, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10,
- 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x04, 0x2a, 0x4f,
- 0x0a, 0x09, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55,
- 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49,
- 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x10,
- 0x02, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x4d,
- 0x41, 0x50, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x52, 0x52, 0x41, 0x59, 0x10, 0x05, 0x32,
- 0xcf, 0x06, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x5a, 0x0a, 0x09, 0x54, 0x72, 0x61,
- 0x76, 0x65, 0x72, 0x73, 0x61, 0x6c, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e,
- 0x47, 0x72, 0x61, 0x70, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x13, 0x2e, 0x67, 0x72, 0x69,
- 0x70, 0x71, 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
- 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x76, 0x31, 0x2f,
- 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x71, 0x75,
- 0x65, 0x72, 0x79, 0x30, 0x01, 0x12, 0x55, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x74,
- 0x65, 0x78, 0x12, 0x11, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x6c, 0x65, 0x6d,
- 0x65, 0x6e, 0x74, 0x49, 0x44, 0x1a, 0x0e, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x56,
- 0x65, 0x72, 0x74, 0x65, 0x78, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f,
- 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d,
- 0x2f, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x4f, 0x0a, 0x07,
- 0x47, 0x65, 0x74, 0x45, 0x64, 0x67, 0x65, 0x12, 0x11, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c,
- 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x1a, 0x0c, 0x2e, 0x67, 0x72, 0x69,
- 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d,
- 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61,
- 0x70, 0x68, 0x7d, 0x2f, 0x65, 0x64, 0x67, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x57, 0x0a,
- 0x0c, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x0f, 0x2e,
- 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x49, 0x44, 0x1a, 0x11,
- 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
- 0x70, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x67,
- 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x74, 0x69, 0x6d,
- 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4d, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68,
- 0x65, 0x6d, 0x61, 0x12, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61,
- 0x70, 0x68, 0x49, 0x44, 0x1a, 0x0d, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72,
- 0x61, 0x70, 0x68, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x76, 0x31,
- 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x73,
- 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x4f, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x70, 0x70,
- 0x69, 0x6e, 0x67, 0x12, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61,
- 0x70, 0x68, 0x49, 0x44, 0x1a, 0x0d, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72,
- 0x61, 0x70, 0x68, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x76, 0x31,
- 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x6d,
- 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x4a, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72,
- 0x61, 0x70, 0x68, 0x73, 0x12, 0x0d, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x6d,
- 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4c, 0x69, 0x73,
- 0x74, 0x47, 0x72, 0x61, 0x70, 0x68, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x11, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61,
- 0x70, 0x68, 0x12, 0x5c, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65,
- 0x73, 0x12, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68,
- 0x49, 0x44, 0x1a, 0x1b, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74,
- 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61,
- 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78,
- 0x12, 0x5a, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x0f,
+ 0x02, 0x38, 0x01, 0x22, 0x38, 0x0a, 0x0c, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2f, 0x0a,
+ 0x13, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x73, 0x22, 0x2f,
+ 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73,
+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2a,
+ 0xa2, 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a,
+ 0x11, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49,
+ 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x45, 0x51, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03,
+ 0x4e, 0x45, 0x51, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x54, 0x10, 0x03, 0x12, 0x07, 0x0a,
+ 0x03, 0x47, 0x54, 0x45, 0x10, 0x04, 0x12, 0x06, 0x0a, 0x02, 0x4c, 0x54, 0x10, 0x05, 0x12, 0x07,
+ 0x0a, 0x03, 0x4c, 0x54, 0x45, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4e, 0x53, 0x49, 0x44,
+ 0x45, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x55, 0x54, 0x53, 0x49, 0x44, 0x45, 0x10, 0x08,
+ 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x45, 0x54, 0x57, 0x45, 0x45, 0x4e, 0x10, 0x09, 0x12, 0x0a, 0x0a,
+ 0x06, 0x57, 0x49, 0x54, 0x48, 0x49, 0x4e, 0x10, 0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x49, 0x54,
+ 0x48, 0x4f, 0x55, 0x54, 0x10, 0x0b, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49,
+ 0x4e, 0x53, 0x10, 0x0c, 0x2a, 0x49, 0x0a, 0x08, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65,
+ 0x12, 0x0a, 0x0a, 0x06, 0x51, 0x55, 0x45, 0x55, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07,
+ 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4d,
+ 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52,
+ 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x04, 0x2a,
+ 0x4f, 0x0a, 0x09, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07,
+ 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52,
+ 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43,
+ 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03,
+ 0x4d, 0x41, 0x50, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x52, 0x52, 0x41, 0x59, 0x10, 0x05,
+ 0x32, 0xcf, 0x06, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x5a, 0x0a, 0x09, 0x54, 0x72,
+ 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6c, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c,
+ 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x13, 0x2e, 0x67, 0x72,
+ 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x76, 0x31,
+ 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x71,
+ 0x75, 0x65, 0x72, 0x79, 0x30, 0x01, 0x12, 0x55, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72,
+ 0x74, 0x65, 0x78, 0x12, 0x11, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x6c, 0x65,
+ 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x1a, 0x0e, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e,
+ 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d,
+ 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68,
+ 0x7d, 0x2f, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x4f, 0x0a,
+ 0x07, 0x47, 0x65, 0x74, 0x45, 0x64, 0x67, 0x65, 0x12, 0x11, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71,
+ 0x6c, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x1a, 0x0c, 0x2e, 0x67, 0x72,
+ 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02,
+ 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72,
+ 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x65, 0x64, 0x67, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x57,
+ 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x0f,
0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x49, 0x44, 0x1a,
- 0x1a, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x62,
- 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4,
- 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b,
- 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x43, 0x0a, 0x0a,
- 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x67, 0x72, 0x69,
- 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x11, 0x2e, 0x67, 0x72, 0x69, 0x70,
- 0x71, 0x6c, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x11, 0x82, 0xd3,
- 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x30,
- 0x01, 0x32, 0xed, 0x04, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x50, 0x0a, 0x06, 0x53, 0x75, 0x62,
- 0x6d, 0x69, 0x74, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61,
- 0x70, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x10, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c,
- 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02,
- 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f,
- 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x12, 0x4e, 0x0a, 0x08, 0x4c,
- 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c,
- 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x49, 0x44, 0x1a, 0x10, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71,
- 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93,
- 0x02, 0x17, 0x12, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67,
- 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x30, 0x01, 0x12, 0x5e, 0x0a, 0x0a, 0x53,
- 0x65, 0x61, 0x72, 0x63, 0x68, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70,
- 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x11, 0x2e,
- 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31,
- 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x6a,
- 0x6f, 0x62, 0x2d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x30, 0x01, 0x12, 0x54, 0x0a, 0x09, 0x44,
- 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x10, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71,
- 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x1a, 0x11, 0x2e, 0x67, 0x72, 0x69,
- 0x70, 0x71, 0x6c, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x22, 0x82,
- 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x2a, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68,
- 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x69, 0x64,
- 0x7d, 0x12, 0x51, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x10, 0x2e, 0x67, 0x72,
- 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x1a, 0x11, 0x2e,
- 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72,
- 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f,
- 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x59, 0x0a, 0x07, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x6f, 0x62, 0x12,
- 0x10, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4a, 0x6f,
- 0x62, 0x1a, 0x13, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01,
- 0x2a, 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72,
- 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x30, 0x01, 0x12,
- 0x60, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x13, 0x2e, 0x67,
- 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x72,
- 0x79, 0x1a, 0x13, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01,
- 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72,
- 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2d, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x30,
- 0x01, 0x32, 0xa7, 0x0a, 0x0a, 0x04, 0x45, 0x64, 0x69, 0x74, 0x12, 0x5f, 0x0a, 0x09, 0x41, 0x64,
- 0x64, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x12, 0x14, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c,
+ 0x11, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+ 0x6d, 0x70, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f,
+ 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x74, 0x69,
+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4d, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x63,
+ 0x68, 0x65, 0x6d, 0x61, 0x12, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72,
+ 0x61, 0x70, 0x68, 0x49, 0x44, 0x1a, 0x0d, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47,
+ 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x76,
+ 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f,
+ 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x4f, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x70,
+ 0x70, 0x69, 0x6e, 0x67, 0x12, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72,
+ 0x61, 0x70, 0x68, 0x49, 0x44, 0x1a, 0x0d, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47,
+ 0x72, 0x61, 0x70, 0x68, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x76,
+ 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f,
+ 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x4a, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x47,
+ 0x72, 0x61, 0x70, 0x68, 0x73, 0x12, 0x0d, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45,
+ 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4c, 0x69,
+ 0x73, 0x74, 0x47, 0x72, 0x61, 0x70, 0x68, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x11, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72,
+ 0x61, 0x70, 0x68, 0x12, 0x5c, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x69, 0x63,
+ 0x65, 0x73, 0x12, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70,
+ 0x68, 0x49, 0x44, 0x1a, 0x1b, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4c, 0x69, 0x73,
+ 0x74, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72,
+ 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x69, 0x6e, 0x64, 0x65,
+ 0x78, 0x12, 0x5a, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12,
+ 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x49, 0x44,
+ 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61,
+ 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3,
+ 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f,
+ 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x43, 0x0a,
+ 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x67, 0x72,
+ 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x11, 0x2e, 0x67, 0x72, 0x69,
+ 0x70, 0x71, 0x6c, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x11, 0x82,
+ 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x30, 0x01, 0x32, 0xed, 0x04, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x50, 0x0a, 0x06, 0x53, 0x75,
+ 0x62, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72,
+ 0x61, 0x70, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x10, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71,
+ 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93,
+ 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68,
+ 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x12, 0x4e, 0x0a, 0x08,
+ 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71,
+ 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x49, 0x44, 0x1a, 0x10, 0x2e, 0x67, 0x72, 0x69, 0x70,
+ 0x71, 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x22, 0x1d, 0x82, 0xd3, 0xe4,
+ 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b,
+ 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x30, 0x01, 0x12, 0x5e, 0x0a, 0x0a,
+ 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x69,
+ 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x11,
+ 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76,
+ 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f,
+ 0x6a, 0x6f, 0x62, 0x2d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x30, 0x01, 0x12, 0x54, 0x0a, 0x09,
+ 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x10, 0x2e, 0x67, 0x72, 0x69, 0x70,
+ 0x71, 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x1a, 0x11, 0x2e, 0x67, 0x72,
+ 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x22,
+ 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x2a, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70,
+ 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x69,
+ 0x64, 0x7d, 0x12, 0x51, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x10, 0x2e, 0x67,
+ 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x1a, 0x11,
+ 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x67,
+ 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x6a, 0x6f, 0x62,
+ 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x59, 0x0a, 0x07, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x6f, 0x62,
+ 0x12, 0x10, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4a,
+ 0x6f, 0x62, 0x1a, 0x13, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x72,
+ 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a,
+ 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67,
+ 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x30, 0x01,
+ 0x12, 0x60, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x13, 0x2e,
+ 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x51, 0x75, 0x65,
+ 0x72, 0x79, 0x1a, 0x13, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x72,
+ 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a,
+ 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67,
+ 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2d, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65,
+ 0x30, 0x01, 0x32, 0xa7, 0x0a, 0x0a, 0x04, 0x45, 0x64, 0x69, 0x74, 0x12, 0x5f, 0x0a, 0x09, 0x41,
+ 0x64, 0x64, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x12, 0x14, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71,
+ 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x12,
+ 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75,
+ 0x6c, 0x74, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a, 0x06, 0x76, 0x65, 0x72, 0x74,
+ 0x65, 0x78, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67,
+ 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x12, 0x59, 0x0a, 0x07,
+ 0x41, 0x64, 0x64, 0x45, 0x64, 0x67, 0x65, 0x12, 0x14, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c,
0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x12, 0x2e,
0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c,
- 0x74, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a, 0x06, 0x76, 0x65, 0x72, 0x74, 0x65,
- 0x78, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72,
- 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x12, 0x59, 0x0a, 0x07, 0x41,
- 0x64, 0x64, 0x45, 0x64, 0x67, 0x65, 0x12, 0x14, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e,
- 0x47, 0x72, 0x61, 0x70, 0x68, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x12, 0x2e, 0x67,
- 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
- 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x04, 0x65, 0x64, 0x67, 0x65, 0x22, 0x16,
- 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68,
- 0x7d, 0x2f, 0x65, 0x64, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x07, 0x42, 0x75, 0x6c, 0x6b, 0x41, 0x64,
- 0x64, 0x12, 0x14, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68,
- 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c,
- 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
- 0x11, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x22, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61,
- 0x70, 0x68, 0x28, 0x01, 0x12, 0x50, 0x0a, 0x0a, 0x42, 0x75, 0x6c, 0x6b, 0x41, 0x64, 0x64, 0x52,
- 0x61, 0x77, 0x12, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x52, 0x61, 0x77, 0x4a,
- 0x73, 0x6f, 0x6e, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x42, 0x75, 0x6c,
- 0x6b, 0x4a, 0x73, 0x6f, 0x6e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
- 0x13, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x22, 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x61, 0x77,
- 0x4a, 0x73, 0x6f, 0x6e, 0x28, 0x01, 0x12, 0x4a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x47, 0x72, 0x61,
+ 0x74, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x04, 0x65, 0x64, 0x67, 0x65, 0x22,
+ 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70,
+ 0x68, 0x7d, 0x2f, 0x65, 0x64, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x07, 0x42, 0x75, 0x6c, 0x6b, 0x41,
+ 0x64, 0x64, 0x12, 0x14, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70,
+ 0x68, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71,
+ 0x6c, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x22, 0x11, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x22, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72,
+ 0x61, 0x70, 0x68, 0x28, 0x01, 0x12, 0x50, 0x0a, 0x0a, 0x42, 0x75, 0x6c, 0x6b, 0x41, 0x64, 0x64,
+ 0x52, 0x61, 0x77, 0x12, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x52, 0x61, 0x77,
+ 0x4a, 0x73, 0x6f, 0x6e, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x42, 0x75,
+ 0x6c, 0x6b, 0x4a, 0x73, 0x6f, 0x6e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x22, 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x61,
+ 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x28, 0x01, 0x12, 0x4a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x47, 0x72,
+ 0x61, 0x70, 0x68, 0x12, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61,
+ 0x70, 0x68, 0x49, 0x44, 0x1a, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64,
+ 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13,
+ 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61,
+ 0x70, 0x68, 0x7d, 0x12, 0x4d, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x61,
0x70, 0x68, 0x12, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70,
0x68, 0x49, 0x44, 0x1a, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69,
- 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22,
+ 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x2a,
0x11, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70,
- 0x68, 0x7d, 0x12, 0x4d, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x61, 0x70,
- 0x68, 0x12, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68,
- 0x49, 0x44, 0x1a, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69, 0x74,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x2a, 0x11,
- 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68,
- 0x7d, 0x12, 0x4a, 0x0a, 0x0a, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12,
- 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44,
- 0x61, 0x74, 0x61, 0x1a, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69,
- 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x3a,
- 0x01, 0x2a, 0x2a, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x12, 0x5c, 0x0a,
- 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x12, 0x11, 0x2e,
- 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44,
- 0x1a, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65,
- 0x73, 0x75, 0x6c, 0x74, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x2a, 0x1d, 0x2f, 0x76,
- 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f,
- 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x58, 0x0a, 0x0a, 0x44,
- 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x64, 0x67, 0x65, 0x12, 0x11, 0x2e, 0x67, 0x72, 0x69, 0x70,
- 0x71, 0x6c, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x1a, 0x12, 0x2e, 0x67,
- 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
- 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x2a, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72,
- 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x65, 0x64, 0x67, 0x65,
- 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x5b, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x64, 0x65,
- 0x78, 0x12, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78,
- 0x49, 0x44, 0x1a, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69, 0x74,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x3a, 0x01,
- 0x2a, 0x22, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72,
- 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2f, 0x7b, 0x6c, 0x61, 0x62, 0x65,
- 0x6c, 0x7d, 0x12, 0x63, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65,
- 0x78, 0x12, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78,
- 0x49, 0x44, 0x1a, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69, 0x74,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x2a, 0x27,
- 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68,
- 0x7d, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2f, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7d, 0x2f,
- 0x7b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x7d, 0x12, 0x53, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x53, 0x63,
- 0x68, 0x65, 0x6d, 0x61, 0x12, 0x0d, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72,
- 0x61, 0x70, 0x68, 0x1a, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69,
- 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a,
- 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67,
- 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x5d, 0x0a, 0x0d,
- 0x41, 0x64, 0x64, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x0f, 0x2e,
- 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x52, 0x61, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x1a, 0x12,
- 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75,
- 0x6c, 0x74, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f,
+ 0x68, 0x7d, 0x12, 0x4a, 0x0a, 0x0a, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
+ 0x12, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
+ 0x44, 0x61, 0x74, 0x61, 0x1a, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64,
+ 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e,
+ 0x3a, 0x01, 0x2a, 0x2a, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x12, 0x5c,
+ 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x12, 0x11,
+ 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49,
+ 0x44, 0x1a, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x52,
+ 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x2a, 0x1d, 0x2f,
0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d,
- 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x57, 0x0a, 0x0c, 0x53,
- 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x0f, 0x2e, 0x67, 0x72,
- 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x49, 0x44, 0x1a, 0x0d, 0x2e, 0x67,
- 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x27, 0x82, 0xd3, 0xe4,
- 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b,
- 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2d, 0x73, 0x61,
- 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x55, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x70, 0x70, 0x69,
- 0x6e, 0x67, 0x12, 0x0d, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70,
- 0x68, 0x1a, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x52,
- 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a,
- 0x22, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61,
- 0x70, 0x68, 0x7d, 0x2f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x32, 0x82, 0x02, 0x0a, 0x09,
- 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x57, 0x0a, 0x0b, 0x53, 0x74, 0x61,
- 0x72, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x14, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71,
- 0x6c, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x14,
- 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x22,
- 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2f, 0x7b, 0x6e, 0x61, 0x6d,
- 0x65, 0x7d, 0x12, 0x4d, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e,
+ 0x2f, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x58, 0x0a, 0x0a,
+ 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x64, 0x67, 0x65, 0x12, 0x11, 0x2e, 0x67, 0x72, 0x69,
+ 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x1a, 0x12, 0x2e,
+ 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x2a, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x67,
+ 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x65, 0x64, 0x67,
+ 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x5b, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x64,
+ 0x65, 0x78, 0x12, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x49, 0x6e, 0x64, 0x65,
+ 0x78, 0x49, 0x44, 0x1a, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69,
+ 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x3a,
+ 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67,
+ 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2f, 0x7b, 0x6c, 0x61, 0x62,
+ 0x65, 0x6c, 0x7d, 0x12, 0x63, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64,
+ 0x65, 0x78, 0x12, 0x0f, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x49, 0x6e, 0x64, 0x65,
+ 0x78, 0x49, 0x44, 0x1a, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69,
+ 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x2a,
+ 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70,
+ 0x68, 0x7d, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2f, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7d,
+ 0x2f, 0x7b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x7d, 0x12, 0x53, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x53,
+ 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x0d, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47,
+ 0x72, 0x61, 0x70, 0x68, 0x1a, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64,
+ 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d,
+ 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b,
+ 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x5d, 0x0a,
+ 0x0d, 0x41, 0x64, 0x64, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x0f,
+ 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x52, 0x61, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x1a,
+ 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73,
+ 0x75, 0x6c, 0x74, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c,
+ 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68,
+ 0x7d, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x57, 0x0a, 0x0c,
+ 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x0f, 0x2e, 0x67,
+ 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x49, 0x44, 0x1a, 0x0d, 0x2e,
+ 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x27, 0x82, 0xd3,
+ 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f,
+ 0x7b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2d, 0x73,
+ 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x55, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x70, 0x70,
+ 0x69, 0x6e, 0x67, 0x12, 0x0d, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x47, 0x72, 0x61,
+ 0x70, 0x68, 0x1a, 0x12, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x64, 0x69, 0x74,
+ 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01,
+ 0x2a, 0x22, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7b, 0x67, 0x72,
+ 0x61, 0x70, 0x68, 0x7d, 0x2f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x32, 0x82, 0x02, 0x0a,
+ 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x57, 0x0a, 0x0b, 0x53, 0x74,
+ 0x61, 0x72, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x14, 0x2e, 0x67, 0x72, 0x69, 0x70,
+ 0x71, 0x6c, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a,
+ 0x14, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a,
+ 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2f, 0x7b, 0x6e, 0x61,
+ 0x6d, 0x65, 0x7d, 0x12, 0x4d, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69,
+ 0x6e, 0x73, 0x12, 0x0d, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74,
+ 0x79, 0x1a, 0x1b, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50,
+ 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x12,
+ 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6c, 0x75, 0x67,
+ 0x69, 0x6e, 0x12, 0x4d, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72,
0x73, 0x12, 0x0d, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
- 0x1a, 0x1b, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6c,
- 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x12, 0x82,
- 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69,
- 0x6e, 0x12, 0x4d, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x73,
- 0x12, 0x0d, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
- 0x1b, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x72, 0x69,
- 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x12, 0x82, 0xd3,
- 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72,
- 0x42, 0x1d, 0x5a, 0x1b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62,
- 0x6d, 0x65, 0x67, 0x2f, 0x67, 0x72, 0x69, 0x70, 0x2f, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x62,
- 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x1a, 0x1b, 0x2e, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x72,
+ 0x69, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x12, 0x82,
+ 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x72, 0x69, 0x76, 0x65,
+ 0x72, 0x42, 0x1d, 0x5a, 0x1b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x62, 0x6d, 0x65, 0x67, 0x2f, 0x67, 0x72, 0x69, 0x70, 0x2f, 0x67, 0x72, 0x69, 0x70, 0x71, 0x6c,
+ 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -4271,7 +4591,7 @@ func file_gripql_proto_rawDescGZIP() []byte {
}
var file_gripql_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
-var file_gripql_proto_msgTypes = make([]protoimpl.MessageInfo, 52)
+var file_gripql_proto_msgTypes = make([]protoimpl.MessageInfo, 58)
var file_gripql_proto_goTypes = []any{
(Condition)(0), // 0: gripql.Condition
(JobState)(0), // 1: gripql.JobState
@@ -4297,185 +4617,197 @@ var file_gripql_proto_goTypes = []any{
(*HasExpressionList)(nil), // 21: gripql.HasExpressionList
(*HasExpression)(nil), // 22: gripql.HasExpression
(*HasCondition)(nil), // 23: gripql.HasCondition
- (*Jump)(nil), // 24: gripql.Jump
- (*Set)(nil), // 25: gripql.Set
- (*Increment)(nil), // 26: gripql.Increment
- (*Vertex)(nil), // 27: gripql.Vertex
- (*Edge)(nil), // 28: gripql.Edge
- (*QueryResult)(nil), // 29: gripql.QueryResult
- (*QueryJob)(nil), // 30: gripql.QueryJob
- (*ExtendQuery)(nil), // 31: gripql.ExtendQuery
- (*JobStatus)(nil), // 32: gripql.JobStatus
- (*EditResult)(nil), // 33: gripql.EditResult
- (*BulkEditResult)(nil), // 34: gripql.BulkEditResult
- (*BulkJsonEditResult)(nil), // 35: gripql.BulkJsonEditResult
- (*GraphElement)(nil), // 36: gripql.GraphElement
- (*GraphID)(nil), // 37: gripql.GraphID
- (*ElementID)(nil), // 38: gripql.ElementID
- (*IndexID)(nil), // 39: gripql.IndexID
- (*Timestamp)(nil), // 40: gripql.Timestamp
- (*Empty)(nil), // 41: gripql.Empty
- (*ListGraphsResponse)(nil), // 42: gripql.ListGraphsResponse
- (*ListIndicesResponse)(nil), // 43: gripql.ListIndicesResponse
- (*ListLabelsResponse)(nil), // 44: gripql.ListLabelsResponse
- (*TableInfo)(nil), // 45: gripql.TableInfo
- (*DeleteData)(nil), // 46: gripql.DeleteData
- (*RawJson)(nil), // 47: gripql.RawJson
- (*PluginConfig)(nil), // 48: gripql.PluginConfig
- (*PluginStatus)(nil), // 49: gripql.PluginStatus
- (*ListDriversResponse)(nil), // 50: gripql.ListDriversResponse
- (*ListPluginsResponse)(nil), // 51: gripql.ListPluginsResponse
- nil, // 52: gripql.Group.FieldsEntry
- nil, // 53: gripql.TableInfo.LinkMapEntry
- nil, // 54: gripql.PluginConfig.ConfigEntry
- (*structpb.ListValue)(nil), // 55: google.protobuf.ListValue
- (*structpb.Value)(nil), // 56: google.protobuf.Value
- (*structpb.Struct)(nil), // 57: google.protobuf.Struct
+ (*Sorting)(nil), // 24: gripql.Sorting
+ (*SortField)(nil), // 25: gripql.SortField
+ (*SelectStatement)(nil), // 26: gripql.SelectStatement
+ (*Selection)(nil), // 27: gripql.Selection
+ (*Selections)(nil), // 28: gripql.Selections
+ (*Jump)(nil), // 29: gripql.Jump
+ (*Set)(nil), // 30: gripql.Set
+ (*Increment)(nil), // 31: gripql.Increment
+ (*Vertex)(nil), // 32: gripql.Vertex
+ (*Edge)(nil), // 33: gripql.Edge
+ (*QueryResult)(nil), // 34: gripql.QueryResult
+ (*QueryJob)(nil), // 35: gripql.QueryJob
+ (*ExtendQuery)(nil), // 36: gripql.ExtendQuery
+ (*JobStatus)(nil), // 37: gripql.JobStatus
+ (*EditResult)(nil), // 38: gripql.EditResult
+ (*BulkEditResult)(nil), // 39: gripql.BulkEditResult
+ (*BulkJsonEditResult)(nil), // 40: gripql.BulkJsonEditResult
+ (*GraphElement)(nil), // 41: gripql.GraphElement
+ (*GraphID)(nil), // 42: gripql.GraphID
+ (*ElementID)(nil), // 43: gripql.ElementID
+ (*IndexID)(nil), // 44: gripql.IndexID
+ (*Timestamp)(nil), // 45: gripql.Timestamp
+ (*Empty)(nil), // 46: gripql.Empty
+ (*ListGraphsResponse)(nil), // 47: gripql.ListGraphsResponse
+ (*ListIndicesResponse)(nil), // 48: gripql.ListIndicesResponse
+ (*ListLabelsResponse)(nil), // 49: gripql.ListLabelsResponse
+ (*TableInfo)(nil), // 50: gripql.TableInfo
+ (*DeleteData)(nil), // 51: gripql.DeleteData
+ (*RawJson)(nil), // 52: gripql.RawJson
+ (*PluginConfig)(nil), // 53: gripql.PluginConfig
+ (*PluginStatus)(nil), // 54: gripql.PluginStatus
+ (*ListDriversResponse)(nil), // 55: gripql.ListDriversResponse
+ (*ListPluginsResponse)(nil), // 56: gripql.ListPluginsResponse
+ nil, // 57: gripql.Group.FieldsEntry
+ nil, // 58: gripql.Selections.SelectionsEntry
+ nil, // 59: gripql.TableInfo.LinkMapEntry
+ nil, // 60: gripql.PluginConfig.ConfigEntry
+ (*structpb.ListValue)(nil), // 61: google.protobuf.ListValue
+ (*structpb.Value)(nil), // 62: google.protobuf.Value
+ (*structpb.Struct)(nil), // 63: google.protobuf.Struct
}
var file_gripql_proto_depIdxs = []int32{
- 27, // 0: gripql.Graph.vertices:type_name -> gripql.Vertex
- 28, // 1: gripql.Graph.edges:type_name -> gripql.Edge
+ 32, // 0: gripql.Graph.vertices:type_name -> gripql.Vertex
+ 33, // 1: gripql.Graph.edges:type_name -> gripql.Edge
6, // 2: gripql.GraphQuery.query:type_name -> gripql.GraphStatement
6, // 3: gripql.QuerySet.query:type_name -> gripql.GraphStatement
- 55, // 4: gripql.GraphStatement.v:type_name -> google.protobuf.ListValue
- 55, // 5: gripql.GraphStatement.e:type_name -> google.protobuf.ListValue
- 55, // 6: gripql.GraphStatement.in:type_name -> google.protobuf.ListValue
- 55, // 7: gripql.GraphStatement.out:type_name -> google.protobuf.ListValue
- 55, // 8: gripql.GraphStatement.both:type_name -> google.protobuf.ListValue
- 55, // 9: gripql.GraphStatement.in_e:type_name -> google.protobuf.ListValue
- 55, // 10: gripql.GraphStatement.out_e:type_name -> google.protobuf.ListValue
- 55, // 11: gripql.GraphStatement.both_e:type_name -> google.protobuf.ListValue
- 55, // 12: gripql.GraphStatement.in_null:type_name -> google.protobuf.ListValue
- 55, // 13: gripql.GraphStatement.out_null:type_name -> google.protobuf.ListValue
- 55, // 14: gripql.GraphStatement.in_e_null:type_name -> google.protobuf.ListValue
- 55, // 15: gripql.GraphStatement.out_e_null:type_name -> google.protobuf.ListValue
+ 61, // 4: gripql.GraphStatement.v:type_name -> google.protobuf.ListValue
+ 61, // 5: gripql.GraphStatement.e:type_name -> google.protobuf.ListValue
+ 61, // 6: gripql.GraphStatement.in:type_name -> google.protobuf.ListValue
+ 61, // 7: gripql.GraphStatement.out:type_name -> google.protobuf.ListValue
+ 61, // 8: gripql.GraphStatement.both:type_name -> google.protobuf.ListValue
+ 61, // 9: gripql.GraphStatement.in_e:type_name -> google.protobuf.ListValue
+ 61, // 10: gripql.GraphStatement.out_e:type_name -> google.protobuf.ListValue
+ 61, // 11: gripql.GraphStatement.both_e:type_name -> google.protobuf.ListValue
+ 61, // 12: gripql.GraphStatement.in_null:type_name -> google.protobuf.ListValue
+ 61, // 13: gripql.GraphStatement.out_null:type_name -> google.protobuf.ListValue
+ 61, // 14: gripql.GraphStatement.in_e_null:type_name -> google.protobuf.ListValue
+ 61, // 15: gripql.GraphStatement.out_e_null:type_name -> google.protobuf.ListValue
7, // 16: gripql.GraphStatement.range:type_name -> gripql.Range
22, // 17: gripql.GraphStatement.has:type_name -> gripql.HasExpression
- 55, // 18: gripql.GraphStatement.has_label:type_name -> google.protobuf.ListValue
- 55, // 19: gripql.GraphStatement.has_key:type_name -> google.protobuf.ListValue
- 55, // 20: gripql.GraphStatement.has_id:type_name -> google.protobuf.ListValue
- 55, // 21: gripql.GraphStatement.distinct:type_name -> google.protobuf.ListValue
+ 61, // 18: gripql.GraphStatement.has_label:type_name -> google.protobuf.ListValue
+ 61, // 19: gripql.GraphStatement.has_key:type_name -> google.protobuf.ListValue
+ 61, // 20: gripql.GraphStatement.has_id:type_name -> google.protobuf.ListValue
+ 61, // 21: gripql.GraphStatement.distinct:type_name -> google.protobuf.ListValue
19, // 22: gripql.GraphStatement.pivot:type_name -> gripql.PivotStep
- 55, // 23: gripql.GraphStatement.fields:type_name -> google.protobuf.ListValue
+ 61, // 23: gripql.GraphStatement.fields:type_name -> google.protobuf.ListValue
17, // 24: gripql.GraphStatement.group:type_name -> gripql.Group
18, // 25: gripql.GraphStatement.totype:type_name -> gripql.ToType
9, // 26: gripql.GraphStatement.aggregate:type_name -> gripql.Aggregations
- 56, // 27: gripql.GraphStatement.render:type_name -> google.protobuf.Value
- 55, // 28: gripql.GraphStatement.path:type_name -> google.protobuf.ListValue
- 24, // 29: gripql.GraphStatement.jump:type_name -> gripql.Jump
- 25, // 30: gripql.GraphStatement.set:type_name -> gripql.Set
- 26, // 31: gripql.GraphStatement.increment:type_name -> gripql.Increment
- 10, // 32: gripql.AggregationsRequest.aggregations:type_name -> gripql.Aggregate
- 10, // 33: gripql.Aggregations.aggregations:type_name -> gripql.Aggregate
- 11, // 34: gripql.Aggregate.term:type_name -> gripql.TermAggregation
- 12, // 35: gripql.Aggregate.percentile:type_name -> gripql.PercentileAggregation
- 13, // 36: gripql.Aggregate.histogram:type_name -> gripql.HistogramAggregation
- 14, // 37: gripql.Aggregate.field:type_name -> gripql.FieldAggregation
- 15, // 38: gripql.Aggregate.type:type_name -> gripql.TypeAggregation
- 16, // 39: gripql.Aggregate.count:type_name -> gripql.CountAggregation
- 52, // 40: gripql.Group.fields:type_name -> gripql.Group.FieldsEntry
- 56, // 41: gripql.NamedAggregationResult.key:type_name -> google.protobuf.Value
- 22, // 42: gripql.HasExpressionList.expressions:type_name -> gripql.HasExpression
- 21, // 43: gripql.HasExpression.and:type_name -> gripql.HasExpressionList
- 21, // 44: gripql.HasExpression.or:type_name -> gripql.HasExpressionList
- 22, // 45: gripql.HasExpression.not:type_name -> gripql.HasExpression
- 23, // 46: gripql.HasExpression.condition:type_name -> gripql.HasCondition
- 56, // 47: gripql.HasCondition.value:type_name -> google.protobuf.Value
- 0, // 48: gripql.HasCondition.condition:type_name -> gripql.Condition
- 22, // 49: gripql.Jump.expression:type_name -> gripql.HasExpression
- 56, // 50: gripql.Set.value:type_name -> google.protobuf.Value
- 57, // 51: gripql.Vertex.data:type_name -> google.protobuf.Struct
- 57, // 52: gripql.Edge.data:type_name -> google.protobuf.Struct
- 27, // 53: gripql.QueryResult.vertex:type_name -> gripql.Vertex
- 28, // 54: gripql.QueryResult.edge:type_name -> gripql.Edge
- 20, // 55: gripql.QueryResult.aggregations:type_name -> gripql.NamedAggregationResult
- 56, // 56: gripql.QueryResult.render:type_name -> google.protobuf.Value
- 55, // 57: gripql.QueryResult.path:type_name -> google.protobuf.ListValue
- 6, // 58: gripql.ExtendQuery.query:type_name -> gripql.GraphStatement
- 1, // 59: gripql.JobStatus.state:type_name -> gripql.JobState
- 6, // 60: gripql.JobStatus.query:type_name -> gripql.GraphStatement
- 27, // 61: gripql.GraphElement.vertex:type_name -> gripql.Vertex
- 28, // 62: gripql.GraphElement.edge:type_name -> gripql.Edge
- 39, // 63: gripql.ListIndicesResponse.indices:type_name -> gripql.IndexID
- 53, // 64: gripql.TableInfo.link_map:type_name -> gripql.TableInfo.LinkMapEntry
- 57, // 65: gripql.RawJson.extra_args:type_name -> google.protobuf.Struct
- 57, // 66: gripql.RawJson.data:type_name -> google.protobuf.Struct
- 54, // 67: gripql.PluginConfig.config:type_name -> gripql.PluginConfig.ConfigEntry
- 4, // 68: gripql.Query.Traversal:input_type -> gripql.GraphQuery
- 38, // 69: gripql.Query.GetVertex:input_type -> gripql.ElementID
- 38, // 70: gripql.Query.GetEdge:input_type -> gripql.ElementID
- 37, // 71: gripql.Query.GetTimestamp:input_type -> gripql.GraphID
- 37, // 72: gripql.Query.GetSchema:input_type -> gripql.GraphID
- 37, // 73: gripql.Query.GetMapping:input_type -> gripql.GraphID
- 41, // 74: gripql.Query.ListGraphs:input_type -> gripql.Empty
- 37, // 75: gripql.Query.ListIndices:input_type -> gripql.GraphID
- 37, // 76: gripql.Query.ListLabels:input_type -> gripql.GraphID
- 41, // 77: gripql.Query.ListTables:input_type -> gripql.Empty
- 4, // 78: gripql.Job.Submit:input_type -> gripql.GraphQuery
- 37, // 79: gripql.Job.ListJobs:input_type -> gripql.GraphID
- 4, // 80: gripql.Job.SearchJobs:input_type -> gripql.GraphQuery
- 30, // 81: gripql.Job.DeleteJob:input_type -> gripql.QueryJob
- 30, // 82: gripql.Job.GetJob:input_type -> gripql.QueryJob
- 30, // 83: gripql.Job.ViewJob:input_type -> gripql.QueryJob
- 31, // 84: gripql.Job.ResumeJob:input_type -> gripql.ExtendQuery
- 36, // 85: gripql.Edit.AddVertex:input_type -> gripql.GraphElement
- 36, // 86: gripql.Edit.AddEdge:input_type -> gripql.GraphElement
- 36, // 87: gripql.Edit.BulkAdd:input_type -> gripql.GraphElement
- 47, // 88: gripql.Edit.BulkAddRaw:input_type -> gripql.RawJson
- 37, // 89: gripql.Edit.AddGraph:input_type -> gripql.GraphID
- 37, // 90: gripql.Edit.DeleteGraph:input_type -> gripql.GraphID
- 46, // 91: gripql.Edit.BulkDelete:input_type -> gripql.DeleteData
- 38, // 92: gripql.Edit.DeleteVertex:input_type -> gripql.ElementID
- 38, // 93: gripql.Edit.DeleteEdge:input_type -> gripql.ElementID
- 39, // 94: gripql.Edit.AddIndex:input_type -> gripql.IndexID
- 39, // 95: gripql.Edit.DeleteIndex:input_type -> gripql.IndexID
- 3, // 96: gripql.Edit.AddSchema:input_type -> gripql.Graph
- 47, // 97: gripql.Edit.AddJsonSchema:input_type -> gripql.RawJson
- 37, // 98: gripql.Edit.SampleSchema:input_type -> gripql.GraphID
- 3, // 99: gripql.Edit.AddMapping:input_type -> gripql.Graph
- 48, // 100: gripql.Configure.StartPlugin:input_type -> gripql.PluginConfig
- 41, // 101: gripql.Configure.ListPlugins:input_type -> gripql.Empty
- 41, // 102: gripql.Configure.ListDrivers:input_type -> gripql.Empty
- 29, // 103: gripql.Query.Traversal:output_type -> gripql.QueryResult
- 27, // 104: gripql.Query.GetVertex:output_type -> gripql.Vertex
- 28, // 105: gripql.Query.GetEdge:output_type -> gripql.Edge
- 40, // 106: gripql.Query.GetTimestamp:output_type -> gripql.Timestamp
- 3, // 107: gripql.Query.GetSchema:output_type -> gripql.Graph
- 3, // 108: gripql.Query.GetMapping:output_type -> gripql.Graph
- 42, // 109: gripql.Query.ListGraphs:output_type -> gripql.ListGraphsResponse
- 43, // 110: gripql.Query.ListIndices:output_type -> gripql.ListIndicesResponse
- 44, // 111: gripql.Query.ListLabels:output_type -> gripql.ListLabelsResponse
- 45, // 112: gripql.Query.ListTables:output_type -> gripql.TableInfo
- 30, // 113: gripql.Job.Submit:output_type -> gripql.QueryJob
- 30, // 114: gripql.Job.ListJobs:output_type -> gripql.QueryJob
- 32, // 115: gripql.Job.SearchJobs:output_type -> gripql.JobStatus
- 32, // 116: gripql.Job.DeleteJob:output_type -> gripql.JobStatus
- 32, // 117: gripql.Job.GetJob:output_type -> gripql.JobStatus
- 29, // 118: gripql.Job.ViewJob:output_type -> gripql.QueryResult
- 29, // 119: gripql.Job.ResumeJob:output_type -> gripql.QueryResult
- 33, // 120: gripql.Edit.AddVertex:output_type -> gripql.EditResult
- 33, // 121: gripql.Edit.AddEdge:output_type -> gripql.EditResult
- 34, // 122: gripql.Edit.BulkAdd:output_type -> gripql.BulkEditResult
- 35, // 123: gripql.Edit.BulkAddRaw:output_type -> gripql.BulkJsonEditResult
- 33, // 124: gripql.Edit.AddGraph:output_type -> gripql.EditResult
- 33, // 125: gripql.Edit.DeleteGraph:output_type -> gripql.EditResult
- 33, // 126: gripql.Edit.BulkDelete:output_type -> gripql.EditResult
- 33, // 127: gripql.Edit.DeleteVertex:output_type -> gripql.EditResult
- 33, // 128: gripql.Edit.DeleteEdge:output_type -> gripql.EditResult
- 33, // 129: gripql.Edit.AddIndex:output_type -> gripql.EditResult
- 33, // 130: gripql.Edit.DeleteIndex:output_type -> gripql.EditResult
- 33, // 131: gripql.Edit.AddSchema:output_type -> gripql.EditResult
- 33, // 132: gripql.Edit.AddJsonSchema:output_type -> gripql.EditResult
- 3, // 133: gripql.Edit.SampleSchema:output_type -> gripql.Graph
- 33, // 134: gripql.Edit.AddMapping:output_type -> gripql.EditResult
- 49, // 135: gripql.Configure.StartPlugin:output_type -> gripql.PluginStatus
- 51, // 136: gripql.Configure.ListPlugins:output_type -> gripql.ListPluginsResponse
- 50, // 137: gripql.Configure.ListDrivers:output_type -> gripql.ListDriversResponse
- 103, // [103:138] is the sub-list for method output_type
- 68, // [68:103] is the sub-list for method input_type
- 68, // [68:68] is the sub-list for extension type_name
- 68, // [68:68] is the sub-list for extension extendee
- 0, // [0:68] is the sub-list for field type_name
+ 62, // 27: gripql.GraphStatement.render:type_name -> google.protobuf.Value
+ 61, // 28: gripql.GraphStatement.path:type_name -> google.protobuf.ListValue
+ 24, // 29: gripql.GraphStatement.sort:type_name -> gripql.Sorting
+ 29, // 30: gripql.GraphStatement.jump:type_name -> gripql.Jump
+ 30, // 31: gripql.GraphStatement.set:type_name -> gripql.Set
+ 31, // 32: gripql.GraphStatement.increment:type_name -> gripql.Increment
+ 10, // 33: gripql.AggregationsRequest.aggregations:type_name -> gripql.Aggregate
+ 10, // 34: gripql.Aggregations.aggregations:type_name -> gripql.Aggregate
+ 11, // 35: gripql.Aggregate.term:type_name -> gripql.TermAggregation
+ 12, // 36: gripql.Aggregate.percentile:type_name -> gripql.PercentileAggregation
+ 13, // 37: gripql.Aggregate.histogram:type_name -> gripql.HistogramAggregation
+ 14, // 38: gripql.Aggregate.field:type_name -> gripql.FieldAggregation
+ 15, // 39: gripql.Aggregate.type:type_name -> gripql.TypeAggregation
+ 16, // 40: gripql.Aggregate.count:type_name -> gripql.CountAggregation
+ 57, // 41: gripql.Group.fields:type_name -> gripql.Group.FieldsEntry
+ 62, // 42: gripql.NamedAggregationResult.key:type_name -> google.protobuf.Value
+ 22, // 43: gripql.HasExpressionList.expressions:type_name -> gripql.HasExpression
+ 21, // 44: gripql.HasExpression.and:type_name -> gripql.HasExpressionList
+ 21, // 45: gripql.HasExpression.or:type_name -> gripql.HasExpressionList
+ 22, // 46: gripql.HasExpression.not:type_name -> gripql.HasExpression
+ 23, // 47: gripql.HasExpression.condition:type_name -> gripql.HasCondition
+ 62, // 48: gripql.HasCondition.value:type_name -> google.protobuf.Value
+ 0, // 49: gripql.HasCondition.condition:type_name -> gripql.Condition
+ 25, // 50: gripql.Sorting.fields:type_name -> gripql.SortField
+ 32, // 51: gripql.Selection.vertex:type_name -> gripql.Vertex
+ 33, // 52: gripql.Selection.edge:type_name -> gripql.Edge
+ 58, // 53: gripql.Selections.selections:type_name -> gripql.Selections.SelectionsEntry
+ 22, // 54: gripql.Jump.expression:type_name -> gripql.HasExpression
+ 62, // 55: gripql.Set.value:type_name -> google.protobuf.Value
+ 63, // 56: gripql.Vertex.data:type_name -> google.protobuf.Struct
+ 63, // 57: gripql.Edge.data:type_name -> google.protobuf.Struct
+ 32, // 58: gripql.QueryResult.vertex:type_name -> gripql.Vertex
+ 33, // 59: gripql.QueryResult.edge:type_name -> gripql.Edge
+ 20, // 60: gripql.QueryResult.aggregations:type_name -> gripql.NamedAggregationResult
+ 62, // 61: gripql.QueryResult.render:type_name -> google.protobuf.Value
+ 61, // 62: gripql.QueryResult.path:type_name -> google.protobuf.ListValue
+ 6, // 63: gripql.ExtendQuery.query:type_name -> gripql.GraphStatement
+ 1, // 64: gripql.JobStatus.state:type_name -> gripql.JobState
+ 6, // 65: gripql.JobStatus.query:type_name -> gripql.GraphStatement
+ 32, // 66: gripql.GraphElement.vertex:type_name -> gripql.Vertex
+ 33, // 67: gripql.GraphElement.edge:type_name -> gripql.Edge
+ 44, // 68: gripql.ListIndicesResponse.indices:type_name -> gripql.IndexID
+ 59, // 69: gripql.TableInfo.link_map:type_name -> gripql.TableInfo.LinkMapEntry
+ 63, // 70: gripql.RawJson.extra_args:type_name -> google.protobuf.Struct
+ 63, // 71: gripql.RawJson.data:type_name -> google.protobuf.Struct
+ 60, // 72: gripql.PluginConfig.config:type_name -> gripql.PluginConfig.ConfigEntry
+ 27, // 73: gripql.Selections.SelectionsEntry.value:type_name -> gripql.Selection
+ 4, // 74: gripql.Query.Traversal:input_type -> gripql.GraphQuery
+ 43, // 75: gripql.Query.GetVertex:input_type -> gripql.ElementID
+ 43, // 76: gripql.Query.GetEdge:input_type -> gripql.ElementID
+ 42, // 77: gripql.Query.GetTimestamp:input_type -> gripql.GraphID
+ 42, // 78: gripql.Query.GetSchema:input_type -> gripql.GraphID
+ 42, // 79: gripql.Query.GetMapping:input_type -> gripql.GraphID
+ 46, // 80: gripql.Query.ListGraphs:input_type -> gripql.Empty
+ 42, // 81: gripql.Query.ListIndices:input_type -> gripql.GraphID
+ 42, // 82: gripql.Query.ListLabels:input_type -> gripql.GraphID
+ 46, // 83: gripql.Query.ListTables:input_type -> gripql.Empty
+ 4, // 84: gripql.Job.Submit:input_type -> gripql.GraphQuery
+ 42, // 85: gripql.Job.ListJobs:input_type -> gripql.GraphID
+ 4, // 86: gripql.Job.SearchJobs:input_type -> gripql.GraphQuery
+ 35, // 87: gripql.Job.DeleteJob:input_type -> gripql.QueryJob
+ 35, // 88: gripql.Job.GetJob:input_type -> gripql.QueryJob
+ 35, // 89: gripql.Job.ViewJob:input_type -> gripql.QueryJob
+ 36, // 90: gripql.Job.ResumeJob:input_type -> gripql.ExtendQuery
+ 41, // 91: gripql.Edit.AddVertex:input_type -> gripql.GraphElement
+ 41, // 92: gripql.Edit.AddEdge:input_type -> gripql.GraphElement
+ 41, // 93: gripql.Edit.BulkAdd:input_type -> gripql.GraphElement
+ 52, // 94: gripql.Edit.BulkAddRaw:input_type -> gripql.RawJson
+ 42, // 95: gripql.Edit.AddGraph:input_type -> gripql.GraphID
+ 42, // 96: gripql.Edit.DeleteGraph:input_type -> gripql.GraphID
+ 51, // 97: gripql.Edit.BulkDelete:input_type -> gripql.DeleteData
+ 43, // 98: gripql.Edit.DeleteVertex:input_type -> gripql.ElementID
+ 43, // 99: gripql.Edit.DeleteEdge:input_type -> gripql.ElementID
+ 44, // 100: gripql.Edit.AddIndex:input_type -> gripql.IndexID
+ 44, // 101: gripql.Edit.DeleteIndex:input_type -> gripql.IndexID
+ 3, // 102: gripql.Edit.AddSchema:input_type -> gripql.Graph
+ 52, // 103: gripql.Edit.AddJsonSchema:input_type -> gripql.RawJson
+ 42, // 104: gripql.Edit.SampleSchema:input_type -> gripql.GraphID
+ 3, // 105: gripql.Edit.AddMapping:input_type -> gripql.Graph
+ 53, // 106: gripql.Configure.StartPlugin:input_type -> gripql.PluginConfig
+ 46, // 107: gripql.Configure.ListPlugins:input_type -> gripql.Empty
+ 46, // 108: gripql.Configure.ListDrivers:input_type -> gripql.Empty
+ 34, // 109: gripql.Query.Traversal:output_type -> gripql.QueryResult
+ 32, // 110: gripql.Query.GetVertex:output_type -> gripql.Vertex
+ 33, // 111: gripql.Query.GetEdge:output_type -> gripql.Edge
+ 45, // 112: gripql.Query.GetTimestamp:output_type -> gripql.Timestamp
+ 3, // 113: gripql.Query.GetSchema:output_type -> gripql.Graph
+ 3, // 114: gripql.Query.GetMapping:output_type -> gripql.Graph
+ 47, // 115: gripql.Query.ListGraphs:output_type -> gripql.ListGraphsResponse
+ 48, // 116: gripql.Query.ListIndices:output_type -> gripql.ListIndicesResponse
+ 49, // 117: gripql.Query.ListLabels:output_type -> gripql.ListLabelsResponse
+ 50, // 118: gripql.Query.ListTables:output_type -> gripql.TableInfo
+ 35, // 119: gripql.Job.Submit:output_type -> gripql.QueryJob
+ 35, // 120: gripql.Job.ListJobs:output_type -> gripql.QueryJob
+ 37, // 121: gripql.Job.SearchJobs:output_type -> gripql.JobStatus
+ 37, // 122: gripql.Job.DeleteJob:output_type -> gripql.JobStatus
+ 37, // 123: gripql.Job.GetJob:output_type -> gripql.JobStatus
+ 34, // 124: gripql.Job.ViewJob:output_type -> gripql.QueryResult
+ 34, // 125: gripql.Job.ResumeJob:output_type -> gripql.QueryResult
+ 38, // 126: gripql.Edit.AddVertex:output_type -> gripql.EditResult
+ 38, // 127: gripql.Edit.AddEdge:output_type -> gripql.EditResult
+ 39, // 128: gripql.Edit.BulkAdd:output_type -> gripql.BulkEditResult
+ 40, // 129: gripql.Edit.BulkAddRaw:output_type -> gripql.BulkJsonEditResult
+ 38, // 130: gripql.Edit.AddGraph:output_type -> gripql.EditResult
+ 38, // 131: gripql.Edit.DeleteGraph:output_type -> gripql.EditResult
+ 38, // 132: gripql.Edit.BulkDelete:output_type -> gripql.EditResult
+ 38, // 133: gripql.Edit.DeleteVertex:output_type -> gripql.EditResult
+ 38, // 134: gripql.Edit.DeleteEdge:output_type -> gripql.EditResult
+ 38, // 135: gripql.Edit.AddIndex:output_type -> gripql.EditResult
+ 38, // 136: gripql.Edit.DeleteIndex:output_type -> gripql.EditResult
+ 38, // 137: gripql.Edit.AddSchema:output_type -> gripql.EditResult
+ 38, // 138: gripql.Edit.AddJsonSchema:output_type -> gripql.EditResult
+ 3, // 139: gripql.Edit.SampleSchema:output_type -> gripql.Graph
+ 38, // 140: gripql.Edit.AddMapping:output_type -> gripql.EditResult
+ 54, // 141: gripql.Configure.StartPlugin:output_type -> gripql.PluginStatus
+ 56, // 142: gripql.Configure.ListPlugins:output_type -> gripql.ListPluginsResponse
+ 55, // 143: gripql.Configure.ListDrivers:output_type -> gripql.ListDriversResponse
+ 109, // [109:144] is the sub-list for method output_type
+ 74, // [74:109] is the sub-list for method input_type
+ 74, // [74:74] is the sub-list for extension type_name
+ 74, // [74:74] is the sub-list for extension extendee
+ 0, // [0:74] is the sub-list for field type_name
}
func init() { file_gripql_proto_init() }
@@ -4737,7 +5069,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[21].Exporter = func(v any, i int) any {
- switch v := v.(*Jump); i {
+ switch v := v.(*Sorting); i {
case 0:
return &v.state
case 1:
@@ -4749,7 +5081,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[22].Exporter = func(v any, i int) any {
- switch v := v.(*Set); i {
+ switch v := v.(*SortField); i {
case 0:
return &v.state
case 1:
@@ -4761,7 +5093,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[23].Exporter = func(v any, i int) any {
- switch v := v.(*Increment); i {
+ switch v := v.(*SelectStatement); i {
case 0:
return &v.state
case 1:
@@ -4773,7 +5105,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[24].Exporter = func(v any, i int) any {
- switch v := v.(*Vertex); i {
+ switch v := v.(*Selection); i {
case 0:
return &v.state
case 1:
@@ -4785,7 +5117,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[25].Exporter = func(v any, i int) any {
- switch v := v.(*Edge); i {
+ switch v := v.(*Selections); i {
case 0:
return &v.state
case 1:
@@ -4797,7 +5129,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[26].Exporter = func(v any, i int) any {
- switch v := v.(*QueryResult); i {
+ switch v := v.(*Jump); i {
case 0:
return &v.state
case 1:
@@ -4809,7 +5141,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[27].Exporter = func(v any, i int) any {
- switch v := v.(*QueryJob); i {
+ switch v := v.(*Set); i {
case 0:
return &v.state
case 1:
@@ -4821,7 +5153,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[28].Exporter = func(v any, i int) any {
- switch v := v.(*ExtendQuery); i {
+ switch v := v.(*Increment); i {
case 0:
return &v.state
case 1:
@@ -4833,7 +5165,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[29].Exporter = func(v any, i int) any {
- switch v := v.(*JobStatus); i {
+ switch v := v.(*Vertex); i {
case 0:
return &v.state
case 1:
@@ -4845,7 +5177,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[30].Exporter = func(v any, i int) any {
- switch v := v.(*EditResult); i {
+ switch v := v.(*Edge); i {
case 0:
return &v.state
case 1:
@@ -4857,7 +5189,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[31].Exporter = func(v any, i int) any {
- switch v := v.(*BulkEditResult); i {
+ switch v := v.(*QueryResult); i {
case 0:
return &v.state
case 1:
@@ -4869,7 +5201,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[32].Exporter = func(v any, i int) any {
- switch v := v.(*BulkJsonEditResult); i {
+ switch v := v.(*QueryJob); i {
case 0:
return &v.state
case 1:
@@ -4881,7 +5213,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[33].Exporter = func(v any, i int) any {
- switch v := v.(*GraphElement); i {
+ switch v := v.(*ExtendQuery); i {
case 0:
return &v.state
case 1:
@@ -4893,7 +5225,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[34].Exporter = func(v any, i int) any {
- switch v := v.(*GraphID); i {
+ switch v := v.(*JobStatus); i {
case 0:
return &v.state
case 1:
@@ -4905,7 +5237,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[35].Exporter = func(v any, i int) any {
- switch v := v.(*ElementID); i {
+ switch v := v.(*EditResult); i {
case 0:
return &v.state
case 1:
@@ -4917,7 +5249,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[36].Exporter = func(v any, i int) any {
- switch v := v.(*IndexID); i {
+ switch v := v.(*BulkEditResult); i {
case 0:
return &v.state
case 1:
@@ -4929,7 +5261,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[37].Exporter = func(v any, i int) any {
- switch v := v.(*Timestamp); i {
+ switch v := v.(*BulkJsonEditResult); i {
case 0:
return &v.state
case 1:
@@ -4941,7 +5273,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[38].Exporter = func(v any, i int) any {
- switch v := v.(*Empty); i {
+ switch v := v.(*GraphElement); i {
case 0:
return &v.state
case 1:
@@ -4953,7 +5285,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[39].Exporter = func(v any, i int) any {
- switch v := v.(*ListGraphsResponse); i {
+ switch v := v.(*GraphID); i {
case 0:
return &v.state
case 1:
@@ -4965,7 +5297,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[40].Exporter = func(v any, i int) any {
- switch v := v.(*ListIndicesResponse); i {
+ switch v := v.(*ElementID); i {
case 0:
return &v.state
case 1:
@@ -4977,7 +5309,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[41].Exporter = func(v any, i int) any {
- switch v := v.(*ListLabelsResponse); i {
+ switch v := v.(*IndexID); i {
case 0:
return &v.state
case 1:
@@ -4989,7 +5321,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[42].Exporter = func(v any, i int) any {
- switch v := v.(*TableInfo); i {
+ switch v := v.(*Timestamp); i {
case 0:
return &v.state
case 1:
@@ -5001,7 +5333,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[43].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteData); i {
+ switch v := v.(*Empty); i {
case 0:
return &v.state
case 1:
@@ -5013,7 +5345,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[44].Exporter = func(v any, i int) any {
- switch v := v.(*RawJson); i {
+ switch v := v.(*ListGraphsResponse); i {
case 0:
return &v.state
case 1:
@@ -5025,7 +5357,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[45].Exporter = func(v any, i int) any {
- switch v := v.(*PluginConfig); i {
+ switch v := v.(*ListIndicesResponse); i {
case 0:
return &v.state
case 1:
@@ -5037,7 +5369,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[46].Exporter = func(v any, i int) any {
- switch v := v.(*PluginStatus); i {
+ switch v := v.(*ListLabelsResponse); i {
case 0:
return &v.state
case 1:
@@ -5049,7 +5381,7 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[47].Exporter = func(v any, i int) any {
- switch v := v.(*ListDriversResponse); i {
+ switch v := v.(*TableInfo); i {
case 0:
return &v.state
case 1:
@@ -5061,6 +5393,66 @@ func file_gripql_proto_init() {
}
}
file_gripql_proto_msgTypes[48].Exporter = func(v any, i int) any {
+ switch v := v.(*DeleteData); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_gripql_proto_msgTypes[49].Exporter = func(v any, i int) any {
+ switch v := v.(*RawJson); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_gripql_proto_msgTypes[50].Exporter = func(v any, i int) any {
+ switch v := v.(*PluginConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_gripql_proto_msgTypes[51].Exporter = func(v any, i int) any {
+ switch v := v.(*PluginStatus); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_gripql_proto_msgTypes[52].Exporter = func(v any, i int) any {
+ switch v := v.(*ListDriversResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_gripql_proto_msgTypes[53].Exporter = func(v any, i int) any {
switch v := v.(*ListPluginsResponse); i {
case 0:
return &v.state
@@ -5105,6 +5497,7 @@ func file_gripql_proto_init() {
(*GraphStatement_Aggregate)(nil),
(*GraphStatement_Render)(nil),
(*GraphStatement_Path)(nil),
+ (*GraphStatement_Sort)(nil),
(*GraphStatement_Mark)(nil),
(*GraphStatement_Jump)(nil),
(*GraphStatement_Set)(nil),
@@ -5124,7 +5517,11 @@ func file_gripql_proto_init() {
(*HasExpression_Not)(nil),
(*HasExpression_Condition)(nil),
}
- file_gripql_proto_msgTypes[26].OneofWrappers = []any{
+ file_gripql_proto_msgTypes[24].OneofWrappers = []any{
+ (*Selection_Vertex)(nil),
+ (*Selection_Edge)(nil),
+ }
+ file_gripql_proto_msgTypes[31].OneofWrappers = []any{
(*QueryResult_Vertex)(nil),
(*QueryResult_Edge)(nil),
(*QueryResult_Aggregations)(nil),
@@ -5138,7 +5535,7 @@ func file_gripql_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_gripql_proto_rawDesc,
NumEnums: 3,
- NumMessages: 52,
+ NumMessages: 58,
NumExtensions: 0,
NumServices: 4,
},
diff --git a/gripql/gripql.pb.gw.go b/gripql/gripql.pb.gw.go
index 096ce86f..be388d77 100644
--- a/gripql/gripql.pb.gw.go
+++ b/gripql/gripql.pb.gw.go
@@ -10,7 +10,6 @@ package gripql
import (
"context"
- "errors"
"io"
"net/http"
@@ -25,33 +24,38 @@ import (
)
// Suppress "imported and not used" errors
-var (
- _ codes.Code
- _ io.Reader
- _ status.Status
- _ = errors.New
- _ = runtime.String
- _ = utilities.NewDoubleArray
- _ = metadata.Join
-)
+var _ codes.Code
+var _ io.Reader
+var _ status.Status
+var _ = runtime.String
+var _ = utilities.NewDoubleArray
+var _ = metadata.Join
func request_Query_Traversal_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (Query_TraversalClient, runtime.ServerMetadata, error) {
- var (
- protoReq GraphQuery
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq GraphQuery
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
stream, err := client.Traversal(ctx, &protoReq)
if err != nil {
return nil, metadata, err
@@ -62,315 +66,435 @@ func request_Query_Traversal_0(ctx context.Context, marshaler runtime.Marshaler,
}
metadata.HeaderMD = header
return stream, metadata, nil
+
}
func request_Query_GetVertex_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq ElementID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq ElementID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
val, ok = pathParams["id"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id")
}
+
protoReq.Id, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err)
}
+
msg, err := client.GetVertex(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Query_GetVertex_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq ElementID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq ElementID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
val, ok = pathParams["id"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id")
}
+
protoReq.Id, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err)
}
+
msg, err := server.GetVertex(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Query_GetEdge_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq ElementID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq ElementID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
val, ok = pathParams["id"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id")
}
+
protoReq.Id, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err)
}
+
msg, err := client.GetEdge(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Query_GetEdge_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq ElementID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq ElementID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
val, ok = pathParams["id"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id")
}
+
protoReq.Id, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err)
}
+
msg, err := server.GetEdge(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Query_GetTimestamp_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GraphID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq GraphID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := client.GetTimestamp(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Query_GetTimestamp_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GraphID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq GraphID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := server.GetTimestamp(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Query_GetSchema_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GraphID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq GraphID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := client.GetSchema(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Query_GetSchema_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GraphID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq GraphID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := server.GetSchema(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Query_GetMapping_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GraphID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq GraphID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := client.GetMapping(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Query_GetMapping_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GraphID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq GraphID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := server.GetMapping(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Query_ListGraphs_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq Empty
- metadata runtime.ServerMetadata
- )
+ var protoReq Empty
+ var metadata runtime.ServerMetadata
+
msg, err := client.ListGraphs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Query_ListGraphs_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq Empty
- metadata runtime.ServerMetadata
- )
+ var protoReq Empty
+ var metadata runtime.ServerMetadata
+
msg, err := server.ListGraphs(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Query_ListIndices_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GraphID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq GraphID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := client.ListIndices(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Query_ListIndices_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GraphID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq GraphID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := server.ListIndices(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Query_ListLabels_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GraphID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq GraphID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := client.ListLabels(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Query_ListLabels_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GraphID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq GraphID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := server.ListLabels(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Query_ListTables_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (Query_ListTablesClient, runtime.ServerMetadata, error) {
- var (
- protoReq Empty
- metadata runtime.ServerMetadata
- )
+ var protoReq Empty
+ var metadata runtime.ServerMetadata
+
stream, err := client.ListTables(ctx, &protoReq)
if err != nil {
return nil, metadata, err
@@ -381,64 +505,90 @@ func request_Query_ListTables_0(ctx context.Context, marshaler runtime.Marshaler
}
metadata.HeaderMD = header
return stream, metadata, nil
+
}
func request_Job_Submit_0(ctx context.Context, marshaler runtime.Marshaler, client JobClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq GraphQuery
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq GraphQuery
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := client.Submit(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Job_Submit_0(ctx context.Context, marshaler runtime.Marshaler, server JobServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq GraphQuery
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq GraphQuery
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := server.Submit(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Job_ListJobs_0(ctx context.Context, marshaler runtime.Marshaler, client JobClient, req *http.Request, pathParams map[string]string) (Job_ListJobsClient, runtime.ServerMetadata, error) {
+ var protoReq GraphID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq GraphID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
stream, err := client.ListJobs(ctx, &protoReq)
if err != nil {
return nil, metadata, err
@@ -449,25 +599,34 @@ func request_Job_ListJobs_0(ctx context.Context, marshaler runtime.Marshaler, cl
}
metadata.HeaderMD = header
return stream, metadata, nil
+
}
func request_Job_SearchJobs_0(ctx context.Context, marshaler runtime.Marshaler, client JobClient, req *http.Request, pathParams map[string]string) (Job_SearchJobsClient, runtime.ServerMetadata, error) {
- var (
- protoReq GraphQuery
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq GraphQuery
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
stream, err := client.SearchJobs(ctx, &protoReq)
if err != nil {
return nil, metadata, err
@@ -478,137 +637,188 @@ func request_Job_SearchJobs_0(ctx context.Context, marshaler runtime.Marshaler,
}
metadata.HeaderMD = header
return stream, metadata, nil
+
}
func request_Job_DeleteJob_0(ctx context.Context, marshaler runtime.Marshaler, client JobClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq QueryJob
+ var metadata runtime.ServerMetadata
+
var (
- protoReq QueryJob
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
val, ok = pathParams["id"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id")
}
+
protoReq.Id, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err)
}
+
msg, err := client.DeleteJob(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Job_DeleteJob_0(ctx context.Context, marshaler runtime.Marshaler, server JobServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq QueryJob
+ var metadata runtime.ServerMetadata
+
var (
- protoReq QueryJob
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
val, ok = pathParams["id"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id")
}
+
protoReq.Id, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err)
}
+
msg, err := server.DeleteJob(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Job_GetJob_0(ctx context.Context, marshaler runtime.Marshaler, client JobClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq QueryJob
+ var metadata runtime.ServerMetadata
+
var (
- protoReq QueryJob
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
val, ok = pathParams["id"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id")
}
+
protoReq.Id, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err)
}
+
msg, err := client.GetJob(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Job_GetJob_0(ctx context.Context, marshaler runtime.Marshaler, server JobServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq QueryJob
+ var metadata runtime.ServerMetadata
+
var (
- protoReq QueryJob
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
val, ok = pathParams["id"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id")
}
+
protoReq.Id, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err)
}
+
msg, err := server.GetJob(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Job_ViewJob_0(ctx context.Context, marshaler runtime.Marshaler, client JobClient, req *http.Request, pathParams map[string]string) (Job_ViewJobClient, runtime.ServerMetadata, error) {
- var (
- protoReq QueryJob
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq QueryJob
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
val, ok = pathParams["id"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id")
}
+
protoReq.Id, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err)
}
+
stream, err := client.ViewJob(ctx, &protoReq)
if err != nil {
return nil, metadata, err
@@ -619,25 +829,34 @@ func request_Job_ViewJob_0(ctx context.Context, marshaler runtime.Marshaler, cli
}
metadata.HeaderMD = header
return stream, metadata, nil
+
}
func request_Job_ResumeJob_0(ctx context.Context, marshaler runtime.Marshaler, client JobClient, req *http.Request, pathParams map[string]string) (Job_ResumeJobClient, runtime.ServerMetadata, error) {
- var (
- protoReq ExtendQuery
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq ExtendQuery
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
stream, err := client.ResumeJob(ctx, &protoReq)
if err != nil {
return nil, metadata, err
@@ -648,118 +867,163 @@ func request_Job_ResumeJob_0(ctx context.Context, marshaler runtime.Marshaler, c
}
metadata.HeaderMD = header
return stream, metadata, nil
+
}
-var filter_Edit_AddVertex_0 = &utilities.DoubleArray{Encoding: map[string]int{"vertex": 0, "graph": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
+var (
+ filter_Edit_AddVertex_0 = &utilities.DoubleArray{Encoding: map[string]int{"vertex": 0, "graph": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
+)
func request_Edit_AddVertex_0(ctx context.Context, marshaler runtime.Marshaler, client EditClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq GraphElement
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Vertex); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq GraphElement
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Vertex); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Edit_AddVertex_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
+
msg, err := client.AddVertex(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Edit_AddVertex_0(ctx context.Context, marshaler runtime.Marshaler, server EditServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq GraphElement
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Vertex); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq GraphElement
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Vertex); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Edit_AddVertex_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
+
msg, err := server.AddVertex(ctx, &protoReq)
return msg, metadata, err
+
}
-var filter_Edit_AddEdge_0 = &utilities.DoubleArray{Encoding: map[string]int{"edge": 0, "graph": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
+var (
+ filter_Edit_AddEdge_0 = &utilities.DoubleArray{Encoding: map[string]int{"edge": 0, "graph": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
+)
func request_Edit_AddEdge_0(ctx context.Context, marshaler runtime.Marshaler, client EditClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq GraphElement
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Edge); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq GraphElement
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Edge); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Edit_AddEdge_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
+
msg, err := client.AddEdge(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Edit_AddEdge_0(ctx context.Context, marshaler runtime.Marshaler, server EditServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq GraphElement
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Edge); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq GraphElement
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Edge); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Edit_AddEdge_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
+
msg, err := server.AddEdge(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Edit_BulkAdd_0(ctx context.Context, marshaler runtime.Marshaler, client EditClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
@@ -773,7 +1037,7 @@ func request_Edit_BulkAdd_0(ctx context.Context, marshaler runtime.Marshaler, cl
for {
var protoReq GraphElement
err = dec.Decode(&protoReq)
- if errors.Is(err, io.EOF) {
+ if err == io.EOF {
break
}
if err != nil {
@@ -781,13 +1045,14 @@ func request_Edit_BulkAdd_0(ctx context.Context, marshaler runtime.Marshaler, cl
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err = stream.Send(&protoReq); err != nil {
- if errors.Is(err, io.EOF) {
+ if err == io.EOF {
break
}
grpclog.Errorf("Failed to send request: %v", err)
return nil, metadata, err
}
}
+
if err := stream.CloseSend(); err != nil {
grpclog.Errorf("Failed to terminate client stream: %v", err)
return nil, metadata, err
@@ -798,9 +1063,11 @@ func request_Edit_BulkAdd_0(ctx context.Context, marshaler runtime.Marshaler, cl
return nil, metadata, err
}
metadata.HeaderMD = header
+
msg, err := stream.CloseAndRecv()
metadata.TrailerMD = stream.Trailer()
return msg, metadata, err
+
}
func request_Edit_BulkAddRaw_0(ctx context.Context, marshaler runtime.Marshaler, client EditClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
@@ -814,7 +1081,7 @@ func request_Edit_BulkAddRaw_0(ctx context.Context, marshaler runtime.Marshaler,
for {
var protoReq RawJson
err = dec.Decode(&protoReq)
- if errors.Is(err, io.EOF) {
+ if err == io.EOF {
break
}
if err != nil {
@@ -822,13 +1089,14 @@ func request_Edit_BulkAddRaw_0(ctx context.Context, marshaler runtime.Marshaler,
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err = stream.Send(&protoReq); err != nil {
- if errors.Is(err, io.EOF) {
+ if err == io.EOF {
break
}
grpclog.Errorf("Failed to send request: %v", err)
return nil, metadata, err
}
}
+
if err := stream.CloseSend(); err != nil {
grpclog.Errorf("Failed to terminate client stream: %v", err)
return nil, metadata, err
@@ -839,596 +1107,809 @@ func request_Edit_BulkAddRaw_0(ctx context.Context, marshaler runtime.Marshaler,
return nil, metadata, err
}
metadata.HeaderMD = header
+
msg, err := stream.CloseAndRecv()
metadata.TrailerMD = stream.Trailer()
return msg, metadata, err
+
}
func request_Edit_AddGraph_0(ctx context.Context, marshaler runtime.Marshaler, client EditClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GraphID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq GraphID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := client.AddGraph(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Edit_AddGraph_0(ctx context.Context, marshaler runtime.Marshaler, server EditServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GraphID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq GraphID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := server.AddGraph(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Edit_DeleteGraph_0(ctx context.Context, marshaler runtime.Marshaler, client EditClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GraphID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq GraphID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := client.DeleteGraph(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Edit_DeleteGraph_0(ctx context.Context, marshaler runtime.Marshaler, server EditServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GraphID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq GraphID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := server.DeleteGraph(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Edit_BulkDelete_0(ctx context.Context, marshaler runtime.Marshaler, client EditClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq DeleteData
- metadata runtime.ServerMetadata
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq DeleteData
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
+
msg, err := client.BulkDelete(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Edit_BulkDelete_0(ctx context.Context, marshaler runtime.Marshaler, server EditServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq DeleteData
- metadata runtime.ServerMetadata
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq DeleteData
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
+
msg, err := server.BulkDelete(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Edit_DeleteVertex_0(ctx context.Context, marshaler runtime.Marshaler, client EditClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq ElementID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq ElementID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
val, ok = pathParams["id"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id")
}
+
protoReq.Id, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err)
}
+
msg, err := client.DeleteVertex(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Edit_DeleteVertex_0(ctx context.Context, marshaler runtime.Marshaler, server EditServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq ElementID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq ElementID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
val, ok = pathParams["id"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id")
}
+
protoReq.Id, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err)
}
+
msg, err := server.DeleteVertex(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Edit_DeleteEdge_0(ctx context.Context, marshaler runtime.Marshaler, client EditClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq ElementID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq ElementID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
val, ok = pathParams["id"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id")
}
+
protoReq.Id, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err)
}
+
msg, err := client.DeleteEdge(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Edit_DeleteEdge_0(ctx context.Context, marshaler runtime.Marshaler, server EditServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq ElementID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq ElementID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
val, ok = pathParams["id"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id")
}
+
protoReq.Id, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err)
}
+
msg, err := server.DeleteEdge(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Edit_AddIndex_0(ctx context.Context, marshaler runtime.Marshaler, client EditClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq IndexID
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq IndexID
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
val, ok = pathParams["label"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "label")
}
+
protoReq.Label, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "label", err)
}
+
msg, err := client.AddIndex(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Edit_AddIndex_0(ctx context.Context, marshaler runtime.Marshaler, server EditServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq IndexID
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq IndexID
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
val, ok = pathParams["label"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "label")
}
+
protoReq.Label, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "label", err)
}
+
msg, err := server.AddIndex(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Edit_DeleteIndex_0(ctx context.Context, marshaler runtime.Marshaler, client EditClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq IndexID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq IndexID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
val, ok = pathParams["label"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "label")
}
+
protoReq.Label, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "label", err)
}
+
val, ok = pathParams["field"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "field")
}
+
protoReq.Field, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "field", err)
}
+
msg, err := client.DeleteIndex(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Edit_DeleteIndex_0(ctx context.Context, marshaler runtime.Marshaler, server EditServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq IndexID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq IndexID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
val, ok = pathParams["label"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "label")
}
+
protoReq.Label, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "label", err)
}
+
val, ok = pathParams["field"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "field")
}
+
protoReq.Field, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "field", err)
}
+
msg, err := server.DeleteIndex(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Edit_AddSchema_0(ctx context.Context, marshaler runtime.Marshaler, client EditClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq Graph
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq Graph
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := client.AddSchema(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Edit_AddSchema_0(ctx context.Context, marshaler runtime.Marshaler, server EditServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq Graph
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq Graph
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := server.AddSchema(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Edit_AddJsonSchema_0(ctx context.Context, marshaler runtime.Marshaler, client EditClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq RawJson
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq RawJson
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := client.AddJsonSchema(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Edit_AddJsonSchema_0(ctx context.Context, marshaler runtime.Marshaler, server EditServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq RawJson
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq RawJson
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := server.AddJsonSchema(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Edit_SampleSchema_0(ctx context.Context, marshaler runtime.Marshaler, client EditClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GraphID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq GraphID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := client.SampleSchema(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Edit_SampleSchema_0(ctx context.Context, marshaler runtime.Marshaler, server EditServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GraphID
+ var metadata runtime.ServerMetadata
+
var (
- protoReq GraphID
- metadata runtime.ServerMetadata
- err error
+ val string
+ ok bool
+ err error
+ _ = err
)
- val, ok := pathParams["graph"]
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := server.SampleSchema(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Edit_AddMapping_0(ctx context.Context, marshaler runtime.Marshaler, client EditClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq Graph
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq Graph
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := client.AddMapping(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Edit_AddMapping_0(ctx context.Context, marshaler runtime.Marshaler, server EditServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq Graph
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq Graph
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["graph"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["graph"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "graph")
}
+
protoReq.Graph, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "graph", err)
}
+
msg, err := server.AddMapping(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Configure_StartPlugin_0(ctx context.Context, marshaler runtime.Marshaler, client ConfigureClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq PluginConfig
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq PluginConfig
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["name"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["name"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name")
}
+
protoReq.Name, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err)
}
+
msg, err := client.StartPlugin(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Configure_StartPlugin_0(ctx context.Context, marshaler runtime.Marshaler, server ConfigureServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq PluginConfig
- metadata runtime.ServerMetadata
- err error
- )
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
+ var protoReq PluginConfig
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
- val, ok := pathParams["name"]
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["name"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name")
}
+
protoReq.Name, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err)
}
+
msg, err := server.StartPlugin(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Configure_ListPlugins_0(ctx context.Context, marshaler runtime.Marshaler, client ConfigureClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq Empty
- metadata runtime.ServerMetadata
- )
+ var protoReq Empty
+ var metadata runtime.ServerMetadata
+
msg, err := client.ListPlugins(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Configure_ListPlugins_0(ctx context.Context, marshaler runtime.Marshaler, server ConfigureServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq Empty
- metadata runtime.ServerMetadata
- )
+ var protoReq Empty
+ var metadata runtime.ServerMetadata
+
msg, err := server.ListPlugins(ctx, &protoReq)
return msg, metadata, err
+
}
func request_Configure_ListDrivers_0(ctx context.Context, marshaler runtime.Marshaler, client ConfigureClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq Empty
- metadata runtime.ServerMetadata
- )
+ var protoReq Empty
+ var metadata runtime.ServerMetadata
+
msg, err := client.ListDrivers(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
+
}
func local_request_Configure_ListDrivers_0(ctx context.Context, marshaler runtime.Marshaler, server ConfigureServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var (
- protoReq Empty
- metadata runtime.ServerMetadata
- )
+ var protoReq Empty
+ var metadata runtime.ServerMetadata
+
msg, err := server.ListDrivers(ctx, &protoReq)
return msg, metadata, err
+
}
// RegisterQueryHandlerServer registers the http handlers for service Query to "mux".
// UnaryRPC :call QueryServer directly.
// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterQueryHandlerFromEndpoint instead.
-// GRPC interceptors will not work for this type of registration. To use interceptors, you must use the "runtime.WithMiddlewares" option in the "runtime.NewServeMux" call.
func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, server QueryServer) error {
- mux.Handle(http.MethodPost, pattern_Query_Traversal_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Query_Traversal_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport")
_, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
})
- mux.Handle(http.MethodGet, pattern_Query_GetVertex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Query_GetVertex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Query/GetVertex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/vertex/{id}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Query/GetVertex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/vertex/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1440,15 +1921,20 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_GetVertex_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Query_GetEdge_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Query_GetEdge_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Query/GetEdge", runtime.WithHTTPPathPattern("/v1/graph/{graph}/edge/{id}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Query/GetEdge", runtime.WithHTTPPathPattern("/v1/graph/{graph}/edge/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1460,15 +1946,20 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_GetEdge_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Query_GetTimestamp_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Query_GetTimestamp_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Query/GetTimestamp", runtime.WithHTTPPathPattern("/v1/graph/{graph}/timestamp"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Query/GetTimestamp", runtime.WithHTTPPathPattern("/v1/graph/{graph}/timestamp"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1480,15 +1971,20 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_GetTimestamp_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Query_GetSchema_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Query_GetSchema_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Query/GetSchema", runtime.WithHTTPPathPattern("/v1/graph/{graph}/schema"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Query/GetSchema", runtime.WithHTTPPathPattern("/v1/graph/{graph}/schema"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1500,15 +1996,20 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_GetSchema_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Query_GetMapping_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Query_GetMapping_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Query/GetMapping", runtime.WithHTTPPathPattern("/v1/graph/{graph}/mapping"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Query/GetMapping", runtime.WithHTTPPathPattern("/v1/graph/{graph}/mapping"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1520,15 +2021,20 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_GetMapping_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Query_ListGraphs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Query_ListGraphs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Query/ListGraphs", runtime.WithHTTPPathPattern("/v1/graph"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Query/ListGraphs", runtime.WithHTTPPathPattern("/v1/graph"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1540,15 +2046,20 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_ListGraphs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Query_ListIndices_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Query_ListIndices_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Query/ListIndices", runtime.WithHTTPPathPattern("/v1/graph/{graph}/index"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Query/ListIndices", runtime.WithHTTPPathPattern("/v1/graph/{graph}/index"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1560,15 +2071,20 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_ListIndices_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Query_ListLabels_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Query_ListLabels_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Query/ListLabels", runtime.WithHTTPPathPattern("/v1/graph/{graph}/label"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Query/ListLabels", runtime.WithHTTPPathPattern("/v1/graph/{graph}/label"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1580,10 +2096,12 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_ListLabels_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Query_ListTables_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ mux.Handle("GET", pattern_Query_ListTables_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport")
_, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@@ -1597,15 +2115,17 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
// UnaryRPC :call JobServer directly.
// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterJobHandlerFromEndpoint instead.
-// GRPC interceptors will not work for this type of registration. To use interceptors, you must use the "runtime.WithMiddlewares" option in the "runtime.NewServeMux" call.
func RegisterJobHandlerServer(ctx context.Context, mux *runtime.ServeMux, server JobServer) error {
- mux.Handle(http.MethodPost, pattern_Job_Submit_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Job_Submit_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Job/Submit", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Job/Submit", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1617,29 +2137,34 @@ func RegisterJobHandlerServer(ctx context.Context, mux *runtime.ServeMux, server
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Job_Submit_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Job_ListJobs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ mux.Handle("GET", pattern_Job_ListJobs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport")
_, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
})
- mux.Handle(http.MethodPost, pattern_Job_SearchJobs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ mux.Handle("POST", pattern_Job_SearchJobs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport")
_, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
})
- mux.Handle(http.MethodDelete, pattern_Job_DeleteJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("DELETE", pattern_Job_DeleteJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Job/DeleteJob", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job/{id}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Job/DeleteJob", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1651,15 +2176,20 @@ func RegisterJobHandlerServer(ctx context.Context, mux *runtime.ServeMux, server
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Job_DeleteJob_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Job_GetJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Job_GetJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Job/GetJob", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job/{id}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Job/GetJob", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1671,17 +2201,19 @@ func RegisterJobHandlerServer(ctx context.Context, mux *runtime.ServeMux, server
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Job_GetJob_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Job_ViewJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ mux.Handle("POST", pattern_Job_ViewJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport")
_, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
})
- mux.Handle(http.MethodPost, pattern_Job_ResumeJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ mux.Handle("POST", pattern_Job_ResumeJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport")
_, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@@ -1695,15 +2227,17 @@ func RegisterJobHandlerServer(ctx context.Context, mux *runtime.ServeMux, server
// UnaryRPC :call EditServer directly.
// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterEditHandlerFromEndpoint instead.
-// GRPC interceptors will not work for this type of registration. To use interceptors, you must use the "runtime.WithMiddlewares" option in the "runtime.NewServeMux" call.
func RegisterEditHandlerServer(ctx context.Context, mux *runtime.ServeMux, server EditServer) error {
- mux.Handle(http.MethodPost, pattern_Edit_AddVertex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Edit_AddVertex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/AddVertex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/vertex"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/AddVertex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/vertex"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1715,15 +2249,20 @@ func RegisterEditHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_AddVertex_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Edit_AddEdge_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Edit_AddEdge_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/AddEdge", runtime.WithHTTPPathPattern("/v1/graph/{graph}/edge"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/AddEdge", runtime.WithHTTPPathPattern("/v1/graph/{graph}/edge"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1735,29 +2274,34 @@ func RegisterEditHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_AddEdge_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Edit_BulkAdd_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ mux.Handle("POST", pattern_Edit_BulkAdd_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport")
_, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
})
- mux.Handle(http.MethodPost, pattern_Edit_BulkAddRaw_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ mux.Handle("POST", pattern_Edit_BulkAddRaw_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport")
_, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
})
- mux.Handle(http.MethodPost, pattern_Edit_AddGraph_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Edit_AddGraph_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/AddGraph", runtime.WithHTTPPathPattern("/v1/graph/{graph}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/AddGraph", runtime.WithHTTPPathPattern("/v1/graph/{graph}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1769,15 +2313,20 @@ func RegisterEditHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_AddGraph_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodDelete, pattern_Edit_DeleteGraph_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("DELETE", pattern_Edit_DeleteGraph_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/DeleteGraph", runtime.WithHTTPPathPattern("/v1/graph/{graph}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/DeleteGraph", runtime.WithHTTPPathPattern("/v1/graph/{graph}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1789,15 +2338,20 @@ func RegisterEditHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_DeleteGraph_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodDelete, pattern_Edit_BulkDelete_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("DELETE", pattern_Edit_BulkDelete_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/BulkDelete", runtime.WithHTTPPathPattern("/v1/graph"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/BulkDelete", runtime.WithHTTPPathPattern("/v1/graph"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1809,15 +2363,20 @@ func RegisterEditHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_BulkDelete_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodDelete, pattern_Edit_DeleteVertex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("DELETE", pattern_Edit_DeleteVertex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/DeleteVertex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/vertex/{id}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/DeleteVertex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/vertex/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1829,15 +2388,20 @@ func RegisterEditHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_DeleteVertex_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodDelete, pattern_Edit_DeleteEdge_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("DELETE", pattern_Edit_DeleteEdge_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/DeleteEdge", runtime.WithHTTPPathPattern("/v1/graph/{graph}/edge/{id}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/DeleteEdge", runtime.WithHTTPPathPattern("/v1/graph/{graph}/edge/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1849,15 +2413,20 @@ func RegisterEditHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_DeleteEdge_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Edit_AddIndex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Edit_AddIndex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/AddIndex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/index/{label}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/AddIndex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/index/{label}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1869,15 +2438,20 @@ func RegisterEditHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_AddIndex_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodDelete, pattern_Edit_DeleteIndex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("DELETE", pattern_Edit_DeleteIndex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/DeleteIndex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/index/{label}/{field}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/DeleteIndex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/index/{label}/{field}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1889,15 +2463,20 @@ func RegisterEditHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_DeleteIndex_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Edit_AddSchema_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Edit_AddSchema_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/AddSchema", runtime.WithHTTPPathPattern("/v1/graph/{graph}/schema"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/AddSchema", runtime.WithHTTPPathPattern("/v1/graph/{graph}/schema"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1909,15 +2488,20 @@ func RegisterEditHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_AddSchema_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Edit_AddJsonSchema_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Edit_AddJsonSchema_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/AddJsonSchema", runtime.WithHTTPPathPattern("/v1/graph/{graph}/jsonschema"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/AddJsonSchema", runtime.WithHTTPPathPattern("/v1/graph/{graph}/jsonschema"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1929,15 +2513,20 @@ func RegisterEditHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_AddJsonSchema_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Edit_SampleSchema_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Edit_SampleSchema_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/SampleSchema", runtime.WithHTTPPathPattern("/v1/graph/{graph}/schema-sample"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/SampleSchema", runtime.WithHTTPPathPattern("/v1/graph/{graph}/schema-sample"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1949,15 +2538,20 @@ func RegisterEditHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_SampleSchema_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Edit_AddMapping_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Edit_AddMapping_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/AddMapping", runtime.WithHTTPPathPattern("/v1/graph/{graph}/mapping"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Edit/AddMapping", runtime.WithHTTPPathPattern("/v1/graph/{graph}/mapping"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1969,7 +2563,9 @@ func RegisterEditHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_AddMapping_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
return nil
@@ -1979,15 +2575,17 @@ func RegisterEditHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve
// UnaryRPC :call ConfigureServer directly.
// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterConfigureHandlerFromEndpoint instead.
-// GRPC interceptors will not work for this type of registration. To use interceptors, you must use the "runtime.WithMiddlewares" option in the "runtime.NewServeMux" call.
func RegisterConfigureHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ConfigureServer) error {
- mux.Handle(http.MethodPost, pattern_Configure_StartPlugin_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Configure_StartPlugin_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Configure/StartPlugin", runtime.WithHTTPPathPattern("/v1/plugin/{name}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Configure/StartPlugin", runtime.WithHTTPPathPattern("/v1/plugin/{name}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -1999,15 +2597,20 @@ func RegisterConfigureHandlerServer(ctx context.Context, mux *runtime.ServeMux,
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Configure_StartPlugin_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Configure_ListPlugins_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Configure_ListPlugins_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Configure/ListPlugins", runtime.WithHTTPPathPattern("/v1/plugin"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Configure/ListPlugins", runtime.WithHTTPPathPattern("/v1/plugin"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2019,15 +2622,20 @@ func RegisterConfigureHandlerServer(ctx context.Context, mux *runtime.ServeMux,
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Configure_ListPlugins_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Configure_ListDrivers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Configure_ListDrivers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Configure/ListDrivers", runtime.WithHTTPPathPattern("/v1/driver"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gripql.Configure/ListDrivers", runtime.WithHTTPPathPattern("/v1/driver"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2039,7 +2647,9 @@ func RegisterConfigureHandlerServer(ctx context.Context, mux *runtime.ServeMux,
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Configure_ListDrivers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
return nil
@@ -2066,6 +2676,7 @@ func RegisterQueryHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux
}
}()
}()
+
return RegisterQueryHandler(ctx, mux, conn)
}
@@ -2079,13 +2690,16 @@ func RegisterQueryHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc
// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "QueryClient".
// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "QueryClient"
// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
-// "QueryClient" to call the correct interceptors. This client ignores the HTTP middlewares.
+// "QueryClient" to call the correct interceptors.
func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, client QueryClient) error {
- mux.Handle(http.MethodPost, pattern_Query_Traversal_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Query_Traversal_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/Traversal", runtime.WithHTTPPathPattern("/v1/graph/{graph}/query"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/Traversal", runtime.WithHTTPPathPattern("/v1/graph/{graph}/query"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2096,13 +2710,18 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_Traversal_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Query_GetVertex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Query_GetVertex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/GetVertex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/vertex/{id}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/GetVertex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/vertex/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2113,13 +2732,18 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_GetVertex_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Query_GetEdge_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Query_GetEdge_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/GetEdge", runtime.WithHTTPPathPattern("/v1/graph/{graph}/edge/{id}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/GetEdge", runtime.WithHTTPPathPattern("/v1/graph/{graph}/edge/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2130,13 +2754,18 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_GetEdge_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Query_GetTimestamp_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Query_GetTimestamp_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/GetTimestamp", runtime.WithHTTPPathPattern("/v1/graph/{graph}/timestamp"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/GetTimestamp", runtime.WithHTTPPathPattern("/v1/graph/{graph}/timestamp"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2147,13 +2776,18 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_GetTimestamp_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Query_GetSchema_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Query_GetSchema_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/GetSchema", runtime.WithHTTPPathPattern("/v1/graph/{graph}/schema"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/GetSchema", runtime.WithHTTPPathPattern("/v1/graph/{graph}/schema"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2164,13 +2798,18 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_GetSchema_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Query_GetMapping_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Query_GetMapping_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/GetMapping", runtime.WithHTTPPathPattern("/v1/graph/{graph}/mapping"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/GetMapping", runtime.WithHTTPPathPattern("/v1/graph/{graph}/mapping"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2181,13 +2820,18 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_GetMapping_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Query_ListGraphs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Query_ListGraphs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/ListGraphs", runtime.WithHTTPPathPattern("/v1/graph"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/ListGraphs", runtime.WithHTTPPathPattern("/v1/graph"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2198,13 +2842,18 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_ListGraphs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Query_ListIndices_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Query_ListIndices_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/ListIndices", runtime.WithHTTPPathPattern("/v1/graph/{graph}/index"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/ListIndices", runtime.WithHTTPPathPattern("/v1/graph/{graph}/index"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2215,13 +2864,18 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_ListIndices_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Query_ListLabels_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Query_ListLabels_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/ListLabels", runtime.WithHTTPPathPattern("/v1/graph/{graph}/label"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/ListLabels", runtime.WithHTTPPathPattern("/v1/graph/{graph}/label"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2232,13 +2886,18 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_ListLabels_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Query_ListTables_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Query_ListTables_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/ListTables", runtime.WithHTTPPathPattern("/v1/table"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Query/ListTables", runtime.WithHTTPPathPattern("/v1/table"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2249,35 +2908,56 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Query_ListTables_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...)
+
})
+
return nil
}
var (
- pattern_Query_Traversal_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "query"}, ""))
- pattern_Query_GetVertex_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "graph", "vertex", "id"}, ""))
- pattern_Query_GetEdge_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "graph", "edge", "id"}, ""))
+ pattern_Query_Traversal_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "query"}, ""))
+
+ pattern_Query_GetVertex_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "graph", "vertex", "id"}, ""))
+
+ pattern_Query_GetEdge_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "graph", "edge", "id"}, ""))
+
pattern_Query_GetTimestamp_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "timestamp"}, ""))
- pattern_Query_GetSchema_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "schema"}, ""))
- pattern_Query_GetMapping_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "mapping"}, ""))
- pattern_Query_ListGraphs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "graph"}, ""))
- pattern_Query_ListIndices_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "index"}, ""))
- pattern_Query_ListLabels_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "label"}, ""))
- pattern_Query_ListTables_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "table"}, ""))
+
+ pattern_Query_GetSchema_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "schema"}, ""))
+
+ pattern_Query_GetMapping_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "mapping"}, ""))
+
+ pattern_Query_ListGraphs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "graph"}, ""))
+
+ pattern_Query_ListIndices_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "index"}, ""))
+
+ pattern_Query_ListLabels_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "label"}, ""))
+
+ pattern_Query_ListTables_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "table"}, ""))
)
var (
- forward_Query_Traversal_0 = runtime.ForwardResponseStream
- forward_Query_GetVertex_0 = runtime.ForwardResponseMessage
- forward_Query_GetEdge_0 = runtime.ForwardResponseMessage
+ forward_Query_Traversal_0 = runtime.ForwardResponseStream
+
+ forward_Query_GetVertex_0 = runtime.ForwardResponseMessage
+
+ forward_Query_GetEdge_0 = runtime.ForwardResponseMessage
+
forward_Query_GetTimestamp_0 = runtime.ForwardResponseMessage
- forward_Query_GetSchema_0 = runtime.ForwardResponseMessage
- forward_Query_GetMapping_0 = runtime.ForwardResponseMessage
- forward_Query_ListGraphs_0 = runtime.ForwardResponseMessage
- forward_Query_ListIndices_0 = runtime.ForwardResponseMessage
- forward_Query_ListLabels_0 = runtime.ForwardResponseMessage
- forward_Query_ListTables_0 = runtime.ForwardResponseStream
+
+ forward_Query_GetSchema_0 = runtime.ForwardResponseMessage
+
+ forward_Query_GetMapping_0 = runtime.ForwardResponseMessage
+
+ forward_Query_ListGraphs_0 = runtime.ForwardResponseMessage
+
+ forward_Query_ListIndices_0 = runtime.ForwardResponseMessage
+
+ forward_Query_ListLabels_0 = runtime.ForwardResponseMessage
+
+ forward_Query_ListTables_0 = runtime.ForwardResponseStream
)
// RegisterJobHandlerFromEndpoint is same as RegisterJobHandler but
@@ -2301,6 +2981,7 @@ func RegisterJobHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux,
}
}()
}()
+
return RegisterJobHandler(ctx, mux, conn)
}
@@ -2314,13 +2995,16 @@ func RegisterJobHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.C
// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "JobClient".
// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "JobClient"
// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
-// "JobClient" to call the correct interceptors. This client ignores the HTTP middlewares.
+// "JobClient" to call the correct interceptors.
func RegisterJobHandlerClient(ctx context.Context, mux *runtime.ServeMux, client JobClient) error {
- mux.Handle(http.MethodPost, pattern_Job_Submit_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Job_Submit_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Job/Submit", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Job/Submit", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2331,13 +3015,18 @@ func RegisterJobHandlerClient(ctx context.Context, mux *runtime.ServeMux, client
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Job_Submit_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Job_ListJobs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Job_ListJobs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Job/ListJobs", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Job/ListJobs", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2348,13 +3037,18 @@ func RegisterJobHandlerClient(ctx context.Context, mux *runtime.ServeMux, client
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Job_ListJobs_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Job_SearchJobs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Job_SearchJobs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Job/SearchJobs", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job-search"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Job/SearchJobs", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job-search"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2365,13 +3059,18 @@ func RegisterJobHandlerClient(ctx context.Context, mux *runtime.ServeMux, client
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Job_SearchJobs_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodDelete, pattern_Job_DeleteJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("DELETE", pattern_Job_DeleteJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Job/DeleteJob", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job/{id}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Job/DeleteJob", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2382,13 +3081,18 @@ func RegisterJobHandlerClient(ctx context.Context, mux *runtime.ServeMux, client
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Job_DeleteJob_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Job_GetJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Job_GetJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Job/GetJob", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job/{id}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Job/GetJob", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2399,13 +3103,18 @@ func RegisterJobHandlerClient(ctx context.Context, mux *runtime.ServeMux, client
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Job_GetJob_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Job_ViewJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Job_ViewJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Job/ViewJob", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job/{id}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Job/ViewJob", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2416,13 +3125,18 @@ func RegisterJobHandlerClient(ctx context.Context, mux *runtime.ServeMux, client
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Job_ViewJob_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Job_ResumeJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Job_ResumeJob_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Job/ResumeJob", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job-resume"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Job/ResumeJob", runtime.WithHTTPPathPattern("/v1/graph/{graph}/job-resume"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2433,29 +3147,44 @@ func RegisterJobHandlerClient(ctx context.Context, mux *runtime.ServeMux, client
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Job_ResumeJob_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...)
+
})
+
return nil
}
var (
- pattern_Job_Submit_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "job"}, ""))
- pattern_Job_ListJobs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "job"}, ""))
+ pattern_Job_Submit_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "job"}, ""))
+
+ pattern_Job_ListJobs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "job"}, ""))
+
pattern_Job_SearchJobs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "job-search"}, ""))
- pattern_Job_DeleteJob_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "graph", "job", "id"}, ""))
- pattern_Job_GetJob_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "graph", "job", "id"}, ""))
- pattern_Job_ViewJob_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "graph", "job", "id"}, ""))
- pattern_Job_ResumeJob_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "job-resume"}, ""))
+
+ pattern_Job_DeleteJob_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "graph", "job", "id"}, ""))
+
+ pattern_Job_GetJob_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "graph", "job", "id"}, ""))
+
+ pattern_Job_ViewJob_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "graph", "job", "id"}, ""))
+
+ pattern_Job_ResumeJob_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "job-resume"}, ""))
)
var (
- forward_Job_Submit_0 = runtime.ForwardResponseMessage
- forward_Job_ListJobs_0 = runtime.ForwardResponseStream
+ forward_Job_Submit_0 = runtime.ForwardResponseMessage
+
+ forward_Job_ListJobs_0 = runtime.ForwardResponseStream
+
forward_Job_SearchJobs_0 = runtime.ForwardResponseStream
- forward_Job_DeleteJob_0 = runtime.ForwardResponseMessage
- forward_Job_GetJob_0 = runtime.ForwardResponseMessage
- forward_Job_ViewJob_0 = runtime.ForwardResponseStream
- forward_Job_ResumeJob_0 = runtime.ForwardResponseStream
+
+ forward_Job_DeleteJob_0 = runtime.ForwardResponseMessage
+
+ forward_Job_GetJob_0 = runtime.ForwardResponseMessage
+
+ forward_Job_ViewJob_0 = runtime.ForwardResponseStream
+
+ forward_Job_ResumeJob_0 = runtime.ForwardResponseStream
)
// RegisterEditHandlerFromEndpoint is same as RegisterEditHandler but
@@ -2479,6 +3208,7 @@ func RegisterEditHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux,
}
}()
}()
+
return RegisterEditHandler(ctx, mux, conn)
}
@@ -2492,13 +3222,16 @@ func RegisterEditHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.
// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "EditClient".
// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "EditClient"
// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
-// "EditClient" to call the correct interceptors. This client ignores the HTTP middlewares.
+// "EditClient" to call the correct interceptors.
func RegisterEditHandlerClient(ctx context.Context, mux *runtime.ServeMux, client EditClient) error {
- mux.Handle(http.MethodPost, pattern_Edit_AddVertex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Edit_AddVertex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/AddVertex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/vertex"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/AddVertex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/vertex"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2509,13 +3242,18 @@ func RegisterEditHandlerClient(ctx context.Context, mux *runtime.ServeMux, clien
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_AddVertex_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Edit_AddEdge_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Edit_AddEdge_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/AddEdge", runtime.WithHTTPPathPattern("/v1/graph/{graph}/edge"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/AddEdge", runtime.WithHTTPPathPattern("/v1/graph/{graph}/edge"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2526,13 +3264,18 @@ func RegisterEditHandlerClient(ctx context.Context, mux *runtime.ServeMux, clien
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_AddEdge_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Edit_BulkAdd_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Edit_BulkAdd_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/BulkAdd", runtime.WithHTTPPathPattern("/v1/graph"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/BulkAdd", runtime.WithHTTPPathPattern("/v1/graph"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2543,13 +3286,18 @@ func RegisterEditHandlerClient(ctx context.Context, mux *runtime.ServeMux, clien
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_BulkAdd_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Edit_BulkAddRaw_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Edit_BulkAddRaw_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/BulkAddRaw", runtime.WithHTTPPathPattern("/v1/rawJson"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/BulkAddRaw", runtime.WithHTTPPathPattern("/v1/rawJson"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2560,13 +3308,18 @@ func RegisterEditHandlerClient(ctx context.Context, mux *runtime.ServeMux, clien
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_BulkAddRaw_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Edit_AddGraph_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Edit_AddGraph_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/AddGraph", runtime.WithHTTPPathPattern("/v1/graph/{graph}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/AddGraph", runtime.WithHTTPPathPattern("/v1/graph/{graph}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2577,13 +3330,18 @@ func RegisterEditHandlerClient(ctx context.Context, mux *runtime.ServeMux, clien
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_AddGraph_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodDelete, pattern_Edit_DeleteGraph_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("DELETE", pattern_Edit_DeleteGraph_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/DeleteGraph", runtime.WithHTTPPathPattern("/v1/graph/{graph}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/DeleteGraph", runtime.WithHTTPPathPattern("/v1/graph/{graph}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2594,13 +3352,18 @@ func RegisterEditHandlerClient(ctx context.Context, mux *runtime.ServeMux, clien
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_DeleteGraph_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodDelete, pattern_Edit_BulkDelete_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("DELETE", pattern_Edit_BulkDelete_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/BulkDelete", runtime.WithHTTPPathPattern("/v1/graph"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/BulkDelete", runtime.WithHTTPPathPattern("/v1/graph"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2611,13 +3374,18 @@ func RegisterEditHandlerClient(ctx context.Context, mux *runtime.ServeMux, clien
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_BulkDelete_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodDelete, pattern_Edit_DeleteVertex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("DELETE", pattern_Edit_DeleteVertex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/DeleteVertex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/vertex/{id}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/DeleteVertex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/vertex/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2628,13 +3396,18 @@ func RegisterEditHandlerClient(ctx context.Context, mux *runtime.ServeMux, clien
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_DeleteVertex_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodDelete, pattern_Edit_DeleteEdge_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("DELETE", pattern_Edit_DeleteEdge_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/DeleteEdge", runtime.WithHTTPPathPattern("/v1/graph/{graph}/edge/{id}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/DeleteEdge", runtime.WithHTTPPathPattern("/v1/graph/{graph}/edge/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2645,13 +3418,18 @@ func RegisterEditHandlerClient(ctx context.Context, mux *runtime.ServeMux, clien
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_DeleteEdge_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Edit_AddIndex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Edit_AddIndex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/AddIndex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/index/{label}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/AddIndex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/index/{label}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2662,13 +3440,18 @@ func RegisterEditHandlerClient(ctx context.Context, mux *runtime.ServeMux, clien
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_AddIndex_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodDelete, pattern_Edit_DeleteIndex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("DELETE", pattern_Edit_DeleteIndex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/DeleteIndex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/index/{label}/{field}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/DeleteIndex", runtime.WithHTTPPathPattern("/v1/graph/{graph}/index/{label}/{field}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2679,13 +3462,18 @@ func RegisterEditHandlerClient(ctx context.Context, mux *runtime.ServeMux, clien
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_DeleteIndex_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Edit_AddSchema_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Edit_AddSchema_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/AddSchema", runtime.WithHTTPPathPattern("/v1/graph/{graph}/schema"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/AddSchema", runtime.WithHTTPPathPattern("/v1/graph/{graph}/schema"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2696,13 +3484,18 @@ func RegisterEditHandlerClient(ctx context.Context, mux *runtime.ServeMux, clien
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_AddSchema_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Edit_AddJsonSchema_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Edit_AddJsonSchema_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/AddJsonSchema", runtime.WithHTTPPathPattern("/v1/graph/{graph}/jsonschema"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/AddJsonSchema", runtime.WithHTTPPathPattern("/v1/graph/{graph}/jsonschema"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2713,13 +3506,18 @@ func RegisterEditHandlerClient(ctx context.Context, mux *runtime.ServeMux, clien
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_AddJsonSchema_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Edit_SampleSchema_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Edit_SampleSchema_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/SampleSchema", runtime.WithHTTPPathPattern("/v1/graph/{graph}/schema-sample"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/SampleSchema", runtime.WithHTTPPathPattern("/v1/graph/{graph}/schema-sample"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2730,13 +3528,18 @@ func RegisterEditHandlerClient(ctx context.Context, mux *runtime.ServeMux, clien
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_SampleSchema_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodPost, pattern_Edit_AddMapping_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Edit_AddMapping_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/AddMapping", runtime.WithHTTPPathPattern("/v1/graph/{graph}/mapping"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Edit/AddMapping", runtime.WithHTTPPathPattern("/v1/graph/{graph}/mapping"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2747,45 +3550,76 @@ func RegisterEditHandlerClient(ctx context.Context, mux *runtime.ServeMux, clien
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Edit_AddMapping_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
+
return nil
}
var (
- pattern_Edit_AddVertex_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "vertex"}, ""))
- pattern_Edit_AddEdge_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "edge"}, ""))
- pattern_Edit_BulkAdd_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "graph"}, ""))
- pattern_Edit_BulkAddRaw_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "rawJson"}, ""))
- pattern_Edit_AddGraph_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1}, []string{"v1", "graph"}, ""))
- pattern_Edit_DeleteGraph_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1}, []string{"v1", "graph"}, ""))
- pattern_Edit_BulkDelete_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "graph"}, ""))
- pattern_Edit_DeleteVertex_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "graph", "vertex", "id"}, ""))
- pattern_Edit_DeleteEdge_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "graph", "edge", "id"}, ""))
- pattern_Edit_AddIndex_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "graph", "index", "label"}, ""))
- pattern_Edit_DeleteIndex_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "graph", "index", "label", "field"}, ""))
- pattern_Edit_AddSchema_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "schema"}, ""))
+ pattern_Edit_AddVertex_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "vertex"}, ""))
+
+ pattern_Edit_AddEdge_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "edge"}, ""))
+
+ pattern_Edit_BulkAdd_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "graph"}, ""))
+
+ pattern_Edit_BulkAddRaw_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "rawJson"}, ""))
+
+ pattern_Edit_AddGraph_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1}, []string{"v1", "graph"}, ""))
+
+ pattern_Edit_DeleteGraph_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1}, []string{"v1", "graph"}, ""))
+
+ pattern_Edit_BulkDelete_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "graph"}, ""))
+
+ pattern_Edit_DeleteVertex_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "graph", "vertex", "id"}, ""))
+
+ pattern_Edit_DeleteEdge_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "graph", "edge", "id"}, ""))
+
+ pattern_Edit_AddIndex_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "graph", "index", "label"}, ""))
+
+ pattern_Edit_DeleteIndex_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "graph", "index", "label", "field"}, ""))
+
+ pattern_Edit_AddSchema_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "schema"}, ""))
+
pattern_Edit_AddJsonSchema_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "jsonschema"}, ""))
- pattern_Edit_SampleSchema_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "schema-sample"}, ""))
- pattern_Edit_AddMapping_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "mapping"}, ""))
+
+ pattern_Edit_SampleSchema_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "schema-sample"}, ""))
+
+ pattern_Edit_AddMapping_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"v1", "graph", "mapping"}, ""))
)
var (
- forward_Edit_AddVertex_0 = runtime.ForwardResponseMessage
- forward_Edit_AddEdge_0 = runtime.ForwardResponseMessage
- forward_Edit_BulkAdd_0 = runtime.ForwardResponseMessage
- forward_Edit_BulkAddRaw_0 = runtime.ForwardResponseMessage
- forward_Edit_AddGraph_0 = runtime.ForwardResponseMessage
- forward_Edit_DeleteGraph_0 = runtime.ForwardResponseMessage
- forward_Edit_BulkDelete_0 = runtime.ForwardResponseMessage
- forward_Edit_DeleteVertex_0 = runtime.ForwardResponseMessage
- forward_Edit_DeleteEdge_0 = runtime.ForwardResponseMessage
- forward_Edit_AddIndex_0 = runtime.ForwardResponseMessage
- forward_Edit_DeleteIndex_0 = runtime.ForwardResponseMessage
- forward_Edit_AddSchema_0 = runtime.ForwardResponseMessage
+ forward_Edit_AddVertex_0 = runtime.ForwardResponseMessage
+
+ forward_Edit_AddEdge_0 = runtime.ForwardResponseMessage
+
+ forward_Edit_BulkAdd_0 = runtime.ForwardResponseMessage
+
+ forward_Edit_BulkAddRaw_0 = runtime.ForwardResponseMessage
+
+ forward_Edit_AddGraph_0 = runtime.ForwardResponseMessage
+
+ forward_Edit_DeleteGraph_0 = runtime.ForwardResponseMessage
+
+ forward_Edit_BulkDelete_0 = runtime.ForwardResponseMessage
+
+ forward_Edit_DeleteVertex_0 = runtime.ForwardResponseMessage
+
+ forward_Edit_DeleteEdge_0 = runtime.ForwardResponseMessage
+
+ forward_Edit_AddIndex_0 = runtime.ForwardResponseMessage
+
+ forward_Edit_DeleteIndex_0 = runtime.ForwardResponseMessage
+
+ forward_Edit_AddSchema_0 = runtime.ForwardResponseMessage
+
forward_Edit_AddJsonSchema_0 = runtime.ForwardResponseMessage
- forward_Edit_SampleSchema_0 = runtime.ForwardResponseMessage
- forward_Edit_AddMapping_0 = runtime.ForwardResponseMessage
+
+ forward_Edit_SampleSchema_0 = runtime.ForwardResponseMessage
+
+ forward_Edit_AddMapping_0 = runtime.ForwardResponseMessage
)
// RegisterConfigureHandlerFromEndpoint is same as RegisterConfigureHandler but
@@ -2809,6 +3643,7 @@ func RegisterConfigureHandlerFromEndpoint(ctx context.Context, mux *runtime.Serv
}
}()
}()
+
return RegisterConfigureHandler(ctx, mux, conn)
}
@@ -2822,13 +3657,16 @@ func RegisterConfigureHandler(ctx context.Context, mux *runtime.ServeMux, conn *
// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "ConfigureClient".
// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "ConfigureClient"
// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
-// "ConfigureClient" to call the correct interceptors. This client ignores the HTTP middlewares.
+// "ConfigureClient" to call the correct interceptors.
func RegisterConfigureHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ConfigureClient) error {
- mux.Handle(http.MethodPost, pattern_Configure_StartPlugin_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("POST", pattern_Configure_StartPlugin_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Configure/StartPlugin", runtime.WithHTTPPathPattern("/v1/plugin/{name}"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Configure/StartPlugin", runtime.WithHTTPPathPattern("/v1/plugin/{name}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2839,13 +3677,18 @@ func RegisterConfigureHandlerClient(ctx context.Context, mux *runtime.ServeMux,
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Configure_StartPlugin_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Configure_ListPlugins_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Configure_ListPlugins_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Configure/ListPlugins", runtime.WithHTTPPathPattern("/v1/plugin"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Configure/ListPlugins", runtime.WithHTTPPathPattern("/v1/plugin"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2856,13 +3699,18 @@ func RegisterConfigureHandlerClient(ctx context.Context, mux *runtime.ServeMux,
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Configure_ListPlugins_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
- mux.Handle(http.MethodGet, pattern_Configure_ListDrivers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+
+ mux.Handle("GET", pattern_Configure_ListDrivers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/gripql.Configure/ListDrivers", runtime.WithHTTPPathPattern("/v1/driver"))
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gripql.Configure/ListDrivers", runtime.WithHTTPPathPattern("/v1/driver"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2873,19 +3721,26 @@ func RegisterConfigureHandlerClient(ctx context.Context, mux *runtime.ServeMux,
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
+
forward_Configure_ListDrivers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
})
+
return nil
}
var (
pattern_Configure_StartPlugin_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"v1", "plugin", "name"}, ""))
+
pattern_Configure_ListPlugins_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "plugin"}, ""))
+
pattern_Configure_ListDrivers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "driver"}, ""))
)
var (
forward_Configure_StartPlugin_0 = runtime.ForwardResponseMessage
+
forward_Configure_ListPlugins_0 = runtime.ForwardResponseMessage
+
forward_Configure_ListDrivers_0 = runtime.ForwardResponseMessage
)
diff --git a/gripql/gripql.proto b/gripql/gripql.proto
index 3a0b714f..c1530190 100644
--- a/gripql/gripql.proto
+++ b/gripql/gripql.proto
@@ -62,6 +62,8 @@ message GraphStatement {
google.protobuf.Value render = 62;
google.protobuf.ListValue path = 63;
+ Sorting sort = 65;
+
string mark = 70;
Jump jump = 71;
Set set = 72;
@@ -178,6 +180,30 @@ enum Condition {
CONTAINS = 12;
}
+message Sorting {
+ repeated SortField fields = 1;
+}
+
+message SortField {
+ string field = 1;
+ bool decending = 2;
+}
+
+message SelectStatement {
+ repeated string marks = 1;
+}
+
+message Selection {
+ oneof result {
+ Vertex vertex = 1;
+ Edge edge = 2;
+ }
+}
+
+message Selections {
+ map selections = 1;
+}
+
message Jump {
string mark = 1;
HasExpression expression = 2;
diff --git a/gripql/inspect/inspect.go b/gripql/inspect/inspect.go
index c35cc690..e4355601 100644
--- a/gripql/inspect/inspect.go
+++ b/gripql/inspect/inspect.go
@@ -52,8 +52,8 @@ func PipelineSteps(stmts []*gripql.GraphStatement) []string {
*gripql.GraphStatement_Range, *gripql.GraphStatement_Aggregate, *gripql.GraphStatement_Render,
*gripql.GraphStatement_Fields, *gripql.GraphStatement_Unwind, *gripql.GraphStatement_Path,
*gripql.GraphStatement_Set, *gripql.GraphStatement_Increment,
- *gripql.GraphStatement_Mark, *gripql.GraphStatement_Jump, *gripql.GraphStatement_Pivot,
- *gripql.GraphStatement_Group, *gripql.GraphStatement_Totype:
+ *gripql.GraphStatement_Mark, *gripql.GraphStatement_Jump, *gripql.GraphStatement_Sort,
+ *gripql.GraphStatement_Pivot, *gripql.GraphStatement_Group, *gripql.GraphStatement_Totype:
case *gripql.GraphStatement_LookupVertsIndex, *gripql.GraphStatement_EngineCustom:
default:
log.Errorf("Unknown Graph Statement: %T", gs.GetStatement())
diff --git a/gripql/javascript/gripql.js b/gripql/javascript/gripql.js
index e76d6169..f539eddd 100644
--- a/gripql/javascript/gripql.js
+++ b/gripql/javascript/gripql.js
@@ -149,6 +149,10 @@ function query(client=null) {
this.query.push({'aggregate': {'aggregations': Array.prototype.slice.call(arguments)}})
return this
},
+ sort: function(field, decending=true) {
+ this.query.push({'sort': {'fields': [{"field":field, "decending":decending}] }})
+ return this
+ },
unwind: function(field) {
this.query.push({"unwind": field})
return this
diff --git a/gripql/python/gripql/query.py b/gripql/python/gripql/query.py
index 5eb32648..6e80df14 100644
--- a/gripql/python/gripql/query.py
+++ b/gripql/python/gripql/query.py
@@ -239,6 +239,12 @@ def select(self, name):
"""
return self.__append({"select": name})
+ def sort(self, field, decending=False):
+ """
+ Sort return rows by field
+ """
+ return self.__append({"sort" : {"fields": [{"field":field, "decending":decending}]}})
+
def limit(self, n):
"""
Limits the number of results returned.
diff --git a/gripql/query.go b/gripql/query.go
index 03fe4d66..be9125d2 100644
--- a/gripql/query.go
+++ b/gripql/query.go
@@ -216,6 +216,10 @@ func (q *Query) ToType(field string, typeName string) *Query {
return q.with(&GraphStatement{Statement: &GraphStatement_Totype{Totype: &ToType{Field: field, TypeName: typeName}}})
}
+func (q *Query) Sort(sortFields []*SortField) *Query {
+ return q.with(&GraphStatement{Statement: &GraphStatement_Sort{Sort: &Sorting{Fields: sortFields}}})
+}
+
func (q *Query) String() string {
parts := []string{}
add := func(name string, x ...string) {
@@ -317,6 +321,9 @@ func (q *Query) String() string {
case *GraphStatement_Totype:
add("Totype", fmt.Sprintf("%s", stmt.Totype.Field), fmt.Sprintf("%s", stmt.Totype.TypeName))
+ case *GraphStatement_Sort:
+ add("Sort", fmt.Sprintf("%s", stmt.Sort.Fields))
+
case *GraphStatement_Render:
jtxt, err := protojson.Marshal(stmt.Render)
if err != nil {
diff --git a/mongo/compile.go b/mongo/compile.go
index c143da65..6415ef6f 100644
--- a/mongo/compile.go
+++ b/mongo/compile.go
@@ -597,6 +597,22 @@ func (comp *Compiler) Compile(stmts []*gripql.GraphStatement, opts *gdbi.Compile
}}})
}
+ case *gripql.GraphStatement_Sort:
+ if len(stmt.Sort.Fields) == 0 {
+ return nil, fmt.Errorf("`sort` requires sort field")
+ }
+ sortFields := bson.D{}
+ for _, i := range stmt.Sort.Fields {
+ tf := tpath.NormalizePath(i.Field)
+ f := ToPipelinePath(tf)
+ if i.Decending {
+ sortFields = append(sortFields, primitive.E{Key: f, Value: -1})
+ } else {
+ sortFields = append(sortFields, primitive.E{Key: f, Value: 1})
+ }
+ }
+ query = append(query, bson.D{primitive.E{Key: "$sort", Value: sortFields}})
+
case *gripql.GraphStatement_As:
if lastType == gdbi.NoData {
return &Pipeline{}, fmt.Errorf(`"as" statement is not valid at the beginning of a traversal`)
diff --git a/test/engine/sort_test.go b/test/engine/sort_test.go
new file mode 100644
index 00000000..d479f909
--- /dev/null
+++ b/test/engine/sort_test.go
@@ -0,0 +1,99 @@
+package main
+
+import (
+ "encoding/json"
+ "flag"
+ "os"
+ "strings"
+ "testing"
+
+ "github.com/bmeg/grip/engine/logic"
+)
+
+type JSONCompare struct{}
+
+// Compare implements logic.SortConf.
+func (j *JSONCompare) Compare(a any, b any) int {
+ return logic.CompareAny(a, b)
+}
+
+// FromBytes implements logic.SortConf.
+func (j *JSONCompare) FromBytes(b []byte) any {
+ if b[0] == '"' {
+ var a string
+ json.Unmarshal(b, &a)
+ return a
+ } else if strings.Compare(string(b), "true") == 0 {
+ return true
+ } else if strings.Compare(string(b), "false") == 0 {
+ return false
+ } else if strings.Contains(string(b), ".") {
+ var a float64
+ json.Unmarshal(b, &a)
+ return a
+ } else {
+ var a int
+ json.Unmarshal(b, &a)
+ return a
+ }
+}
+
+// ToBytes implements logic.SortConf.
+func (j *JSONCompare) ToBytes(a any) []byte {
+ o, _ := json.Marshal(a)
+ return o
+}
+
+func TestKVSort(t *testing.T) {
+
+ path := "kv_sort_test.store"
+
+ keys := []any{
+ "Bob",
+ "Charles",
+ "Alice",
+ 1.0,
+ 2,
+ 20.0,
+ 40,
+ true,
+ false,
+ }
+
+ jConf := JSONCompare{}
+
+ memSort := logic.NewMemSorter[any](&jConf)
+ for _, i := range keys {
+ memSort.Add(i)
+ }
+
+ out1 := []any{}
+ for i := range memSort.Sorted() {
+ out1 = append(out1, i)
+ }
+
+ kvSort := logic.NewKVSorter(path, &jConf)
+ for _, i := range keys {
+ kvSort.Add(i)
+ }
+ out2 := []any{}
+ for i := range kvSort.Sorted() {
+ out2 = append(out2, i)
+ }
+
+ for i := range out1 {
+ if logic.CompareAny(out1[i], out2[i]) != 0 {
+ t.Error("mismatch")
+ }
+ }
+
+ os.RemoveAll(path)
+}
+
+var configFile string
+
+func TestMain(m *testing.M) {
+ flag.StringVar(&configFile, "config", configFile, "config file to use for tests")
+ flag.Parse()
+
+}