diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 6f3fb2a..30af58e 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.5.2 +current_version = 0.6.0 commit = False tag = False diff --git a/Makefile b/Makefile index 723c38d..2d9ea02 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -version := "0.5.2" +version := "0.6.0" .DEFAULT_GOAL := help diff --git a/README.md b/README.md index ad73320..68ca776 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ git clone git@github.com:graphikDB/graphik.git -` docker pull graphikdb/graphik:v0.5.2` +` docker pull graphikdb/graphik:v0.6.0` Graphik is an identity-aware, permissioned, persistant document/graph database & pubsub server written in Go @@ -549,7 +549,7 @@ add this docker-compose.yml to ${pwd}: version: '3.7' services: graphik: - image: graphikdb/graphik:v0.5.2 + image: graphikdb/graphik:v0.6.0 env_file: - .env ports: @@ -583,13 +583,13 @@ to shutdown: ### Linux - curl -L https://github.com/graphikDB/graphik/releases/download/v0.5.2/graphik_linux_amd64 \ + curl -L https://github.com/graphikDB/graphik/releases/download/v0.6.0/graphik_linux_amd64 \ --output /usr/local/bin/graphik && \ chmod +x /usr/local/bin/graphik ### Mac/Darwin - curl -L https://github.com/graphikDB/graphik/releases/download/v0.5.2/graphik_darwin_amd64 \ + curl -L https://github.com/graphikDB/graphik/releases/download/v0.6.0/graphik_darwin_amd64 \ --output /usr/local/bin/graphik && \ chmod +x /usr/local/bin/graphik diff --git a/database/db.go b/database/db.go index 4dcc068..2bf9f52 100644 --- a/database/db.go +++ b/database/db.go @@ -530,16 +530,6 @@ func (g *Graph) getDoc(ctx context.Context, tx *bbolt.Tx, path *apipb.Ref) (*api if ctx.Err() != nil { return nil, ctx.Err() } - var authorizers []cel.Program - if ctx.Value(bypassAuthorizersCtxKey) == nil { - g.rangeAuthorizers(func(a *authorizer) bool { - if a.authorizer.GetType() == apipb.AuthType_VIEW_DOC { - authorizers = append(authorizers, a.program) - } - return true - }) - } - if path == nil { return nil, ErrNotFound } @@ -556,23 +546,6 @@ func (g *Graph) getDoc(ctx context.Context, tx *bbolt.Tx, path *apipb.Ref) (*api if err := proto.Unmarshal(bits, &doc); err != nil { return nil, err } - if len(authorizers) > 0 { - for _, a := range authorizers { - res, err := g.vm.Auth().Eval(&apipb.AuthTarget{ - Type: apipb.AuthType_VIEW_DOC, - Method: g.getMethod(ctx), - User: g.getIdentity(ctx), - Data: apipb.NewStruct(doc.AsMap()), - }, a) - if err != nil { - logger.Error("view connection authorization error", zap.Error(err)) - return &doc, nil - } - if !res { - return nil, status.Error(codes.PermissionDenied, "view doc = permission denied") - } - } - } return &doc, nil } @@ -583,13 +556,6 @@ func (g *Graph) getConnection(ctx context.Context, tx *bbolt.Tx, path *apipb.Ref if ctx.Err() != nil { return nil, ctx.Err() } - var authorizers []cel.Program - g.rangeAuthorizers(func(a *authorizer) bool { - if a.authorizer.GetType() == apipb.AuthType_VIEW_DOC { - authorizers = append(authorizers, a.program) - } - return true - }) var connection apipb.Connection bucket := tx.Bucket(dbConnections).Bucket([]byte(path.Gtype)) if bucket == nil { @@ -602,23 +568,6 @@ func (g *Graph) getConnection(ctx context.Context, tx *bbolt.Tx, path *apipb.Ref if err := proto.Unmarshal(bits, &connection); err != nil { return nil, err } - if len(authorizers) > 0 { - for _, a := range authorizers { - res, err := g.vm.Auth().Eval(&apipb.AuthTarget{ - Type: apipb.AuthType_VIEW_CONNECTION, - Method: g.getMethod(ctx), - User: g.getIdentity(ctx), - Data: apipb.NewStruct(connection.AsMap()), - }, a) - if err != nil { - logger.Error("view connection authorization error", zap.Error(err)) - return &connection, nil - } - if !res { - return nil, status.Error(codes.PermissionDenied, "view connection = permission denied") - } - } - } return &connection, nil } @@ -626,15 +575,6 @@ func (g *Graph) rangeConnections(ctx context.Context, gType string, fn func(n *a if err := ctx.Err(); err != nil { return err } - var authorizers []cel.Program - if ctx.Value(bypassAuthorizersCtxKey) == nil { - g.rangeAuthorizers(func(a *authorizer) bool { - if a.authorizer.GetType() == apipb.AuthType_VIEW_CONNECTION { - authorizers = append(authorizers, a.program) - } - return true - }) - } if err := g.db.View(func(tx *bbolt.Tx) error { if gType == apipb.Any { @@ -662,24 +602,6 @@ func (g *Graph) rangeConnections(ctx context.Context, gType string, fn func(n *a if err := proto.Unmarshal(v, &connection); err != nil { return err } - - if len(authorizers) > 0 { - for _, a := range authorizers { - res, err := g.vm.Auth().Eval(&apipb.AuthTarget{ - Type: apipb.AuthType_VIEW_CONNECTION, - Method: g.getMethod(ctx), - User: g.getIdentity(ctx), - Data: apipb.NewStruct(connection.AsMap()), - }, a) - if err != nil { - logger.Error("view connection authorization error", zap.Error(err)) - return nil - } - if !res { - return nil - } - } - } if !fn(&connection) { return DONE } @@ -695,15 +617,6 @@ func (g *Graph) rangeDocs(ctx context.Context, gType string, fn func(n *apipb.Do if err := ctx.Err(); err != nil { return err } - var authorizers []cel.Program - if ctx.Value(bypassAuthorizersCtxKey) == nil { - g.rangeAuthorizers(func(a *authorizer) bool { - if a.authorizer.GetType() == apipb.AuthType_VIEW_DOC { - authorizers = append(authorizers, a.program) - } - return true - }) - } if err := g.db.View(func(tx *bbolt.Tx) error { if gType == apipb.Any { @@ -731,23 +644,6 @@ func (g *Graph) rangeDocs(ctx context.Context, gType string, fn func(n *apipb.Do if err := proto.Unmarshal(v, &doc); err != nil { return err } - if len(authorizers) > 0 { - for _, a := range authorizers { - res, err := g.vm.Auth().Eval(&apipb.AuthTarget{ - Type: apipb.AuthType_VIEW_DOC, - Method: g.getMethod(ctx), - User: g.getIdentity(ctx), - Data: apipb.NewStruct(doc.AsMap()), - }, a) - if err != nil { - logger.Error("view connection authorization error", zap.Error(err)) - return nil - } - if !res { - return nil - } - } - } if !fn(&doc) { return DONE } @@ -885,16 +781,6 @@ func (g *Graph) rangeTo(ctx context.Context, tx *bbolt.Tx, docRef *apipb.Ref, fn paths = append(paths, path) } sort.Strings(paths) - var authorizers []cel.Program - if ctx.Value(bypassAuthorizersCtxKey) == nil { - g.rangeAuthorizers(func(a *authorizer) bool { - if a.authorizer.GetType() == apipb.AuthType_VIEW_CONNECTION { - authorizers = append(authorizers, a.program) - } - return true - }) - } - for _, path := range paths { if err := ctx.Err(); err != nil { return err @@ -910,23 +796,6 @@ func (g *Graph) rangeTo(ctx context.Context, tx *bbolt.Tx, docRef *apipb.Ref, fn if err := proto.Unmarshal(bits, &connection); err != nil { return err } - if len(authorizers) > 0 { - for _, a := range authorizers { - res, err := g.vm.Auth().Eval(&apipb.AuthTarget{ - Type: apipb.AuthType_VIEW_CONNECTION, - Method: g.getMethod(ctx), - User: g.getIdentity(ctx), - Data: apipb.NewStruct(connection.AsMap()), - }, a) - if err != nil { - logger.Error("view connection authorization error", zap.Error(err)) - return nil - } - if !res { - return nil - } - } - } if !fn(&connection) { return nil } @@ -943,15 +812,6 @@ func (g *Graph) rangeFrom(ctx context.Context, tx *bbolt.Tx, docRef *apipb.Ref, paths = append(paths, path) } sort.Strings(paths) - var authorizers []cel.Program - if ctx.Value(bypassAuthorizersCtxKey) == nil { - g.rangeAuthorizers(func(a *authorizer) bool { - if a.authorizer.GetType() == apipb.AuthType_VIEW_CONNECTION { - authorizers = append(authorizers, a.program) - } - return true - }) - } for _, val := range paths { if err := ctx.Err(); err != nil { return err @@ -966,23 +826,6 @@ func (g *Graph) rangeFrom(ctx context.Context, tx *bbolt.Tx, docRef *apipb.Ref, if err := proto.Unmarshal(bits, &connection); err != nil { return err } - if len(authorizers) > 0 { - for _, a := range authorizers { - res, err := g.vm.Auth().Eval(&apipb.AuthTarget{ - Type: apipb.AuthType_VIEW_CONNECTION, - Method: g.getMethod(ctx), - User: g.getIdentity(ctx), - Data: apipb.NewStruct(connection.AsMap()), - }, a) - if err != nil { - logger.Error("view connection authorization error", zap.Error(err)) - return nil - } - if !res { - return nil - } - } - } if !fn(&connection) { return nil } @@ -994,13 +837,6 @@ func (g *Graph) rangeSeekConnections(ctx context.Context, gType string, seek str if ctx.Err() != nil { return seek, ctx.Err() } - var authorizers []cel.Program - g.rangeAuthorizers(func(a *authorizer) bool { - if a.authorizer.GetType() == apipb.AuthType_VIEW_CONNECTION { - authorizers = append(authorizers, a.program) - } - return true - }) var lastKey []byte if err := g.db.View(func(tx *bbolt.Tx) error { var c *bbolt.Cursor @@ -1030,23 +866,6 @@ func (g *Graph) rangeSeekConnections(ctx context.Context, gType string, seek str if err := proto.Unmarshal(v, &connection); err != nil { return err } - if len(authorizers) > 0 { - for _, a := range authorizers { - res, err := g.vm.Auth().Eval(&apipb.AuthTarget{ - Type: apipb.AuthType_VIEW_CONNECTION, - Method: g.getMethod(ctx), - User: g.getIdentity(ctx), - Data: apipb.NewStruct(connection.AsMap()), - }, a) - if err != nil { - logger.Error("view connection authorization error", zap.Error(err)) - return nil - } - if !res { - return nil - } - } - } lastKey = k if !fn(&connection) { return DONE @@ -1061,23 +880,6 @@ func (g *Graph) rangeSeekConnections(ctx context.Context, gType string, seek str if err := proto.Unmarshal(v, &connection); err != nil { return err } - if len(authorizers) > 0 { - for _, a := range authorizers { - res, err := g.vm.Auth().Eval(&apipb.AuthTarget{ - Type: apipb.AuthType_VIEW_CONNECTION, - Method: g.getMethod(ctx), - User: g.getIdentity(ctx), - Data: apipb.NewStruct(connection.AsMap()), - }, a) - if err != nil { - logger.Error("view connection authorization error", zap.Error(err)) - return nil - } - if !res { - return nil - } - } - } lastKey = k if !fn(&connection) { return DONE @@ -1095,15 +897,6 @@ func (g *Graph) rangeSeekDocs(ctx context.Context, gType string, seek string, in if ctx.Err() != nil { return seek, ctx.Err() } - var authorizers []cel.Program - if ctx.Value(bypassAuthorizersCtxKey) == nil { - g.rangeAuthorizers(func(a *authorizer) bool { - if a.authorizer.GetType() == apipb.AuthType_VIEW_DOC { - authorizers = append(authorizers, a.program) - } - return true - }) - } var lastKey []byte if err := g.db.View(func(tx *bbolt.Tx) error { var c *bbolt.Cursor @@ -1133,23 +926,6 @@ func (g *Graph) rangeSeekDocs(ctx context.Context, gType string, seek string, in if err := proto.Unmarshal(v, &doc); err != nil { return err } - if len(authorizers) > 0 { - for _, a := range authorizers { - res, err := g.vm.Auth().Eval(&apipb.AuthTarget{ - Type: apipb.AuthType_VIEW_DOC, - Method: g.getMethod(ctx), - User: g.getIdentity(ctx), - Data: apipb.NewStruct(doc.AsMap()), - }, a) - if err != nil { - logger.Error("view doc authorization error", zap.Error(err)) - return nil - } - if !res { - return nil - } - } - } lastKey = k if !fn(&doc) { return DONE @@ -1164,23 +940,6 @@ func (g *Graph) rangeSeekDocs(ctx context.Context, gType string, seek string, in if err := proto.Unmarshal(v, &doc); err != nil { return err } - if len(authorizers) > 0 { - for _, a := range authorizers { - res, err := g.vm.Auth().Eval(&apipb.AuthTarget{ - Type: apipb.AuthType_VIEW_DOC, - Method: g.getMethod(ctx), - User: g.getIdentity(ctx), - Data: apipb.NewStruct(doc.AsMap()), - }, a) - if err != nil { - logger.Error("view doc authorization error", zap.Error(err)) - return nil - } - if !res { - return nil - } - } - } lastKey = k if !fn(&doc) { return DONE diff --git a/database/interceptors.go b/database/interceptors.go index 2683016..173936c 100644 --- a/database/interceptors.go +++ b/database/interceptors.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "github.com/golang/protobuf/ptypes/empty" "github.com/google/cel-go/cel" "github.com/graphikDB/graphik/gen/grpc/go" "github.com/graphikDB/graphik/helpers" @@ -38,7 +39,14 @@ func (g *Graph) UnaryInterceptor() grpc.UnaryServerInterceptor { if err != nil { return nil, err } - return handler(ctx, req) + hresp, err := handler(ctx, req) + if err != nil { + return hresp, err + } + if err := g.checkResponse(ctx, info.FullMethod, hresp, payload); err != nil { + return nil, err + } + return hresp, nil } ctx = g.methodToContext(ctx, info.FullMethod) userinfoReq, err := http.NewRequest(http.MethodGet, g.openID.UserinfoEndpoint, nil) @@ -67,7 +75,14 @@ func (g *Graph) UnaryInterceptor() grpc.UnaryServerInterceptor { if err != nil { return nil, err } - return handler(ctx, req) + hresp, err := handler(ctx, req) + if err != nil { + return hresp, err + } + if err := g.checkResponse(ctx, info.FullMethod, hresp, payload); err != nil { + return nil, err + } + return hresp, nil } } @@ -80,13 +95,19 @@ func (g *Graph) StreamInterceptor() grpc.StreamServerInterceptor { tokenHash := helpers.Hash([]byte(token)) if val, ok := g.jwtCache.Get(tokenHash); ok { payload := val.(map[string]interface{}) - ctx, err := g.checkRequest(ss.Context(), info.FullMethod, srv, payload) - if err != nil { - return err + if info.IsClientStream { + ctx, err := g.checkRequest(ss.Context(), info.FullMethod, srv, payload) + if err != nil { + return err + } + wrapped := grpc_middleware.WrapServerStream(ss) + wrapped.WrappedContext = ctx + return handler(srv, wrapped) + } else { + if err := g.checkResponse(ss.Context(), info.FullMethod, srv, payload); err != nil { + return err + } } - wrapped := grpc_middleware.WrapServerStream(ss) - wrapped.WrappedContext = ctx - return handler(srv, wrapped) } ctx := g.methodToContext(ss.Context(), info.FullMethod) userinfoReq, err := http.NewRequest(http.MethodGet, g.openID.UserinfoEndpoint, nil) @@ -238,41 +259,94 @@ func (g *Graph) checkRequest(ctx context.Context, method string, req interface{} if err != nil { return nil, status.Errorf(codes.Unauthenticated, err.Error()) } - if !g.isGraphikAdmin(user) { - ctx = context.WithValue(ctx, bypassAuthorizersCtxKey, true) - var programs []cel.Program - g.rangeAuthorizers(func(a *authorizer) bool { - if a.authorizer.GetType() == apipb.AuthType_REQUEST { - programs = append(programs, a.program) - } - return true - }) - if len(programs) == 0 { - return ctx, nil - } - request := &apipb.AuthTarget{ - Method: method, - User: user, + if g.isGraphikAdmin(user) { + return context.WithValue(ctx, bypassAuthorizersCtxKey, true), nil + } + var programs []cel.Program + g.rangeAuthorizers(func(a *authorizer) bool { + if a.authorizer.GetTargetRequests() { + programs = append(programs, a.program) } - if val, ok := req.(apipb.Mapper); ok { - request.Data = apipb.NewStruct(val.AsMap()) - } else if val, ok := req.(proto.Message); ok { - bits, _ := helpers.MarshalJSON(val) - reqMap := map[string]interface{}{} - if err := json.Unmarshal(bits, &reqMap); err != nil { - return nil, status.Error(codes.Internal, err.Error()) - } - request.Data = apipb.NewStruct(reqMap) + return true + }) + if len(programs) == 0 { + return ctx, nil + } + request := &apipb.AuthTarget{ + Method: method, + User: user, + } + if val, ok := req.(apipb.Mapper); ok { + request.Target = apipb.NewStruct(val.AsMap()) + } else if val, ok := req.(proto.Message); ok { + bits, _ := helpers.MarshalJSON(val) + reqMap := map[string]interface{}{} + if err := json.Unmarshal(bits, &reqMap); err != nil { + return nil, status.Error(codes.Internal, err.Error()) } - result, err := g.vm.Auth().Eval(request, programs...) + request.Target = apipb.NewStruct(reqMap) + } + result, err := g.vm.Auth().Eval(request, programs...) + if err != nil { + return nil, err + } + if !result { + return nil, status.Errorf(codes.PermissionDenied, "request from %s.%s authorization = denied", user.GetRef().GetGtype(), user.GetRef().GetGid()) + } + return ctx, nil +} + +func (g *Graph) checkResponse(ctx context.Context, method string, response interface{}, payload map[string]interface{}) error { + if _, ok := response.(*empty.Empty); ok { + return nil + } + ctx = g.methodToContext(ctx, method) + var ( + err error + user = g.getIdentity(ctx) + ) + if user == nil { + ctx, user, err = g.userToContext(ctx, payload) if err != nil { - return nil, err + return status.Errorf(codes.Unauthenticated, err.Error()) + } + } + if g.isGraphikAdmin(user) { + return nil + } + var programs []cel.Program + g.rangeAuthorizers(func(a *authorizer) bool { + if a.authorizer.GetTargetResponses() { + programs = append(programs, a.program) } - if !result { - return nil, status.Errorf(codes.PermissionDenied, "request from %s.%s authorization = denied", user.GetRef().GetGtype(), user.GetRef().GetGid()) + return true + }) + if len(programs) == 0 { + return nil + } + request := &apipb.AuthTarget{ + Method: method, + User: user, + Target: nil, + } + if val, ok := response.(apipb.Mapper); ok { + request.Target = apipb.NewStruct(val.AsMap()) + } else if val, ok := response.(proto.Message); ok { + bits, _ := helpers.MarshalJSON(val) + reqMap := map[string]interface{}{} + if err := json.Unmarshal(bits, &reqMap); err != nil { + return status.Error(codes.Internal, err.Error()) } + request.Target = apipb.NewStruct(reqMap) } - return ctx, nil + result, err := g.vm.Auth().Eval(request, programs...) + if err != nil { + return err + } + if !result { + return status.Errorf(codes.PermissionDenied, "response to %s.%s authorization = denied", user.GetRef().GetGtype(), user.GetRef().GetGid()) + } + return nil } func (g *Graph) isGraphikAdmin(user *apipb.Doc) bool { diff --git a/docker-compose.yml b/docker-compose.yml index 4a91c1b..f90bd83 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.7' services: graphik: - image: graphikdb/graphik:v0.5.2 + image: graphikdb/graphik:v0.6.0 env_file: - .env ports: diff --git a/docs/aggfilter.doc.html b/docs/aggfilter.doc.html index 3d8a81f..e8baa66 100644 --- a/docs/aggfilter.doc.html +++ b/docs/aggfilter.doc.html @@ -95,11 +95,6 @@

Enums

Algorithm -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/aggregate.doc.html b/docs/aggregate.doc.html index fb2b9f2..fd22411 100644 --- a/docs/aggregate.doc.html +++ b/docs/aggregate.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/algorithm.doc.html b/docs/algorithm.doc.html index 5b95155..25242ef 100644 --- a/docs/algorithm.doc.html +++ b/docs/algorithm.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/authorizer.doc.html b/docs/authorizer.doc.html index 03eff86..ceab678 100644 --- a/docs/authorizer.doc.html +++ b/docs/authorizer.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation @@ -419,7 +414,7 @@

    +
    • type Authorizer {
    • # name is the unique name of the authorizer in the graph
    • name: String!
    • # expression is a boolean CEL expression used to evaluate the inbound request
    • expression: String!
    • target_requests: Boolean!
    • target_responses: Boolean!
    • }
    diff --git a/docs/authorizerinput.doc.html b/docs/authorizerinput.doc.html index fd8db24..6387b06 100644 --- a/docs/authorizerinput.doc.html +++ b/docs/authorizerinput.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm

  • -
  • - - AuthType - -
  • __DirectiveLocation @@ -419,7 +414,7 @@

    +
    • input AuthorizerInput {
    • # name is the unique name of the authorizer in the graph
    • name: String!
    • # expression is a boolean CEL expression used to evaluate the inbound request
    • expression: String!
    • target_requests: Boolean!
    • target_responses: Boolean!
    • }
    diff --git a/docs/authorizers.doc.html b/docs/authorizers.doc.html index 40af4fb..d2f2563 100644 --- a/docs/authorizers.doc.html +++ b/docs/authorizers.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm

  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/authorizersinput.doc.html b/docs/authorizersinput.doc.html index fa645a4..7046c1e 100644 --- a/docs/authorizersinput.doc.html +++ b/docs/authorizersinput.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/authtarget.doc.html b/docs/authtarget.doc.html index 5a68d0a..9444201 100644 --- a/docs/authtarget.doc.html +++ b/docs/authtarget.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation @@ -419,7 +414,7 @@

    +
    • type AuthTarget {
    • # method is the gRPC method invoked
    • method: String!
    • # user is the user making the request
    • user: Doc!
    • # target is the payload gived to the authorizer(request or response payload)
    • target: Map!
    • }
    diff --git a/docs/authtype.doc.html b/docs/authtype.doc.html deleted file mode 100644 index ae8a2c6..0000000 --- a/docs/authtype.doc.html +++ /dev/null @@ -1,446 +0,0 @@ - - - - - - - - - - AuthType - - - - -
    -
    -
    - -
    -
    - -
    -

    ENUM

    -

    AuthType

    -
    -
    -
    -
    -
    -

    - - link - - GraphQL Schema definition -

    -
    • enum AuthType {
    • REQUEST
    • VIEW_DOC
    • VIEW_CONNECTION
    • }
    -
    -
    -
    - -
    - -
    - - - - \ No newline at end of file diff --git a/docs/boolean.doc.html b/docs/boolean.doc.html index 3b808e9..74833f9 100644 --- a/docs/boolean.doc.html +++ b/docs/boolean.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm

  • -
  • - - AuthType - -
  • __DirectiveLocation @@ -430,7 +425,7 @@

  • ConnectFilterConnectFilter is used to fetch connections related to a single noted
  • ConnectionConnection is a graph primitive that represents a relationship between two docs
  • ConnectionConstructorConnectionConstructor is used to create an Connection
  • ExistsFilterExists is a filter used to determine whether a doc/connection exists in the graph
  • FilterFilter is a generic filter using Common Expression Language
  • IndexIndex is a graph primitive used for fast lookups of docs/connections that pass a boolean CEL expression
  • IndexInputIndexInput is used to construct Indexes
  • Query
  • SearchConnectFilterSearchConnectFilter is used for searching for documents and adding connections based on whether they pass a Filter
  • SearchConnectMeFilterSearchConnectMeFilter is used for searching for documents and adding connections from the origin user to the document based on whether they pass a Filter
  • TraverseFilterTraverseFilter is a filter used for graph traversals
  • TraverseMeFilterTraverseMeFilter is a filter used for graph traversals of the origin user
  • TypeValidatorTypeValidator a graph primitive used to validate custom doc/connection constraints
  • TypeValidatorInputTypeValidatorInput is used to construct a new type validator
  • AuthorizerAuthorizer is a graph primitive used for authorizing inbound requests(see Request)
  • AuthorizerInputAuthorizerInput is used to create a new Authorizer
  • ConnectFilterConnectFilter is used to fetch connections related to a single noted
  • ConnectionConnection is a graph primitive that represents a relationship between two docs
  • ConnectionConstructorConnectionConstructor is used to create an Connection
  • ExistsFilterExists is a filter used to determine whether a doc/connection exists in the graph
  • FilterFilter is a generic filter using Common Expression Language
  • IndexIndex is a graph primitive used for fast lookups of docs/connections that pass a boolean CEL expression
  • IndexInputIndexInput is used to construct Indexes
  • Query
  • SearchConnectFilterSearchConnectFilter is used for searching for documents and adding connections based on whether they pass a Filter
  • SearchConnectMeFilterSearchConnectMeFilter is used for searching for documents and adding connections from the origin user to the document based on whether they pass a Filter
  • TraverseFilterTraverseFilter is a filter used for graph traversals
  • TraverseMeFilterTraverseMeFilter is a filter used for graph traversals of the origin user
  • TypeValidatorTypeValidator a graph primitive used to validate custom doc/connection constraints
  • TypeValidatorInputTypeValidatorInput is used to construct a new type validator
  • __DirectiveA Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document. diff --git a/docs/connectfilter.doc.html b/docs/connectfilter.doc.html index 5fce359..c1c6d48 100644 --- a/docs/connectfilter.doc.html +++ b/docs/connectfilter.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/connection.doc.html b/docs/connection.doc.html index 1d2aef4..faf268e 100644 --- a/docs/connection.doc.html +++ b/docs/connection.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/connectionconstructor.doc.html b/docs/connectionconstructor.doc.html index f11e0bc..990d03e 100644 --- a/docs/connectionconstructor.doc.html +++ b/docs/connectionconstructor.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/connectionconstructors.doc.html b/docs/connectionconstructors.doc.html index 9c40344..8de11ef 100644 --- a/docs/connectionconstructors.doc.html +++ b/docs/connectionconstructors.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/connections.doc.html b/docs/connections.doc.html index 3821352..48e6003 100644 --- a/docs/connections.doc.html +++ b/docs/connections.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/deprecated.doc.html b/docs/deprecated.doc.html index 0e7e953..64eb960 100644 --- a/docs/deprecated.doc.html +++ b/docs/deprecated.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/directive.spec.html b/docs/directive.spec.html index bb50b51..fd2ec5f 100644 --- a/docs/directive.spec.html +++ b/docs/directive.spec.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/directivelocation.spec.html b/docs/directivelocation.spec.html index c24d7ba..84bb9ec 100644 --- a/docs/directivelocation.spec.html +++ b/docs/directivelocation.spec.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/doc.doc.html b/docs/doc.doc.html index 181d1ed..5f254dd 100644 --- a/docs/doc.doc.html +++ b/docs/doc.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/docconstructor.doc.html b/docs/docconstructor.doc.html index 8b1ab3c..835e6dc 100644 --- a/docs/docconstructor.doc.html +++ b/docs/docconstructor.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/docconstructors.doc.html b/docs/docconstructors.doc.html index 8837b99..31c4904 100644 --- a/docs/docconstructors.doc.html +++ b/docs/docconstructors.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/docs.doc.html b/docs/docs.doc.html index 9157ac4..b9e5e48 100644 --- a/docs/docs.doc.html +++ b/docs/docs.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/edit.doc.html b/docs/edit.doc.html index 71c7bd0..e5ccc34 100644 --- a/docs/edit.doc.html +++ b/docs/edit.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/editfilter.doc.html b/docs/editfilter.doc.html index 6ac3bc3..2169d37 100644 --- a/docs/editfilter.doc.html +++ b/docs/editfilter.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/empty.doc.html b/docs/empty.doc.html index 0e64f4a..4f7870c 100644 --- a/docs/empty.doc.html +++ b/docs/empty.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/enumvalue.spec.html b/docs/enumvalue.spec.html index 03cbe04..a5dc916 100644 --- a/docs/enumvalue.spec.html +++ b/docs/enumvalue.spec.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/existsfilter.doc.html b/docs/existsfilter.doc.html index b1d3216..faa45bb 100644 --- a/docs/existsfilter.doc.html +++ b/docs/existsfilter.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/exprfilter.doc.html b/docs/exprfilter.doc.html index 5dc9828..aa17d52 100644 --- a/docs/exprfilter.doc.html +++ b/docs/exprfilter.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/field.spec.html b/docs/field.spec.html index 736ab9c..90f301a 100644 --- a/docs/field.spec.html +++ b/docs/field.spec.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/filter.doc.html b/docs/filter.doc.html index 169d503..93db8cf 100644 --- a/docs/filter.doc.html +++ b/docs/filter.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/float.doc.html b/docs/float.doc.html index aee73e4..98536ea 100644 --- a/docs/float.doc.html +++ b/docs/float.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/include.doc.html b/docs/include.doc.html index f370f84..2757f27 100644 --- a/docs/include.doc.html +++ b/docs/include.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/index.doc.html b/docs/index.doc.html index 58f007c..0afb750 100644 --- a/docs/index.doc.html +++ b/docs/index.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/index.html b/docs/index.html index d4e647a..595a2ec 100644 --- a/docs/index.html +++ b/docs/index.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/indexes.doc.html b/docs/indexes.doc.html index 2d5b8cd..46ebef5 100644 --- a/docs/indexes.doc.html +++ b/docs/indexes.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/indexesinput.doc.html b/docs/indexesinput.doc.html index af1105c..e83b449 100644 --- a/docs/indexesinput.doc.html +++ b/docs/indexesinput.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/indexinput.doc.html b/docs/indexinput.doc.html index f586e51..ad19057 100644 --- a/docs/indexinput.doc.html +++ b/docs/indexinput.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/inputvalue.spec.html b/docs/inputvalue.spec.html index 0a40e76..f3a8f77 100644 --- a/docs/inputvalue.spec.html +++ b/docs/inputvalue.spec.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/int.doc.html b/docs/int.doc.html index fcc8fee..e16c224 100644 --- a/docs/int.doc.html +++ b/docs/int.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/map.doc.html b/docs/map.doc.html index 099bccf..2d21f2e 100644 --- a/docs/map.doc.html +++ b/docs/map.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/message.doc.html b/docs/message.doc.html index d43b359..331d359 100644 --- a/docs/message.doc.html +++ b/docs/message.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/mutation.doc.html b/docs/mutation.doc.html index b0fec78..6509e4d 100644 --- a/docs/mutation.doc.html +++ b/docs/mutation.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/outboundmessage.doc.html b/docs/outboundmessage.doc.html index 10ac22e..5253506 100644 --- a/docs/outboundmessage.doc.html +++ b/docs/outboundmessage.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/pong.doc.html b/docs/pong.doc.html index 5e0d4c4..4f9b87c 100644 --- a/docs/pong.doc.html +++ b/docs/pong.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/query.doc.html b/docs/query.doc.html index d94bcc8..e005608 100644 --- a/docs/query.doc.html +++ b/docs/query.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/ref.doc.html b/docs/ref.doc.html index c8d1406..3ceb5bd 100644 --- a/docs/ref.doc.html +++ b/docs/ref.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/refconstructor.doc.html b/docs/refconstructor.doc.html index a2a0d06..84b40f4 100644 --- a/docs/refconstructor.doc.html +++ b/docs/refconstructor.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/refinput.doc.html b/docs/refinput.doc.html index db82a07..cf8c98a 100644 --- a/docs/refinput.doc.html +++ b/docs/refinput.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/refpair.doc.html b/docs/refpair.doc.html index f7b14a5..aebd93d 100644 --- a/docs/refpair.doc.html +++ b/docs/refpair.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/refs.doc.html b/docs/refs.doc.html index 35cabb2..8e9aa68 100644 --- a/docs/refs.doc.html +++ b/docs/refs.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/schema.doc.html b/docs/schema.doc.html index ec324a6..ed9fe2c 100644 --- a/docs/schema.doc.html +++ b/docs/schema.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/schema.spec.html b/docs/schema.spec.html index 96b22d7..aeae136 100644 --- a/docs/schema.spec.html +++ b/docs/schema.spec.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/searchconnectfilter.doc.html b/docs/searchconnectfilter.doc.html index 7399764..c69f911 100644 --- a/docs/searchconnectfilter.doc.html +++ b/docs/searchconnectfilter.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/searchconnectmefilter.doc.html b/docs/searchconnectmefilter.doc.html index 2dd2dbd..0555c10 100644 --- a/docs/searchconnectmefilter.doc.html +++ b/docs/searchconnectmefilter.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/skip.doc.html b/docs/skip.doc.html index b44ee0a..53be49a 100644 --- a/docs/skip.doc.html +++ b/docs/skip.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/streamfilter.doc.html b/docs/streamfilter.doc.html index 289823b..0a27120 100644 --- a/docs/streamfilter.doc.html +++ b/docs/streamfilter.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/string.doc.html b/docs/string.doc.html index 0727d43..c61e257 100644 --- a/docs/string.doc.html +++ b/docs/string.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/subscription.doc.html b/docs/subscription.doc.html index 6ce98b5..3591150 100644 --- a/docs/subscription.doc.html +++ b/docs/subscription.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/time.doc.html b/docs/time.doc.html index 5f43aec..9873db1 100644 --- a/docs/time.doc.html +++ b/docs/time.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/traversal.doc.html b/docs/traversal.doc.html index ddc832a..4a1ba2e 100644 --- a/docs/traversal.doc.html +++ b/docs/traversal.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/traversals.doc.html b/docs/traversals.doc.html index 293caa8..809720f 100644 --- a/docs/traversals.doc.html +++ b/docs/traversals.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/traversefilter.doc.html b/docs/traversefilter.doc.html index 8f36380..908aa53 100644 --- a/docs/traversefilter.doc.html +++ b/docs/traversefilter.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/traversemefilter.doc.html b/docs/traversemefilter.doc.html index b35acdd..b553503 100644 --- a/docs/traversemefilter.doc.html +++ b/docs/traversemefilter.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/type.spec.html b/docs/type.spec.html index 833dd7b..bb2342a 100644 --- a/docs/type.spec.html +++ b/docs/type.spec.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/typekind.spec.html b/docs/typekind.spec.html index e9d72e2..66dc5c1 100644 --- a/docs/typekind.spec.html +++ b/docs/typekind.spec.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/typevalidator.doc.html b/docs/typevalidator.doc.html index 43f0731..dcca3a7 100644 --- a/docs/typevalidator.doc.html +++ b/docs/typevalidator.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/typevalidatorinput.doc.html b/docs/typevalidatorinput.doc.html index 9781c93..ed09898 100644 --- a/docs/typevalidatorinput.doc.html +++ b/docs/typevalidatorinput.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/typevalidators.doc.html b/docs/typevalidators.doc.html index 9ae2549..09f4db8 100644 --- a/docs/typevalidators.doc.html +++ b/docs/typevalidators.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/docs/typevalidatorsinput.doc.html b/docs/typevalidatorsinput.doc.html index 97a4021..02347fa 100644 --- a/docs/typevalidatorsinput.doc.html +++ b/docs/typevalidatorsinput.doc.html @@ -95,11 +95,6 @@

    Enums

    Algorithm
  • -
  • - - AuthType - -
  • __DirectiveLocation diff --git a/gen/gql/go/generated/generated.go b/gen/gql/go/generated/generated.go index dc898a2..8ae8a1a 100644 --- a/gen/gql/go/generated/generated.go +++ b/gen/gql/go/generated/generated.go @@ -49,16 +49,16 @@ type DirectiveRoot struct { type ComplexityRoot struct { AuthTarget struct { - Data func(childComplexity int) int Method func(childComplexity int) int - Type func(childComplexity int) int + Target func(childComplexity int) int User func(childComplexity int) int } Authorizer struct { - Expression func(childComplexity int) int - Name func(childComplexity int) int - Type func(childComplexity int) int + Expression func(childComplexity int) int + Name func(childComplexity int) int + TargetRequests func(childComplexity int) int + TargetResponses func(childComplexity int) int } Authorizers struct { @@ -256,13 +256,6 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in _ = ec switch typeName + "." + field { - case "AuthTarget.data": - if e.complexity.AuthTarget.Data == nil { - break - } - - return e.complexity.AuthTarget.Data(childComplexity), true - case "AuthTarget.method": if e.complexity.AuthTarget.Method == nil { break @@ -270,12 +263,12 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.AuthTarget.Method(childComplexity), true - case "AuthTarget.type": - if e.complexity.AuthTarget.Type == nil { + case "AuthTarget.target": + if e.complexity.AuthTarget.Target == nil { break } - return e.complexity.AuthTarget.Type(childComplexity), true + return e.complexity.AuthTarget.Target(childComplexity), true case "AuthTarget.user": if e.complexity.AuthTarget.User == nil { @@ -298,12 +291,19 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.Authorizer.Name(childComplexity), true - case "Authorizer.type": - if e.complexity.Authorizer.Type == nil { + case "Authorizer.target_requests": + if e.complexity.Authorizer.TargetRequests == nil { + break + } + + return e.complexity.Authorizer.TargetRequests(childComplexity), true + + case "Authorizer.target_responses": + if e.complexity.Authorizer.TargetResponses == nil { break } - return e.complexity.Authorizer.Type(childComplexity), true + return e.complexity.Authorizer.TargetResponses(childComplexity), true case "Authorizers.authorizers": if e.complexity.Authorizers.Authorizers == nil { @@ -1149,12 +1149,6 @@ enum Aggregate { PROD } -enum AuthType { - REQUEST - VIEW_DOC - VIEW_CONNECTION -} - # Pong returns PONG if the server is healthy type Pong { message: String! @@ -1194,13 +1188,12 @@ type Traversal { # AuthTarget type AuthTarget { - type: AuthType! # method is the gRPC method invoked method: String! # user is the user making the request user: Doc! - # data is the payload gived to the authorizer(request, doc, connection) - data: Map! + # target is the payload gived to the authorizer(request or response payload) + target: Map! } # Traversals is an array of Traversal that is returned from Graph traversal algorithms @@ -1280,7 +1273,8 @@ type Authorizer { name: String! # expression is a boolean CEL expression used to evaluate the inbound request expression: String! - type: AuthType! + target_requests: Boolean! + target_responses: Boolean! } # Authorizers is an array of Authorizer @@ -1547,7 +1541,8 @@ input AuthorizerInput { name: String! # expression is a boolean CEL expression used to evaluate the inbound request expression: String! - type: AuthType! + target_requests: Boolean! + target_responses: Boolean! } # AuthorizersInput is an array of authorizers @@ -2268,7 +2263,7 @@ func (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArg // region **************************** field.gotpl ***************************** -func (ec *executionContext) _AuthTarget_type(ctx context.Context, field graphql.CollectedField, obj *model.AuthTarget) (ret graphql.Marshaler) { +func (ec *executionContext) _AuthTarget_method(ctx context.Context, field graphql.CollectedField, obj *model.AuthTarget) (ret graphql.Marshaler) { defer func() { if r := recover(); r != nil { ec.Error(ctx, ec.Recover(ctx, r)) @@ -2286,7 +2281,7 @@ func (ec *executionContext) _AuthTarget_type(ctx context.Context, field graphql. ctx = graphql.WithFieldContext(ctx, fc) resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { ctx = rctx // use context from middleware stack in children - return obj.Type, nil + return obj.Method, nil }) if err != nil { ec.Error(ctx, err) @@ -2298,12 +2293,12 @@ func (ec *executionContext) _AuthTarget_type(ctx context.Context, field graphql. } return graphql.Null } - res := resTmp.(model.AuthType) + res := resTmp.(string) fc.Result = res - return ec.marshalNAuthType2githubᚗcomᚋgraphikDBᚋgraphikᚋgenᚋgqlᚋgoᚋmodelᚐAuthType(ctx, field.Selections, res) + return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) _AuthTarget_method(ctx context.Context, field graphql.CollectedField, obj *model.AuthTarget) (ret graphql.Marshaler) { +func (ec *executionContext) _AuthTarget_user(ctx context.Context, field graphql.CollectedField, obj *model.AuthTarget) (ret graphql.Marshaler) { defer func() { if r := recover(); r != nil { ec.Error(ctx, ec.Recover(ctx, r)) @@ -2321,7 +2316,7 @@ func (ec *executionContext) _AuthTarget_method(ctx context.Context, field graphq ctx = graphql.WithFieldContext(ctx, fc) resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { ctx = rctx // use context from middleware stack in children - return obj.Method, nil + return obj.User, nil }) if err != nil { ec.Error(ctx, err) @@ -2333,12 +2328,12 @@ func (ec *executionContext) _AuthTarget_method(ctx context.Context, field graphq } return graphql.Null } - res := resTmp.(string) + res := resTmp.(*model.Doc) fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) + return ec.marshalNDoc2ᚖgithubᚗcomᚋgraphikDBᚋgraphikᚋgenᚋgqlᚋgoᚋmodelᚐDoc(ctx, field.Selections, res) } -func (ec *executionContext) _AuthTarget_user(ctx context.Context, field graphql.CollectedField, obj *model.AuthTarget) (ret graphql.Marshaler) { +func (ec *executionContext) _AuthTarget_target(ctx context.Context, field graphql.CollectedField, obj *model.AuthTarget) (ret graphql.Marshaler) { defer func() { if r := recover(); r != nil { ec.Error(ctx, ec.Recover(ctx, r)) @@ -2356,7 +2351,7 @@ func (ec *executionContext) _AuthTarget_user(ctx context.Context, field graphql. ctx = graphql.WithFieldContext(ctx, fc) resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { ctx = rctx // use context from middleware stack in children - return obj.User, nil + return obj.Target, nil }) if err != nil { ec.Error(ctx, err) @@ -2368,12 +2363,12 @@ func (ec *executionContext) _AuthTarget_user(ctx context.Context, field graphql. } return graphql.Null } - res := resTmp.(*model.Doc) + res := resTmp.(map[string]interface{}) fc.Result = res - return ec.marshalNDoc2ᚖgithubᚗcomᚋgraphikDBᚋgraphikᚋgenᚋgqlᚋgoᚋmodelᚐDoc(ctx, field.Selections, res) + return ec.marshalNMap2map(ctx, field.Selections, res) } -func (ec *executionContext) _AuthTarget_data(ctx context.Context, field graphql.CollectedField, obj *model.AuthTarget) (ret graphql.Marshaler) { +func (ec *executionContext) _Authorizer_name(ctx context.Context, field graphql.CollectedField, obj *model.Authorizer) (ret graphql.Marshaler) { defer func() { if r := recover(); r != nil { ec.Error(ctx, ec.Recover(ctx, r)) @@ -2381,7 +2376,7 @@ func (ec *executionContext) _AuthTarget_data(ctx context.Context, field graphql. } }() fc := &graphql.FieldContext{ - Object: "AuthTarget", + Object: "Authorizer", Field: field, Args: nil, IsMethod: false, @@ -2391,7 +2386,7 @@ func (ec *executionContext) _AuthTarget_data(ctx context.Context, field graphql. ctx = graphql.WithFieldContext(ctx, fc) resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { ctx = rctx // use context from middleware stack in children - return obj.Data, nil + return obj.Name, nil }) if err != nil { ec.Error(ctx, err) @@ -2403,12 +2398,12 @@ func (ec *executionContext) _AuthTarget_data(ctx context.Context, field graphql. } return graphql.Null } - res := resTmp.(map[string]interface{}) + res := resTmp.(string) fc.Result = res - return ec.marshalNMap2map(ctx, field.Selections, res) + return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) _Authorizer_name(ctx context.Context, field graphql.CollectedField, obj *model.Authorizer) (ret graphql.Marshaler) { +func (ec *executionContext) _Authorizer_expression(ctx context.Context, field graphql.CollectedField, obj *model.Authorizer) (ret graphql.Marshaler) { defer func() { if r := recover(); r != nil { ec.Error(ctx, ec.Recover(ctx, r)) @@ -2426,7 +2421,7 @@ func (ec *executionContext) _Authorizer_name(ctx context.Context, field graphql. ctx = graphql.WithFieldContext(ctx, fc) resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { ctx = rctx // use context from middleware stack in children - return obj.Name, nil + return obj.Expression, nil }) if err != nil { ec.Error(ctx, err) @@ -2443,7 +2438,7 @@ func (ec *executionContext) _Authorizer_name(ctx context.Context, field graphql. return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) _Authorizer_expression(ctx context.Context, field graphql.CollectedField, obj *model.Authorizer) (ret graphql.Marshaler) { +func (ec *executionContext) _Authorizer_target_requests(ctx context.Context, field graphql.CollectedField, obj *model.Authorizer) (ret graphql.Marshaler) { defer func() { if r := recover(); r != nil { ec.Error(ctx, ec.Recover(ctx, r)) @@ -2461,7 +2456,7 @@ func (ec *executionContext) _Authorizer_expression(ctx context.Context, field gr ctx = graphql.WithFieldContext(ctx, fc) resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { ctx = rctx // use context from middleware stack in children - return obj.Expression, nil + return obj.TargetRequests, nil }) if err != nil { ec.Error(ctx, err) @@ -2473,12 +2468,12 @@ func (ec *executionContext) _Authorizer_expression(ctx context.Context, field gr } return graphql.Null } - res := resTmp.(string) + res := resTmp.(bool) fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) + return ec.marshalNBoolean2bool(ctx, field.Selections, res) } -func (ec *executionContext) _Authorizer_type(ctx context.Context, field graphql.CollectedField, obj *model.Authorizer) (ret graphql.Marshaler) { +func (ec *executionContext) _Authorizer_target_responses(ctx context.Context, field graphql.CollectedField, obj *model.Authorizer) (ret graphql.Marshaler) { defer func() { if r := recover(); r != nil { ec.Error(ctx, ec.Recover(ctx, r)) @@ -2496,7 +2491,7 @@ func (ec *executionContext) _Authorizer_type(ctx context.Context, field graphql. ctx = graphql.WithFieldContext(ctx, fc) resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { ctx = rctx // use context from middleware stack in children - return obj.Type, nil + return obj.TargetResponses, nil }) if err != nil { ec.Error(ctx, err) @@ -2508,9 +2503,9 @@ func (ec *executionContext) _Authorizer_type(ctx context.Context, field graphql. } return graphql.Null } - res := resTmp.(model.AuthType) + res := resTmp.(bool) fc.Result = res - return ec.marshalNAuthType2githubᚗcomᚋgraphikDBᚋgraphikᚋgenᚋgqlᚋgoᚋmodelᚐAuthType(ctx, field.Selections, res) + return ec.marshalNBoolean2bool(ctx, field.Selections, res) } func (ec *executionContext) _Authorizers_authorizers(ctx context.Context, field graphql.CollectedField, obj *model.Authorizers) (ret graphql.Marshaler) { @@ -6681,11 +6676,19 @@ func (ec *executionContext) unmarshalInputAuthorizerInput(ctx context.Context, o if err != nil { return it, err } - case "type": + case "target_requests": var err error - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("type")) - it.Type, err = ec.unmarshalNAuthType2githubᚗcomᚋgraphikDBᚋgraphikᚋgenᚋgqlᚋgoᚋmodelᚐAuthType(ctx, v) + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("target_requests")) + it.TargetRequests, err = ec.unmarshalNBoolean2bool(ctx, v) + if err != nil { + return it, err + } + case "target_responses": + var err error + + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("target_responses")) + it.TargetResponses, err = ec.unmarshalNBoolean2bool(ctx, v) if err != nil { return it, err } @@ -7658,11 +7661,6 @@ func (ec *executionContext) _AuthTarget(ctx context.Context, sel ast.SelectionSe switch field.Name { case "__typename": out.Values[i] = graphql.MarshalString("AuthTarget") - case "type": - out.Values[i] = ec._AuthTarget_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } case "method": out.Values[i] = ec._AuthTarget_method(ctx, field, obj) if out.Values[i] == graphql.Null { @@ -7673,8 +7671,8 @@ func (ec *executionContext) _AuthTarget(ctx context.Context, sel ast.SelectionSe if out.Values[i] == graphql.Null { invalids++ } - case "data": - out.Values[i] = ec._AuthTarget_data(ctx, field, obj) + case "target": + out.Values[i] = ec._AuthTarget_target(ctx, field, obj) if out.Values[i] == graphql.Null { invalids++ } @@ -7710,8 +7708,13 @@ func (ec *executionContext) _Authorizer(ctx context.Context, sel ast.SelectionSe if out.Values[i] == graphql.Null { invalids++ } - case "type": - out.Values[i] = ec._Authorizer_type(ctx, field, obj) + case "target_requests": + out.Values[i] = ec._Authorizer_target_requests(ctx, field, obj) + if out.Values[i] == graphql.Null { + invalids++ + } + case "target_responses": + out.Values[i] = ec._Authorizer_target_responses(ctx, field, obj) if out.Values[i] == graphql.Null { invalids++ } @@ -8882,16 +8885,6 @@ func (ec *executionContext) marshalNAggregate2githubᚗcomᚋgraphikDBᚋgraphik return v } -func (ec *executionContext) unmarshalNAuthType2githubᚗcomᚋgraphikDBᚋgraphikᚋgenᚋgqlᚋgoᚋmodelᚐAuthType(ctx context.Context, v interface{}) (model.AuthType, error) { - var res model.AuthType - err := res.UnmarshalGQL(v) - return res, graphql.ErrorOnPath(ctx, err) -} - -func (ec *executionContext) marshalNAuthType2githubᚗcomᚋgraphikDBᚋgraphikᚋgenᚋgqlᚋgoᚋmodelᚐAuthType(ctx context.Context, sel ast.SelectionSet, v model.AuthType) graphql.Marshaler { - return v -} - func (ec *executionContext) marshalNAuthorizer2ᚖgithubᚗcomᚋgraphikDBᚋgraphikᚋgenᚋgqlᚋgoᚋmodelᚐAuthorizer(ctx context.Context, sel ast.SelectionSet, v *model.Authorizer) graphql.Marshaler { if v == nil { if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { diff --git a/gen/gql/go/model/models_gen.go b/gen/gql/go/model/models_gen.go index 1ccf07c..e2ee0fb 100644 --- a/gen/gql/go/model/models_gen.go +++ b/gen/gql/go/model/models_gen.go @@ -16,22 +16,23 @@ type AggFilter struct { } type AuthTarget struct { - Type AuthType `json:"type"` Method string `json:"method"` User *Doc `json:"user"` - Data map[string]interface{} `json:"data"` + Target map[string]interface{} `json:"target"` } type Authorizer struct { - Name string `json:"name"` - Expression string `json:"expression"` - Type AuthType `json:"type"` + Name string `json:"name"` + Expression string `json:"expression"` + TargetRequests bool `json:"target_requests"` + TargetResponses bool `json:"target_responses"` } type AuthorizerInput struct { - Name string `json:"name"` - Expression string `json:"expression"` - Type AuthType `json:"type"` + Name string `json:"name"` + Expression string `json:"expression"` + TargetRequests bool `json:"target_requests"` + TargetResponses bool `json:"target_responses"` } type Authorizers struct { @@ -368,46 +369,3 @@ func (e *Algorithm) UnmarshalGQL(v interface{}) error { func (e Algorithm) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } - -type AuthType string - -const ( - AuthTypeRequest AuthType = "REQUEST" - AuthTypeViewDoc AuthType = "VIEW_DOC" - AuthTypeViewConnection AuthType = "VIEW_CONNECTION" -) - -var AllAuthType = []AuthType{ - AuthTypeRequest, - AuthTypeViewDoc, - AuthTypeViewConnection, -} - -func (e AuthType) IsValid() bool { - switch e { - case AuthTypeRequest, AuthTypeViewDoc, AuthTypeViewConnection: - return true - } - return false -} - -func (e AuthType) String() string { - return string(e) -} - -func (e *AuthType) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = AuthType(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid AuthType", str) - } - return nil -} - -func (e AuthType) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} diff --git a/gen/grpc/csharp/Graphik.cs b/gen/grpc/csharp/Graphik.cs index 0e18bb0..74f7b81 100644 --- a/gen/grpc/csharp/Graphik.cs +++ b/gen/grpc/csharp/Graphik.cs @@ -88,108 +88,107 @@ static GraphikReflection() { "ASgEQgbi3x8CEAAinAEKEEluZGV4Q29uc3RydWN0b3ISHgoEbmFtZRgBIAEo", "CUIQ4t8fDAoKXi57MSwyMjV9JBIfCgVndHlwZRgDIAEoCUIQ4t8fDAoKXi57", "MSwyMjV9JBIkCgpleHByZXNzaW9uGAQgASgJQhDi3x8MCgpeLnsxLDIyNX0k", - "EgwKBGRvY3MYBiABKAgSEwoLY29ubmVjdGlvbnMYByABKAgikgEKCkF1dGhU", - "YXJnZXQSGwoEdHlwZRgBIAEoDjINLmFwaS5BdXRoVHlwZRIgCgZtZXRob2QY", - "AiABKAlCEOLfHwwKCl4uezEsMjI1fSQSHgoEdXNlchgDIAEoCzIILmFwaS5E", - "b2NCBuLfHwIgARIlCgRkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0", - "cnVjdCJvCgpBdXRob3JpemVyEh4KBG5hbWUYASABKAlCEOLfHwwKCl4uezEs", - "MjI1fSQSJAoKZXhwcmVzc2lvbhgCIAEoCUIQ4t8fDAoKXi57MSwyMjV9JBIb", - "CgR0eXBlGAMgASgOMg0uYXBpLkF1dGhUeXBlIjMKC0F1dGhvcml6ZXJzEiQK", - "C2F1dGhvcml6ZXJzGAEgAygLMg8uYXBpLkF1dGhvcml6ZXIimQEKDVR5cGVW", - "YWxpZGF0b3ISHgoEbmFtZRgBIAEoCUIQ4t8fDAoKXi57MSwyMjV9JBIfCgVn", - "dHlwZRgCIAEoCUIQ4t8fDAoKXi57MSwyMjV9JBIkCgpleHByZXNzaW9uGAMg", - "ASgJQhDi3x8MCgpeLnsxLDIyNX0kEgwKBGRvY3MYBCABKAgSEwoLY29ubmVj", - "dGlvbnMYBSABKAgiOAoOVHlwZVZhbGlkYXRvcnMSJgoKdmFsaWRhdG9ycxgB", - "IAMoCzISLmFwaS5UeXBlVmFsaWRhdG9yIpEBCgVJbmRleBIeCgRuYW1lGAEg", - "ASgJQhDi3x8MCgpeLnsxLDIyNX0kEh8KBWd0eXBlGAMgASgJQhDi3x8MCgpe", - "LnsxLDIyNX0kEiQKCmV4cHJlc3Npb24YBCABKAlCEOLfHwwKCl4uezEsMjI1", - "fSQSDAoEZG9jcxgGIAEoCBITCgtjb25uZWN0aW9ucxgHIAEoCCImCgdJbmRl", - "eGVzEhsKB2luZGV4ZXMYASADKAsyCi5hcGkuSW5kZXgiRQoMU3RyZWFtRmls", - "dGVyEiEKB2NoYW5uZWwYASABKAlCEOLfHwwKCl4uezEsMjI1fSQSEgoKZXhw", - "cmVzc2lvbhgCIAEoCSJHCgVHcmFwaBIXCgRkb2NzGAEgASgLMgkuYXBpLkRv", - "Y3MSJQoLY29ubmVjdGlvbnMYAiABKAsyEC5hcGkuQ29ubmVjdGlvbnMixAIK", - "BUZsYWdzEhkKEW9wZW5faWRfZGlzY292ZXJ5GAEgASgJEhQKDHN0b3JhZ2Vf", - "cGF0aBgCIAEoCRIPCgdtZXRyaWNzGAMgASgIEhUKDWFsbG93X2hlYWRlcnMY", - "BSADKAkSFQoNYWxsb3dfbWV0aG9kcxgGIAMoCRIVCg1hbGxvd19vcmlnaW5z", - "GAcgAygJEhIKCnJvb3RfdXNlcnMYCCADKAkSEAoIdGxzX2NlcnQYCSABKAkS", - "DwoHdGxzX2tleRgKIAEoCRIcChRwbGF5Z3JvdW5kX2NsaWVudF9pZBgLIAEo", - "CRIgChhwbGF5Z3JvdW5kX2NsaWVudF9zZWNyZXQYDCABKAkSGwoTcGxheWdy", - "b3VuZF9yZWRpcmVjdBgNIAEoCRIgChhwbGF5Z3JvdW5kX3Nlc3Npb25fc3Rv", - "cmUYDiABKAkiGAoHQm9vbGVhbhINCgV2YWx1ZRgBIAEoCCIXCgZOdW1iZXIS", - "DQoFdmFsdWUYASABKAEigwEKDEV4aXN0c0ZpbHRlchIfCgVndHlwZRgBIAEo", - "CUIQ4t8fDAoKXi57MSwyMjV9JBIkCgpleHByZXNzaW9uGAIgASgJQhDi3x8M", - "CgpeLnsxLDIyNX0kEgwKBHNlZWsYAyABKAkSDwoHcmV2ZXJzZRgEIAEoCBIN", - "CgVpbmRleBgFIAEoCSJSCgRFZGl0Eh0KA3JlZhgBIAEoCzIILmFwaS5SZWZC", - "BuLfHwIgARIrCgphdHRyaWJ1dGVzGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVm", - "LlN0cnVjdCJWCgpFZGl0RmlsdGVyEhsKBmZpbHRlchgBIAEoCzILLmFwaS5G", - "aWx0ZXISKwoKYXR0cmlidXRlcxgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5T", - "dHJ1Y3QiFwoEUG9uZxIPCgdtZXNzYWdlGAEgASgJImMKD091dGJvdW5kTWVz", - "c2FnZRIhCgdjaGFubmVsGAEgASgJQhDi3x8MCgpeLnsxLDIyNX0kEi0KBGRh", - "dGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Qgbi3x8CIAEi1AEK", - "B01lc3NhZ2USIQoHY2hhbm5lbBgBIAEoCUIQ4t8fDAoKXi57MSwyMjV9JBIt", - "CgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIG4t8fAiAB", - "Eh4KBHVzZXIYAyABKAsyCC5hcGkuUmVmQgbi3x8CIAESNQoJdGltZXN0YW1w", - "GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIG4t8fAiABEiAK", - "Bm1ldGhvZBgFIAEoCUIQ4t8fDAoKXi57MSwyMjV9JCKkAQoGU2NoZW1hEhgK", - "EGNvbm5lY3Rpb25fdHlwZXMYASADKAkSEQoJZG9jX3R5cGVzGAIgAygJEiUK", - "C2F1dGhvcml6ZXJzGAMgASgLMhAuYXBpLkF1dGhvcml6ZXJzEicKCnZhbGlk", - "YXRvcnMYBCABKAsyEy5hcGkuVHlwZVZhbGlkYXRvcnMSHQoHaW5kZXhlcxgF", - "IAEoCzIMLmFwaS5JbmRleGVzIiAKCkV4cHJGaWx0ZXISEgoKZXhwcmVzc2lv", - "bhgBIAEoCSodCglBbGdvcml0aG0SBwoDQkZTEAASBwoDREZTEAEqRAoJQWdn", - "cmVnYXRlEgkKBUNPVU5UEAASBwoDU1VNEAESBwoDQVZHEAISBwoDTUFYEAMS", - "BwoDTUlOEAQSCAoEUFJPRBAFKjoKCEF1dGhUeXBlEgsKB1JFUVVFU1QQABIM", - "CghWSUVXX0RPQxABEhMKD1ZJRVdfQ09OTkVDVElPThACMtoQCg9EYXRhYmFz", - "ZVNlcnZpY2USKwoEUGluZxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoJLmFw", - "aS5Qb25nIgASMgoJR2V0U2NoZW1hEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5", - "GgsuYXBpLlNjaGVtYSIAEjwKDlNldEF1dGhvcml6ZXJzEhAuYXBpLkF1dGhv", - "cml6ZXJzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IgASNAoKU2V0SW5kZXhl", - "cxIMLmFwaS5JbmRleGVzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IgASQgoR", - "U2V0VHlwZVZhbGlkYXRvcnMSEy5hcGkuVHlwZVZhbGlkYXRvcnMaFi5nb29n", - "bGUucHJvdG9idWYuRW1wdHkiABIoCgJNZRIWLmdvb2dsZS5wcm90b2J1Zi5F", - "bXB0eRoILmFwaS5Eb2MiABIsCglDcmVhdGVEb2MSEy5hcGkuRG9jQ29uc3Ry", - "dWN0b3IaCC5hcGkuRG9jIgASLwoKQ3JlYXRlRG9jcxIULmFwaS5Eb2NDb25z", - "dHJ1Y3RvcnMaCS5hcGkuRG9jcyIAEh4KBkdldERvYxIILmFwaS5SZWYaCC5h", - "cGkuRG9jIgASJgoKU2VhcmNoRG9jcxILLmFwaS5GaWx0ZXIaCS5hcGkuRG9j", - "cyIAEjIKCFRyYXZlcnNlEhMuYXBpLlRyYXZlcnNlRmlsdGVyGg8uYXBpLlRy", - "YXZlcnNhbHMiABI2CgpUcmF2ZXJzZU1lEhUuYXBpLlRyYXZlcnNlTWVGaWx0", - "ZXIaDy5hcGkuVHJhdmVyc2FscyIAEiAKB0VkaXREb2MSCS5hcGkuRWRpdBoI", - "LmFwaS5Eb2MiABIoCghFZGl0RG9jcxIPLmFwaS5FZGl0RmlsdGVyGgkuYXBp", - "LkRvY3MiABIsCgZEZWxEb2MSCC5hcGkuUmVmGhYuZ29vZ2xlLnByb3RvYnVm", - "LkVtcHR5IgASMAoHRGVsRG9jcxILLmFwaS5GaWx0ZXIaFi5nb29nbGUucHJv", - "dG9idWYuRW1wdHkiABIuCglFeGlzdHNEb2MSES5hcGkuRXhpc3RzRmlsdGVy", - "GgwuYXBpLkJvb2xlYW4iABI1ChBFeGlzdHNDb25uZWN0aW9uEhEuYXBpLkV4", - "aXN0c0ZpbHRlchoMLmFwaS5Cb29sZWFuIgASIgoGSGFzRG9jEgguYXBpLlJl", - "ZhoMLmFwaS5Cb29sZWFuIgASKQoNSGFzQ29ubmVjdGlvbhIILmFwaS5SZWYa", - "DC5hcGkuQm9vbGVhbiIAEkEKEENyZWF0ZUNvbm5lY3Rpb24SGi5hcGkuQ29u", - "bmVjdGlvbkNvbnN0cnVjdG9yGg8uYXBpLkNvbm5lY3Rpb24iABJEChFDcmVh", - "dGVDb25uZWN0aW9ucxIbLmFwaS5Db25uZWN0aW9uQ29uc3RydWN0b3JzGhAu", - "YXBpLkNvbm5lY3Rpb25zIgASQAoQU2VhcmNoQW5kQ29ubmVjdBIYLmFwaS5T", - "ZWFyY2hDb25uZWN0RmlsdGVyGhAuYXBpLkNvbm5lY3Rpb25zIgASRAoSU2Vh", - "cmNoQW5kQ29ubmVjdE1lEhouYXBpLlNlYXJjaENvbm5lY3RNZUZpbHRlchoQ", - "LmFwaS5Db25uZWN0aW9ucyIAEiwKDUdldENvbm5lY3Rpb24SCC5hcGkuUmVm", - "Gg8uYXBpLkNvbm5lY3Rpb24iABI0ChFTZWFyY2hDb25uZWN0aW9ucxILLmFw", - "aS5GaWx0ZXIaEC5hcGkuQ29ubmVjdGlvbnMiABIuCg5FZGl0Q29ubmVjdGlv", - "bhIJLmFwaS5FZGl0Gg8uYXBpLkNvbm5lY3Rpb24iABI2Cg9FZGl0Q29ubmVj", - "dGlvbnMSDy5hcGkuRWRpdEZpbHRlchoQLmFwaS5Db25uZWN0aW9ucyIAEjMK", - "DURlbENvbm5lY3Rpb24SCC5hcGkuUmVmGhYuZ29vZ2xlLnByb3RvYnVmLkVt", - "cHR5IgASNwoORGVsQ29ubmVjdGlvbnMSCy5hcGkuRmlsdGVyGhYuZ29vZ2xl", - "LnByb3RvYnVmLkVtcHR5IgASOQoPQ29ubmVjdGlvbnNGcm9tEhIuYXBpLkNv", - "bm5lY3RGaWx0ZXIaEC5hcGkuQ29ubmVjdGlvbnMiABI3Cg1Db25uZWN0aW9u", - "c1RvEhIuYXBpLkNvbm5lY3RGaWx0ZXIaEC5hcGkuQ29ubmVjdGlvbnMiABIu", - "Cg1BZ2dyZWdhdGVEb2NzEg4uYXBpLkFnZ0ZpbHRlchoLLmFwaS5OdW1iZXIi", - "ABI1ChRBZ2dyZWdhdGVDb25uZWN0aW9ucxIOLmFwaS5BZ2dGaWx0ZXIaCy5h", - "cGkuTnVtYmVyIgASOwoJQnJvYWRjYXN0EhQuYXBpLk91dGJvdW5kTWVzc2Fn", - "ZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIAEi0KBlN0cmVhbRIRLmFwaS5T", - "dHJlYW1GaWx0ZXIaDC5hcGkuTWVzc2FnZSIAMAESOgoTUHVzaERvY0NvbnN0", - "cnVjdG9ycxITLmFwaS5Eb2NDb25zdHJ1Y3RvchoILmFwaS5Eb2MiACgBMAES", - "TwoaUHVzaENvbm5lY3Rpb25Db25zdHJ1Y3RvcnMSGi5hcGkuQ29ubmVjdGlv", - "bkNvbnN0cnVjdG9yGg8uYXBpLkNvbm5lY3Rpb24iACgBMAESMAoIU2VlZERv", - "Y3MSCC5hcGkuRG9jGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IgAoARI+Cg9T", - "ZWVkQ29ubmVjdGlvbnMSDy5hcGkuQ29ubmVjdGlvbhoWLmdvb2dsZS5wcm90", - "b2J1Zi5FbXB0eSIAKAFCB1oFYXBpcGJiBnByb3RvMw==")); + "EgwKBGRvY3MYBiABKAgSEwoLY29ubmVjdGlvbnMYByABKAgidwoKQXV0aFRh", + "cmdldBIgCgZtZXRob2QYAyABKAlCEOLfHwwKCl4uezEsMjI1fSQSHgoEdXNl", + "chgEIAEoCzIILmFwaS5Eb2NCBuLfHwIgARInCgZ0YXJnZXQYBSABKAsyFy5n", + "b29nbGUucHJvdG9idWYuU3RydWN0IoUBCgpBdXRob3JpemVyEh4KBG5hbWUY", + "ASABKAlCEOLfHwwKCl4uezEsMjI1fSQSJAoKZXhwcmVzc2lvbhgCIAEoCUIQ", + "4t8fDAoKXi57MSwyMjV9JBIXCg90YXJnZXRfcmVxdWVzdHMYAyABKAgSGAoQ", + "dGFyZ2V0X3Jlc3BvbnNlcxgEIAEoCCIzCgtBdXRob3JpemVycxIkCgthdXRo", + "b3JpemVycxgBIAMoCzIPLmFwaS5BdXRob3JpemVyIpkBCg1UeXBlVmFsaWRh", + "dG9yEh4KBG5hbWUYASABKAlCEOLfHwwKCl4uezEsMjI1fSQSHwoFZ3R5cGUY", + "AiABKAlCEOLfHwwKCl4uezEsMjI1fSQSJAoKZXhwcmVzc2lvbhgDIAEoCUIQ", + "4t8fDAoKXi57MSwyMjV9JBIMCgRkb2NzGAQgASgIEhMKC2Nvbm5lY3Rpb25z", + "GAUgASgIIjgKDlR5cGVWYWxpZGF0b3JzEiYKCnZhbGlkYXRvcnMYASADKAsy", + "Ei5hcGkuVHlwZVZhbGlkYXRvciKRAQoFSW5kZXgSHgoEbmFtZRgBIAEoCUIQ", + "4t8fDAoKXi57MSwyMjV9JBIfCgVndHlwZRgDIAEoCUIQ4t8fDAoKXi57MSwy", + "MjV9JBIkCgpleHByZXNzaW9uGAQgASgJQhDi3x8MCgpeLnsxLDIyNX0kEgwK", + "BGRvY3MYBiABKAgSEwoLY29ubmVjdGlvbnMYByABKAgiJgoHSW5kZXhlcxIb", + "CgdpbmRleGVzGAEgAygLMgouYXBpLkluZGV4IkUKDFN0cmVhbUZpbHRlchIh", + "CgdjaGFubmVsGAEgASgJQhDi3x8MCgpeLnsxLDIyNX0kEhIKCmV4cHJlc3Np", + "b24YAiABKAkiRwoFR3JhcGgSFwoEZG9jcxgBIAEoCzIJLmFwaS5Eb2NzEiUK", + "C2Nvbm5lY3Rpb25zGAIgASgLMhAuYXBpLkNvbm5lY3Rpb25zIsQCCgVGbGFn", + "cxIZChFvcGVuX2lkX2Rpc2NvdmVyeRgBIAEoCRIUCgxzdG9yYWdlX3BhdGgY", + "AiABKAkSDwoHbWV0cmljcxgDIAEoCBIVCg1hbGxvd19oZWFkZXJzGAUgAygJ", + "EhUKDWFsbG93X21ldGhvZHMYBiADKAkSFQoNYWxsb3dfb3JpZ2lucxgHIAMo", + "CRISCgpyb290X3VzZXJzGAggAygJEhAKCHRsc19jZXJ0GAkgASgJEg8KB3Rs", + "c19rZXkYCiABKAkSHAoUcGxheWdyb3VuZF9jbGllbnRfaWQYCyABKAkSIAoY", + "cGxheWdyb3VuZF9jbGllbnRfc2VjcmV0GAwgASgJEhsKE3BsYXlncm91bmRf", + "cmVkaXJlY3QYDSABKAkSIAoYcGxheWdyb3VuZF9zZXNzaW9uX3N0b3JlGA4g", + "ASgJIhgKB0Jvb2xlYW4SDQoFdmFsdWUYASABKAgiFwoGTnVtYmVyEg0KBXZh", + "bHVlGAEgASgBIoMBCgxFeGlzdHNGaWx0ZXISHwoFZ3R5cGUYASABKAlCEOLf", + "HwwKCl4uezEsMjI1fSQSJAoKZXhwcmVzc2lvbhgCIAEoCUIQ4t8fDAoKXi57", + "MSwyMjV9JBIMCgRzZWVrGAMgASgJEg8KB3JldmVyc2UYBCABKAgSDQoFaW5k", + "ZXgYBSABKAkiUgoERWRpdBIdCgNyZWYYASABKAsyCC5hcGkuUmVmQgbi3x8C", + "IAESKwoKYXR0cmlidXRlcxgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1", + "Y3QiVgoKRWRpdEZpbHRlchIbCgZmaWx0ZXIYASABKAsyCy5hcGkuRmlsdGVy", + "EisKCmF0dHJpYnV0ZXMYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0", + "IhcKBFBvbmcSDwoHbWVzc2FnZRgBIAEoCSJjCg9PdXRib3VuZE1lc3NhZ2US", + "IQoHY2hhbm5lbBgBIAEoCUIQ4t8fDAoKXi57MSwyMjV9JBItCgRkYXRhGAIg", + "ASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIG4t8fAiABItQBCgdNZXNz", + "YWdlEiEKB2NoYW5uZWwYASABKAlCEOLfHwwKCl4uezEsMjI1fSQSLQoEZGF0", + "YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCBuLfHwIgARIeCgR1", + "c2VyGAMgASgLMgguYXBpLlJlZkIG4t8fAiABEjUKCXRpbWVzdGFtcBgEIAEo", + "CzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCBuLfHwIgARIgCgZtZXRo", + "b2QYBSABKAlCEOLfHwwKCl4uezEsMjI1fSQipAEKBlNjaGVtYRIYChBjb25u", + "ZWN0aW9uX3R5cGVzGAEgAygJEhEKCWRvY190eXBlcxgCIAMoCRIlCgthdXRo", + "b3JpemVycxgDIAEoCzIQLmFwaS5BdXRob3JpemVycxInCgp2YWxpZGF0b3Jz", + "GAQgASgLMhMuYXBpLlR5cGVWYWxpZGF0b3JzEh0KB2luZGV4ZXMYBSABKAsy", + "DC5hcGkuSW5kZXhlcyIgCgpFeHByRmlsdGVyEhIKCmV4cHJlc3Npb24YASAB", + "KAkqHQoJQWxnb3JpdGhtEgcKA0JGUxAAEgcKA0RGUxABKkQKCUFnZ3JlZ2F0", + "ZRIJCgVDT1VOVBAAEgcKA1NVTRABEgcKA0FWRxACEgcKA01BWBADEgcKA01J", + "ThAEEggKBFBST0QQBTLaEAoPRGF0YWJhc2VTZXJ2aWNlEisKBFBpbmcSFi5n", + "b29nbGUucHJvdG9idWYuRW1wdHkaCS5hcGkuUG9uZyIAEjIKCUdldFNjaGVt", + "YRIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoLLmFwaS5TY2hlbWEiABI8Cg5T", + "ZXRBdXRob3JpemVycxIQLmFwaS5BdXRob3JpemVycxoWLmdvb2dsZS5wcm90", + "b2J1Zi5FbXB0eSIAEjQKClNldEluZGV4ZXMSDC5hcGkuSW5kZXhlcxoWLmdv", + "b2dsZS5wcm90b2J1Zi5FbXB0eSIAEkIKEVNldFR5cGVWYWxpZGF0b3JzEhMu", + "YXBpLlR5cGVWYWxpZGF0b3JzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IgAS", + "KAoCTWUSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaCC5hcGkuRG9jIgASLAoJ", + "Q3JlYXRlRG9jEhMuYXBpLkRvY0NvbnN0cnVjdG9yGgguYXBpLkRvYyIAEi8K", + "CkNyZWF0ZURvY3MSFC5hcGkuRG9jQ29uc3RydWN0b3JzGgkuYXBpLkRvY3Mi", + "ABIeCgZHZXREb2MSCC5hcGkuUmVmGgguYXBpLkRvYyIAEiYKClNlYXJjaERv", + "Y3MSCy5hcGkuRmlsdGVyGgkuYXBpLkRvY3MiABIyCghUcmF2ZXJzZRITLmFw", + "aS5UcmF2ZXJzZUZpbHRlchoPLmFwaS5UcmF2ZXJzYWxzIgASNgoKVHJhdmVy", + "c2VNZRIVLmFwaS5UcmF2ZXJzZU1lRmlsdGVyGg8uYXBpLlRyYXZlcnNhbHMi", + "ABIgCgdFZGl0RG9jEgkuYXBpLkVkaXQaCC5hcGkuRG9jIgASKAoIRWRpdERv", + "Y3MSDy5hcGkuRWRpdEZpbHRlchoJLmFwaS5Eb2NzIgASLAoGRGVsRG9jEggu", + "YXBpLlJlZhoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIAEjAKB0RlbERvY3MS", + "Cy5hcGkuRmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IgASLgoJRXhp", + "c3RzRG9jEhEuYXBpLkV4aXN0c0ZpbHRlchoMLmFwaS5Cb29sZWFuIgASNQoQ", + "RXhpc3RzQ29ubmVjdGlvbhIRLmFwaS5FeGlzdHNGaWx0ZXIaDC5hcGkuQm9v", + "bGVhbiIAEiIKBkhhc0RvYxIILmFwaS5SZWYaDC5hcGkuQm9vbGVhbiIAEikK", + "DUhhc0Nvbm5lY3Rpb24SCC5hcGkuUmVmGgwuYXBpLkJvb2xlYW4iABJBChBD", + "cmVhdGVDb25uZWN0aW9uEhouYXBpLkNvbm5lY3Rpb25Db25zdHJ1Y3RvchoP", + "LmFwaS5Db25uZWN0aW9uIgASRAoRQ3JlYXRlQ29ubmVjdGlvbnMSGy5hcGku", + "Q29ubmVjdGlvbkNvbnN0cnVjdG9ycxoQLmFwaS5Db25uZWN0aW9ucyIAEkAK", + "EFNlYXJjaEFuZENvbm5lY3QSGC5hcGkuU2VhcmNoQ29ubmVjdEZpbHRlchoQ", + "LmFwaS5Db25uZWN0aW9ucyIAEkQKElNlYXJjaEFuZENvbm5lY3RNZRIaLmFw", + "aS5TZWFyY2hDb25uZWN0TWVGaWx0ZXIaEC5hcGkuQ29ubmVjdGlvbnMiABIs", + "Cg1HZXRDb25uZWN0aW9uEgguYXBpLlJlZhoPLmFwaS5Db25uZWN0aW9uIgAS", + "NAoRU2VhcmNoQ29ubmVjdGlvbnMSCy5hcGkuRmlsdGVyGhAuYXBpLkNvbm5l", + "Y3Rpb25zIgASLgoORWRpdENvbm5lY3Rpb24SCS5hcGkuRWRpdBoPLmFwaS5D", + "b25uZWN0aW9uIgASNgoPRWRpdENvbm5lY3Rpb25zEg8uYXBpLkVkaXRGaWx0", + "ZXIaEC5hcGkuQ29ubmVjdGlvbnMiABIzCg1EZWxDb25uZWN0aW9uEgguYXBp", + "LlJlZhoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIAEjcKDkRlbENvbm5lY3Rp", + "b25zEgsuYXBpLkZpbHRlchoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIAEjkK", + "D0Nvbm5lY3Rpb25zRnJvbRISLmFwaS5Db25uZWN0RmlsdGVyGhAuYXBpLkNv", + "bm5lY3Rpb25zIgASNwoNQ29ubmVjdGlvbnNUbxISLmFwaS5Db25uZWN0Rmls", + "dGVyGhAuYXBpLkNvbm5lY3Rpb25zIgASLgoNQWdncmVnYXRlRG9jcxIOLmFw", + "aS5BZ2dGaWx0ZXIaCy5hcGkuTnVtYmVyIgASNQoUQWdncmVnYXRlQ29ubmVj", + "dGlvbnMSDi5hcGkuQWdnRmlsdGVyGgsuYXBpLk51bWJlciIAEjsKCUJyb2Fk", + "Y2FzdBIULmFwaS5PdXRib3VuZE1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYu", + "RW1wdHkiABItCgZTdHJlYW0SES5hcGkuU3RyZWFtRmlsdGVyGgwuYXBpLk1l", + "c3NhZ2UiADABEjoKE1B1c2hEb2NDb25zdHJ1Y3RvcnMSEy5hcGkuRG9jQ29u", + "c3RydWN0b3IaCC5hcGkuRG9jIgAoATABEk8KGlB1c2hDb25uZWN0aW9uQ29u", + "c3RydWN0b3JzEhouYXBpLkNvbm5lY3Rpb25Db25zdHJ1Y3RvchoPLmFwaS5D", + "b25uZWN0aW9uIgAoATABEjAKCFNlZWREb2NzEgguYXBpLkRvYxoWLmdvb2ds", + "ZS5wcm90b2J1Zi5FbXB0eSIAKAESPgoPU2VlZENvbm5lY3Rpb25zEg8uYXBp", + "LkNvbm5lY3Rpb24aFi5nb29nbGUucHJvdG9idWYuRW1wdHkiACgBQgdaBWFw", + "aXBiYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.StructReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.AnyReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.EmptyReflection.Descriptor, global::Validator.ValidatorReflection.Descriptor, }, - new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Api.Algorithm), typeof(global::Api.Aggregate), typeof(global::Api.AuthType), }, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Api.Algorithm), typeof(global::Api.Aggregate), }, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Api.Ref), global::Api.Ref.Parser, new[]{ "Gtype", "Gid" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Api.RefConstructor), global::Api.RefConstructor.Parser, new[]{ "Gtype", "Gid" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Api.Refs), global::Api.Refs.Parser, new[]{ "Refs_" }, null, null, null), @@ -211,8 +210,8 @@ static GraphikReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::Api.TraverseFilter), global::Api.TraverseFilter.Parser, new[]{ "Root", "DocExpression", "ConnectionExpression", "Limit", "Sort", "Reverse", "Algorithm", "MaxDepth", "MaxHops" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Api.TraverseMeFilter), global::Api.TraverseMeFilter.Parser, new[]{ "DocExpression", "ConnectionExpression", "Limit", "Sort", "Reverse", "Algorithm", "MaxDepth", "MaxHops" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Api.IndexConstructor), global::Api.IndexConstructor.Parser, new[]{ "Name", "Gtype", "Expression", "Docs", "Connections" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Api.AuthTarget), global::Api.AuthTarget.Parser, new[]{ "Type", "Method", "User", "Data" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Api.Authorizer), global::Api.Authorizer.Parser, new[]{ "Name", "Expression", "Type" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Api.AuthTarget), global::Api.AuthTarget.Parser, new[]{ "Method", "User", "Target" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Api.Authorizer), global::Api.Authorizer.Parser, new[]{ "Name", "Expression", "TargetRequests", "TargetResponses" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Api.Authorizers), global::Api.Authorizers.Parser, new[]{ "Authorizers_" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Api.TypeValidator), global::Api.TypeValidator.Parser, new[]{ "Name", "Gtype", "Expression", "Docs", "Connections" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Api.TypeValidators), global::Api.TypeValidators.Parser, new[]{ "Validators" }, null, null, null), @@ -257,12 +256,6 @@ public enum Aggregate { [pbr::OriginalName("PROD")] Prod = 5, } - public enum AuthType { - [pbr::OriginalName("REQUEST")] Request = 0, - [pbr::OriginalName("VIEW_DOC")] ViewDoc = 1, - [pbr::OriginalName("VIEW_CONNECTION")] ViewConnection = 2, - } - #endregion #region Messages @@ -4852,10 +4845,9 @@ public AuthTarget() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public AuthTarget(AuthTarget other) : this() { - type_ = other.type_; method_ = other.method_; user_ = other.user_ != null ? other.user_.Clone() : null; - data_ = other.data_ != null ? other.data_.Clone() : null; + target_ = other.target_ != null ? other.target_.Clone() : null; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -4864,19 +4856,8 @@ public AuthTarget Clone() { return new AuthTarget(this); } - /// Field number for the "type" field. - public const int TypeFieldNumber = 1; - private global::Api.AuthType type_ = 0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public global::Api.AuthType Type { - get { return type_; } - set { - type_ = value; - } - } - /// Field number for the "method" field. - public const int MethodFieldNumber = 2; + public const int MethodFieldNumber = 3; private string method_ = ""; /// /// method is the rpc method @@ -4890,7 +4871,7 @@ public string Method { } /// Field number for the "user" field. - public const int UserFieldNumber = 3; + public const int UserFieldNumber = 4; private global::Api.Doc user_; /// /// user is the user making the request @@ -4903,17 +4884,14 @@ public string Method { } } - /// Field number for the "data" field. - public const int DataFieldNumber = 4; - private global::Google.Protobuf.WellKnownTypes.Struct data_; - /// - /// request is the intercepted request - /// + /// Field number for the "target" field. + public const int TargetFieldNumber = 5; + private global::Google.Protobuf.WellKnownTypes.Struct target_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public global::Google.Protobuf.WellKnownTypes.Struct Data { - get { return data_; } + public global::Google.Protobuf.WellKnownTypes.Struct Target { + get { return target_; } set { - data_ = value; + target_ = value; } } @@ -4930,20 +4908,18 @@ public bool Equals(AuthTarget other) { if (ReferenceEquals(other, this)) { return true; } - if (Type != other.Type) return false; if (Method != other.Method) return false; if (!object.Equals(User, other.User)) return false; - if (!object.Equals(Data, other.Data)) return false; + if (!object.Equals(Target, other.Target)) return false; return Equals(_unknownFields, other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override int GetHashCode() { int hash = 1; - if (Type != 0) hash ^= Type.GetHashCode(); if (Method.Length != 0) hash ^= Method.GetHashCode(); if (user_ != null) hash ^= User.GetHashCode(); - if (data_ != null) hash ^= Data.GetHashCode(); + if (target_ != null) hash ^= Target.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -4957,21 +4933,17 @@ public override string ToString() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public void WriteTo(pb::CodedOutputStream output) { - if (Type != 0) { - output.WriteRawTag(8); - output.WriteEnum((int) Type); - } if (Method.Length != 0) { - output.WriteRawTag(18); + output.WriteRawTag(26); output.WriteString(Method); } if (user_ != null) { - output.WriteRawTag(26); + output.WriteRawTag(34); output.WriteMessage(User); } - if (data_ != null) { - output.WriteRawTag(34); - output.WriteMessage(Data); + if (target_ != null) { + output.WriteRawTag(42); + output.WriteMessage(Target); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -4981,17 +4953,14 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public int CalculateSize() { int size = 0; - if (Type != 0) { - size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Type); - } if (Method.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Method); } if (user_ != null) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(User); } - if (data_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Data); + if (target_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Target); } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -5004,9 +4973,6 @@ public void MergeFrom(AuthTarget other) { if (other == null) { return; } - if (other.Type != 0) { - Type = other.Type; - } if (other.Method.Length != 0) { Method = other.Method; } @@ -5016,11 +4982,11 @@ public void MergeFrom(AuthTarget other) { } User.MergeFrom(other.User); } - if (other.data_ != null) { - if (data_ == null) { - data_ = new global::Google.Protobuf.WellKnownTypes.Struct(); + if (other.target_ != null) { + if (target_ == null) { + target_ = new global::Google.Protobuf.WellKnownTypes.Struct(); } - Data.MergeFrom(other.Data); + Target.MergeFrom(other.Target); } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -5033,26 +4999,22 @@ public void MergeFrom(pb::CodedInputStream input) { default: _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; - case 8: { - type_ = (global::Api.AuthType) input.ReadEnum(); - break; - } - case 18: { + case 26: { Method = input.ReadString(); break; } - case 26: { + case 34: { if (user_ == null) { user_ = new global::Api.Doc(); } input.ReadMessage(user_); break; } - case 34: { - if (data_ == null) { - data_ = new global::Google.Protobuf.WellKnownTypes.Struct(); + case 42: { + if (target_ == null) { + target_ = new global::Google.Protobuf.WellKnownTypes.Struct(); } - input.ReadMessage(data_); + input.ReadMessage(target_); break; } } @@ -5088,7 +5050,8 @@ public Authorizer() { public Authorizer(Authorizer other) : this() { name_ = other.name_; expression_ = other.expression_; - type_ = other.type_; + targetRequests_ = other.targetRequests_; + targetResponses_ = other.targetResponses_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -5119,14 +5082,25 @@ public string Expression { } } - /// Field number for the "type" field. - public const int TypeFieldNumber = 3; - private global::Api.AuthType type_ = 0; + /// Field number for the "target_requests" field. + public const int TargetRequestsFieldNumber = 3; + private bool targetRequests_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool TargetRequests { + get { return targetRequests_; } + set { + targetRequests_ = value; + } + } + + /// Field number for the "target_responses" field. + public const int TargetResponsesFieldNumber = 4; + private bool targetResponses_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public global::Api.AuthType Type { - get { return type_; } + public bool TargetResponses { + get { return targetResponses_; } set { - type_ = value; + targetResponses_ = value; } } @@ -5145,7 +5119,8 @@ public bool Equals(Authorizer other) { } if (Name != other.Name) return false; if (Expression != other.Expression) return false; - if (Type != other.Type) return false; + if (TargetRequests != other.TargetRequests) return false; + if (TargetResponses != other.TargetResponses) return false; return Equals(_unknownFields, other._unknownFields); } @@ -5154,7 +5129,8 @@ public override int GetHashCode() { int hash = 1; if (Name.Length != 0) hash ^= Name.GetHashCode(); if (Expression.Length != 0) hash ^= Expression.GetHashCode(); - if (Type != 0) hash ^= Type.GetHashCode(); + if (TargetRequests != false) hash ^= TargetRequests.GetHashCode(); + if (TargetResponses != false) hash ^= TargetResponses.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -5176,9 +5152,13 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteString(Expression); } - if (Type != 0) { + if (TargetRequests != false) { output.WriteRawTag(24); - output.WriteEnum((int) Type); + output.WriteBool(TargetRequests); + } + if (TargetResponses != false) { + output.WriteRawTag(32); + output.WriteBool(TargetResponses); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -5194,8 +5174,11 @@ public int CalculateSize() { if (Expression.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Expression); } - if (Type != 0) { - size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Type); + if (TargetRequests != false) { + size += 1 + 1; + } + if (TargetResponses != false) { + size += 1 + 1; } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -5214,8 +5197,11 @@ public void MergeFrom(Authorizer other) { if (other.Expression.Length != 0) { Expression = other.Expression; } - if (other.Type != 0) { - Type = other.Type; + if (other.TargetRequests != false) { + TargetRequests = other.TargetRequests; + } + if (other.TargetResponses != false) { + TargetResponses = other.TargetResponses; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -5237,7 +5223,11 @@ public void MergeFrom(pb::CodedInputStream input) { break; } case 24: { - type_ = (global::Api.AuthType) input.ReadEnum(); + TargetRequests = input.ReadBool(); + break; + } + case 32: { + TargetResponses = input.ReadBool(); break; } } diff --git a/gen/grpc/go/graphik.go b/gen/grpc/go/graphik.go index 7cd5168..cab7db6 100644 --- a/gen/grpc/go/graphik.go +++ b/gen/grpc/go/graphik.go @@ -67,6 +67,17 @@ func (n *Message) AsMap() map[string]interface{} { } } +func (n *AuthTarget) AsMap() map[string]interface{} { + if n == nil { + return map[string]interface{}{} + } + return map[string]interface{}{ + "target": n.GetTarget().AsMap(), + "user": n.GetUser().AsMap(), + "method": n.GetMethod(), + } +} + func (p *Refs) AsMap() map[string]interface{} { if p == nil { return map[string]interface{}{} diff --git a/gen/grpc/go/graphik.pb.go b/gen/grpc/go/graphik.pb.go index fd9eb5e..10d9ac4 100644 --- a/gen/grpc/go/graphik.pb.go +++ b/gen/grpc/go/graphik.pb.go @@ -135,55 +135,6 @@ func (Aggregate) EnumDescriptor() ([]byte, []int) { return file_graphik_proto_rawDescGZIP(), []int{1} } -type AuthType int32 - -const ( - AuthType_REQUEST AuthType = 0 - AuthType_VIEW_DOC AuthType = 1 - AuthType_VIEW_CONNECTION AuthType = 2 -) - -// Enum value maps for AuthType. -var ( - AuthType_name = map[int32]string{ - 0: "REQUEST", - 1: "VIEW_DOC", - 2: "VIEW_CONNECTION", - } - AuthType_value = map[string]int32{ - "REQUEST": 0, - "VIEW_DOC": 1, - "VIEW_CONNECTION": 2, - } -) - -func (x AuthType) Enum() *AuthType { - p := new(AuthType) - *p = x - return p -} - -func (x AuthType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (AuthType) Descriptor() protoreflect.EnumDescriptor { - return file_graphik_proto_enumTypes[2].Descriptor() -} - -func (AuthType) Type() protoreflect.EnumType { - return &file_graphik_proto_enumTypes[2] -} - -func (x AuthType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use AuthType.Descriptor instead. -func (AuthType) EnumDescriptor() ([]byte, []int) { - return file_graphik_proto_rawDescGZIP(), []int{2} -} - // Ref describes a doc/connection type & id type Ref struct { state protoimpl.MessageState @@ -1694,13 +1645,11 @@ type AuthTarget struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type AuthType `protobuf:"varint,1,opt,name=type,proto3,enum=api.AuthType" json:"type,omitempty"` // method is the rpc method - Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"` + Method string `protobuf:"bytes,3,opt,name=method,proto3" json:"method,omitempty"` // user is the user making the request - User *Doc `protobuf:"bytes,3,opt,name=user,proto3" json:"user,omitempty"` - // request is the intercepted request - Data *_struct.Struct `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` + User *Doc `protobuf:"bytes,4,opt,name=user,proto3" json:"user,omitempty"` + Target *_struct.Struct `protobuf:"bytes,5,opt,name=target,proto3" json:"target,omitempty"` } func (x *AuthTarget) Reset() { @@ -1735,13 +1684,6 @@ func (*AuthTarget) Descriptor() ([]byte, []int) { return file_graphik_proto_rawDescGZIP(), []int{21} } -func (x *AuthTarget) GetType() AuthType { - if x != nil { - return x.Type - } - return AuthType_REQUEST -} - func (x *AuthTarget) GetMethod() string { if x != nil { return x.Method @@ -1756,9 +1698,9 @@ func (x *AuthTarget) GetUser() *Doc { return nil } -func (x *AuthTarget) GetData() *_struct.Struct { +func (x *AuthTarget) GetTarget() *_struct.Struct { if x != nil { - return x.Data + return x.Target } return nil } @@ -1768,9 +1710,10 @@ type Authorizer struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Expression string `protobuf:"bytes,2,opt,name=expression,proto3" json:"expression,omitempty"` - Type AuthType `protobuf:"varint,3,opt,name=type,proto3,enum=api.AuthType" json:"type,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Expression string `protobuf:"bytes,2,opt,name=expression,proto3" json:"expression,omitempty"` + TargetRequests bool `protobuf:"varint,3,opt,name=target_requests,json=targetRequests,proto3" json:"target_requests,omitempty"` + TargetResponses bool `protobuf:"varint,4,opt,name=target_responses,json=targetResponses,proto3" json:"target_responses,omitempty"` } func (x *Authorizer) Reset() { @@ -1819,11 +1762,18 @@ func (x *Authorizer) GetExpression() string { return "" } -func (x *Authorizer) GetType() AuthType { +func (x *Authorizer) GetTargetRequests() bool { + if x != nil { + return x.TargetRequests + } + return false +} + +func (x *Authorizer) GetTargetResponses() bool { if x != nil { - return x.Type + return x.TargetResponses } - return AuthType_REQUEST + return false } type Authorizers struct { @@ -3241,322 +3191,319 @@ var file_graphik_proto_rawDesc = []byte{ 0x63, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x63, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x22, 0xac, 0x01, 0x0a, 0x0a, 0x41, 0x75, 0x74, 0x68, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, - 0x21, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, - 0x32, 0x35, 0x7d, 0x24, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x24, 0x0a, 0x04, - 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x44, 0x6f, 0x63, 0x42, 0x06, 0xe2, 0xdf, 0x1f, 0x02, 0x20, 0x01, 0x52, 0x04, 0x75, 0x73, - 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 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, - 0x87, 0x01, 0x0a, 0x0a, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x12, 0x24, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, - 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, - 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x40, 0x0a, 0x0b, 0x41, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x52, 0x0b, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x22, 0xc5, 0x01, 0x0a, 0x0d, - 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x24, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, - 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x67, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, - 0x32, 0x35, 0x7d, 0x24, 0x52, 0x05, 0x67, 0x74, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x0a, 0x65, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x22, 0x8d, 0x01, 0x0a, 0x0a, 0x41, 0x75, 0x74, 0x68, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, + 0x28, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, - 0x24, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, - 0x04, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x63, - 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0x44, 0x0a, 0x0e, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xbd, 0x01, 0x0a, 0x05, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x24, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x24, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x75, 0x73, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, + 0x63, 0x42, 0x06, 0xe2, 0xdf, 0x1f, 0x02, 0x20, 0x01, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, + 0x2f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 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, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x22, 0xb8, 0x01, 0x0a, 0x0a, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x12, + 0x24, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, + 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, + 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, 0x0a, 0x65, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x12, 0x29, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0x40, 0x0a, 0x0b, 0x41, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x0b, 0x61, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, + 0x52, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x22, 0xc5, 0x01, + 0x0a, 0x0d, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x24, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, + 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x67, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, + 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, 0x05, 0x67, 0x74, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, + 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, - 0x35, 0x7d, 0x24, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x67, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, - 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, 0x05, 0x67, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x30, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, - 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x04, 0x64, 0x6f, 0x63, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2f, 0x0a, 0x07, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0x5a, 0x0a, 0x0c, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, - 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, 0x07, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x5a, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x70, 0x68, 0x12, - 0x1d, 0x0a, 0x04, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, 0x73, 0x52, 0x04, 0x64, 0x6f, 0x63, 0x73, 0x12, 0x32, - 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x22, 0x89, 0x04, 0x0a, 0x05, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x2a, 0x0a, 0x11, - 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x44, - 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x12, - 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x75, 0x73, 0x65, - 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, - 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x6c, 0x61, 0x79, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x70, 0x6c, 0x61, - 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x70, 0x6c, 0x61, - 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x12, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x1f, - 0x0a, 0x07, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x1e, 0x0a, 0x06, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0xac, 0x01, 0x0a, 0x0c, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x12, 0x26, 0x0a, 0x05, 0x67, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, - 0x24, 0x52, 0x05, 0x67, 0x74, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, - 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, 0x0a, - 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, - 0x65, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x65, 0x6b, 0x12, 0x18, - 0x0a, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x63, - 0x0a, 0x04, 0x45, 0x64, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x66, 0x42, 0x06, 0xe2, - 0xdf, 0x1f, 0x02, 0x20, 0x01, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 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, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x22, 0x6a, 0x0a, 0x0a, 0x45, 0x64, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x12, 0x23, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 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, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, - 0x20, 0x0a, 0x04, 0x50, 0x6f, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x22, 0x72, 0x0a, 0x0f, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, - 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 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, 0x42, 0x06, 0xe2, 0xdf, 0x1f, 0x02, 0x20, 0x01, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xfc, 0x01, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, - 0x32, 0x35, 0x7d, 0x24, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x33, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 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, 0x42, 0x06, 0xe2, 0xdf, 0x1f, 0x02, 0x20, 0x01, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x24, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x66, 0x42, 0x06, 0xe2, 0xdf, 0x1f, 0x02, - 0x20, 0x01, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x06, 0xe2, 0xdf, 0x1f, 0x02, 0x20, 0x01, 0x52, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x28, 0x0a, 0x06, 0x6d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, - 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, 0x06, 0x6d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x22, 0xe1, 0x01, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, - 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x6f, - 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x64, - 0x6f, 0x63, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x52, 0x0b, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x73, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x12, 0x26, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x52, - 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0x2c, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x72, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2a, 0x1d, 0x0a, 0x09, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x46, 0x53, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, - 0x44, 0x46, 0x53, 0x10, 0x01, 0x2a, 0x44, 0x0a, 0x09, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x00, 0x12, 0x07, 0x0a, - 0x03, 0x53, 0x55, 0x4d, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x56, 0x47, 0x10, 0x02, 0x12, - 0x07, 0x0a, 0x03, 0x4d, 0x41, 0x58, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x49, 0x4e, 0x10, - 0x04, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x52, 0x4f, 0x44, 0x10, 0x05, 0x2a, 0x3a, 0x0a, 0x08, 0x41, - 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x51, 0x55, 0x45, - 0x53, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x44, 0x4f, 0x43, - 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x32, 0xda, 0x10, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x50, - 0x69, 0x6e, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x09, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x50, 0x6f, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0b, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0e, - 0x53, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x12, 0x10, + 0x35, 0x7d, 0x24, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, + 0x6f, 0x63, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x44, 0x0a, 0x0e, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, + 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xbd, 0x01, 0x0a, 0x05, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, + 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x67, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, + 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, 0x05, 0x67, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, + 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x63, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2f, 0x0a, 0x07, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0x5a, 0x0a, 0x0c, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x07, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, + 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, + 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x5a, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x12, 0x1d, 0x0a, 0x04, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x09, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, 0x73, 0x52, 0x04, 0x64, 0x6f, 0x63, 0x73, + 0x12, 0x32, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, 0x04, 0x0a, 0x05, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x2a, + 0x0a, 0x11, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x6e, 0x49, + 0x64, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x6f, 0x6f, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, + 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, + 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x6c, 0x61, + 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x70, + 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x70, + 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x12, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x65, + 0x22, 0x1f, 0x0a, 0x07, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x1e, 0x0a, 0x06, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0xac, 0x01, 0x0a, 0x0c, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x26, 0x0a, 0x05, 0x67, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, + 0x35, 0x7d, 0x24, 0x52, 0x05, 0x67, 0x74, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x0a, 0x65, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, + 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, + 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x65, 0x65, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x65, 0x6b, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x22, 0x63, 0x0a, 0x04, 0x45, 0x64, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x66, 0x42, + 0x06, 0xe2, 0xdf, 0x1f, 0x02, 0x20, 0x01, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x37, 0x0a, 0x0a, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 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, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x6a, 0x0a, 0x0a, 0x45, 0x64, 0x69, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 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, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x22, 0x20, 0x0a, 0x04, 0x50, 0x6f, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x22, 0x72, 0x0a, 0x0f, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, + 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 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, 0x42, 0x06, 0xe2, 0xdf, 0x1f, 0x02, 0x20, + 0x01, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xfc, 0x01, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, + 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, + 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 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, 0x42, 0x06, 0xe2, 0xdf, 0x1f, 0x02, 0x20, 0x01, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x66, 0x42, 0x06, 0xe2, 0xdf, + 0x1f, 0x02, 0x20, 0x01, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x06, 0xe2, 0xdf, 0x1f, 0x02, 0x20, + 0x01, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x28, 0x0a, 0x06, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, + 0x1f, 0x0c, 0x0a, 0x0a, 0x5e, 0x2e, 0x7b, 0x31, 0x2c, 0x32, 0x32, 0x35, 0x7d, 0x24, 0x52, 0x06, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0xe1, 0x01, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, + 0x64, 0x6f, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x08, 0x64, 0x6f, 0x63, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x0b, 0x61, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x73, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x0a, 0x53, 0x65, - 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x52, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x12, 0x33, 0x0a, + 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x73, 0x12, 0x26, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, + 0x73, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0x2c, 0x0a, 0x0a, 0x45, 0x78, + 0x70, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2a, 0x1d, 0x0a, 0x09, 0x41, 0x6c, 0x67, 0x6f, + 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x46, 0x53, 0x10, 0x00, 0x12, 0x07, + 0x0a, 0x03, 0x44, 0x46, 0x53, 0x10, 0x01, 0x2a, 0x44, 0x0a, 0x09, 0x41, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x00, 0x12, + 0x07, 0x0a, 0x03, 0x53, 0x55, 0x4d, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x56, 0x47, 0x10, + 0x02, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x41, 0x58, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x49, + 0x4e, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x52, 0x4f, 0x44, 0x10, 0x05, 0x32, 0xda, 0x10, + 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x09, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x6f, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x32, + 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x7a, 0x65, 0x72, 0x73, 0x12, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, - 0x12, 0x42, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x79, 0x70, 0x65, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x00, 0x12, 0x28, 0x0a, 0x02, 0x4d, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, 0x22, 0x00, 0x12, 0x2c, - 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x12, 0x13, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, - 0x1a, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x0a, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x1a, 0x09, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, 0x73, 0x22, 0x00, 0x12, 0x1e, 0x0a, - 0x06, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x12, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, - 0x66, 0x1a, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, 0x22, 0x00, 0x12, 0x26, 0x0a, - 0x0a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x0b, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x09, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, - 0x6f, 0x63, 0x73, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, - 0x65, 0x12, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x65, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x72, 0x61, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x6c, 0x73, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0a, 0x54, 0x72, 0x61, - 0x76, 0x65, 0x72, 0x73, 0x65, 0x4d, 0x65, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x72, - 0x61, 0x76, 0x65, 0x72, 0x73, 0x65, 0x4d, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x0f, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6c, 0x73, 0x22, - 0x00, 0x12, 0x20, 0x0a, 0x07, 0x45, 0x64, 0x69, 0x74, 0x44, 0x6f, 0x63, 0x12, 0x09, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x1a, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, - 0x63, 0x22, 0x00, 0x12, 0x28, 0x0a, 0x08, 0x45, 0x64, 0x69, 0x74, 0x44, 0x6f, 0x63, 0x73, 0x12, - 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x1a, 0x09, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, 0x73, 0x22, 0x00, 0x12, 0x2c, 0x0a, - 0x06, 0x44, 0x65, 0x6c, 0x44, 0x6f, 0x63, 0x12, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, - 0x66, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x30, 0x0a, 0x07, 0x44, - 0x65, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x2e, 0x0a, - 0x09, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x44, 0x6f, 0x63, 0x12, 0x11, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x0c, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x22, 0x00, 0x12, 0x35, 0x0a, - 0x10, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x65, - 0x61, 0x6e, 0x22, 0x00, 0x12, 0x22, 0x0a, 0x06, 0x48, 0x61, 0x73, 0x44, 0x6f, 0x63, 0x12, 0x08, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x66, 0x1a, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, - 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x22, 0x00, 0x12, 0x29, 0x0a, 0x0d, 0x48, 0x61, 0x73, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x52, 0x65, 0x66, 0x1a, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, - 0x6e, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x6f, 0x72, 0x1a, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x1a, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x10, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x10, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x00, 0x12, 0x44, - 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x4d, 0x65, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x34, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x0c, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x1a, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x13, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x28, 0x0a, 0x02, 0x4d, 0x65, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, + 0x6f, 0x63, 0x22, 0x00, 0x12, 0x2c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, + 0x63, 0x12, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, + 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x73, + 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x1a, 0x09, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, + 0x73, 0x22, 0x00, 0x12, 0x1e, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x12, 0x08, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x66, 0x1a, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, + 0x63, 0x22, 0x00, 0x12, 0x26, 0x0a, 0x0a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x44, 0x6f, 0x63, + 0x73, 0x12, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x09, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, 0x73, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x08, 0x54, + 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x65, 0x12, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x72, + 0x61, 0x76, 0x65, 0x72, 0x73, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x0f, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6c, 0x73, 0x22, 0x00, 0x12, + 0x36, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x65, 0x4d, 0x65, 0x12, 0x15, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x65, 0x4d, 0x65, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x72, 0x61, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x6c, 0x73, 0x22, 0x00, 0x12, 0x20, 0x0a, 0x07, 0x45, 0x64, 0x69, 0x74, 0x44, + 0x6f, 0x63, 0x12, 0x09, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x1a, 0x08, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, 0x22, 0x00, 0x12, 0x28, 0x0a, 0x08, 0x45, 0x64, 0x69, + 0x74, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x64, 0x69, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x09, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, + 0x73, 0x22, 0x00, 0x12, 0x2c, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x44, 0x6f, 0x63, 0x12, 0x08, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x66, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x00, 0x12, 0x30, 0x0a, 0x07, 0x44, 0x65, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x0b, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x09, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x44, 0x6f, 0x63, + 0x12, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x1a, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, + 0x6e, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x10, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x78, + 0x69, 0x73, 0x74, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x0c, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x22, 0x00, 0x12, 0x22, 0x0a, 0x06, 0x48, 0x61, + 0x73, 0x44, 0x6f, 0x63, 0x12, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x66, 0x1a, 0x0c, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x22, 0x00, 0x12, 0x29, + 0x0a, 0x0d, 0x48, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x66, 0x1a, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x10, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x11, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x1a, 0x10, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0x00, 0x12, 0x40, 0x0a, 0x10, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6e, 0x64, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x22, 0x00, 0x12, 0x2c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x66, 0x1a, - 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x00, 0x12, 0x34, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, + 0x6e, 0x73, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6e, + 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4d, 0x65, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x00, 0x12, 0x2c, 0x0a, 0x0d, 0x47, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x52, 0x65, 0x66, 0x1a, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0b, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x10, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x00, 0x12, 0x2e, + 0x0a, 0x0e, 0x45, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x09, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x1a, 0x0f, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x36, + 0x0a, 0x0f, 0x45, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x1a, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, + 0x66, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0e, 0x44, + 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0b, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x10, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x00, 0x12, + 0x37, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, + 0x12, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0e, 0x45, 0x64, 0x69, 0x74, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x09, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x45, 0x64, 0x69, 0x74, 0x1a, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0f, 0x45, 0x64, 0x69, 0x74, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0f, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x10, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x00, - 0x12, 0x33, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x66, 0x1a, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x39, - 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, - 0x6d, 0x12, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x12, 0x12, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x10, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x44, - 0x6f, 0x63, 0x73, 0x12, 0x0e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x67, 0x67, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x1a, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x22, 0x00, 0x12, 0x35, 0x0a, 0x14, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0e, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x41, 0x67, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x0b, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x09, 0x42, 0x72, 0x6f, - 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x75, 0x74, - 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x2d, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x12, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x1a, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3a, 0x0a, 0x13, 0x50, 0x75, 0x73, 0x68, 0x44, 0x6f, 0x63, - 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x13, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, - 0x72, 0x1a, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, 0x22, 0x00, 0x28, 0x01, 0x30, - 0x01, 0x12, 0x4f, 0x0a, 0x1a, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, - 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x0f, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x28, 0x01, - 0x30, 0x01, 0x12, 0x30, 0x0a, 0x08, 0x53, 0x65, 0x65, 0x64, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x08, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x00, 0x28, 0x01, 0x12, 0x3e, 0x0a, 0x0f, 0x53, 0x65, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x00, 0x28, 0x01, 0x42, 0x07, 0x5a, 0x05, 0x61, 0x70, 0x69, 0x70, 0x62, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0d, 0x41, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x0e, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x41, 0x67, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x14, 0x41, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x0e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x67, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x1a, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x00, 0x12, + 0x3b, 0x0a, 0x09, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x12, 0x14, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x2d, 0x0a, 0x06, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3a, 0x0a, 0x13, 0x50, + 0x75, 0x73, 0x68, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, + 0x72, 0x73, 0x12, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, + 0x63, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x4f, 0x0a, 0x1a, 0x50, 0x75, 0x73, 0x68, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, + 0x72, 0x1a, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x30, 0x0a, 0x08, 0x53, 0x65, 0x65, 0x64, + 0x44, 0x6f, 0x63, 0x73, 0x12, 0x08, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x63, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x28, 0x01, 0x12, 0x3e, 0x0a, 0x0f, 0x53, 0x65, + 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0f, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x28, 0x01, 0x42, 0x07, 0x5a, 0x05, 0x61, 0x70, + 0x69, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3571,194 +3518,191 @@ func file_graphik_proto_rawDescGZIP() []byte { return file_graphik_proto_rawDescData } -var file_graphik_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_graphik_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_graphik_proto_msgTypes = make([]protoimpl.MessageInfo, 41) var file_graphik_proto_goTypes = []interface{}{ (Algorithm)(0), // 0: api.Algorithm (Aggregate)(0), // 1: api.Aggregate - (AuthType)(0), // 2: api.AuthType - (*Ref)(nil), // 3: api.Ref - (*RefConstructor)(nil), // 4: api.RefConstructor - (*Refs)(nil), // 5: api.Refs - (*Doc)(nil), // 6: api.Doc - (*DocConstructor)(nil), // 7: api.DocConstructor - (*DocConstructors)(nil), // 8: api.DocConstructors - (*Traversal)(nil), // 9: api.Traversal - (*Traversals)(nil), // 10: api.Traversals - (*Docs)(nil), // 11: api.Docs - (*Connection)(nil), // 12: api.Connection - (*ConnectionConstructor)(nil), // 13: api.ConnectionConstructor - (*SearchConnectFilter)(nil), // 14: api.SearchConnectFilter - (*SearchConnectMeFilter)(nil), // 15: api.SearchConnectMeFilter - (*ConnectionConstructors)(nil), // 16: api.ConnectionConstructors - (*Connections)(nil), // 17: api.Connections - (*ConnectFilter)(nil), // 18: api.ConnectFilter - (*Filter)(nil), // 19: api.Filter - (*AggFilter)(nil), // 20: api.AggFilter - (*TraverseFilter)(nil), // 21: api.TraverseFilter - (*TraverseMeFilter)(nil), // 22: api.TraverseMeFilter - (*IndexConstructor)(nil), // 23: api.IndexConstructor - (*AuthTarget)(nil), // 24: api.AuthTarget - (*Authorizer)(nil), // 25: api.Authorizer - (*Authorizers)(nil), // 26: api.Authorizers - (*TypeValidator)(nil), // 27: api.TypeValidator - (*TypeValidators)(nil), // 28: api.TypeValidators - (*Index)(nil), // 29: api.Index - (*Indexes)(nil), // 30: api.Indexes - (*StreamFilter)(nil), // 31: api.StreamFilter - (*Graph)(nil), // 32: api.Graph - (*Flags)(nil), // 33: api.Flags - (*Boolean)(nil), // 34: api.Boolean - (*Number)(nil), // 35: api.Number - (*ExistsFilter)(nil), // 36: api.ExistsFilter - (*Edit)(nil), // 37: api.Edit - (*EditFilter)(nil), // 38: api.EditFilter - (*Pong)(nil), // 39: api.Pong - (*OutboundMessage)(nil), // 40: api.OutboundMessage - (*Message)(nil), // 41: api.Message - (*Schema)(nil), // 42: api.Schema - (*ExprFilter)(nil), // 43: api.ExprFilter - (*_struct.Struct)(nil), // 44: google.protobuf.Struct - (*timestamp.Timestamp)(nil), // 45: google.protobuf.Timestamp - (*empty.Empty)(nil), // 46: google.protobuf.Empty + (*Ref)(nil), // 2: api.Ref + (*RefConstructor)(nil), // 3: api.RefConstructor + (*Refs)(nil), // 4: api.Refs + (*Doc)(nil), // 5: api.Doc + (*DocConstructor)(nil), // 6: api.DocConstructor + (*DocConstructors)(nil), // 7: api.DocConstructors + (*Traversal)(nil), // 8: api.Traversal + (*Traversals)(nil), // 9: api.Traversals + (*Docs)(nil), // 10: api.Docs + (*Connection)(nil), // 11: api.Connection + (*ConnectionConstructor)(nil), // 12: api.ConnectionConstructor + (*SearchConnectFilter)(nil), // 13: api.SearchConnectFilter + (*SearchConnectMeFilter)(nil), // 14: api.SearchConnectMeFilter + (*ConnectionConstructors)(nil), // 15: api.ConnectionConstructors + (*Connections)(nil), // 16: api.Connections + (*ConnectFilter)(nil), // 17: api.ConnectFilter + (*Filter)(nil), // 18: api.Filter + (*AggFilter)(nil), // 19: api.AggFilter + (*TraverseFilter)(nil), // 20: api.TraverseFilter + (*TraverseMeFilter)(nil), // 21: api.TraverseMeFilter + (*IndexConstructor)(nil), // 22: api.IndexConstructor + (*AuthTarget)(nil), // 23: api.AuthTarget + (*Authorizer)(nil), // 24: api.Authorizer + (*Authorizers)(nil), // 25: api.Authorizers + (*TypeValidator)(nil), // 26: api.TypeValidator + (*TypeValidators)(nil), // 27: api.TypeValidators + (*Index)(nil), // 28: api.Index + (*Indexes)(nil), // 29: api.Indexes + (*StreamFilter)(nil), // 30: api.StreamFilter + (*Graph)(nil), // 31: api.Graph + (*Flags)(nil), // 32: api.Flags + (*Boolean)(nil), // 33: api.Boolean + (*Number)(nil), // 34: api.Number + (*ExistsFilter)(nil), // 35: api.ExistsFilter + (*Edit)(nil), // 36: api.Edit + (*EditFilter)(nil), // 37: api.EditFilter + (*Pong)(nil), // 38: api.Pong + (*OutboundMessage)(nil), // 39: api.OutboundMessage + (*Message)(nil), // 40: api.Message + (*Schema)(nil), // 41: api.Schema + (*ExprFilter)(nil), // 42: api.ExprFilter + (*_struct.Struct)(nil), // 43: google.protobuf.Struct + (*timestamp.Timestamp)(nil), // 44: google.protobuf.Timestamp + (*empty.Empty)(nil), // 45: google.protobuf.Empty } var file_graphik_proto_depIdxs = []int32{ - 3, // 0: api.Refs.refs:type_name -> api.Ref - 3, // 1: api.Doc.ref:type_name -> api.Ref - 44, // 2: api.Doc.attributes:type_name -> google.protobuf.Struct - 4, // 3: api.DocConstructor.ref:type_name -> api.RefConstructor - 44, // 4: api.DocConstructor.attributes:type_name -> google.protobuf.Struct - 7, // 5: api.DocConstructors.docs:type_name -> api.DocConstructor - 6, // 6: api.Traversal.doc:type_name -> api.Doc - 3, // 7: api.Traversal.traversal_path:type_name -> api.Ref - 9, // 8: api.Traversals.traversals:type_name -> api.Traversal - 6, // 9: api.Docs.docs:type_name -> api.Doc - 3, // 10: api.Connection.ref:type_name -> api.Ref - 44, // 11: api.Connection.attributes:type_name -> google.protobuf.Struct - 3, // 12: api.Connection.from:type_name -> api.Ref - 3, // 13: api.Connection.to:type_name -> api.Ref - 4, // 14: api.ConnectionConstructor.ref:type_name -> api.RefConstructor - 44, // 15: api.ConnectionConstructor.attributes:type_name -> google.protobuf.Struct - 3, // 16: api.ConnectionConstructor.from:type_name -> api.Ref - 3, // 17: api.ConnectionConstructor.to:type_name -> api.Ref - 19, // 18: api.SearchConnectFilter.filter:type_name -> api.Filter - 44, // 19: api.SearchConnectFilter.attributes:type_name -> google.protobuf.Struct - 3, // 20: api.SearchConnectFilter.from:type_name -> api.Ref - 19, // 21: api.SearchConnectMeFilter.filter:type_name -> api.Filter - 44, // 22: api.SearchConnectMeFilter.attributes:type_name -> google.protobuf.Struct - 13, // 23: api.ConnectionConstructors.connections:type_name -> api.ConnectionConstructor - 12, // 24: api.Connections.connections:type_name -> api.Connection - 3, // 25: api.ConnectFilter.doc_ref:type_name -> api.Ref - 19, // 26: api.AggFilter.filter:type_name -> api.Filter + 2, // 0: api.Refs.refs:type_name -> api.Ref + 2, // 1: api.Doc.ref:type_name -> api.Ref + 43, // 2: api.Doc.attributes:type_name -> google.protobuf.Struct + 3, // 3: api.DocConstructor.ref:type_name -> api.RefConstructor + 43, // 4: api.DocConstructor.attributes:type_name -> google.protobuf.Struct + 6, // 5: api.DocConstructors.docs:type_name -> api.DocConstructor + 5, // 6: api.Traversal.doc:type_name -> api.Doc + 2, // 7: api.Traversal.traversal_path:type_name -> api.Ref + 8, // 8: api.Traversals.traversals:type_name -> api.Traversal + 5, // 9: api.Docs.docs:type_name -> api.Doc + 2, // 10: api.Connection.ref:type_name -> api.Ref + 43, // 11: api.Connection.attributes:type_name -> google.protobuf.Struct + 2, // 12: api.Connection.from:type_name -> api.Ref + 2, // 13: api.Connection.to:type_name -> api.Ref + 3, // 14: api.ConnectionConstructor.ref:type_name -> api.RefConstructor + 43, // 15: api.ConnectionConstructor.attributes:type_name -> google.protobuf.Struct + 2, // 16: api.ConnectionConstructor.from:type_name -> api.Ref + 2, // 17: api.ConnectionConstructor.to:type_name -> api.Ref + 18, // 18: api.SearchConnectFilter.filter:type_name -> api.Filter + 43, // 19: api.SearchConnectFilter.attributes:type_name -> google.protobuf.Struct + 2, // 20: api.SearchConnectFilter.from:type_name -> api.Ref + 18, // 21: api.SearchConnectMeFilter.filter:type_name -> api.Filter + 43, // 22: api.SearchConnectMeFilter.attributes:type_name -> google.protobuf.Struct + 12, // 23: api.ConnectionConstructors.connections:type_name -> api.ConnectionConstructor + 11, // 24: api.Connections.connections:type_name -> api.Connection + 2, // 25: api.ConnectFilter.doc_ref:type_name -> api.Ref + 18, // 26: api.AggFilter.filter:type_name -> api.Filter 1, // 27: api.AggFilter.aggregate:type_name -> api.Aggregate - 3, // 28: api.TraverseFilter.root:type_name -> api.Ref + 2, // 28: api.TraverseFilter.root:type_name -> api.Ref 0, // 29: api.TraverseFilter.algorithm:type_name -> api.Algorithm 0, // 30: api.TraverseMeFilter.algorithm:type_name -> api.Algorithm - 2, // 31: api.AuthTarget.type:type_name -> api.AuthType - 6, // 32: api.AuthTarget.user:type_name -> api.Doc - 44, // 33: api.AuthTarget.data:type_name -> google.protobuf.Struct - 2, // 34: api.Authorizer.type:type_name -> api.AuthType - 25, // 35: api.Authorizers.authorizers:type_name -> api.Authorizer - 27, // 36: api.TypeValidators.validators:type_name -> api.TypeValidator - 29, // 37: api.Indexes.indexes:type_name -> api.Index - 11, // 38: api.Graph.docs:type_name -> api.Docs - 17, // 39: api.Graph.connections:type_name -> api.Connections - 3, // 40: api.Edit.ref:type_name -> api.Ref - 44, // 41: api.Edit.attributes:type_name -> google.protobuf.Struct - 19, // 42: api.EditFilter.filter:type_name -> api.Filter - 44, // 43: api.EditFilter.attributes:type_name -> google.protobuf.Struct - 44, // 44: api.OutboundMessage.data:type_name -> google.protobuf.Struct - 44, // 45: api.Message.data:type_name -> google.protobuf.Struct - 3, // 46: api.Message.user:type_name -> api.Ref - 45, // 47: api.Message.timestamp:type_name -> google.protobuf.Timestamp - 26, // 48: api.Schema.authorizers:type_name -> api.Authorizers - 28, // 49: api.Schema.validators:type_name -> api.TypeValidators - 30, // 50: api.Schema.indexes:type_name -> api.Indexes - 46, // 51: api.DatabaseService.Ping:input_type -> google.protobuf.Empty - 46, // 52: api.DatabaseService.GetSchema:input_type -> google.protobuf.Empty - 26, // 53: api.DatabaseService.SetAuthorizers:input_type -> api.Authorizers - 30, // 54: api.DatabaseService.SetIndexes:input_type -> api.Indexes - 28, // 55: api.DatabaseService.SetTypeValidators:input_type -> api.TypeValidators - 46, // 56: api.DatabaseService.Me:input_type -> google.protobuf.Empty - 7, // 57: api.DatabaseService.CreateDoc:input_type -> api.DocConstructor - 8, // 58: api.DatabaseService.CreateDocs:input_type -> api.DocConstructors - 3, // 59: api.DatabaseService.GetDoc:input_type -> api.Ref - 19, // 60: api.DatabaseService.SearchDocs:input_type -> api.Filter - 21, // 61: api.DatabaseService.Traverse:input_type -> api.TraverseFilter - 22, // 62: api.DatabaseService.TraverseMe:input_type -> api.TraverseMeFilter - 37, // 63: api.DatabaseService.EditDoc:input_type -> api.Edit - 38, // 64: api.DatabaseService.EditDocs:input_type -> api.EditFilter - 3, // 65: api.DatabaseService.DelDoc:input_type -> api.Ref - 19, // 66: api.DatabaseService.DelDocs:input_type -> api.Filter - 36, // 67: api.DatabaseService.ExistsDoc:input_type -> api.ExistsFilter - 36, // 68: api.DatabaseService.ExistsConnection:input_type -> api.ExistsFilter - 3, // 69: api.DatabaseService.HasDoc:input_type -> api.Ref - 3, // 70: api.DatabaseService.HasConnection:input_type -> api.Ref - 13, // 71: api.DatabaseService.CreateConnection:input_type -> api.ConnectionConstructor - 16, // 72: api.DatabaseService.CreateConnections:input_type -> api.ConnectionConstructors - 14, // 73: api.DatabaseService.SearchAndConnect:input_type -> api.SearchConnectFilter - 15, // 74: api.DatabaseService.SearchAndConnectMe:input_type -> api.SearchConnectMeFilter - 3, // 75: api.DatabaseService.GetConnection:input_type -> api.Ref - 19, // 76: api.DatabaseService.SearchConnections:input_type -> api.Filter - 37, // 77: api.DatabaseService.EditConnection:input_type -> api.Edit - 38, // 78: api.DatabaseService.EditConnections:input_type -> api.EditFilter - 3, // 79: api.DatabaseService.DelConnection:input_type -> api.Ref - 19, // 80: api.DatabaseService.DelConnections:input_type -> api.Filter - 18, // 81: api.DatabaseService.ConnectionsFrom:input_type -> api.ConnectFilter - 18, // 82: api.DatabaseService.ConnectionsTo:input_type -> api.ConnectFilter - 20, // 83: api.DatabaseService.AggregateDocs:input_type -> api.AggFilter - 20, // 84: api.DatabaseService.AggregateConnections:input_type -> api.AggFilter - 40, // 85: api.DatabaseService.Broadcast:input_type -> api.OutboundMessage - 31, // 86: api.DatabaseService.Stream:input_type -> api.StreamFilter - 7, // 87: api.DatabaseService.PushDocConstructors:input_type -> api.DocConstructor - 13, // 88: api.DatabaseService.PushConnectionConstructors:input_type -> api.ConnectionConstructor - 6, // 89: api.DatabaseService.SeedDocs:input_type -> api.Doc - 12, // 90: api.DatabaseService.SeedConnections:input_type -> api.Connection - 39, // 91: api.DatabaseService.Ping:output_type -> api.Pong - 42, // 92: api.DatabaseService.GetSchema:output_type -> api.Schema - 46, // 93: api.DatabaseService.SetAuthorizers:output_type -> google.protobuf.Empty - 46, // 94: api.DatabaseService.SetIndexes:output_type -> google.protobuf.Empty - 46, // 95: api.DatabaseService.SetTypeValidators:output_type -> google.protobuf.Empty - 6, // 96: api.DatabaseService.Me:output_type -> api.Doc - 6, // 97: api.DatabaseService.CreateDoc:output_type -> api.Doc - 11, // 98: api.DatabaseService.CreateDocs:output_type -> api.Docs - 6, // 99: api.DatabaseService.GetDoc:output_type -> api.Doc - 11, // 100: api.DatabaseService.SearchDocs:output_type -> api.Docs - 10, // 101: api.DatabaseService.Traverse:output_type -> api.Traversals - 10, // 102: api.DatabaseService.TraverseMe:output_type -> api.Traversals - 6, // 103: api.DatabaseService.EditDoc:output_type -> api.Doc - 11, // 104: api.DatabaseService.EditDocs:output_type -> api.Docs - 46, // 105: api.DatabaseService.DelDoc:output_type -> google.protobuf.Empty - 46, // 106: api.DatabaseService.DelDocs:output_type -> google.protobuf.Empty - 34, // 107: api.DatabaseService.ExistsDoc:output_type -> api.Boolean - 34, // 108: api.DatabaseService.ExistsConnection:output_type -> api.Boolean - 34, // 109: api.DatabaseService.HasDoc:output_type -> api.Boolean - 34, // 110: api.DatabaseService.HasConnection:output_type -> api.Boolean - 12, // 111: api.DatabaseService.CreateConnection:output_type -> api.Connection - 17, // 112: api.DatabaseService.CreateConnections:output_type -> api.Connections - 17, // 113: api.DatabaseService.SearchAndConnect:output_type -> api.Connections - 17, // 114: api.DatabaseService.SearchAndConnectMe:output_type -> api.Connections - 12, // 115: api.DatabaseService.GetConnection:output_type -> api.Connection - 17, // 116: api.DatabaseService.SearchConnections:output_type -> api.Connections - 12, // 117: api.DatabaseService.EditConnection:output_type -> api.Connection - 17, // 118: api.DatabaseService.EditConnections:output_type -> api.Connections - 46, // 119: api.DatabaseService.DelConnection:output_type -> google.protobuf.Empty - 46, // 120: api.DatabaseService.DelConnections:output_type -> google.protobuf.Empty - 17, // 121: api.DatabaseService.ConnectionsFrom:output_type -> api.Connections - 17, // 122: api.DatabaseService.ConnectionsTo:output_type -> api.Connections - 35, // 123: api.DatabaseService.AggregateDocs:output_type -> api.Number - 35, // 124: api.DatabaseService.AggregateConnections:output_type -> api.Number - 46, // 125: api.DatabaseService.Broadcast:output_type -> google.protobuf.Empty - 41, // 126: api.DatabaseService.Stream:output_type -> api.Message - 6, // 127: api.DatabaseService.PushDocConstructors:output_type -> api.Doc - 12, // 128: api.DatabaseService.PushConnectionConstructors:output_type -> api.Connection - 46, // 129: api.DatabaseService.SeedDocs:output_type -> google.protobuf.Empty - 46, // 130: api.DatabaseService.SeedConnections:output_type -> google.protobuf.Empty - 91, // [91:131] is the sub-list for method output_type - 51, // [51:91] is the sub-list for method input_type - 51, // [51:51] is the sub-list for extension type_name - 51, // [51:51] is the sub-list for extension extendee - 0, // [0:51] is the sub-list for field type_name + 5, // 31: api.AuthTarget.user:type_name -> api.Doc + 43, // 32: api.AuthTarget.target:type_name -> google.protobuf.Struct + 24, // 33: api.Authorizers.authorizers:type_name -> api.Authorizer + 26, // 34: api.TypeValidators.validators:type_name -> api.TypeValidator + 28, // 35: api.Indexes.indexes:type_name -> api.Index + 10, // 36: api.Graph.docs:type_name -> api.Docs + 16, // 37: api.Graph.connections:type_name -> api.Connections + 2, // 38: api.Edit.ref:type_name -> api.Ref + 43, // 39: api.Edit.attributes:type_name -> google.protobuf.Struct + 18, // 40: api.EditFilter.filter:type_name -> api.Filter + 43, // 41: api.EditFilter.attributes:type_name -> google.protobuf.Struct + 43, // 42: api.OutboundMessage.data:type_name -> google.protobuf.Struct + 43, // 43: api.Message.data:type_name -> google.protobuf.Struct + 2, // 44: api.Message.user:type_name -> api.Ref + 44, // 45: api.Message.timestamp:type_name -> google.protobuf.Timestamp + 25, // 46: api.Schema.authorizers:type_name -> api.Authorizers + 27, // 47: api.Schema.validators:type_name -> api.TypeValidators + 29, // 48: api.Schema.indexes:type_name -> api.Indexes + 45, // 49: api.DatabaseService.Ping:input_type -> google.protobuf.Empty + 45, // 50: api.DatabaseService.GetSchema:input_type -> google.protobuf.Empty + 25, // 51: api.DatabaseService.SetAuthorizers:input_type -> api.Authorizers + 29, // 52: api.DatabaseService.SetIndexes:input_type -> api.Indexes + 27, // 53: api.DatabaseService.SetTypeValidators:input_type -> api.TypeValidators + 45, // 54: api.DatabaseService.Me:input_type -> google.protobuf.Empty + 6, // 55: api.DatabaseService.CreateDoc:input_type -> api.DocConstructor + 7, // 56: api.DatabaseService.CreateDocs:input_type -> api.DocConstructors + 2, // 57: api.DatabaseService.GetDoc:input_type -> api.Ref + 18, // 58: api.DatabaseService.SearchDocs:input_type -> api.Filter + 20, // 59: api.DatabaseService.Traverse:input_type -> api.TraverseFilter + 21, // 60: api.DatabaseService.TraverseMe:input_type -> api.TraverseMeFilter + 36, // 61: api.DatabaseService.EditDoc:input_type -> api.Edit + 37, // 62: api.DatabaseService.EditDocs:input_type -> api.EditFilter + 2, // 63: api.DatabaseService.DelDoc:input_type -> api.Ref + 18, // 64: api.DatabaseService.DelDocs:input_type -> api.Filter + 35, // 65: api.DatabaseService.ExistsDoc:input_type -> api.ExistsFilter + 35, // 66: api.DatabaseService.ExistsConnection:input_type -> api.ExistsFilter + 2, // 67: api.DatabaseService.HasDoc:input_type -> api.Ref + 2, // 68: api.DatabaseService.HasConnection:input_type -> api.Ref + 12, // 69: api.DatabaseService.CreateConnection:input_type -> api.ConnectionConstructor + 15, // 70: api.DatabaseService.CreateConnections:input_type -> api.ConnectionConstructors + 13, // 71: api.DatabaseService.SearchAndConnect:input_type -> api.SearchConnectFilter + 14, // 72: api.DatabaseService.SearchAndConnectMe:input_type -> api.SearchConnectMeFilter + 2, // 73: api.DatabaseService.GetConnection:input_type -> api.Ref + 18, // 74: api.DatabaseService.SearchConnections:input_type -> api.Filter + 36, // 75: api.DatabaseService.EditConnection:input_type -> api.Edit + 37, // 76: api.DatabaseService.EditConnections:input_type -> api.EditFilter + 2, // 77: api.DatabaseService.DelConnection:input_type -> api.Ref + 18, // 78: api.DatabaseService.DelConnections:input_type -> api.Filter + 17, // 79: api.DatabaseService.ConnectionsFrom:input_type -> api.ConnectFilter + 17, // 80: api.DatabaseService.ConnectionsTo:input_type -> api.ConnectFilter + 19, // 81: api.DatabaseService.AggregateDocs:input_type -> api.AggFilter + 19, // 82: api.DatabaseService.AggregateConnections:input_type -> api.AggFilter + 39, // 83: api.DatabaseService.Broadcast:input_type -> api.OutboundMessage + 30, // 84: api.DatabaseService.Stream:input_type -> api.StreamFilter + 6, // 85: api.DatabaseService.PushDocConstructors:input_type -> api.DocConstructor + 12, // 86: api.DatabaseService.PushConnectionConstructors:input_type -> api.ConnectionConstructor + 5, // 87: api.DatabaseService.SeedDocs:input_type -> api.Doc + 11, // 88: api.DatabaseService.SeedConnections:input_type -> api.Connection + 38, // 89: api.DatabaseService.Ping:output_type -> api.Pong + 41, // 90: api.DatabaseService.GetSchema:output_type -> api.Schema + 45, // 91: api.DatabaseService.SetAuthorizers:output_type -> google.protobuf.Empty + 45, // 92: api.DatabaseService.SetIndexes:output_type -> google.protobuf.Empty + 45, // 93: api.DatabaseService.SetTypeValidators:output_type -> google.protobuf.Empty + 5, // 94: api.DatabaseService.Me:output_type -> api.Doc + 5, // 95: api.DatabaseService.CreateDoc:output_type -> api.Doc + 10, // 96: api.DatabaseService.CreateDocs:output_type -> api.Docs + 5, // 97: api.DatabaseService.GetDoc:output_type -> api.Doc + 10, // 98: api.DatabaseService.SearchDocs:output_type -> api.Docs + 9, // 99: api.DatabaseService.Traverse:output_type -> api.Traversals + 9, // 100: api.DatabaseService.TraverseMe:output_type -> api.Traversals + 5, // 101: api.DatabaseService.EditDoc:output_type -> api.Doc + 10, // 102: api.DatabaseService.EditDocs:output_type -> api.Docs + 45, // 103: api.DatabaseService.DelDoc:output_type -> google.protobuf.Empty + 45, // 104: api.DatabaseService.DelDocs:output_type -> google.protobuf.Empty + 33, // 105: api.DatabaseService.ExistsDoc:output_type -> api.Boolean + 33, // 106: api.DatabaseService.ExistsConnection:output_type -> api.Boolean + 33, // 107: api.DatabaseService.HasDoc:output_type -> api.Boolean + 33, // 108: api.DatabaseService.HasConnection:output_type -> api.Boolean + 11, // 109: api.DatabaseService.CreateConnection:output_type -> api.Connection + 16, // 110: api.DatabaseService.CreateConnections:output_type -> api.Connections + 16, // 111: api.DatabaseService.SearchAndConnect:output_type -> api.Connections + 16, // 112: api.DatabaseService.SearchAndConnectMe:output_type -> api.Connections + 11, // 113: api.DatabaseService.GetConnection:output_type -> api.Connection + 16, // 114: api.DatabaseService.SearchConnections:output_type -> api.Connections + 11, // 115: api.DatabaseService.EditConnection:output_type -> api.Connection + 16, // 116: api.DatabaseService.EditConnections:output_type -> api.Connections + 45, // 117: api.DatabaseService.DelConnection:output_type -> google.protobuf.Empty + 45, // 118: api.DatabaseService.DelConnections:output_type -> google.protobuf.Empty + 16, // 119: api.DatabaseService.ConnectionsFrom:output_type -> api.Connections + 16, // 120: api.DatabaseService.ConnectionsTo:output_type -> api.Connections + 34, // 121: api.DatabaseService.AggregateDocs:output_type -> api.Number + 34, // 122: api.DatabaseService.AggregateConnections:output_type -> api.Number + 45, // 123: api.DatabaseService.Broadcast:output_type -> google.protobuf.Empty + 40, // 124: api.DatabaseService.Stream:output_type -> api.Message + 5, // 125: api.DatabaseService.PushDocConstructors:output_type -> api.Doc + 11, // 126: api.DatabaseService.PushConnectionConstructors:output_type -> api.Connection + 45, // 127: api.DatabaseService.SeedDocs:output_type -> google.protobuf.Empty + 45, // 128: api.DatabaseService.SeedConnections:output_type -> google.protobuf.Empty + 89, // [89:129] is the sub-list for method output_type + 49, // [49:89] is the sub-list for method input_type + 49, // [49:49] is the sub-list for extension type_name + 49, // [49:49] is the sub-list for extension extendee + 0, // [0:49] is the sub-list for field type_name } func init() { file_graphik_proto_init() } @@ -4265,7 +4209,7 @@ func file_graphik_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_graphik_proto_rawDesc, - NumEnums: 3, + NumEnums: 2, NumMessages: 41, NumExtensions: 0, NumServices: 1, diff --git a/gen/grpc/go/graphik.validator.pb.go b/gen/grpc/go/graphik.validator.pb.go index a5ba49f..845cc04 100644 --- a/gen/grpc/go/graphik.validator.pb.go +++ b/gen/grpc/go/graphik.validator.pb.go @@ -380,9 +380,9 @@ func (this *AuthTarget) Validate() error { return github_com_mwitkow_go_proto_validators.FieldError("User", err) } } - if this.Data != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Data); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + if this.Target != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Target); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Target", err) } } return nil diff --git a/gen/grpc/java/api/Graphik.java b/gen/grpc/java/api/Graphik.java index a6d8cce..e4d5c2b 100644 --- a/gen/grpc/java/api/Graphik.java +++ b/gen/grpc/java/api/Graphik.java @@ -262,113 +262,6 @@ private Aggregate(int value) { // @@protoc_insertion_point(enum_scope:api.Aggregate) } - /** - * Protobuf enum {@code api.AuthType} - */ - public enum AuthType - implements com.google.protobuf.ProtocolMessageEnum { - /** - * REQUEST = 0; - */ - REQUEST(0), - /** - * VIEW_DOC = 1; - */ - VIEW_DOC(1), - /** - * VIEW_CONNECTION = 2; - */ - VIEW_CONNECTION(2), - UNRECOGNIZED(-1), - ; - - /** - * REQUEST = 0; - */ - public static final int REQUEST_VALUE = 0; - /** - * VIEW_DOC = 1; - */ - public static final int VIEW_DOC_VALUE = 1; - /** - * VIEW_CONNECTION = 2; - */ - public static final int VIEW_CONNECTION_VALUE = 2; - - - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } - - /** - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static AuthType valueOf(int value) { - return forNumber(value); - } - - public static AuthType forNumber(int value) { - switch (value) { - case 0: return REQUEST; - case 1: return VIEW_DOC; - case 2: return VIEW_CONNECTION; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - AuthType> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public AuthType findValueByNumber(int number) { - return AuthType.forNumber(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return api.Graphik.getDescriptor().getEnumTypes().get(2); - } - - private static final AuthType[] VALUES = values(); - - public static AuthType valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } - - private final int value; - - private AuthType(int value) { - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:api.AuthType) - } - public interface RefOrBuilder extends // @@protoc_insertion_point(interface_extends:api.Ref) com.google.protobuf.MessageOrBuilder { @@ -23153,21 +23046,12 @@ public interface AuthTargetOrBuilder extends // @@protoc_insertion_point(interface_extends:api.AuthTarget) com.google.protobuf.MessageOrBuilder { - /** - * .api.AuthType type = 1; - */ - int getTypeValue(); - /** - * .api.AuthType type = 1; - */ - api.Graphik.AuthType getType(); - /** *
          * method is the rpc method
          * 
    * - * string method = 2 [(.validator.field) = { ... } + * string method = 3 [(.validator.field) = { ... } */ java.lang.String getMethod(); /** @@ -23175,7 +23059,7 @@ public interface AuthTargetOrBuilder extends * method is the rpc method * * - * string method = 2 [(.validator.field) = { ... } + * string method = 3 [(.validator.field) = { ... } */ com.google.protobuf.ByteString getMethodBytes(); @@ -23185,7 +23069,7 @@ public interface AuthTargetOrBuilder extends * user is the user making the request * * - * .api.Doc user = 3 [(.validator.field) = { ... } + * .api.Doc user = 4 [(.validator.field) = { ... } */ boolean hasUser(); /** @@ -23193,7 +23077,7 @@ public interface AuthTargetOrBuilder extends * user is the user making the request * * - * .api.Doc user = 3 [(.validator.field) = { ... } + * .api.Doc user = 4 [(.validator.field) = { ... } */ api.Graphik.Doc getUser(); /** @@ -23201,34 +23085,22 @@ public interface AuthTargetOrBuilder extends * user is the user making the request * * - * .api.Doc user = 3 [(.validator.field) = { ... } + * .api.Doc user = 4 [(.validator.field) = { ... } */ api.Graphik.DocOrBuilder getUserOrBuilder(); /** - *
    -     * request is the intercepted request
    -     * 
    - * - * .google.protobuf.Struct data = 4; + * .google.protobuf.Struct target = 5; */ - boolean hasData(); + boolean hasTarget(); /** - *
    -     * request is the intercepted request
    -     * 
    - * - * .google.protobuf.Struct data = 4; + * .google.protobuf.Struct target = 5; */ - com.google.protobuf.Struct getData(); + com.google.protobuf.Struct getTarget(); /** - *
    -     * request is the intercepted request
    -     * 
    - * - * .google.protobuf.Struct data = 4; + * .google.protobuf.Struct target = 5; */ - com.google.protobuf.StructOrBuilder getDataOrBuilder(); + com.google.protobuf.StructOrBuilder getTargetOrBuilder(); } /** * Protobuf type {@code api.AuthTarget} @@ -23243,7 +23115,6 @@ private AuthTarget(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private AuthTarget() { - type_ = 0; method_ = ""; } @@ -23271,19 +23142,13 @@ private AuthTarget( case 0: done = true; break; - case 8: { - int rawValue = input.readEnum(); - - type_ = rawValue; - break; - } - case 18: { + case 26: { java.lang.String s = input.readStringRequireUtf8(); method_ = s; break; } - case 26: { + case 34: { api.Graphik.Doc.Builder subBuilder = null; if (user_ != null) { subBuilder = user_.toBuilder(); @@ -23296,15 +23161,15 @@ private AuthTarget( break; } - case 34: { + case 42: { com.google.protobuf.Struct.Builder subBuilder = null; - if (data_ != null) { - subBuilder = data_.toBuilder(); + if (target_ != null) { + subBuilder = target_.toBuilder(); } - data_ = input.readMessage(com.google.protobuf.Struct.parser(), extensionRegistry); + target_ = input.readMessage(com.google.protobuf.Struct.parser(), extensionRegistry); if (subBuilder != null) { - subBuilder.mergeFrom(data_); - data_ = subBuilder.buildPartial(); + subBuilder.mergeFrom(target_); + target_ = subBuilder.buildPartial(); } break; @@ -23341,31 +23206,14 @@ private AuthTarget( api.Graphik.AuthTarget.class, api.Graphik.AuthTarget.Builder.class); } - public static final int TYPE_FIELD_NUMBER = 1; - private int type_; - /** - * .api.AuthType type = 1; - */ - public int getTypeValue() { - return type_; - } - /** - * .api.AuthType type = 1; - */ - public api.Graphik.AuthType getType() { - @SuppressWarnings("deprecation") - api.Graphik.AuthType result = api.Graphik.AuthType.valueOf(type_); - return result == null ? api.Graphik.AuthType.UNRECOGNIZED : result; - } - - public static final int METHOD_FIELD_NUMBER = 2; + public static final int METHOD_FIELD_NUMBER = 3; private volatile java.lang.Object method_; /** *
          * method is the rpc method
          * 
    * - * string method = 2 [(.validator.field) = { ... } + * string method = 3 [(.validator.field) = { ... } */ public java.lang.String getMethod() { java.lang.Object ref = method_; @@ -23384,7 +23232,7 @@ public java.lang.String getMethod() { * method is the rpc method * * - * string method = 2 [(.validator.field) = { ... } + * string method = 3 [(.validator.field) = { ... } */ public com.google.protobuf.ByteString getMethodBytes() { @@ -23400,14 +23248,14 @@ public java.lang.String getMethod() { } } - public static final int USER_FIELD_NUMBER = 3; + public static final int USER_FIELD_NUMBER = 4; private api.Graphik.Doc user_; /** *
          * user is the user making the request
          * 
    * - * .api.Doc user = 3 [(.validator.field) = { ... } + * .api.Doc user = 4 [(.validator.field) = { ... } */ public boolean hasUser() { return user_ != null; @@ -23417,7 +23265,7 @@ public boolean hasUser() { * user is the user making the request * * - * .api.Doc user = 3 [(.validator.field) = { ... } + * .api.Doc user = 4 [(.validator.field) = { ... } */ public api.Graphik.Doc getUser() { return user_ == null ? api.Graphik.Doc.getDefaultInstance() : user_; @@ -23427,43 +23275,31 @@ public api.Graphik.Doc getUser() { * user is the user making the request * * - * .api.Doc user = 3 [(.validator.field) = { ... } + * .api.Doc user = 4 [(.validator.field) = { ... } */ public api.Graphik.DocOrBuilder getUserOrBuilder() { return getUser(); } - public static final int DATA_FIELD_NUMBER = 4; - private com.google.protobuf.Struct data_; + public static final int TARGET_FIELD_NUMBER = 5; + private com.google.protobuf.Struct target_; /** - *
    -     * request is the intercepted request
    -     * 
    - * - * .google.protobuf.Struct data = 4; + * .google.protobuf.Struct target = 5; */ - public boolean hasData() { - return data_ != null; + public boolean hasTarget() { + return target_ != null; } /** - *
    -     * request is the intercepted request
    -     * 
    - * - * .google.protobuf.Struct data = 4; + * .google.protobuf.Struct target = 5; */ - public com.google.protobuf.Struct getData() { - return data_ == null ? com.google.protobuf.Struct.getDefaultInstance() : data_; + public com.google.protobuf.Struct getTarget() { + return target_ == null ? com.google.protobuf.Struct.getDefaultInstance() : target_; } /** - *
    -     * request is the intercepted request
    -     * 
    - * - * .google.protobuf.Struct data = 4; + * .google.protobuf.Struct target = 5; */ - public com.google.protobuf.StructOrBuilder getDataOrBuilder() { - return getData(); + public com.google.protobuf.StructOrBuilder getTargetOrBuilder() { + return getTarget(); } private byte memoizedIsInitialized = -1; @@ -23480,17 +23316,14 @@ public final boolean isInitialized() { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (type_ != api.Graphik.AuthType.REQUEST.getNumber()) { - output.writeEnum(1, type_); - } if (!getMethodBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, method_); + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, method_); } if (user_ != null) { - output.writeMessage(3, getUser()); + output.writeMessage(4, getUser()); } - if (data_ != null) { - output.writeMessage(4, getData()); + if (target_ != null) { + output.writeMessage(5, getTarget()); } unknownFields.writeTo(output); } @@ -23501,20 +23334,16 @@ public int getSerializedSize() { if (size != -1) return size; size = 0; - if (type_ != api.Graphik.AuthType.REQUEST.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(1, type_); - } if (!getMethodBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, method_); + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, method_); } if (user_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, getUser()); + .computeMessageSize(4, getUser()); } - if (data_ != null) { + if (target_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, getData()); + .computeMessageSize(5, getTarget()); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -23532,7 +23361,6 @@ public boolean equals(final java.lang.Object obj) { api.Graphik.AuthTarget other = (api.Graphik.AuthTarget) obj; boolean result = true; - result = result && type_ == other.type_; result = result && getMethod() .equals(other.getMethod()); result = result && (hasUser() == other.hasUser()); @@ -23540,10 +23368,10 @@ public boolean equals(final java.lang.Object obj) { result = result && getUser() .equals(other.getUser()); } - result = result && (hasData() == other.hasData()); - if (hasData()) { - result = result && getData() - .equals(other.getData()); + result = result && (hasTarget() == other.hasTarget()); + if (hasTarget()) { + result = result && getTarget() + .equals(other.getTarget()); } result = result && unknownFields.equals(other.unknownFields); return result; @@ -23556,17 +23384,15 @@ public int hashCode() { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TYPE_FIELD_NUMBER; - hash = (53 * hash) + type_; hash = (37 * hash) + METHOD_FIELD_NUMBER; hash = (53 * hash) + getMethod().hashCode(); if (hasUser()) { hash = (37 * hash) + USER_FIELD_NUMBER; hash = (53 * hash) + getUser().hashCode(); } - if (hasData()) { - hash = (37 * hash) + DATA_FIELD_NUMBER; - hash = (53 * hash) + getData().hashCode(); + if (hasTarget()) { + hash = (37 * hash) + TARGET_FIELD_NUMBER; + hash = (53 * hash) + getTarget().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; @@ -23701,8 +23527,6 @@ private void maybeForceBuilderInitialization() { @java.lang.Override public Builder clear() { super.clear(); - type_ = 0; - method_ = ""; if (userBuilder_ == null) { @@ -23711,11 +23535,11 @@ public Builder clear() { user_ = null; userBuilder_ = null; } - if (dataBuilder_ == null) { - data_ = null; + if (targetBuilder_ == null) { + target_ = null; } else { - data_ = null; - dataBuilder_ = null; + target_ = null; + targetBuilder_ = null; } return this; } @@ -23743,17 +23567,16 @@ public api.Graphik.AuthTarget build() { @java.lang.Override public api.Graphik.AuthTarget buildPartial() { api.Graphik.AuthTarget result = new api.Graphik.AuthTarget(this); - result.type_ = type_; result.method_ = method_; if (userBuilder_ == null) { result.user_ = user_; } else { result.user_ = userBuilder_.build(); } - if (dataBuilder_ == null) { - result.data_ = data_; + if (targetBuilder_ == null) { + result.target_ = target_; } else { - result.data_ = dataBuilder_.build(); + result.target_ = targetBuilder_.build(); } onBuilt(); return result; @@ -23803,9 +23626,6 @@ public Builder mergeFrom(com.google.protobuf.Message other) { public Builder mergeFrom(api.Graphik.AuthTarget other) { if (other == api.Graphik.AuthTarget.getDefaultInstance()) return this; - if (other.type_ != 0) { - setTypeValue(other.getTypeValue()); - } if (!other.getMethod().isEmpty()) { method_ = other.method_; onChanged(); @@ -23813,8 +23633,8 @@ public Builder mergeFrom(api.Graphik.AuthTarget other) { if (other.hasUser()) { mergeUser(other.getUser()); } - if (other.hasData()) { - mergeData(other.getData()); + if (other.hasTarget()) { + mergeTarget(other.getTarget()); } this.mergeUnknownFields(other.unknownFields); onChanged(); @@ -23845,58 +23665,13 @@ public Builder mergeFrom( return this; } - private int type_ = 0; - /** - * .api.AuthType type = 1; - */ - public int getTypeValue() { - return type_; - } - /** - * .api.AuthType type = 1; - */ - public Builder setTypeValue(int value) { - type_ = value; - onChanged(); - return this; - } - /** - * .api.AuthType type = 1; - */ - public api.Graphik.AuthType getType() { - @SuppressWarnings("deprecation") - api.Graphik.AuthType result = api.Graphik.AuthType.valueOf(type_); - return result == null ? api.Graphik.AuthType.UNRECOGNIZED : result; - } - /** - * .api.AuthType type = 1; - */ - public Builder setType(api.Graphik.AuthType value) { - if (value == null) { - throw new NullPointerException(); - } - - type_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .api.AuthType type = 1; - */ - public Builder clearType() { - - type_ = 0; - onChanged(); - return this; - } - private java.lang.Object method_ = ""; /** *
            * method is the rpc method
            * 
    * - * string method = 2 [(.validator.field) = { ... } + * string method = 3 [(.validator.field) = { ... } */ public java.lang.String getMethod() { java.lang.Object ref = method_; @@ -23915,7 +23690,7 @@ public java.lang.String getMethod() { * method is the rpc method * * - * string method = 2 [(.validator.field) = { ... } + * string method = 3 [(.validator.field) = { ... } */ public com.google.protobuf.ByteString getMethodBytes() { @@ -23935,7 +23710,7 @@ public java.lang.String getMethod() { * method is the rpc method * * - * string method = 2 [(.validator.field) = { ... } + * string method = 3 [(.validator.field) = { ... } */ public Builder setMethod( java.lang.String value) { @@ -23952,7 +23727,7 @@ public Builder setMethod( * method is the rpc method * * - * string method = 2 [(.validator.field) = { ... } + * string method = 3 [(.validator.field) = { ... } */ public Builder clearMethod() { @@ -23965,7 +23740,7 @@ public Builder clearMethod() { * method is the rpc method * * - * string method = 2 [(.validator.field) = { ... } + * string method = 3 [(.validator.field) = { ... } */ public Builder setMethodBytes( com.google.protobuf.ByteString value) { @@ -23987,7 +23762,7 @@ public Builder setMethodBytes( * user is the user making the request * * - * .api.Doc user = 3 [(.validator.field) = { ... } + * .api.Doc user = 4 [(.validator.field) = { ... } */ public boolean hasUser() { return userBuilder_ != null || user_ != null; @@ -23997,7 +23772,7 @@ public boolean hasUser() { * user is the user making the request * * - * .api.Doc user = 3 [(.validator.field) = { ... } + * .api.Doc user = 4 [(.validator.field) = { ... } */ public api.Graphik.Doc getUser() { if (userBuilder_ == null) { @@ -24011,7 +23786,7 @@ public api.Graphik.Doc getUser() { * user is the user making the request * * - * .api.Doc user = 3 [(.validator.field) = { ... } + * .api.Doc user = 4 [(.validator.field) = { ... } */ public Builder setUser(api.Graphik.Doc value) { if (userBuilder_ == null) { @@ -24031,7 +23806,7 @@ public Builder setUser(api.Graphik.Doc value) { * user is the user making the request * * - * .api.Doc user = 3 [(.validator.field) = { ... } + * .api.Doc user = 4 [(.validator.field) = { ... } */ public Builder setUser( api.Graphik.Doc.Builder builderForValue) { @@ -24049,7 +23824,7 @@ public Builder setUser( * user is the user making the request * * - * .api.Doc user = 3 [(.validator.field) = { ... } + * .api.Doc user = 4 [(.validator.field) = { ... } */ public Builder mergeUser(api.Graphik.Doc value) { if (userBuilder_ == null) { @@ -24071,7 +23846,7 @@ public Builder mergeUser(api.Graphik.Doc value) { * user is the user making the request * * - * .api.Doc user = 3 [(.validator.field) = { ... } + * .api.Doc user = 4 [(.validator.field) = { ... } */ public Builder clearUser() { if (userBuilder_ == null) { @@ -24089,7 +23864,7 @@ public Builder clearUser() { * user is the user making the request * * - * .api.Doc user = 3 [(.validator.field) = { ... } + * .api.Doc user = 4 [(.validator.field) = { ... } */ public api.Graphik.Doc.Builder getUserBuilder() { @@ -24101,7 +23876,7 @@ public api.Graphik.Doc.Builder getUserBuilder() { * user is the user making the request * * - * .api.Doc user = 3 [(.validator.field) = { ... } + * .api.Doc user = 4 [(.validator.field) = { ... } */ public api.Graphik.DocOrBuilder getUserOrBuilder() { if (userBuilder_ != null) { @@ -24116,7 +23891,7 @@ public api.Graphik.DocOrBuilder getUserOrBuilder() { * user is the user making the request * * - * .api.Doc user = 3 [(.validator.field) = { ... } + * .api.Doc user = 4 [(.validator.field) = { ... } */ private com.google.protobuf.SingleFieldBuilderV3< api.Graphik.Doc, api.Graphik.Doc.Builder, api.Graphik.DocOrBuilder> @@ -24132,157 +23907,121 @@ public api.Graphik.DocOrBuilder getUserOrBuilder() { return userBuilder_; } - private com.google.protobuf.Struct data_ = null; + private com.google.protobuf.Struct target_ = null; private com.google.protobuf.SingleFieldBuilderV3< - com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> dataBuilder_; + com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> targetBuilder_; /** - *
    -       * request is the intercepted request
    -       * 
    - * - * .google.protobuf.Struct data = 4; + * .google.protobuf.Struct target = 5; */ - public boolean hasData() { - return dataBuilder_ != null || data_ != null; + public boolean hasTarget() { + return targetBuilder_ != null || target_ != null; } /** - *
    -       * request is the intercepted request
    -       * 
    - * - * .google.protobuf.Struct data = 4; + * .google.protobuf.Struct target = 5; */ - public com.google.protobuf.Struct getData() { - if (dataBuilder_ == null) { - return data_ == null ? com.google.protobuf.Struct.getDefaultInstance() : data_; + public com.google.protobuf.Struct getTarget() { + if (targetBuilder_ == null) { + return target_ == null ? com.google.protobuf.Struct.getDefaultInstance() : target_; } else { - return dataBuilder_.getMessage(); + return targetBuilder_.getMessage(); } } /** - *
    -       * request is the intercepted request
    -       * 
    - * - * .google.protobuf.Struct data = 4; + * .google.protobuf.Struct target = 5; */ - public Builder setData(com.google.protobuf.Struct value) { - if (dataBuilder_ == null) { + public Builder setTarget(com.google.protobuf.Struct value) { + if (targetBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - data_ = value; + target_ = value; onChanged(); } else { - dataBuilder_.setMessage(value); + targetBuilder_.setMessage(value); } return this; } /** - *
    -       * request is the intercepted request
    -       * 
    - * - * .google.protobuf.Struct data = 4; + * .google.protobuf.Struct target = 5; */ - public Builder setData( + public Builder setTarget( com.google.protobuf.Struct.Builder builderForValue) { - if (dataBuilder_ == null) { - data_ = builderForValue.build(); + if (targetBuilder_ == null) { + target_ = builderForValue.build(); onChanged(); } else { - dataBuilder_.setMessage(builderForValue.build()); + targetBuilder_.setMessage(builderForValue.build()); } return this; } /** - *
    -       * request is the intercepted request
    -       * 
    - * - * .google.protobuf.Struct data = 4; + * .google.protobuf.Struct target = 5; */ - public Builder mergeData(com.google.protobuf.Struct value) { - if (dataBuilder_ == null) { - if (data_ != null) { - data_ = - com.google.protobuf.Struct.newBuilder(data_).mergeFrom(value).buildPartial(); + public Builder mergeTarget(com.google.protobuf.Struct value) { + if (targetBuilder_ == null) { + if (target_ != null) { + target_ = + com.google.protobuf.Struct.newBuilder(target_).mergeFrom(value).buildPartial(); } else { - data_ = value; + target_ = value; } onChanged(); } else { - dataBuilder_.mergeFrom(value); + targetBuilder_.mergeFrom(value); } return this; } /** - *
    -       * request is the intercepted request
    -       * 
    - * - * .google.protobuf.Struct data = 4; + * .google.protobuf.Struct target = 5; */ - public Builder clearData() { - if (dataBuilder_ == null) { - data_ = null; + public Builder clearTarget() { + if (targetBuilder_ == null) { + target_ = null; onChanged(); } else { - data_ = null; - dataBuilder_ = null; + target_ = null; + targetBuilder_ = null; } return this; } /** - *
    -       * request is the intercepted request
    -       * 
    - * - * .google.protobuf.Struct data = 4; + * .google.protobuf.Struct target = 5; */ - public com.google.protobuf.Struct.Builder getDataBuilder() { + public com.google.protobuf.Struct.Builder getTargetBuilder() { onChanged(); - return getDataFieldBuilder().getBuilder(); + return getTargetFieldBuilder().getBuilder(); } /** - *
    -       * request is the intercepted request
    -       * 
    - * - * .google.protobuf.Struct data = 4; + * .google.protobuf.Struct target = 5; */ - public com.google.protobuf.StructOrBuilder getDataOrBuilder() { - if (dataBuilder_ != null) { - return dataBuilder_.getMessageOrBuilder(); + public com.google.protobuf.StructOrBuilder getTargetOrBuilder() { + if (targetBuilder_ != null) { + return targetBuilder_.getMessageOrBuilder(); } else { - return data_ == null ? - com.google.protobuf.Struct.getDefaultInstance() : data_; + return target_ == null ? + com.google.protobuf.Struct.getDefaultInstance() : target_; } } /** - *
    -       * request is the intercepted request
    -       * 
    - * - * .google.protobuf.Struct data = 4; + * .google.protobuf.Struct target = 5; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> - getDataFieldBuilder() { - if (dataBuilder_ == null) { - dataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + getTargetFieldBuilder() { + if (targetBuilder_ == null) { + targetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder>( - getData(), + getTarget(), getParentForChildren(), isClean()); - data_ = null; + target_ = null; } - return dataBuilder_; + return targetBuilder_; } @java.lang.Override public final Builder setUnknownFields( @@ -24362,13 +24101,14 @@ public interface AuthorizerOrBuilder extends getExpressionBytes(); /** - * .api.AuthType type = 3; + * bool target_requests = 3; */ - int getTypeValue(); + boolean getTargetRequests(); + /** - * .api.AuthType type = 3; + * bool target_responses = 4; */ - api.Graphik.AuthType getType(); + boolean getTargetResponses(); } /** * Protobuf type {@code api.Authorizer} @@ -24385,7 +24125,8 @@ private Authorizer(com.google.protobuf.GeneratedMessageV3.Builder builder) { private Authorizer() { name_ = ""; expression_ = ""; - type_ = 0; + targetRequests_ = false; + targetResponses_ = false; } @java.lang.Override @@ -24425,9 +24166,13 @@ private Authorizer( break; } case 24: { - int rawValue = input.readEnum(); - type_ = rawValue; + targetRequests_ = input.readBool(); + break; + } + case 32: { + + targetResponses_ = input.readBool(); break; } default: { @@ -24530,21 +24275,22 @@ public java.lang.String getExpression() { } } - public static final int TYPE_FIELD_NUMBER = 3; - private int type_; + public static final int TARGET_REQUESTS_FIELD_NUMBER = 3; + private boolean targetRequests_; /** - * .api.AuthType type = 3; + * bool target_requests = 3; */ - public int getTypeValue() { - return type_; + public boolean getTargetRequests() { + return targetRequests_; } + + public static final int TARGET_RESPONSES_FIELD_NUMBER = 4; + private boolean targetResponses_; /** - * .api.AuthType type = 3; + * bool target_responses = 4; */ - public api.Graphik.AuthType getType() { - @SuppressWarnings("deprecation") - api.Graphik.AuthType result = api.Graphik.AuthType.valueOf(type_); - return result == null ? api.Graphik.AuthType.UNRECOGNIZED : result; + public boolean getTargetResponses() { + return targetResponses_; } private byte memoizedIsInitialized = -1; @@ -24567,8 +24313,11 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (!getExpressionBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, expression_); } - if (type_ != api.Graphik.AuthType.REQUEST.getNumber()) { - output.writeEnum(3, type_); + if (targetRequests_ != false) { + output.writeBool(3, targetRequests_); + } + if (targetResponses_ != false) { + output.writeBool(4, targetResponses_); } unknownFields.writeTo(output); } @@ -24585,9 +24334,13 @@ public int getSerializedSize() { if (!getExpressionBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, expression_); } - if (type_ != api.Graphik.AuthType.REQUEST.getNumber()) { + if (targetRequests_ != false) { size += com.google.protobuf.CodedOutputStream - .computeEnumSize(3, type_); + .computeBoolSize(3, targetRequests_); + } + if (targetResponses_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(4, targetResponses_); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -24609,7 +24362,10 @@ public boolean equals(final java.lang.Object obj) { .equals(other.getName()); result = result && getExpression() .equals(other.getExpression()); - result = result && type_ == other.type_; + result = result && (getTargetRequests() + == other.getTargetRequests()); + result = result && (getTargetResponses() + == other.getTargetResponses()); result = result && unknownFields.equals(other.unknownFields); return result; } @@ -24625,8 +24381,12 @@ public int hashCode() { hash = (53 * hash) + getName().hashCode(); hash = (37 * hash) + EXPRESSION_FIELD_NUMBER; hash = (53 * hash) + getExpression().hashCode(); - hash = (37 * hash) + TYPE_FIELD_NUMBER; - hash = (53 * hash) + type_; + hash = (37 * hash) + TARGET_REQUESTS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getTargetRequests()); + hash = (37 * hash) + TARGET_RESPONSES_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getTargetResponses()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -24764,7 +24524,9 @@ public Builder clear() { expression_ = ""; - type_ = 0; + targetRequests_ = false; + + targetResponses_ = false; return this; } @@ -24794,7 +24556,8 @@ public api.Graphik.Authorizer buildPartial() { api.Graphik.Authorizer result = new api.Graphik.Authorizer(this); result.name_ = name_; result.expression_ = expression_; - result.type_ = type_; + result.targetRequests_ = targetRequests_; + result.targetResponses_ = targetResponses_; onBuilt(); return result; } @@ -24851,8 +24614,11 @@ public Builder mergeFrom(api.Graphik.Authorizer other) { expression_ = other.expression_; onChanged(); } - if (other.type_ != 0) { - setTypeValue(other.getTypeValue()); + if (other.getTargetRequests() != false) { + setTargetRequests(other.getTargetRequests()); + } + if (other.getTargetResponses() != false) { + setTargetResponses(other.getTargetResponses()); } this.mergeUnknownFields(other.unknownFields); onChanged(); @@ -25021,47 +24787,54 @@ public Builder setExpressionBytes( return this; } - private int type_ = 0; + private boolean targetRequests_ ; /** - * .api.AuthType type = 3; + * bool target_requests = 3; */ - public int getTypeValue() { - return type_; + public boolean getTargetRequests() { + return targetRequests_; } /** - * .api.AuthType type = 3; + * bool target_requests = 3; */ - public Builder setTypeValue(int value) { - type_ = value; + public Builder setTargetRequests(boolean value) { + + targetRequests_ = value; onChanged(); return this; } /** - * .api.AuthType type = 3; + * bool target_requests = 3; */ - public api.Graphik.AuthType getType() { - @SuppressWarnings("deprecation") - api.Graphik.AuthType result = api.Graphik.AuthType.valueOf(type_); - return result == null ? api.Graphik.AuthType.UNRECOGNIZED : result; + public Builder clearTargetRequests() { + + targetRequests_ = false; + onChanged(); + return this; } + + private boolean targetResponses_ ; /** - * .api.AuthType type = 3; + * bool target_responses = 4; */ - public Builder setType(api.Graphik.AuthType value) { - if (value == null) { - throw new NullPointerException(); - } + public boolean getTargetResponses() { + return targetResponses_; + } + /** + * bool target_responses = 4; + */ + public Builder setTargetResponses(boolean value) { - type_ = value.getNumber(); + targetResponses_ = value; onChanged(); return this; } /** - * .api.AuthType type = 3; + * bool target_responses = 4; */ - public Builder clearType() { + public Builder clearTargetResponses() { - type_ = 0; + targetResponses_ = false; onChanged(); return this; } @@ -43198,118 +42971,116 @@ public api.Graphik.ExprFilter getDefaultInstanceForType() { "\020IndexConstructor\022\036\n\004name\030\001 \001(\tB\020\342\337\037\014\n\n^" + ".{1,225}$\022\037\n\005gtype\030\003 \001(\tB\020\342\337\037\014\n\n^.{1,225" + "}$\022$\n\nexpression\030\004 \001(\tB\020\342\337\037\014\n\n^.{1,225}$" + - "\022\014\n\004docs\030\006 \001(\010\022\023\n\013connections\030\007 \001(\010\"\222\001\n\n" + - "AuthTarget\022\033\n\004type\030\001 \001(\0162\r.api.AuthType\022" + - " \n\006method\030\002 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\022\036\n\004use" + - "r\030\003 \001(\0132\010.api.DocB\006\342\337\037\002 \001\022%\n\004data\030\004 \001(\0132" + - "\027.google.protobuf.Struct\"o\n\nAuthorizer\022\036" + - "\n\004name\030\001 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\022$\n\nexpres" + - "sion\030\002 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\022\033\n\004type\030\003 \001" + - "(\0162\r.api.AuthType\"3\n\013Authorizers\022$\n\013auth" + - "orizers\030\001 \003(\0132\017.api.Authorizer\"\231\001\n\rTypeV" + - "alidator\022\036\n\004name\030\001 \001(\tB\020\342\337\037\014\n\n^.{1,225}$" + - "\022\037\n\005gtype\030\002 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\022$\n\nexp" + - "ression\030\003 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\022\014\n\004docs\030" + - "\004 \001(\010\022\023\n\013connections\030\005 \001(\010\"8\n\016TypeValida" + - "tors\022&\n\nvalidators\030\001 \003(\0132\022.api.TypeValid" + - "ator\"\221\001\n\005Index\022\036\n\004name\030\001 \001(\tB\020\342\337\037\014\n\n^.{1" + - ",225}$\022\037\n\005gtype\030\003 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\022" + - "$\n\nexpression\030\004 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\022\014\n" + - "\004docs\030\006 \001(\010\022\023\n\013connections\030\007 \001(\010\"&\n\007Inde" + - "xes\022\033\n\007indexes\030\001 \003(\0132\n.api.Index\"E\n\014Stre" + - "amFilter\022!\n\007channel\030\001 \001(\tB\020\342\337\037\014\n\n^.{1,22" + - "5}$\022\022\n\nexpression\030\002 \001(\t\"G\n\005Graph\022\027\n\004docs" + - "\030\001 \001(\0132\t.api.Docs\022%\n\013connections\030\002 \001(\0132\020" + - ".api.Connections\"\304\002\n\005Flags\022\031\n\021open_id_di" + - "scovery\030\001 \001(\t\022\024\n\014storage_path\030\002 \001(\t\022\017\n\007m" + - "etrics\030\003 \001(\010\022\025\n\rallow_headers\030\005 \003(\t\022\025\n\ra" + - "llow_methods\030\006 \003(\t\022\025\n\rallow_origins\030\007 \003(" + - "\t\022\022\n\nroot_users\030\010 \003(\t\022\020\n\010tls_cert\030\t \001(\t\022" + - "\017\n\007tls_key\030\n \001(\t\022\034\n\024playground_client_id" + - "\030\013 \001(\t\022 \n\030playground_client_secret\030\014 \001(\t" + - "\022\033\n\023playground_redirect\030\r \001(\t\022 \n\030playgro" + - "und_session_store\030\016 \001(\t\"\030\n\007Boolean\022\r\n\005va" + - "lue\030\001 \001(\010\"\027\n\006Number\022\r\n\005value\030\001 \001(\001\"\203\001\n\014E" + - "xistsFilter\022\037\n\005gtype\030\001 \001(\tB\020\342\337\037\014\n\n^.{1,2" + - "25}$\022$\n\nexpression\030\002 \001(\tB\020\342\337\037\014\n\n^.{1,225" + - "}$\022\014\n\004seek\030\003 \001(\t\022\017\n\007reverse\030\004 \001(\010\022\r\n\005ind" + - "ex\030\005 \001(\t\"R\n\004Edit\022\035\n\003ref\030\001 \001(\0132\010.api.RefB" + - "\006\342\337\037\002 \001\022+\n\nattributes\030\002 \001(\0132\027.google.pro" + - "tobuf.Struct\"V\n\nEditFilter\022\033\n\006filter\030\001 \001" + - "(\0132\013.api.Filter\022+\n\nattributes\030\002 \001(\0132\027.go" + - "ogle.protobuf.Struct\"\027\n\004Pong\022\017\n\007message\030" + - "\001 \001(\t\"c\n\017OutboundMessage\022!\n\007channel\030\001 \001(" + - "\tB\020\342\337\037\014\n\n^.{1,225}$\022-\n\004data\030\002 \001(\0132\027.goog" + - "le.protobuf.StructB\006\342\337\037\002 \001\"\324\001\n\007Message\022!" + - "\n\007channel\030\001 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\022-\n\004dat" + - "a\030\002 \001(\0132\027.google.protobuf.StructB\006\342\337\037\002 \001" + - "\022\036\n\004user\030\003 \001(\0132\010.api.RefB\006\342\337\037\002 \001\0225\n\ttime" + - "stamp\030\004 \001(\0132\032.google.protobuf.TimestampB" + - "\006\342\337\037\002 \001\022 \n\006method\030\005 \001(\tB\020\342\337\037\014\n\n^.{1,225}" + - "$\"\244\001\n\006Schema\022\030\n\020connection_types\030\001 \003(\t\022\021" + - "\n\tdoc_types\030\002 \003(\t\022%\n\013authorizers\030\003 \001(\0132\020" + - ".api.Authorizers\022\'\n\nvalidators\030\004 \001(\0132\023.a" + - "pi.TypeValidators\022\035\n\007indexes\030\005 \001(\0132\014.api" + - ".Indexes\" \n\nExprFilter\022\022\n\nexpression\030\001 \001" + - "(\t*\035\n\tAlgorithm\022\007\n\003BFS\020\000\022\007\n\003DFS\020\001*D\n\tAgg" + - "regate\022\t\n\005COUNT\020\000\022\007\n\003SUM\020\001\022\007\n\003AVG\020\002\022\007\n\003M" + - "AX\020\003\022\007\n\003MIN\020\004\022\010\n\004PROD\020\005*:\n\010AuthType\022\013\n\007R" + - "EQUEST\020\000\022\014\n\010VIEW_DOC\020\001\022\023\n\017VIEW_CONNECTIO" + - "N\020\0022\332\020\n\017DatabaseService\022+\n\004Ping\022\026.google" + - ".protobuf.Empty\032\t.api.Pong\"\000\0222\n\tGetSchem" + - "a\022\026.google.protobuf.Empty\032\013.api.Schema\"\000" + - "\022<\n\016SetAuthorizers\022\020.api.Authorizers\032\026.g" + - "oogle.protobuf.Empty\"\000\0224\n\nSetIndexes\022\014.a" + - "pi.Indexes\032\026.google.protobuf.Empty\"\000\022B\n\021" + - "SetTypeValidators\022\023.api.TypeValidators\032\026" + - ".google.protobuf.Empty\"\000\022(\n\002Me\022\026.google." + - "protobuf.Empty\032\010.api.Doc\"\000\022,\n\tCreateDoc\022" + - "\023.api.DocConstructor\032\010.api.Doc\"\000\022/\n\nCrea" + - "teDocs\022\024.api.DocConstructors\032\t.api.Docs\"" + - "\000\022\036\n\006GetDoc\022\010.api.Ref\032\010.api.Doc\"\000\022&\n\nSea" + - "rchDocs\022\013.api.Filter\032\t.api.Docs\"\000\0222\n\010Tra" + - "verse\022\023.api.TraverseFilter\032\017.api.Travers" + - "als\"\000\0226\n\nTraverseMe\022\025.api.TraverseMeFilt" + - "er\032\017.api.Traversals\"\000\022 \n\007EditDoc\022\t.api.E" + - "dit\032\010.api.Doc\"\000\022(\n\010EditDocs\022\017.api.EditFi" + - "lter\032\t.api.Docs\"\000\022,\n\006DelDoc\022\010.api.Ref\032\026." + - "google.protobuf.Empty\"\000\0220\n\007DelDocs\022\013.api" + - ".Filter\032\026.google.protobuf.Empty\"\000\022.\n\tExi" + - "stsDoc\022\021.api.ExistsFilter\032\014.api.Boolean\"" + - "\000\0225\n\020ExistsConnection\022\021.api.ExistsFilter" + - "\032\014.api.Boolean\"\000\022\"\n\006HasDoc\022\010.api.Ref\032\014.a" + - "pi.Boolean\"\000\022)\n\rHasConnection\022\010.api.Ref\032" + - "\014.api.Boolean\"\000\022A\n\020CreateConnection\022\032.ap" + - "i.ConnectionConstructor\032\017.api.Connection" + - "\"\000\022D\n\021CreateConnections\022\033.api.Connection" + - "Constructors\032\020.api.Connections\"\000\022@\n\020Sear" + - "chAndConnect\022\030.api.SearchConnectFilter\032\020" + - ".api.Connections\"\000\022D\n\022SearchAndConnectMe" + - "\022\032.api.SearchConnectMeFilter\032\020.api.Conne" + - "ctions\"\000\022,\n\rGetConnection\022\010.api.Ref\032\017.ap" + - "i.Connection\"\000\0224\n\021SearchConnections\022\013.ap" + - "i.Filter\032\020.api.Connections\"\000\022.\n\016EditConn" + - "ection\022\t.api.Edit\032\017.api.Connection\"\000\0226\n\017" + - "EditConnections\022\017.api.EditFilter\032\020.api.C" + - "onnections\"\000\0223\n\rDelConnection\022\010.api.Ref\032" + - "\026.google.protobuf.Empty\"\000\0227\n\016DelConnecti" + - "ons\022\013.api.Filter\032\026.google.protobuf.Empty" + - "\"\000\0229\n\017ConnectionsFrom\022\022.api.ConnectFilte" + - "r\032\020.api.Connections\"\000\0227\n\rConnectionsTo\022\022" + - ".api.ConnectFilter\032\020.api.Connections\"\000\022." + - "\n\rAggregateDocs\022\016.api.AggFilter\032\013.api.Nu" + - "mber\"\000\0225\n\024AggregateConnections\022\016.api.Agg" + - "Filter\032\013.api.Number\"\000\022;\n\tBroadcast\022\024.api" + - ".OutboundMessage\032\026.google.protobuf.Empty" + - "\"\000\022-\n\006Stream\022\021.api.StreamFilter\032\014.api.Me" + - "ssage\"\0000\001\022:\n\023PushDocConstructors\022\023.api.D" + - "ocConstructor\032\010.api.Doc\"\000(\0010\001\022O\n\032PushCon" + - "nectionConstructors\022\032.api.ConnectionCons" + - "tructor\032\017.api.Connection\"\000(\0010\001\0220\n\010SeedDo" + - "cs\022\010.api.Doc\032\026.google.protobuf.Empty\"\000(\001" + - "\022>\n\017SeedConnections\022\017.api.Connection\032\026.g" + - "oogle.protobuf.Empty\"\000(\001B\007Z\005apipbb\006proto" + - "3" + "\022\014\n\004docs\030\006 \001(\010\022\023\n\013connections\030\007 \001(\010\"w\n\nA" + + "uthTarget\022 \n\006method\030\003 \001(\tB\020\342\337\037\014\n\n^.{1,22" + + "5}$\022\036\n\004user\030\004 \001(\0132\010.api.DocB\006\342\337\037\002 \001\022\'\n\006t" + + "arget\030\005 \001(\0132\027.google.protobuf.Struct\"\205\001\n" + + "\nAuthorizer\022\036\n\004name\030\001 \001(\tB\020\342\337\037\014\n\n^.{1,22" + + "5}$\022$\n\nexpression\030\002 \001(\tB\020\342\337\037\014\n\n^.{1,225}" + + "$\022\027\n\017target_requests\030\003 \001(\010\022\030\n\020target_res" + + "ponses\030\004 \001(\010\"3\n\013Authorizers\022$\n\013authorize" + + "rs\030\001 \003(\0132\017.api.Authorizer\"\231\001\n\rTypeValida" + + "tor\022\036\n\004name\030\001 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\022\037\n\005g" + + "type\030\002 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\022$\n\nexpressi" + + "on\030\003 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\022\014\n\004docs\030\004 \001(\010" + + "\022\023\n\013connections\030\005 \001(\010\"8\n\016TypeValidators\022" + + "&\n\nvalidators\030\001 \003(\0132\022.api.TypeValidator\"" + + "\221\001\n\005Index\022\036\n\004name\030\001 \001(\tB\020\342\337\037\014\n\n^.{1,225}" + + "$\022\037\n\005gtype\030\003 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\022$\n\nex" + + "pression\030\004 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\022\014\n\004docs" + + "\030\006 \001(\010\022\023\n\013connections\030\007 \001(\010\"&\n\007Indexes\022\033" + + "\n\007indexes\030\001 \003(\0132\n.api.Index\"E\n\014StreamFil" + + "ter\022!\n\007channel\030\001 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\022\022" + + "\n\nexpression\030\002 \001(\t\"G\n\005Graph\022\027\n\004docs\030\001 \001(" + + "\0132\t.api.Docs\022%\n\013connections\030\002 \001(\0132\020.api." + + "Connections\"\304\002\n\005Flags\022\031\n\021open_id_discove" + + "ry\030\001 \001(\t\022\024\n\014storage_path\030\002 \001(\t\022\017\n\007metric" + + "s\030\003 \001(\010\022\025\n\rallow_headers\030\005 \003(\t\022\025\n\rallow_" + + "methods\030\006 \003(\t\022\025\n\rallow_origins\030\007 \003(\t\022\022\n\n" + + "root_users\030\010 \003(\t\022\020\n\010tls_cert\030\t \001(\t\022\017\n\007tl" + + "s_key\030\n \001(\t\022\034\n\024playground_client_id\030\013 \001(" + + "\t\022 \n\030playground_client_secret\030\014 \001(\t\022\033\n\023p" + + "layground_redirect\030\r \001(\t\022 \n\030playground_s" + + "ession_store\030\016 \001(\t\"\030\n\007Boolean\022\r\n\005value\030\001" + + " \001(\010\"\027\n\006Number\022\r\n\005value\030\001 \001(\001\"\203\001\n\014Exists" + + "Filter\022\037\n\005gtype\030\001 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\022" + + "$\n\nexpression\030\002 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\022\014\n" + + "\004seek\030\003 \001(\t\022\017\n\007reverse\030\004 \001(\010\022\r\n\005index\030\005 " + + "\001(\t\"R\n\004Edit\022\035\n\003ref\030\001 \001(\0132\010.api.RefB\006\342\337\037\002" + + " \001\022+\n\nattributes\030\002 \001(\0132\027.google.protobuf" + + ".Struct\"V\n\nEditFilter\022\033\n\006filter\030\001 \001(\0132\013." + + "api.Filter\022+\n\nattributes\030\002 \001(\0132\027.google." + + "protobuf.Struct\"\027\n\004Pong\022\017\n\007message\030\001 \001(\t" + + "\"c\n\017OutboundMessage\022!\n\007channel\030\001 \001(\tB\020\342\337" + + "\037\014\n\n^.{1,225}$\022-\n\004data\030\002 \001(\0132\027.google.pr" + + "otobuf.StructB\006\342\337\037\002 \001\"\324\001\n\007Message\022!\n\007cha" + + "nnel\030\001 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\022-\n\004data\030\002 \001" + + "(\0132\027.google.protobuf.StructB\006\342\337\037\002 \001\022\036\n\004u" + + "ser\030\003 \001(\0132\010.api.RefB\006\342\337\037\002 \001\0225\n\ttimestamp" + + "\030\004 \001(\0132\032.google.protobuf.TimestampB\006\342\337\037\002" + + " \001\022 \n\006method\030\005 \001(\tB\020\342\337\037\014\n\n^.{1,225}$\"\244\001\n" + + "\006Schema\022\030\n\020connection_types\030\001 \003(\t\022\021\n\tdoc" + + "_types\030\002 \003(\t\022%\n\013authorizers\030\003 \001(\0132\020.api." + + "Authorizers\022\'\n\nvalidators\030\004 \001(\0132\023.api.Ty" + + "peValidators\022\035\n\007indexes\030\005 \001(\0132\014.api.Inde" + + "xes\" \n\nExprFilter\022\022\n\nexpression\030\001 \001(\t*\035\n" + + "\tAlgorithm\022\007\n\003BFS\020\000\022\007\n\003DFS\020\001*D\n\tAggregat" + + "e\022\t\n\005COUNT\020\000\022\007\n\003SUM\020\001\022\007\n\003AVG\020\002\022\007\n\003MAX\020\003\022" + + "\007\n\003MIN\020\004\022\010\n\004PROD\020\0052\332\020\n\017DatabaseService\022+" + + "\n\004Ping\022\026.google.protobuf.Empty\032\t.api.Pon" + + "g\"\000\0222\n\tGetSchema\022\026.google.protobuf.Empty" + + "\032\013.api.Schema\"\000\022<\n\016SetAuthorizers\022\020.api." + + "Authorizers\032\026.google.protobuf.Empty\"\000\0224\n" + + "\nSetIndexes\022\014.api.Indexes\032\026.google.proto" + + "buf.Empty\"\000\022B\n\021SetTypeValidators\022\023.api.T" + + "ypeValidators\032\026.google.protobuf.Empty\"\000\022" + + "(\n\002Me\022\026.google.protobuf.Empty\032\010.api.Doc\"" + + "\000\022,\n\tCreateDoc\022\023.api.DocConstructor\032\010.ap" + + "i.Doc\"\000\022/\n\nCreateDocs\022\024.api.DocConstruct" + + "ors\032\t.api.Docs\"\000\022\036\n\006GetDoc\022\010.api.Ref\032\010.a" + + "pi.Doc\"\000\022&\n\nSearchDocs\022\013.api.Filter\032\t.ap" + + "i.Docs\"\000\0222\n\010Traverse\022\023.api.TraverseFilte" + + "r\032\017.api.Traversals\"\000\0226\n\nTraverseMe\022\025.api" + + ".TraverseMeFilter\032\017.api.Traversals\"\000\022 \n\007" + + "EditDoc\022\t.api.Edit\032\010.api.Doc\"\000\022(\n\010EditDo" + + "cs\022\017.api.EditFilter\032\t.api.Docs\"\000\022,\n\006DelD" + + "oc\022\010.api.Ref\032\026.google.protobuf.Empty\"\000\0220" + + "\n\007DelDocs\022\013.api.Filter\032\026.google.protobuf" + + ".Empty\"\000\022.\n\tExistsDoc\022\021.api.ExistsFilter" + + "\032\014.api.Boolean\"\000\0225\n\020ExistsConnection\022\021.a" + + "pi.ExistsFilter\032\014.api.Boolean\"\000\022\"\n\006HasDo" + + "c\022\010.api.Ref\032\014.api.Boolean\"\000\022)\n\rHasConnec" + + "tion\022\010.api.Ref\032\014.api.Boolean\"\000\022A\n\020Create" + + "Connection\022\032.api.ConnectionConstructor\032\017" + + ".api.Connection\"\000\022D\n\021CreateConnections\022\033" + + ".api.ConnectionConstructors\032\020.api.Connec" + + "tions\"\000\022@\n\020SearchAndConnect\022\030.api.Search" + + "ConnectFilter\032\020.api.Connections\"\000\022D\n\022Sea" + + "rchAndConnectMe\022\032.api.SearchConnectMeFil" + + "ter\032\020.api.Connections\"\000\022,\n\rGetConnection" + + "\022\010.api.Ref\032\017.api.Connection\"\000\0224\n\021SearchC" + + "onnections\022\013.api.Filter\032\020.api.Connection" + + "s\"\000\022.\n\016EditConnection\022\t.api.Edit\032\017.api.C" + + "onnection\"\000\0226\n\017EditConnections\022\017.api.Edi" + + "tFilter\032\020.api.Connections\"\000\0223\n\rDelConnec" + + "tion\022\010.api.Ref\032\026.google.protobuf.Empty\"\000" + + "\0227\n\016DelConnections\022\013.api.Filter\032\026.google" + + ".protobuf.Empty\"\000\0229\n\017ConnectionsFrom\022\022.a" + + "pi.ConnectFilter\032\020.api.Connections\"\000\0227\n\r" + + "ConnectionsTo\022\022.api.ConnectFilter\032\020.api." + + "Connections\"\000\022.\n\rAggregateDocs\022\016.api.Agg" + + "Filter\032\013.api.Number\"\000\0225\n\024AggregateConnec" + + "tions\022\016.api.AggFilter\032\013.api.Number\"\000\022;\n\t" + + "Broadcast\022\024.api.OutboundMessage\032\026.google" + + ".protobuf.Empty\"\000\022-\n\006Stream\022\021.api.Stream" + + "Filter\032\014.api.Message\"\0000\001\022:\n\023PushDocConst" + + "ructors\022\023.api.DocConstructor\032\010.api.Doc\"\000" + + "(\0010\001\022O\n\032PushConnectionConstructors\022\032.api" + + ".ConnectionConstructor\032\017.api.Connection\"" + + "\000(\0010\001\0220\n\010SeedDocs\022\010.api.Doc\032\026.google.pro" + + "tobuf.Empty\"\000(\001\022>\n\017SeedConnections\022\017.api" + + ".Connection\032\026.google.protobuf.Empty\"\000(\001B" + + "\007Z\005apipbb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -43459,13 +43230,13 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_api_AuthTarget_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_api_AuthTarget_descriptor, - new java.lang.String[] { "Type", "Method", "User", "Data", }); + new java.lang.String[] { "Method", "User", "Target", }); internal_static_api_Authorizer_descriptor = getDescriptor().getMessageTypes().get(22); internal_static_api_Authorizer_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_api_Authorizer_descriptor, - new java.lang.String[] { "Name", "Expression", "Type", }); + new java.lang.String[] { "Name", "Expression", "TargetRequests", "TargetResponses", }); internal_static_api_Authorizers_descriptor = getDescriptor().getMessageTypes().get(23); internal_static_api_Authorizers_fieldAccessorTable = new diff --git a/gen/grpc/js/graphik_pb.js b/gen/grpc/js/graphik_pb.js index 96c52b8..e33c6c0 100644 --- a/gen/grpc/js/graphik_pb.js +++ b/gen/grpc/js/graphik_pb.js @@ -20,7 +20,6 @@ goog.exportSymbol('proto.api.AggFilter', null, global); goog.exportSymbol('proto.api.Aggregate', null, global); goog.exportSymbol('proto.api.Algorithm', null, global); goog.exportSymbol('proto.api.AuthTarget', null, global); -goog.exportSymbol('proto.api.AuthType', null, global); goog.exportSymbol('proto.api.Authorizer', null, global); goog.exportSymbol('proto.api.Authorizers', null, global); goog.exportSymbol('proto.api.Boolean', null, global); @@ -5187,10 +5186,9 @@ proto.api.AuthTarget.prototype.toObject = function(opt_includeInstance) { */ proto.api.AuthTarget.toObject = function(includeInstance, msg) { var f, obj = { - type: jspb.Message.getFieldWithDefault(msg, 1, 0), - method: jspb.Message.getFieldWithDefault(msg, 2, ""), + method: jspb.Message.getFieldWithDefault(msg, 3, ""), user: (f = msg.getUser()) && proto.api.Doc.toObject(includeInstance, f), - data: (f = msg.getData()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f) + target: (f = msg.getTarget()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f) }; if (includeInstance) { @@ -5227,23 +5225,19 @@ proto.api.AuthTarget.deserializeBinaryFromReader = function(msg, reader) { } var field = reader.getFieldNumber(); switch (field) { - case 1: - var value = /** @type {!proto.api.AuthType} */ (reader.readEnum()); - msg.setType(value); - break; - case 2: + case 3: var value = /** @type {string} */ (reader.readString()); msg.setMethod(value); break; - case 3: + case 4: var value = new proto.api.Doc; reader.readMessage(value,proto.api.Doc.deserializeBinaryFromReader); msg.setUser(value); break; - case 4: + case 5: var value = new google_protobuf_struct_pb.Struct; reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader); - msg.setData(value); + msg.setTarget(value); break; default: reader.skipField(); @@ -5274,32 +5268,25 @@ proto.api.AuthTarget.prototype.serializeBinary = function() { */ proto.api.AuthTarget.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getType(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } f = message.getMethod(); if (f.length > 0) { writer.writeString( - 2, + 3, f ); } f = message.getUser(); if (f != null) { writer.writeMessage( - 3, + 4, f, proto.api.Doc.serializeBinaryToWriter ); } - f = message.getData(); + f = message.getTarget(); if (f != null) { writer.writeMessage( - 4, + 5, f, google_protobuf_struct_pb.Struct.serializeBinaryToWriter ); @@ -5308,48 +5295,33 @@ proto.api.AuthTarget.serializeBinaryToWriter = function(message, writer) { /** - * optional AuthType type = 1; - * @return {!proto.api.AuthType} - */ -proto.api.AuthTarget.prototype.getType = function() { - return /** @type {!proto.api.AuthType} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** @param {!proto.api.AuthType} value */ -proto.api.AuthTarget.prototype.setType = function(value) { - jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional string method = 2; + * optional string method = 3; * @return {string} */ proto.api.AuthTarget.prototype.getMethod = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); }; /** @param {string} value */ proto.api.AuthTarget.prototype.setMethod = function(value) { - jspb.Message.setProto3StringField(this, 2, value); + jspb.Message.setProto3StringField(this, 3, value); }; /** - * optional Doc user = 3; + * optional Doc user = 4; * @return {?proto.api.Doc} */ proto.api.AuthTarget.prototype.getUser = function() { return /** @type{?proto.api.Doc} */ ( - jspb.Message.getWrapperField(this, proto.api.Doc, 3)); + jspb.Message.getWrapperField(this, proto.api.Doc, 4)); }; /** @param {?proto.api.Doc|undefined} value */ proto.api.AuthTarget.prototype.setUser = function(value) { - jspb.Message.setWrapperField(this, 3, value); + jspb.Message.setWrapperField(this, 4, value); }; @@ -5363,28 +5335,28 @@ proto.api.AuthTarget.prototype.clearUser = function() { * @return {!boolean} */ proto.api.AuthTarget.prototype.hasUser = function() { - return jspb.Message.getField(this, 3) != null; + return jspb.Message.getField(this, 4) != null; }; /** - * optional google.protobuf.Struct data = 4; + * optional google.protobuf.Struct target = 5; * @return {?proto.google.protobuf.Struct} */ -proto.api.AuthTarget.prototype.getData = function() { +proto.api.AuthTarget.prototype.getTarget = function() { return /** @type{?proto.google.protobuf.Struct} */ ( - jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 4)); + jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 5)); }; /** @param {?proto.google.protobuf.Struct|undefined} value */ -proto.api.AuthTarget.prototype.setData = function(value) { - jspb.Message.setWrapperField(this, 4, value); +proto.api.AuthTarget.prototype.setTarget = function(value) { + jspb.Message.setWrapperField(this, 5, value); }; -proto.api.AuthTarget.prototype.clearData = function() { - this.setData(undefined); +proto.api.AuthTarget.prototype.clearTarget = function() { + this.setTarget(undefined); }; @@ -5392,8 +5364,8 @@ proto.api.AuthTarget.prototype.clearData = function() { * Returns whether this field is set. * @return {!boolean} */ -proto.api.AuthTarget.prototype.hasData = function() { - return jspb.Message.getField(this, 4) != null; +proto.api.AuthTarget.prototype.hasTarget = function() { + return jspb.Message.getField(this, 5) != null; }; @@ -5446,7 +5418,8 @@ proto.api.Authorizer.toObject = function(includeInstance, msg) { var f, obj = { name: jspb.Message.getFieldWithDefault(msg, 1, ""), expression: jspb.Message.getFieldWithDefault(msg, 2, ""), - type: jspb.Message.getFieldWithDefault(msg, 3, 0) + targetRequests: jspb.Message.getFieldWithDefault(msg, 3, false), + targetResponses: jspb.Message.getFieldWithDefault(msg, 4, false) }; if (includeInstance) { @@ -5492,8 +5465,12 @@ proto.api.Authorizer.deserializeBinaryFromReader = function(msg, reader) { msg.setExpression(value); break; case 3: - var value = /** @type {!proto.api.AuthType} */ (reader.readEnum()); - msg.setType(value); + var value = /** @type {boolean} */ (reader.readBool()); + msg.setTargetRequests(value); + break; + case 4: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setTargetResponses(value); break; default: reader.skipField(); @@ -5538,13 +5515,20 @@ proto.api.Authorizer.serializeBinaryToWriter = function(message, writer) { f ); } - f = message.getType(); - if (f !== 0.0) { - writer.writeEnum( + f = message.getTargetRequests(); + if (f) { + writer.writeBool( 3, f ); } + f = message.getTargetResponses(); + if (f) { + writer.writeBool( + 4, + f + ); + } }; @@ -5579,17 +5563,36 @@ proto.api.Authorizer.prototype.setExpression = function(value) { /** - * optional AuthType type = 3; - * @return {!proto.api.AuthType} + * optional bool target_requests = 3; + * Note that Boolean fields may be set to 0/1 when serialized from a Java server. + * You should avoid comparisons like {@code val === true/false} in those cases. + * @return {boolean} */ -proto.api.Authorizer.prototype.getType = function() { - return /** @type {!proto.api.AuthType} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +proto.api.Authorizer.prototype.getTargetRequests = function() { + return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 3, false)); }; -/** @param {!proto.api.AuthType} value */ -proto.api.Authorizer.prototype.setType = function(value) { - jspb.Message.setProto3EnumField(this, 3, value); +/** @param {boolean} value */ +proto.api.Authorizer.prototype.setTargetRequests = function(value) { + jspb.Message.setProto3BooleanField(this, 3, value); +}; + + +/** + * optional bool target_responses = 4; + * Note that Boolean fields may be set to 0/1 when serialized from a Java server. + * You should avoid comparisons like {@code val === true/false} in those cases. + * @return {boolean} + */ +proto.api.Authorizer.prototype.getTargetResponses = function() { + return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 4, false)); +}; + + +/** @param {boolean} value */ +proto.api.Authorizer.prototype.setTargetResponses = function(value) { + jspb.Message.setProto3BooleanField(this, 4, value); }; @@ -9579,13 +9582,4 @@ proto.api.Aggregate = { PROD: 5 }; -/** - * @enum {number} - */ -proto.api.AuthType = { - REQUEST: 0, - VIEW_DOC: 1, - VIEW_CONNECTION: 2 -}; - goog.object.extend(exports, proto.api); diff --git a/gen/grpc/php/Api/AuthTarget.php b/gen/grpc/php/Api/AuthTarget.php index b97d827..e61bebb 100644 --- a/gen/grpc/php/Api/AuthTarget.php +++ b/gen/grpc/php/Api/AuthTarget.php @@ -13,28 +13,22 @@ */ class AuthTarget extends \Google\Protobuf\Internal\Message { - /** - * Generated from protobuf field .api.AuthType type = 1; - */ - private $type = 0; /** * method is the rpc method * - * Generated from protobuf field string method = 2 [(.validator.field) = { + * Generated from protobuf field string method = 3 [(.validator.field) = { */ private $method = ''; /** * user is the user making the request * - * Generated from protobuf field .api.Doc user = 3 [(.validator.field) = { + * Generated from protobuf field .api.Doc user = 4 [(.validator.field) = { */ private $user = null; /** - * request is the intercepted request - * - * Generated from protobuf field .google.protobuf.Struct data = 4; + * Generated from protobuf field .google.protobuf.Struct target = 5; */ - private $data = null; + private $target = null; /** * Constructor. @@ -42,13 +36,11 @@ class AuthTarget extends \Google\Protobuf\Internal\Message * @param array $data { * Optional. Data for populating the Message object. * - * @type int $type * @type string $method * method is the rpc method * @type \Api\Doc $user * user is the user making the request - * @type \Google\Protobuf\Struct $data - * request is the intercepted request + * @type \Google\Protobuf\Struct $target * } */ public function __construct($data = NULL) { @@ -56,32 +48,10 @@ public function __construct($data = NULL) { parent::__construct($data); } - /** - * Generated from protobuf field .api.AuthType type = 1; - * @return int - */ - public function getType() - { - return $this->type; - } - - /** - * Generated from protobuf field .api.AuthType type = 1; - * @param int $var - * @return $this - */ - public function setType($var) - { - GPBUtil::checkEnum($var, \Api\AuthType::class); - $this->type = $var; - - return $this; - } - /** * method is the rpc method * - * Generated from protobuf field string method = 2 [(.validator.field) = { + * Generated from protobuf field string method = 3 [(.validator.field) = { * @return string */ public function getMethod() @@ -92,7 +62,7 @@ public function getMethod() /** * method is the rpc method * - * Generated from protobuf field string method = 2 [(.validator.field) = { + * Generated from protobuf field string method = 3 [(.validator.field) = { * @param string $var * @return $this */ @@ -107,7 +77,7 @@ public function setMethod($var) /** * user is the user making the request * - * Generated from protobuf field .api.Doc user = 3 [(.validator.field) = { + * Generated from protobuf field .api.Doc user = 4 [(.validator.field) = { * @return \Api\Doc */ public function getUser() @@ -118,7 +88,7 @@ public function getUser() /** * user is the user making the request * - * Generated from protobuf field .api.Doc user = 3 [(.validator.field) = { + * Generated from protobuf field .api.Doc user = 4 [(.validator.field) = { * @param \Api\Doc $var * @return $this */ @@ -131,27 +101,23 @@ public function setUser($var) } /** - * request is the intercepted request - * - * Generated from protobuf field .google.protobuf.Struct data = 4; + * Generated from protobuf field .google.protobuf.Struct target = 5; * @return \Google\Protobuf\Struct */ - public function getData() + public function getTarget() { - return $this->data; + return $this->target; } /** - * request is the intercepted request - * - * Generated from protobuf field .google.protobuf.Struct data = 4; + * Generated from protobuf field .google.protobuf.Struct target = 5; * @param \Google\Protobuf\Struct $var * @return $this */ - public function setData($var) + public function setTarget($var) { GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); - $this->data = $var; + $this->target = $var; return $this; } diff --git a/gen/grpc/php/Api/AuthType.php b/gen/grpc/php/Api/AuthType.php index b4a8a0f..c392d1e 100644 --- a/gen/grpc/php/Api/AuthType.php +++ b/gen/grpc/php/Api/AuthType.php @@ -14,12 +14,8 @@ class AuthType */ const REQUEST = 0; /** - * Generated from protobuf enum VIEW_DOC = 1; + * Generated from protobuf enum RESPONSE = 1; */ - const VIEW_DOC = 1; - /** - * Generated from protobuf enum VIEW_CONNECTION = 2; - */ - const VIEW_CONNECTION = 2; + const RESPONSE = 1; } diff --git a/gen/grpc/php/Api/Authorizer.php b/gen/grpc/php/Api/Authorizer.php index f5a38d5..77048ea 100644 --- a/gen/grpc/php/Api/Authorizer.php +++ b/gen/grpc/php/Api/Authorizer.php @@ -22,9 +22,13 @@ class Authorizer extends \Google\Protobuf\Internal\Message */ private $expression = ''; /** - * Generated from protobuf field .api.AuthType type = 3; + * Generated from protobuf field bool target_requests = 3; */ - private $type = 0; + private $target_requests = false; + /** + * Generated from protobuf field bool target_responses = 4; + */ + private $target_responses = false; /** * Constructor. @@ -34,7 +38,8 @@ class Authorizer extends \Google\Protobuf\Internal\Message * * @type string $name * @type string $expression - * @type int $type + * @type bool $target_requests + * @type bool $target_responses * } */ public function __construct($data = NULL) { @@ -87,23 +92,45 @@ public function setExpression($var) } /** - * Generated from protobuf field .api.AuthType type = 3; - * @return int + * Generated from protobuf field bool target_requests = 3; + * @return bool + */ + public function getTargetRequests() + { + return $this->target_requests; + } + + /** + * Generated from protobuf field bool target_requests = 3; + * @param bool $var + * @return $this + */ + public function setTargetRequests($var) + { + GPBUtil::checkBool($var); + $this->target_requests = $var; + + return $this; + } + + /** + * Generated from protobuf field bool target_responses = 4; + * @return bool */ - public function getType() + public function getTargetResponses() { - return $this->type; + return $this->target_responses; } /** - * Generated from protobuf field .api.AuthType type = 3; - * @param int $var + * Generated from protobuf field bool target_responses = 4; + * @param bool $var * @return $this */ - public function setType($var) + public function setTargetResponses($var) { - GPBUtil::checkEnum($var, \Api\AuthType::class); - $this->type = $var; + GPBUtil::checkBool($var); + $this->target_responses = $var; return $this; } diff --git a/gen/grpc/php/GPBMetadata/Graphik.php b/gen/grpc/php/GPBMetadata/Graphik.php index c815efc..11750e2 100644 --- a/gen/grpc/php/GPBMetadata/Graphik.php +++ b/gen/grpc/php/GPBMetadata/Graphik.php @@ -20,7 +20,7 @@ public static function initOnce() { \GPBMetadata\Google\Protobuf\GPBEmpty::initOnce(); \GPBMetadata\GithubCom\Mwitkow\GoProtoValidators\Validator::initOnce(); $pool->internalAddGeneratedFile(hex2bin( - "0afb380a0d6772617068696b2e70726f746f12036170691a1f676f6f676c" . + "0aba380a0d6772617068696b2e70726f746f12036170691a1f676f6f676c" . "652f70726f746f6275662f74696d657374616d702e70726f746f1a19676f" . "6f676c652f70726f746f6275662f616e792e70726f746f1a1b676f6f676c" . "652f70726f746f6275662f656d7074792e70726f746f1a36676974687562" . @@ -116,154 +116,151 @@ public static function initOnce() { "651803200128094210e2df1f0c0a0a5e2e7b312c3232357d2412240a0a65" . "787072657373696f6e1804200128094210e2df1f0c0a0a5e2e7b312c3232" . "357d24120c0a04646f637318062001280812130a0b636f6e6e656374696f" . - "6e731807200128082292010a0a41757468546172676574121b0a04747970" . - "6518012001280e320d2e6170692e417574685479706512200a066d657468" . - "6f641802200128094210e2df1f0c0a0a5e2e7b312c3232357d24121e0a04" . - "7573657218032001280b32082e6170692e446f634206e2df1f0220011225" . - "0a046461746118042001280b32172e676f6f676c652e70726f746f627566" . - "2e537472756374226f0a0a417574686f72697a6572121e0a046e616d6518" . - "01200128094210e2df1f0c0a0a5e2e7b312c3232357d2412240a0a657870" . - "72657373696f6e1802200128094210e2df1f0c0a0a5e2e7b312c3232357d" . - "24121b0a047479706518032001280e320d2e6170692e4175746854797065" . - "22330a0b417574686f72697a65727312240a0b617574686f72697a657273" . - "18012003280b320f2e6170692e417574686f72697a65722299010a0d5479" . - "706556616c696461746f72121e0a046e616d651801200128094210e2df1f" . - "0c0a0a5e2e7b312c3232357d24121f0a0567747970651802200128094210" . - "e2df1f0c0a0a5e2e7b312c3232357d2412240a0a65787072657373696f6e" . - "1803200128094210e2df1f0c0a0a5e2e7b312c3232357d24120c0a04646f" . - "637318042001280812130a0b636f6e6e656374696f6e7318052001280822" . - "380a0e5479706556616c696461746f727312260a0a76616c696461746f72" . - "7318012003280b32122e6170692e5479706556616c696461746f72229101" . - "0a05496e646578121e0a046e616d651801200128094210e2df1f0c0a0a5e" . - "2e7b312c3232357d24121f0a0567747970651803200128094210e2df1f0c" . - "0a0a5e2e7b312c3232357d2412240a0a65787072657373696f6e18042001" . - "28094210e2df1f0c0a0a5e2e7b312c3232357d24120c0a04646f63731806" . - "2001280812130a0b636f6e6e656374696f6e7318072001280822260a0749" . - "6e6465786573121b0a07696e646578657318012003280b320a2e6170692e" . - "496e64657822450a0c53747265616d46696c74657212210a076368616e6e" . - "656c1801200128094210e2df1f0c0a0a5e2e7b312c3232357d2412120a0a" . - "65787072657373696f6e18022001280922470a05477261706812170a0464" . - "6f637318012001280b32092e6170692e446f637312250a0b636f6e6e6563" . - "74696f6e7318022001280b32102e6170692e436f6e6e656374696f6e7322" . - "c4020a05466c61677312190a116f70656e5f69645f646973636f76657279" . - "18012001280912140a0c73746f726167655f70617468180220012809120f" . - "0a076d65747269637318032001280812150a0d616c6c6f775f6865616465" . - "727318052003280912150a0d616c6c6f775f6d6574686f64731806200328" . - "0912150a0d616c6c6f775f6f726967696e7318072003280912120a0a726f" . - "6f745f757365727318082003280912100a08746c735f6365727418092001" . - "2809120f0a07746c735f6b6579180a20012809121c0a14706c617967726f" . - "756e645f636c69656e745f6964180b2001280912200a18706c617967726f" . - "756e645f636c69656e745f736563726574180c20012809121b0a13706c61" . - "7967726f756e645f7265646972656374180d2001280912200a18706c6179" . - "67726f756e645f73657373696f6e5f73746f7265180e2001280922180a07" . - "426f6f6c65616e120d0a0576616c756518012001280822170a064e756d62" . - "6572120d0a0576616c75651801200128012283010a0c4578697374734669" . - "6c746572121f0a0567747970651801200128094210e2df1f0c0a0a5e2e7b" . - "312c3232357d2412240a0a65787072657373696f6e1802200128094210e2" . - "df1f0c0a0a5e2e7b312c3232357d24120c0a047365656b18032001280912" . - "0f0a0772657665727365180420012808120d0a05696e6465781805200128" . - "0922520a0445646974121d0a0372656618012001280b32082e6170692e52" . - "65664206e2df1f022001122b0a0a6174747269627574657318022001280b" . - "32172e676f6f676c652e70726f746f6275662e53747275637422560a0a45" . - "64697446696c746572121b0a0666696c74657218012001280b320b2e6170" . - "692e46696c746572122b0a0a6174747269627574657318022001280b3217" . - "2e676f6f676c652e70726f746f6275662e53747275637422170a04506f6e" . - "67120f0a076d65737361676518012001280922630a0f4f7574626f756e64" . - "4d65737361676512210a076368616e6e656c1801200128094210e2df1f0c" . - "0a0a5e2e7b312c3232357d24122d0a046461746118022001280b32172e67" . - "6f6f676c652e70726f746f6275662e5374727563744206e2df1f02200122" . - "d4010a074d65737361676512210a076368616e6e656c1801200128094210" . - "e2df1f0c0a0a5e2e7b312c3232357d24122d0a046461746118022001280b" . - "32172e676f6f676c652e70726f746f6275662e5374727563744206e2df1f" . - "022001121e0a047573657218032001280b32082e6170692e5265664206e2" . - "df1f02200112350a0974696d657374616d7018042001280b321a2e676f6f" . - "676c652e70726f746f6275662e54696d657374616d704206e2df1f022001" . - "12200a066d6574686f641805200128094210e2df1f0c0a0a5e2e7b312c32" . - "32357d2422a4010a06536368656d6112180a10636f6e6e656374696f6e5f" . - "747970657318012003280912110a09646f635f7479706573180220032809" . - "12250a0b617574686f72697a65727318032001280b32102e6170692e4175" . - "74686f72697a65727312270a0a76616c696461746f727318042001280b32" . - "132e6170692e5479706556616c696461746f7273121d0a07696e64657865" . - "7318052001280b320c2e6170692e496e646578657322200a0a4578707246" . - "696c74657212120a0a65787072657373696f6e1801200128092a1d0a0941" . - "6c676f726974686d12070a03424653100012070a0344465310012a440a09" . - "41676772656761746512090a05434f554e54100012070a0353554d100112" . - "070a03415647100212070a034d4158100312070a034d494e100412080a04" . - "50524f4410052a3a0a084175746854797065120b0a075245515545535410" . - "00120c0a08564945575f444f43100112130a0f564945575f434f4e4e4543" . - "54494f4e100232da100a0f446174616261736553657276696365122b0a04" . - "50696e6712162e676f6f676c652e70726f746f6275662e456d7074791a09" . - "2e6170692e506f6e67220012320a09476574536368656d6112162e676f6f" . - "676c652e70726f746f6275662e456d7074791a0b2e6170692e536368656d" . - "612200123c0a0e536574417574686f72697a65727312102e6170692e4175" . - "74686f72697a6572731a162e676f6f676c652e70726f746f6275662e456d" . - "707479220012340a0a536574496e6465786573120c2e6170692e496e6465" . - "7865731a162e676f6f676c652e70726f746f6275662e456d707479220012" . - "420a115365745479706556616c696461746f727312132e6170692e547970" . - "6556616c696461746f72731a162e676f6f676c652e70726f746f6275662e" . - "456d707479220012280a024d6512162e676f6f676c652e70726f746f6275" . - "662e456d7074791a082e6170692e446f632200122c0a0943726561746544" . - "6f6312132e6170692e446f63436f6e7374727563746f721a082e6170692e" . - "446f632200122f0a0a437265617465446f637312142e6170692e446f6343" . - "6f6e7374727563746f72731a092e6170692e446f63732200121e0a064765" . - "74446f6312082e6170692e5265661a082e6170692e446f63220012260a0a" . - "536561726368446f6373120b2e6170692e46696c7465721a092e6170692e" . - "446f6373220012320a08547261766572736512132e6170692e5472617665" . - "72736546696c7465721a0f2e6170692e54726176657273616c7322001236" . - "0a0a54726176657273654d6512152e6170692e54726176657273654d6546" . - "696c7465721a0f2e6170692e54726176657273616c73220012200a074564" . - "6974446f6312092e6170692e456469741a082e6170692e446f6322001228" . - "0a0845646974446f6373120f2e6170692e4564697446696c7465721a092e" . - "6170692e446f63732200122c0a0644656c446f6312082e6170692e526566" . - "1a162e676f6f676c652e70726f746f6275662e456d707479220012300a07" . - "44656c446f6373120b2e6170692e46696c7465721a162e676f6f676c652e" . - "70726f746f6275662e456d7074792200122e0a09457869737473446f6312" . - "112e6170692e45786973747346696c7465721a0c2e6170692e426f6f6c65" . - "616e220012350a10457869737473436f6e6e656374696f6e12112e617069" . + "6e7318072001280822770a0a4175746854617267657412200a066d657468" . + "6f641803200128094210e2df1f0c0a0a5e2e7b312c3232357d24121e0a04" . + "7573657218042001280b32082e6170692e446f634206e2df1f0220011227" . + "0a0674617267657418052001280b32172e676f6f676c652e70726f746f62" . + "75662e5374727563742285010a0a417574686f72697a6572121e0a046e61" . + "6d651801200128094210e2df1f0c0a0a5e2e7b312c3232357d2412240a0a" . + "65787072657373696f6e1802200128094210e2df1f0c0a0a5e2e7b312c32" . + "32357d2412170a0f7461726765745f726571756573747318032001280812" . + "180a107461726765745f726573706f6e73657318042001280822330a0b41" . + "7574686f72697a65727312240a0b617574686f72697a6572731801200328" . + "0b320f2e6170692e417574686f72697a65722299010a0d5479706556616c" . + "696461746f72121e0a046e616d651801200128094210e2df1f0c0a0a5e2e" . + "7b312c3232357d24121f0a0567747970651802200128094210e2df1f0c0a" . + "0a5e2e7b312c3232357d2412240a0a65787072657373696f6e1803200128" . + "094210e2df1f0c0a0a5e2e7b312c3232357d24120c0a04646f6373180420" . + "01280812130a0b636f6e6e656374696f6e7318052001280822380a0e5479" . + "706556616c696461746f727312260a0a76616c696461746f727318012003" . + "280b32122e6170692e5479706556616c696461746f722291010a05496e64" . + "6578121e0a046e616d651801200128094210e2df1f0c0a0a5e2e7b312c32" . + "32357d24121f0a0567747970651803200128094210e2df1f0c0a0a5e2e7b" . + "312c3232357d2412240a0a65787072657373696f6e1804200128094210e2" . + "df1f0c0a0a5e2e7b312c3232357d24120c0a04646f637318062001280812" . + "130a0b636f6e6e656374696f6e7318072001280822260a07496e64657865" . + "73121b0a07696e646578657318012003280b320a2e6170692e496e646578" . + "22450a0c53747265616d46696c74657212210a076368616e6e656c180120" . + "0128094210e2df1f0c0a0a5e2e7b312c3232357d2412120a0a6578707265" . + "7373696f6e18022001280922470a05477261706812170a04646f63731801" . + "2001280b32092e6170692e446f637312250a0b636f6e6e656374696f6e73" . + "18022001280b32102e6170692e436f6e6e656374696f6e7322c4020a0546" . + "6c61677312190a116f70656e5f69645f646973636f766572791801200128" . + "0912140a0c73746f726167655f70617468180220012809120f0a076d6574" . + "7269637318032001280812150a0d616c6c6f775f68656164657273180520" . + "03280912150a0d616c6c6f775f6d6574686f647318062003280912150a0d" . + "616c6c6f775f6f726967696e7318072003280912120a0a726f6f745f7573" . + "65727318082003280912100a08746c735f63657274180920012809120f0a" . + "07746c735f6b6579180a20012809121c0a14706c617967726f756e645f63" . + "6c69656e745f6964180b2001280912200a18706c617967726f756e645f63" . + "6c69656e745f736563726574180c20012809121b0a13706c617967726f75" . + "6e645f7265646972656374180d2001280912200a18706c617967726f756e" . + "645f73657373696f6e5f73746f7265180e2001280922180a07426f6f6c65" . + "616e120d0a0576616c756518012001280822170a064e756d626572120d0a" . + "0576616c75651801200128012283010a0c45786973747346696c74657212" . + "1f0a0567747970651801200128094210e2df1f0c0a0a5e2e7b312c323235" . + "7d2412240a0a65787072657373696f6e1802200128094210e2df1f0c0a0a" . + "5e2e7b312c3232357d24120c0a047365656b180320012809120f0a077265" . + "7665727365180420012808120d0a05696e64657818052001280922520a04" . + "45646974121d0a0372656618012001280b32082e6170692e5265664206e2" . + "df1f022001122b0a0a6174747269627574657318022001280b32172e676f" . + "6f676c652e70726f746f6275662e53747275637422560a0a456469744669" . + "6c746572121b0a0666696c74657218012001280b320b2e6170692e46696c" . + "746572122b0a0a6174747269627574657318022001280b32172e676f6f67" . + "6c652e70726f746f6275662e53747275637422170a04506f6e67120f0a07" . + "6d65737361676518012001280922630a0f4f7574626f756e644d65737361" . + "676512210a076368616e6e656c1801200128094210e2df1f0c0a0a5e2e7b" . + "312c3232357d24122d0a046461746118022001280b32172e676f6f676c65" . + "2e70726f746f6275662e5374727563744206e2df1f02200122d4010a074d" . + "65737361676512210a076368616e6e656c1801200128094210e2df1f0c0a" . + "0a5e2e7b312c3232357d24122d0a046461746118022001280b32172e676f" . + "6f676c652e70726f746f6275662e5374727563744206e2df1f022001121e" . + "0a047573657218032001280b32082e6170692e5265664206e2df1f022001" . + "12350a0974696d657374616d7018042001280b321a2e676f6f676c652e70" . + "726f746f6275662e54696d657374616d704206e2df1f02200112200a066d" . + "6574686f641805200128094210e2df1f0c0a0a5e2e7b312c3232357d2422" . + "a4010a06536368656d6112180a10636f6e6e656374696f6e5f7479706573" . + "18012003280912110a09646f635f747970657318022003280912250a0b61" . + "7574686f72697a65727318032001280b32102e6170692e417574686f7269" . + "7a65727312270a0a76616c696461746f727318042001280b32132e617069" . + "2e5479706556616c696461746f7273121d0a07696e646578657318052001" . + "280b320c2e6170692e496e646578657322200a0a4578707246696c746572" . + "12120a0a65787072657373696f6e1801200128092a1d0a09416c676f7269" . + "74686d12070a03424653100012070a0344465310012a440a094167677265" . + "6761746512090a05434f554e54100012070a0353554d100112070a034156" . + "47100212070a034d4158100312070a034d494e100412080a0450524f4410" . + "0532da100a0f446174616261736553657276696365122b0a0450696e6712" . + "162e676f6f676c652e70726f746f6275662e456d7074791a092e6170692e" . + "506f6e67220012320a09476574536368656d6112162e676f6f676c652e70" . + "726f746f6275662e456d7074791a0b2e6170692e536368656d612200123c" . + "0a0e536574417574686f72697a65727312102e6170692e417574686f7269" . + "7a6572731a162e676f6f676c652e70726f746f6275662e456d7074792200" . + "12340a0a536574496e6465786573120c2e6170692e496e64657865731a16" . + "2e676f6f676c652e70726f746f6275662e456d707479220012420a115365" . + "745479706556616c696461746f727312132e6170692e5479706556616c69" . + "6461746f72731a162e676f6f676c652e70726f746f6275662e456d707479" . + "220012280a024d6512162e676f6f676c652e70726f746f6275662e456d70" . + "74791a082e6170692e446f632200122c0a09437265617465446f6312132e" . + "6170692e446f63436f6e7374727563746f721a082e6170692e446f632200" . + "122f0a0a437265617465446f637312142e6170692e446f63436f6e737472" . + "7563746f72731a092e6170692e446f63732200121e0a06476574446f6312" . + "082e6170692e5265661a082e6170692e446f63220012260a0a5365617263" . + "68446f6373120b2e6170692e46696c7465721a092e6170692e446f637322" . + "0012320a08547261766572736512132e6170692e54726176657273654669" . + "6c7465721a0f2e6170692e54726176657273616c73220012360a0a547261" . + "76657273654d6512152e6170692e54726176657273654d6546696c746572" . + "1a0f2e6170692e54726176657273616c73220012200a0745646974446f63" . + "12092e6170692e456469741a082e6170692e446f63220012280a08456469" . + "74446f6373120f2e6170692e4564697446696c7465721a092e6170692e44" . + "6f63732200122c0a0644656c446f6312082e6170692e5265661a162e676f" . + "6f676c652e70726f746f6275662e456d707479220012300a0744656c446f" . + "6373120b2e6170692e46696c7465721a162e676f6f676c652e70726f746f" . + "6275662e456d7074792200122e0a09457869737473446f6312112e617069" . "2e45786973747346696c7465721a0c2e6170692e426f6f6c65616e220012" . - "220a06486173446f6312082e6170692e5265661a0c2e6170692e426f6f6c" . - "65616e220012290a0d486173436f6e6e656374696f6e12082e6170692e52" . - "65661a0c2e6170692e426f6f6c65616e220012410a10437265617465436f" . - "6e6e656374696f6e121a2e6170692e436f6e6e656374696f6e436f6e7374" . - "727563746f721a0f2e6170692e436f6e6e656374696f6e220012440a1143" . - "7265617465436f6e6e656374696f6e73121b2e6170692e436f6e6e656374" . - "696f6e436f6e7374727563746f72731a102e6170692e436f6e6e65637469" . - "6f6e73220012400a10536561726368416e64436f6e6e65637412182e6170" . - "692e536561726368436f6e6e65637446696c7465721a102e6170692e436f" . - "6e6e656374696f6e73220012440a12536561726368416e64436f6e6e6563" . - "744d65121a2e6170692e536561726368436f6e6e6563744d6546696c7465" . - "721a102e6170692e436f6e6e656374696f6e732200122c0a0d476574436f" . - "6e6e656374696f6e12082e6170692e5265661a0f2e6170692e436f6e6e65" . - "6374696f6e220012340a11536561726368436f6e6e656374696f6e73120b" . - "2e6170692e46696c7465721a102e6170692e436f6e6e656374696f6e7322" . - "00122e0a0e45646974436f6e6e656374696f6e12092e6170692e45646974" . - "1a0f2e6170692e436f6e6e656374696f6e220012360a0f45646974436f6e" . - "6e656374696f6e73120f2e6170692e4564697446696c7465721a102e6170" . - "692e436f6e6e656374696f6e73220012330a0d44656c436f6e6e65637469" . - "6f6e12082e6170692e5265661a162e676f6f676c652e70726f746f627566" . - "2e456d707479220012370a0e44656c436f6e6e656374696f6e73120b2e61" . - "70692e46696c7465721a162e676f6f676c652e70726f746f6275662e456d" . - "707479220012390a0f436f6e6e656374696f6e7346726f6d12122e617069" . - "2e436f6e6e65637446696c7465721a102e6170692e436f6e6e656374696f" . - "6e73220012370a0d436f6e6e656374696f6e73546f12122e6170692e436f" . - "6e6e65637446696c7465721a102e6170692e436f6e6e656374696f6e7322" . - "00122e0a0d416767726567617465446f6373120e2e6170692e4167674669" . - "6c7465721a0b2e6170692e4e756d626572220012350a1441676772656761" . - "7465436f6e6e656374696f6e73120e2e6170692e41676746696c7465721a" . - "0b2e6170692e4e756d6265722200123b0a0942726f61646361737412142e" . - "6170692e4f7574626f756e644d6573736167651a162e676f6f676c652e70" . - "726f746f6275662e456d7074792200122d0a0653747265616d12112e6170" . - "692e53747265616d46696c7465721a0c2e6170692e4d6573736167652200" . - "3001123a0a1350757368446f63436f6e7374727563746f727312132e6170" . - "692e446f63436f6e7374727563746f721a082e6170692e446f6322002801" . - "3001124f0a1a50757368436f6e6e656374696f6e436f6e7374727563746f" . - "7273121a2e6170692e436f6e6e656374696f6e436f6e7374727563746f72" . - "1a0f2e6170692e436f6e6e656374696f6e22002801300112300a08536565" . - "64446f637312082e6170692e446f631a162e676f6f676c652e70726f746f" . - "6275662e456d70747922002801123e0a0f53656564436f6e6e656374696f" . - "6e73120f2e6170692e436f6e6e656374696f6e1a162e676f6f676c652e70" . - "726f746f6275662e456d7074792200280142075a05617069706262067072" . - "6f746f33" + "350a10457869737473436f6e6e656374696f6e12112e6170692e45786973" . + "747346696c7465721a0c2e6170692e426f6f6c65616e220012220a064861" . + "73446f6312082e6170692e5265661a0c2e6170692e426f6f6c65616e2200" . + "12290a0d486173436f6e6e656374696f6e12082e6170692e5265661a0c2e" . + "6170692e426f6f6c65616e220012410a10437265617465436f6e6e656374" . + "696f6e121a2e6170692e436f6e6e656374696f6e436f6e7374727563746f" . + "721a0f2e6170692e436f6e6e656374696f6e220012440a11437265617465" . + "436f6e6e656374696f6e73121b2e6170692e436f6e6e656374696f6e436f" . + "6e7374727563746f72731a102e6170692e436f6e6e656374696f6e732200" . + "12400a10536561726368416e64436f6e6e65637412182e6170692e536561" . + "726368436f6e6e65637446696c7465721a102e6170692e436f6e6e656374" . + "696f6e73220012440a12536561726368416e64436f6e6e6563744d65121a" . + "2e6170692e536561726368436f6e6e6563744d6546696c7465721a102e61" . + "70692e436f6e6e656374696f6e732200122c0a0d476574436f6e6e656374" . + "696f6e12082e6170692e5265661a0f2e6170692e436f6e6e656374696f6e" . + "220012340a11536561726368436f6e6e656374696f6e73120b2e6170692e" . + "46696c7465721a102e6170692e436f6e6e656374696f6e732200122e0a0e" . + "45646974436f6e6e656374696f6e12092e6170692e456469741a0f2e6170" . + "692e436f6e6e656374696f6e220012360a0f45646974436f6e6e65637469" . + "6f6e73120f2e6170692e4564697446696c7465721a102e6170692e436f6e" . + "6e656374696f6e73220012330a0d44656c436f6e6e656374696f6e12082e" . + "6170692e5265661a162e676f6f676c652e70726f746f6275662e456d7074" . + "79220012370a0e44656c436f6e6e656374696f6e73120b2e6170692e4669" . + "6c7465721a162e676f6f676c652e70726f746f6275662e456d7074792200" . + "12390a0f436f6e6e656374696f6e7346726f6d12122e6170692e436f6e6e" . + "65637446696c7465721a102e6170692e436f6e6e656374696f6e73220012" . + "370a0d436f6e6e656374696f6e73546f12122e6170692e436f6e6e656374" . + "46696c7465721a102e6170692e436f6e6e656374696f6e732200122e0a0d" . + "416767726567617465446f6373120e2e6170692e41676746696c7465721a" . + "0b2e6170692e4e756d626572220012350a14416767726567617465436f6e" . + "6e656374696f6e73120e2e6170692e41676746696c7465721a0b2e617069" . + "2e4e756d6265722200123b0a0942726f61646361737412142e6170692e4f" . + "7574626f756e644d6573736167651a162e676f6f676c652e70726f746f62" . + "75662e456d7074792200122d0a0653747265616d12112e6170692e537472" . + "65616d46696c7465721a0c2e6170692e4d65737361676522003001123a0a" . + "1350757368446f63436f6e7374727563746f727312132e6170692e446f63" . + "436f6e7374727563746f721a082e6170692e446f63220028013001124f0a" . + "1a50757368436f6e6e656374696f6e436f6e7374727563746f7273121a2e" . + "6170692e436f6e6e656374696f6e436f6e7374727563746f721a0f2e6170" . + "692e436f6e6e656374696f6e22002801300112300a0853656564446f6373" . + "12082e6170692e446f631a162e676f6f676c652e70726f746f6275662e45" . + "6d70747922002801123e0a0f53656564436f6e6e656374696f6e73120f2e" . + "6170692e436f6e6e656374696f6e1a162e676f6f676c652e70726f746f62" . + "75662e456d7074792200280142075a056170697062620670726f746f33" )); static::$is_initialized = true; diff --git a/gen/grpc/python/graphik_pb2.py b/gen/grpc/python/graphik_pb2.py index 3108aaa..7f7d549 100644 --- a/gen/grpc/python/graphik_pb2.py +++ b/gen/grpc/python/graphik_pb2.py @@ -25,7 +25,7 @@ package='api', syntax='proto3', serialized_options=_b('Z\005apipb'), - serialized_pb=_b('\n\rgraphik.proto\x12\x03\x61pi\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x19google/protobuf/any.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x36github.com/mwitkow/go-proto-validators/validator.proto\"E\n\x03Ref\x12\x1f\n\x05gtype\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x1d\n\x03gid\x18\x02 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\">\n\x0eRefConstructor\x12\x1f\n\x05gtype\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x0b\n\x03gid\x18\x02 \x01(\t\"\x1e\n\x04Refs\x12\x16\n\x04refs\x18\x01 \x03(\x0b\x32\x08.api.Ref\"Q\n\x03\x44oc\x12\x1d\n\x03ref\x18\x01 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\x12+\n\nattributes\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\"g\n\x0e\x44ocConstructor\x12(\n\x03ref\x18\x01 \x01(\x0b\x32\x13.api.RefConstructorB\x06\xe2\xdf\x1f\x02 \x01\x12+\n\nattributes\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\"4\n\x0f\x44ocConstructors\x12!\n\x04\x64ocs\x18\x01 \x03(\x0b\x32\x13.api.DocConstructor\"a\n\tTraversal\x12\x15\n\x03\x64oc\x18\x01 \x01(\x0b\x32\x08.api.Doc\x12 \n\x0etraversal_path\x18\x02 \x03(\x0b\x32\x08.api.Ref\x12\r\n\x05\x64\x65pth\x18\x03 \x01(\x04\x12\x0c\n\x04hops\x18\x04 \x01(\x04\"0\n\nTraversals\x12\"\n\ntraversals\x18\x01 \x03(\x0b\x32\x0e.api.Traversal\"1\n\x04\x44ocs\x12\x16\n\x04\x64ocs\x18\x01 \x03(\x0b\x32\x08.api.Doc\x12\x11\n\tseek_next\x18\x02 \x01(\t\"\xa8\x01\n\nConnection\x12\x1d\n\x03ref\x18\x01 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\x12+\n\nattributes\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x10\n\x08\x64irected\x18\x03 \x01(\x08\x12\x1e\n\x04\x66rom\x18\x04 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\x12\x1c\n\x02to\x18\x05 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\"\xbe\x01\n\x15\x43onnectionConstructor\x12(\n\x03ref\x18\x01 \x01(\x0b\x32\x13.api.RefConstructorB\x06\xe2\xdf\x1f\x02 \x01\x12+\n\nattributes\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x10\n\x08\x64irected\x18\x04 \x01(\x08\x12\x1e\n\x04\x66rom\x18\x05 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\x12\x1c\n\x02to\x18\x06 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\"\xa0\x01\n\x13SearchConnectFilter\x12\x1b\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x0b.api.Filter\x12\r\n\x05gtype\x18\x02 \x01(\t\x12+\n\nattributes\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x10\n\x08\x64irected\x18\x04 \x01(\x08\x12\x1e\n\x04\x66rom\x18\x05 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\"\x82\x01\n\x15SearchConnectMeFilter\x12\x1b\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x0b.api.Filter\x12\r\n\x05gtype\x18\x02 \x01(\t\x12+\n\nattributes\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x10\n\x08\x64irected\x18\x04 \x01(\x08\"I\n\x16\x43onnectionConstructors\x12/\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32\x1a.api.ConnectionConstructor\"F\n\x0b\x43onnections\x12$\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32\x0f.api.Connection\x12\x11\n\tseek_next\x18\x02 \x01(\t\"\xe2\x01\n\rConnectFilter\x12!\n\x07\x64oc_ref\x18\x01 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\x12\x1f\n\x05gtype\x18\x02 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x12\n\nexpression\x18\x03 \x01(\t\x12\x15\n\x05limit\x18\x04 \x01(\x04\x42\x06\xe2\xdf\x1f\x02\x10\x00\x12\x43\n\x04sort\x18\x05 \x01(\tB5\xe2\xdf\x1f\x31\n/((^|, )(|ref.gid|ref.gtype|^attributes.(.*)))+$\x12\x0c\n\x04seek\x18\x06 \x01(\t\x12\x0f\n\x07reverse\x18\x07 \x01(\x08\"\xc7\x01\n\x06\x46ilter\x12\x1f\n\x05gtype\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x12\n\nexpression\x18\x02 \x01(\t\x12\x15\n\x05limit\x18\x03 \x01(\x04\x42\x06\xe2\xdf\x1f\x02\x10\x00\x12\x43\n\x04sort\x18\x04 \x01(\tB5\xe2\xdf\x1f\x31\n/((^|, )(|ref.gid|ref.gtype|^attributes.(.*)))+$\x12\x0c\n\x04seek\x18\x05 \x01(\t\x12\x0f\n\x07reverse\x18\x06 \x01(\x08\x12\r\n\x05index\x18\x07 \x01(\t\"\x87\x01\n\tAggFilter\x12#\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x0b.api.FilterB\x06\xe2\xdf\x1f\x02 \x01\x12!\n\taggregate\x18\x02 \x01(\x0e\x32\x0e.api.Aggregate\x12\x32\n\x05\x66ield\x18\x03 \x01(\tB#\xe2\xdf\x1f\x1f\n\x1d((^|, )(|^attributes.(.*)))+$\"\xac\x02\n\x0eTraverseFilter\x12\x1e\n\x04root\x18\x01 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\x12\x16\n\x0e\x64oc_expression\x18\x02 \x01(\t\x12\x1d\n\x15\x63onnection_expression\x18\x03 \x01(\t\x12\x15\n\x05limit\x18\x04 \x01(\x04\x42\x06\xe2\xdf\x1f\x02\x10\x00\x12\x43\n\x04sort\x18\x05 \x01(\tB5\xe2\xdf\x1f\x31\n/((^|, )(|ref.gid|ref.gtype|^attributes.(.*)))+$\x12\x0f\n\x07reverse\x18\x06 \x01(\x08\x12!\n\talgorithm\x18\x07 \x01(\x0e\x32\x0e.api.Algorithm\x12\x19\n\tmax_depth\x18\x08 \x01(\x04\x42\x06\xe2\xdf\x1f\x02\x10\x00\x12\x18\n\x08max_hops\x18\t \x01(\x04\x42\x06\xe2\xdf\x1f\x02\x10\x00\"\x8e\x02\n\x10TraverseMeFilter\x12\x16\n\x0e\x64oc_expression\x18\x01 \x01(\t\x12\x1d\n\x15\x63onnection_expression\x18\x02 \x01(\t\x12\x15\n\x05limit\x18\x03 \x01(\x04\x42\x06\xe2\xdf\x1f\x02\x10\x00\x12\x43\n\x04sort\x18\x04 \x01(\tB5\xe2\xdf\x1f\x31\n/((^|, )(|ref.gid|ref.gtype|^attributes.(.*)))+$\x12\x0f\n\x07reverse\x18\x05 \x01(\x08\x12!\n\talgorithm\x18\x06 \x01(\x0e\x32\x0e.api.Algorithm\x12\x19\n\tmax_depth\x18\x07 \x01(\x04\x42\x06\xe2\xdf\x1f\x02\x10\x00\x12\x18\n\x08max_hops\x18\x08 \x01(\x04\x42\x06\xe2\xdf\x1f\x02\x10\x00\"\x9c\x01\n\x10IndexConstructor\x12\x1e\n\x04name\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x1f\n\x05gtype\x18\x03 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12$\n\nexpression\x18\x04 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x0c\n\x04\x64ocs\x18\x06 \x01(\x08\x12\x13\n\x0b\x63onnections\x18\x07 \x01(\x08\"\x92\x01\n\nAuthTarget\x12\x1b\n\x04type\x18\x01 \x01(\x0e\x32\r.api.AuthType\x12 \n\x06method\x18\x02 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x1e\n\x04user\x18\x03 \x01(\x0b\x32\x08.api.DocB\x06\xe2\xdf\x1f\x02 \x01\x12%\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\"o\n\nAuthorizer\x12\x1e\n\x04name\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12$\n\nexpression\x18\x02 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x1b\n\x04type\x18\x03 \x01(\x0e\x32\r.api.AuthType\"3\n\x0b\x41uthorizers\x12$\n\x0b\x61uthorizers\x18\x01 \x03(\x0b\x32\x0f.api.Authorizer\"\x99\x01\n\rTypeValidator\x12\x1e\n\x04name\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x1f\n\x05gtype\x18\x02 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12$\n\nexpression\x18\x03 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x0c\n\x04\x64ocs\x18\x04 \x01(\x08\x12\x13\n\x0b\x63onnections\x18\x05 \x01(\x08\"8\n\x0eTypeValidators\x12&\n\nvalidators\x18\x01 \x03(\x0b\x32\x12.api.TypeValidator\"\x91\x01\n\x05Index\x12\x1e\n\x04name\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x1f\n\x05gtype\x18\x03 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12$\n\nexpression\x18\x04 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x0c\n\x04\x64ocs\x18\x06 \x01(\x08\x12\x13\n\x0b\x63onnections\x18\x07 \x01(\x08\"&\n\x07Indexes\x12\x1b\n\x07indexes\x18\x01 \x03(\x0b\x32\n.api.Index\"E\n\x0cStreamFilter\x12!\n\x07\x63hannel\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x12\n\nexpression\x18\x02 \x01(\t\"G\n\x05Graph\x12\x17\n\x04\x64ocs\x18\x01 \x01(\x0b\x32\t.api.Docs\x12%\n\x0b\x63onnections\x18\x02 \x01(\x0b\x32\x10.api.Connections\"\xc4\x02\n\x05\x46lags\x12\x19\n\x11open_id_discovery\x18\x01 \x01(\t\x12\x14\n\x0cstorage_path\x18\x02 \x01(\t\x12\x0f\n\x07metrics\x18\x03 \x01(\x08\x12\x15\n\rallow_headers\x18\x05 \x03(\t\x12\x15\n\rallow_methods\x18\x06 \x03(\t\x12\x15\n\rallow_origins\x18\x07 \x03(\t\x12\x12\n\nroot_users\x18\x08 \x03(\t\x12\x10\n\x08tls_cert\x18\t \x01(\t\x12\x0f\n\x07tls_key\x18\n \x01(\t\x12\x1c\n\x14playground_client_id\x18\x0b \x01(\t\x12 \n\x18playground_client_secret\x18\x0c \x01(\t\x12\x1b\n\x13playground_redirect\x18\r \x01(\t\x12 \n\x18playground_session_store\x18\x0e \x01(\t\"\x18\n\x07\x42oolean\x12\r\n\x05value\x18\x01 \x01(\x08\"\x17\n\x06Number\x12\r\n\x05value\x18\x01 \x01(\x01\"\x83\x01\n\x0c\x45xistsFilter\x12\x1f\n\x05gtype\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12$\n\nexpression\x18\x02 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x0c\n\x04seek\x18\x03 \x01(\t\x12\x0f\n\x07reverse\x18\x04 \x01(\x08\x12\r\n\x05index\x18\x05 \x01(\t\"R\n\x04\x45\x64it\x12\x1d\n\x03ref\x18\x01 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\x12+\n\nattributes\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\"V\n\nEditFilter\x12\x1b\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x0b.api.Filter\x12+\n\nattributes\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\"\x17\n\x04Pong\x12\x0f\n\x07message\x18\x01 \x01(\t\"c\n\x0fOutboundMessage\x12!\n\x07\x63hannel\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructB\x06\xe2\xdf\x1f\x02 \x01\"\xd4\x01\n\x07Message\x12!\n\x07\x63hannel\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructB\x06\xe2\xdf\x1f\x02 \x01\x12\x1e\n\x04user\x18\x03 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\x12\x35\n\ttimestamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xe2\xdf\x1f\x02 \x01\x12 \n\x06method\x18\x05 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\"\xa4\x01\n\x06Schema\x12\x18\n\x10\x63onnection_types\x18\x01 \x03(\t\x12\x11\n\tdoc_types\x18\x02 \x03(\t\x12%\n\x0b\x61uthorizers\x18\x03 \x01(\x0b\x32\x10.api.Authorizers\x12\'\n\nvalidators\x18\x04 \x01(\x0b\x32\x13.api.TypeValidators\x12\x1d\n\x07indexes\x18\x05 \x01(\x0b\x32\x0c.api.Indexes\" \n\nExprFilter\x12\x12\n\nexpression\x18\x01 \x01(\t*\x1d\n\tAlgorithm\x12\x07\n\x03\x42\x46S\x10\x00\x12\x07\n\x03\x44\x46S\x10\x01*D\n\tAggregate\x12\t\n\x05\x43OUNT\x10\x00\x12\x07\n\x03SUM\x10\x01\x12\x07\n\x03\x41VG\x10\x02\x12\x07\n\x03MAX\x10\x03\x12\x07\n\x03MIN\x10\x04\x12\x08\n\x04PROD\x10\x05*:\n\x08\x41uthType\x12\x0b\n\x07REQUEST\x10\x00\x12\x0c\n\x08VIEW_DOC\x10\x01\x12\x13\n\x0fVIEW_CONNECTION\x10\x02\x32\xda\x10\n\x0f\x44\x61tabaseService\x12+\n\x04Ping\x12\x16.google.protobuf.Empty\x1a\t.api.Pong\"\x00\x12\x32\n\tGetSchema\x12\x16.google.protobuf.Empty\x1a\x0b.api.Schema\"\x00\x12<\n\x0eSetAuthorizers\x12\x10.api.Authorizers\x1a\x16.google.protobuf.Empty\"\x00\x12\x34\n\nSetIndexes\x12\x0c.api.Indexes\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x11SetTypeValidators\x12\x13.api.TypeValidators\x1a\x16.google.protobuf.Empty\"\x00\x12(\n\x02Me\x12\x16.google.protobuf.Empty\x1a\x08.api.Doc\"\x00\x12,\n\tCreateDoc\x12\x13.api.DocConstructor\x1a\x08.api.Doc\"\x00\x12/\n\nCreateDocs\x12\x14.api.DocConstructors\x1a\t.api.Docs\"\x00\x12\x1e\n\x06GetDoc\x12\x08.api.Ref\x1a\x08.api.Doc\"\x00\x12&\n\nSearchDocs\x12\x0b.api.Filter\x1a\t.api.Docs\"\x00\x12\x32\n\x08Traverse\x12\x13.api.TraverseFilter\x1a\x0f.api.Traversals\"\x00\x12\x36\n\nTraverseMe\x12\x15.api.TraverseMeFilter\x1a\x0f.api.Traversals\"\x00\x12 \n\x07\x45\x64itDoc\x12\t.api.Edit\x1a\x08.api.Doc\"\x00\x12(\n\x08\x45\x64itDocs\x12\x0f.api.EditFilter\x1a\t.api.Docs\"\x00\x12,\n\x06\x44\x65lDoc\x12\x08.api.Ref\x1a\x16.google.protobuf.Empty\"\x00\x12\x30\n\x07\x44\x65lDocs\x12\x0b.api.Filter\x1a\x16.google.protobuf.Empty\"\x00\x12.\n\tExistsDoc\x12\x11.api.ExistsFilter\x1a\x0c.api.Boolean\"\x00\x12\x35\n\x10\x45xistsConnection\x12\x11.api.ExistsFilter\x1a\x0c.api.Boolean\"\x00\x12\"\n\x06HasDoc\x12\x08.api.Ref\x1a\x0c.api.Boolean\"\x00\x12)\n\rHasConnection\x12\x08.api.Ref\x1a\x0c.api.Boolean\"\x00\x12\x41\n\x10\x43reateConnection\x12\x1a.api.ConnectionConstructor\x1a\x0f.api.Connection\"\x00\x12\x44\n\x11\x43reateConnections\x12\x1b.api.ConnectionConstructors\x1a\x10.api.Connections\"\x00\x12@\n\x10SearchAndConnect\x12\x18.api.SearchConnectFilter\x1a\x10.api.Connections\"\x00\x12\x44\n\x12SearchAndConnectMe\x12\x1a.api.SearchConnectMeFilter\x1a\x10.api.Connections\"\x00\x12,\n\rGetConnection\x12\x08.api.Ref\x1a\x0f.api.Connection\"\x00\x12\x34\n\x11SearchConnections\x12\x0b.api.Filter\x1a\x10.api.Connections\"\x00\x12.\n\x0e\x45\x64itConnection\x12\t.api.Edit\x1a\x0f.api.Connection\"\x00\x12\x36\n\x0f\x45\x64itConnections\x12\x0f.api.EditFilter\x1a\x10.api.Connections\"\x00\x12\x33\n\rDelConnection\x12\x08.api.Ref\x1a\x16.google.protobuf.Empty\"\x00\x12\x37\n\x0e\x44\x65lConnections\x12\x0b.api.Filter\x1a\x16.google.protobuf.Empty\"\x00\x12\x39\n\x0f\x43onnectionsFrom\x12\x12.api.ConnectFilter\x1a\x10.api.Connections\"\x00\x12\x37\n\rConnectionsTo\x12\x12.api.ConnectFilter\x1a\x10.api.Connections\"\x00\x12.\n\rAggregateDocs\x12\x0e.api.AggFilter\x1a\x0b.api.Number\"\x00\x12\x35\n\x14\x41ggregateConnections\x12\x0e.api.AggFilter\x1a\x0b.api.Number\"\x00\x12;\n\tBroadcast\x12\x14.api.OutboundMessage\x1a\x16.google.protobuf.Empty\"\x00\x12-\n\x06Stream\x12\x11.api.StreamFilter\x1a\x0c.api.Message\"\x00\x30\x01\x12:\n\x13PushDocConstructors\x12\x13.api.DocConstructor\x1a\x08.api.Doc\"\x00(\x01\x30\x01\x12O\n\x1aPushConnectionConstructors\x12\x1a.api.ConnectionConstructor\x1a\x0f.api.Connection\"\x00(\x01\x30\x01\x12\x30\n\x08SeedDocs\x12\x08.api.Doc\x1a\x16.google.protobuf.Empty\"\x00(\x01\x12>\n\x0fSeedConnections\x12\x0f.api.Connection\x1a\x16.google.protobuf.Empty\"\x00(\x01\x42\x07Z\x05\x61pipbb\x06proto3') + serialized_pb=_b('\n\rgraphik.proto\x12\x03\x61pi\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x19google/protobuf/any.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x36github.com/mwitkow/go-proto-validators/validator.proto\"E\n\x03Ref\x12\x1f\n\x05gtype\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x1d\n\x03gid\x18\x02 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\">\n\x0eRefConstructor\x12\x1f\n\x05gtype\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x0b\n\x03gid\x18\x02 \x01(\t\"\x1e\n\x04Refs\x12\x16\n\x04refs\x18\x01 \x03(\x0b\x32\x08.api.Ref\"Q\n\x03\x44oc\x12\x1d\n\x03ref\x18\x01 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\x12+\n\nattributes\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\"g\n\x0e\x44ocConstructor\x12(\n\x03ref\x18\x01 \x01(\x0b\x32\x13.api.RefConstructorB\x06\xe2\xdf\x1f\x02 \x01\x12+\n\nattributes\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\"4\n\x0f\x44ocConstructors\x12!\n\x04\x64ocs\x18\x01 \x03(\x0b\x32\x13.api.DocConstructor\"a\n\tTraversal\x12\x15\n\x03\x64oc\x18\x01 \x01(\x0b\x32\x08.api.Doc\x12 \n\x0etraversal_path\x18\x02 \x03(\x0b\x32\x08.api.Ref\x12\r\n\x05\x64\x65pth\x18\x03 \x01(\x04\x12\x0c\n\x04hops\x18\x04 \x01(\x04\"0\n\nTraversals\x12\"\n\ntraversals\x18\x01 \x03(\x0b\x32\x0e.api.Traversal\"1\n\x04\x44ocs\x12\x16\n\x04\x64ocs\x18\x01 \x03(\x0b\x32\x08.api.Doc\x12\x11\n\tseek_next\x18\x02 \x01(\t\"\xa8\x01\n\nConnection\x12\x1d\n\x03ref\x18\x01 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\x12+\n\nattributes\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x10\n\x08\x64irected\x18\x03 \x01(\x08\x12\x1e\n\x04\x66rom\x18\x04 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\x12\x1c\n\x02to\x18\x05 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\"\xbe\x01\n\x15\x43onnectionConstructor\x12(\n\x03ref\x18\x01 \x01(\x0b\x32\x13.api.RefConstructorB\x06\xe2\xdf\x1f\x02 \x01\x12+\n\nattributes\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x10\n\x08\x64irected\x18\x04 \x01(\x08\x12\x1e\n\x04\x66rom\x18\x05 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\x12\x1c\n\x02to\x18\x06 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\"\xa0\x01\n\x13SearchConnectFilter\x12\x1b\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x0b.api.Filter\x12\r\n\x05gtype\x18\x02 \x01(\t\x12+\n\nattributes\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x10\n\x08\x64irected\x18\x04 \x01(\x08\x12\x1e\n\x04\x66rom\x18\x05 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\"\x82\x01\n\x15SearchConnectMeFilter\x12\x1b\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x0b.api.Filter\x12\r\n\x05gtype\x18\x02 \x01(\t\x12+\n\nattributes\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x10\n\x08\x64irected\x18\x04 \x01(\x08\"I\n\x16\x43onnectionConstructors\x12/\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32\x1a.api.ConnectionConstructor\"F\n\x0b\x43onnections\x12$\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32\x0f.api.Connection\x12\x11\n\tseek_next\x18\x02 \x01(\t\"\xe2\x01\n\rConnectFilter\x12!\n\x07\x64oc_ref\x18\x01 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\x12\x1f\n\x05gtype\x18\x02 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x12\n\nexpression\x18\x03 \x01(\t\x12\x15\n\x05limit\x18\x04 \x01(\x04\x42\x06\xe2\xdf\x1f\x02\x10\x00\x12\x43\n\x04sort\x18\x05 \x01(\tB5\xe2\xdf\x1f\x31\n/((^|, )(|ref.gid|ref.gtype|^attributes.(.*)))+$\x12\x0c\n\x04seek\x18\x06 \x01(\t\x12\x0f\n\x07reverse\x18\x07 \x01(\x08\"\xc7\x01\n\x06\x46ilter\x12\x1f\n\x05gtype\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x12\n\nexpression\x18\x02 \x01(\t\x12\x15\n\x05limit\x18\x03 \x01(\x04\x42\x06\xe2\xdf\x1f\x02\x10\x00\x12\x43\n\x04sort\x18\x04 \x01(\tB5\xe2\xdf\x1f\x31\n/((^|, )(|ref.gid|ref.gtype|^attributes.(.*)))+$\x12\x0c\n\x04seek\x18\x05 \x01(\t\x12\x0f\n\x07reverse\x18\x06 \x01(\x08\x12\r\n\x05index\x18\x07 \x01(\t\"\x87\x01\n\tAggFilter\x12#\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x0b.api.FilterB\x06\xe2\xdf\x1f\x02 \x01\x12!\n\taggregate\x18\x02 \x01(\x0e\x32\x0e.api.Aggregate\x12\x32\n\x05\x66ield\x18\x03 \x01(\tB#\xe2\xdf\x1f\x1f\n\x1d((^|, )(|^attributes.(.*)))+$\"\xac\x02\n\x0eTraverseFilter\x12\x1e\n\x04root\x18\x01 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\x12\x16\n\x0e\x64oc_expression\x18\x02 \x01(\t\x12\x1d\n\x15\x63onnection_expression\x18\x03 \x01(\t\x12\x15\n\x05limit\x18\x04 \x01(\x04\x42\x06\xe2\xdf\x1f\x02\x10\x00\x12\x43\n\x04sort\x18\x05 \x01(\tB5\xe2\xdf\x1f\x31\n/((^|, )(|ref.gid|ref.gtype|^attributes.(.*)))+$\x12\x0f\n\x07reverse\x18\x06 \x01(\x08\x12!\n\talgorithm\x18\x07 \x01(\x0e\x32\x0e.api.Algorithm\x12\x19\n\tmax_depth\x18\x08 \x01(\x04\x42\x06\xe2\xdf\x1f\x02\x10\x00\x12\x18\n\x08max_hops\x18\t \x01(\x04\x42\x06\xe2\xdf\x1f\x02\x10\x00\"\x8e\x02\n\x10TraverseMeFilter\x12\x16\n\x0e\x64oc_expression\x18\x01 \x01(\t\x12\x1d\n\x15\x63onnection_expression\x18\x02 \x01(\t\x12\x15\n\x05limit\x18\x03 \x01(\x04\x42\x06\xe2\xdf\x1f\x02\x10\x00\x12\x43\n\x04sort\x18\x04 \x01(\tB5\xe2\xdf\x1f\x31\n/((^|, )(|ref.gid|ref.gtype|^attributes.(.*)))+$\x12\x0f\n\x07reverse\x18\x05 \x01(\x08\x12!\n\talgorithm\x18\x06 \x01(\x0e\x32\x0e.api.Algorithm\x12\x19\n\tmax_depth\x18\x07 \x01(\x04\x42\x06\xe2\xdf\x1f\x02\x10\x00\x12\x18\n\x08max_hops\x18\x08 \x01(\x04\x42\x06\xe2\xdf\x1f\x02\x10\x00\"\x9c\x01\n\x10IndexConstructor\x12\x1e\n\x04name\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x1f\n\x05gtype\x18\x03 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12$\n\nexpression\x18\x04 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x0c\n\x04\x64ocs\x18\x06 \x01(\x08\x12\x13\n\x0b\x63onnections\x18\x07 \x01(\x08\"w\n\nAuthTarget\x12 \n\x06method\x18\x03 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x1e\n\x04user\x18\x04 \x01(\x0b\x32\x08.api.DocB\x06\xe2\xdf\x1f\x02 \x01\x12\'\n\x06target\x18\x05 \x01(\x0b\x32\x17.google.protobuf.Struct\"\x85\x01\n\nAuthorizer\x12\x1e\n\x04name\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12$\n\nexpression\x18\x02 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x17\n\x0ftarget_requests\x18\x03 \x01(\x08\x12\x18\n\x10target_responses\x18\x04 \x01(\x08\"3\n\x0b\x41uthorizers\x12$\n\x0b\x61uthorizers\x18\x01 \x03(\x0b\x32\x0f.api.Authorizer\"\x99\x01\n\rTypeValidator\x12\x1e\n\x04name\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x1f\n\x05gtype\x18\x02 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12$\n\nexpression\x18\x03 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x0c\n\x04\x64ocs\x18\x04 \x01(\x08\x12\x13\n\x0b\x63onnections\x18\x05 \x01(\x08\"8\n\x0eTypeValidators\x12&\n\nvalidators\x18\x01 \x03(\x0b\x32\x12.api.TypeValidator\"\x91\x01\n\x05Index\x12\x1e\n\x04name\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x1f\n\x05gtype\x18\x03 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12$\n\nexpression\x18\x04 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x0c\n\x04\x64ocs\x18\x06 \x01(\x08\x12\x13\n\x0b\x63onnections\x18\x07 \x01(\x08\"&\n\x07Indexes\x12\x1b\n\x07indexes\x18\x01 \x03(\x0b\x32\n.api.Index\"E\n\x0cStreamFilter\x12!\n\x07\x63hannel\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x12\n\nexpression\x18\x02 \x01(\t\"G\n\x05Graph\x12\x17\n\x04\x64ocs\x18\x01 \x01(\x0b\x32\t.api.Docs\x12%\n\x0b\x63onnections\x18\x02 \x01(\x0b\x32\x10.api.Connections\"\xc4\x02\n\x05\x46lags\x12\x19\n\x11open_id_discovery\x18\x01 \x01(\t\x12\x14\n\x0cstorage_path\x18\x02 \x01(\t\x12\x0f\n\x07metrics\x18\x03 \x01(\x08\x12\x15\n\rallow_headers\x18\x05 \x03(\t\x12\x15\n\rallow_methods\x18\x06 \x03(\t\x12\x15\n\rallow_origins\x18\x07 \x03(\t\x12\x12\n\nroot_users\x18\x08 \x03(\t\x12\x10\n\x08tls_cert\x18\t \x01(\t\x12\x0f\n\x07tls_key\x18\n \x01(\t\x12\x1c\n\x14playground_client_id\x18\x0b \x01(\t\x12 \n\x18playground_client_secret\x18\x0c \x01(\t\x12\x1b\n\x13playground_redirect\x18\r \x01(\t\x12 \n\x18playground_session_store\x18\x0e \x01(\t\"\x18\n\x07\x42oolean\x12\r\n\x05value\x18\x01 \x01(\x08\"\x17\n\x06Number\x12\r\n\x05value\x18\x01 \x01(\x01\"\x83\x01\n\x0c\x45xistsFilter\x12\x1f\n\x05gtype\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12$\n\nexpression\x18\x02 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12\x0c\n\x04seek\x18\x03 \x01(\t\x12\x0f\n\x07reverse\x18\x04 \x01(\x08\x12\r\n\x05index\x18\x05 \x01(\t\"R\n\x04\x45\x64it\x12\x1d\n\x03ref\x18\x01 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\x12+\n\nattributes\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\"V\n\nEditFilter\x12\x1b\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x0b.api.Filter\x12+\n\nattributes\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\"\x17\n\x04Pong\x12\x0f\n\x07message\x18\x01 \x01(\t\"c\n\x0fOutboundMessage\x12!\n\x07\x63hannel\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructB\x06\xe2\xdf\x1f\x02 \x01\"\xd4\x01\n\x07Message\x12!\n\x07\x63hannel\x18\x01 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructB\x06\xe2\xdf\x1f\x02 \x01\x12\x1e\n\x04user\x18\x03 \x01(\x0b\x32\x08.api.RefB\x06\xe2\xdf\x1f\x02 \x01\x12\x35\n\ttimestamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xe2\xdf\x1f\x02 \x01\x12 \n\x06method\x18\x05 \x01(\tB\x10\xe2\xdf\x1f\x0c\n\n^.{1,225}$\"\xa4\x01\n\x06Schema\x12\x18\n\x10\x63onnection_types\x18\x01 \x03(\t\x12\x11\n\tdoc_types\x18\x02 \x03(\t\x12%\n\x0b\x61uthorizers\x18\x03 \x01(\x0b\x32\x10.api.Authorizers\x12\'\n\nvalidators\x18\x04 \x01(\x0b\x32\x13.api.TypeValidators\x12\x1d\n\x07indexes\x18\x05 \x01(\x0b\x32\x0c.api.Indexes\" \n\nExprFilter\x12\x12\n\nexpression\x18\x01 \x01(\t*\x1d\n\tAlgorithm\x12\x07\n\x03\x42\x46S\x10\x00\x12\x07\n\x03\x44\x46S\x10\x01*D\n\tAggregate\x12\t\n\x05\x43OUNT\x10\x00\x12\x07\n\x03SUM\x10\x01\x12\x07\n\x03\x41VG\x10\x02\x12\x07\n\x03MAX\x10\x03\x12\x07\n\x03MIN\x10\x04\x12\x08\n\x04PROD\x10\x05\x32\xda\x10\n\x0f\x44\x61tabaseService\x12+\n\x04Ping\x12\x16.google.protobuf.Empty\x1a\t.api.Pong\"\x00\x12\x32\n\tGetSchema\x12\x16.google.protobuf.Empty\x1a\x0b.api.Schema\"\x00\x12<\n\x0eSetAuthorizers\x12\x10.api.Authorizers\x1a\x16.google.protobuf.Empty\"\x00\x12\x34\n\nSetIndexes\x12\x0c.api.Indexes\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x11SetTypeValidators\x12\x13.api.TypeValidators\x1a\x16.google.protobuf.Empty\"\x00\x12(\n\x02Me\x12\x16.google.protobuf.Empty\x1a\x08.api.Doc\"\x00\x12,\n\tCreateDoc\x12\x13.api.DocConstructor\x1a\x08.api.Doc\"\x00\x12/\n\nCreateDocs\x12\x14.api.DocConstructors\x1a\t.api.Docs\"\x00\x12\x1e\n\x06GetDoc\x12\x08.api.Ref\x1a\x08.api.Doc\"\x00\x12&\n\nSearchDocs\x12\x0b.api.Filter\x1a\t.api.Docs\"\x00\x12\x32\n\x08Traverse\x12\x13.api.TraverseFilter\x1a\x0f.api.Traversals\"\x00\x12\x36\n\nTraverseMe\x12\x15.api.TraverseMeFilter\x1a\x0f.api.Traversals\"\x00\x12 \n\x07\x45\x64itDoc\x12\t.api.Edit\x1a\x08.api.Doc\"\x00\x12(\n\x08\x45\x64itDocs\x12\x0f.api.EditFilter\x1a\t.api.Docs\"\x00\x12,\n\x06\x44\x65lDoc\x12\x08.api.Ref\x1a\x16.google.protobuf.Empty\"\x00\x12\x30\n\x07\x44\x65lDocs\x12\x0b.api.Filter\x1a\x16.google.protobuf.Empty\"\x00\x12.\n\tExistsDoc\x12\x11.api.ExistsFilter\x1a\x0c.api.Boolean\"\x00\x12\x35\n\x10\x45xistsConnection\x12\x11.api.ExistsFilter\x1a\x0c.api.Boolean\"\x00\x12\"\n\x06HasDoc\x12\x08.api.Ref\x1a\x0c.api.Boolean\"\x00\x12)\n\rHasConnection\x12\x08.api.Ref\x1a\x0c.api.Boolean\"\x00\x12\x41\n\x10\x43reateConnection\x12\x1a.api.ConnectionConstructor\x1a\x0f.api.Connection\"\x00\x12\x44\n\x11\x43reateConnections\x12\x1b.api.ConnectionConstructors\x1a\x10.api.Connections\"\x00\x12@\n\x10SearchAndConnect\x12\x18.api.SearchConnectFilter\x1a\x10.api.Connections\"\x00\x12\x44\n\x12SearchAndConnectMe\x12\x1a.api.SearchConnectMeFilter\x1a\x10.api.Connections\"\x00\x12,\n\rGetConnection\x12\x08.api.Ref\x1a\x0f.api.Connection\"\x00\x12\x34\n\x11SearchConnections\x12\x0b.api.Filter\x1a\x10.api.Connections\"\x00\x12.\n\x0e\x45\x64itConnection\x12\t.api.Edit\x1a\x0f.api.Connection\"\x00\x12\x36\n\x0f\x45\x64itConnections\x12\x0f.api.EditFilter\x1a\x10.api.Connections\"\x00\x12\x33\n\rDelConnection\x12\x08.api.Ref\x1a\x16.google.protobuf.Empty\"\x00\x12\x37\n\x0e\x44\x65lConnections\x12\x0b.api.Filter\x1a\x16.google.protobuf.Empty\"\x00\x12\x39\n\x0f\x43onnectionsFrom\x12\x12.api.ConnectFilter\x1a\x10.api.Connections\"\x00\x12\x37\n\rConnectionsTo\x12\x12.api.ConnectFilter\x1a\x10.api.Connections\"\x00\x12.\n\rAggregateDocs\x12\x0e.api.AggFilter\x1a\x0b.api.Number\"\x00\x12\x35\n\x14\x41ggregateConnections\x12\x0e.api.AggFilter\x1a\x0b.api.Number\"\x00\x12;\n\tBroadcast\x12\x14.api.OutboundMessage\x1a\x16.google.protobuf.Empty\"\x00\x12-\n\x06Stream\x12\x11.api.StreamFilter\x1a\x0c.api.Message\"\x00\x30\x01\x12:\n\x13PushDocConstructors\x12\x13.api.DocConstructor\x1a\x08.api.Doc\"\x00(\x01\x30\x01\x12O\n\x1aPushConnectionConstructors\x12\x1a.api.ConnectionConstructor\x1a\x0f.api.Connection\"\x00(\x01\x30\x01\x12\x30\n\x08SeedDocs\x12\x08.api.Doc\x1a\x16.google.protobuf.Empty\"\x00(\x01\x12>\n\x0fSeedConnections\x12\x0f.api.Connection\x1a\x16.google.protobuf.Empty\"\x00(\x01\x42\x07Z\x05\x61pipbb\x06proto3') , dependencies=[google_dot_protobuf_dot_struct__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_protobuf_dot_any__pb2.DESCRIPTOR,google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,github_dot_com_dot_mwitkow_dot_go__proto__validators_dot_validator__pb2.DESCRIPTOR,]) @@ -46,8 +46,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=5004, - serialized_end=5033, + serialized_start=4999, + serialized_end=5028, ) _sym_db.RegisterEnumDescriptor(_ALGORITHM) @@ -85,39 +85,12 @@ ], containing_type=None, serialized_options=None, - serialized_start=5035, - serialized_end=5103, + serialized_start=5030, + serialized_end=5098, ) _sym_db.RegisterEnumDescriptor(_AGGREGATE) Aggregate = enum_type_wrapper.EnumTypeWrapper(_AGGREGATE) -_AUTHTYPE = _descriptor.EnumDescriptor( - name='AuthType', - full_name='api.AuthType', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='REQUEST', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='VIEW_DOC', index=1, number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='VIEW_CONNECTION', index=2, number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=5105, - serialized_end=5163, -) -_sym_db.RegisterEnumDescriptor(_AUTHTYPE) - -AuthType = enum_type_wrapper.EnumTypeWrapper(_AUTHTYPE) BFS = 0 DFS = 1 COUNT = 0 @@ -126,9 +99,6 @@ MAX = 3 MIN = 4 PROD = 5 -REQUEST = 0 -VIEW_DOC = 1 -VIEW_CONNECTION = 2 @@ -1190,29 +1160,22 @@ containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='type', full_name='api.AuthTarget.type', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='method', full_name='api.AuthTarget.method', index=1, - number=2, type=9, cpp_type=9, label=1, + name='method', full_name='api.AuthTarget.method', index=0, + number=3, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=_b('\342\337\037\014\n\n^.{1,225}$'), file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='user', full_name='api.AuthTarget.user', index=2, - number=3, type=11, cpp_type=10, label=1, + name='user', full_name='api.AuthTarget.user', index=1, + number=4, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=_b('\342\337\037\002 \001'), file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='data', full_name='api.AuthTarget.data', index=3, - number=4, type=11, cpp_type=10, label=1, + name='target', full_name='api.AuthTarget.target', index=2, + number=5, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -1229,8 +1192,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2918, - serialized_end=3064, + serialized_start=2917, + serialized_end=3036, ) @@ -1256,9 +1219,16 @@ is_extension=False, extension_scope=None, serialized_options=_b('\342\337\037\014\n\n^.{1,225}$'), file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='type', full_name='api.Authorizer.type', index=2, - number=3, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, + name='target_requests', full_name='api.Authorizer.target_requests', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='target_responses', full_name='api.Authorizer.target_responses', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1274,8 +1244,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3066, - serialized_end=3177, + serialized_start=3039, + serialized_end=3172, ) @@ -1305,8 +1275,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3179, - serialized_end=3230, + serialized_start=3174, + serialized_end=3225, ) @@ -1364,8 +1334,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3233, - serialized_end=3386, + serialized_start=3228, + serialized_end=3381, ) @@ -1395,8 +1365,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3388, - serialized_end=3444, + serialized_start=3383, + serialized_end=3439, ) @@ -1454,8 +1424,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3447, - serialized_end=3592, + serialized_start=3442, + serialized_end=3587, ) @@ -1485,8 +1455,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3594, - serialized_end=3632, + serialized_start=3589, + serialized_end=3627, ) @@ -1523,8 +1493,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3634, - serialized_end=3703, + serialized_start=3629, + serialized_end=3698, ) @@ -1561,8 +1531,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3705, - serialized_end=3776, + serialized_start=3700, + serialized_end=3771, ) @@ -1676,8 +1646,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3779, - serialized_end=4103, + serialized_start=3774, + serialized_end=4098, ) @@ -1707,8 +1677,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4105, - serialized_end=4129, + serialized_start=4100, + serialized_end=4124, ) @@ -1738,8 +1708,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4131, - serialized_end=4154, + serialized_start=4126, + serialized_end=4149, ) @@ -1797,8 +1767,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4157, - serialized_end=4288, + serialized_start=4152, + serialized_end=4283, ) @@ -1835,8 +1805,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4290, - serialized_end=4372, + serialized_start=4285, + serialized_end=4367, ) @@ -1873,8 +1843,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4374, - serialized_end=4460, + serialized_start=4369, + serialized_end=4455, ) @@ -1904,8 +1874,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4462, - serialized_end=4485, + serialized_start=4457, + serialized_end=4480, ) @@ -1942,8 +1912,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4487, - serialized_end=4586, + serialized_start=4482, + serialized_end=4581, ) @@ -2001,8 +1971,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4589, - serialized_end=4801, + serialized_start=4584, + serialized_end=4796, ) @@ -2060,8 +2030,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4804, - serialized_end=4968, + serialized_start=4799, + serialized_end=4963, ) @@ -2091,8 +2061,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4970, - serialized_end=5002, + serialized_start=4965, + serialized_end=4997, ) _REFS.fields_by_name['refs'].message_type = _REF @@ -2126,10 +2096,8 @@ _TRAVERSEFILTER.fields_by_name['root'].message_type = _REF _TRAVERSEFILTER.fields_by_name['algorithm'].enum_type = _ALGORITHM _TRAVERSEMEFILTER.fields_by_name['algorithm'].enum_type = _ALGORITHM -_AUTHTARGET.fields_by_name['type'].enum_type = _AUTHTYPE _AUTHTARGET.fields_by_name['user'].message_type = _DOC -_AUTHTARGET.fields_by_name['data'].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT -_AUTHORIZER.fields_by_name['type'].enum_type = _AUTHTYPE +_AUTHTARGET.fields_by_name['target'].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT _AUTHORIZERS.fields_by_name['authorizers'].message_type = _AUTHORIZER _TYPEVALIDATORS.fields_by_name['validators'].message_type = _TYPEVALIDATOR _INDEXES.fields_by_name['indexes'].message_type = _INDEX @@ -2189,7 +2157,6 @@ DESCRIPTOR.message_types_by_name['ExprFilter'] = _EXPRFILTER DESCRIPTOR.enum_types_by_name['Algorithm'] = _ALGORITHM DESCRIPTOR.enum_types_by_name['Aggregate'] = _AGGREGATE -DESCRIPTOR.enum_types_by_name['AuthType'] = _AUTHTYPE _sym_db.RegisterFileDescriptor(DESCRIPTOR) Ref = _reflection.GeneratedProtocolMessageType('Ref', (_message.Message,), dict( @@ -2542,8 +2509,8 @@ file=DESCRIPTOR, index=0, serialized_options=None, - serialized_start=5166, - serialized_end=7304, + serialized_start=5101, + serialized_end=7239, methods=[ _descriptor.MethodDescriptor( name='Ping', diff --git a/gen/grpc/ruby/graphik_pb.rb b/gen/grpc/ruby/graphik_pb.rb index d70885a..d4eca1a 100644 --- a/gen/grpc/ruby/graphik_pb.rb +++ b/gen/grpc/ruby/graphik_pb.rb @@ -129,15 +129,15 @@ optional :connections, :bool, 7 end add_message "api.AuthTarget" do - optional :type, :enum, 1, "api.AuthType" - optional :method, :string, 2 - optional :user, :message, 3, "api.Doc" - optional :data, :message, 4, "google.protobuf.Struct" + optional :method, :string, 3 + optional :user, :message, 4, "api.Doc" + optional :target, :message, 5, "google.protobuf.Struct" end add_message "api.Authorizer" do optional :name, :string, 1 optional :expression, :string, 2 - optional :type, :enum, 3, "api.AuthType" + optional :target_requests, :bool, 3 + optional :target_responses, :bool, 4 end add_message "api.Authorizers" do repeated :authorizers, :message, 1, "api.Authorizer" @@ -242,11 +242,6 @@ value :MIN, 4 value :PROD, 5 end - add_enum "api.AuthType" do - value :REQUEST, 0 - value :VIEW_DOC, 1 - value :VIEW_CONNECTION, 2 - end end module Api @@ -293,5 +288,4 @@ module Api ExprFilter = Google::Protobuf::DescriptorPool.generated_pool.lookup("api.ExprFilter").msgclass Algorithm = Google::Protobuf::DescriptorPool.generated_pool.lookup("api.Algorithm").enummodule Aggregate = Google::Protobuf::DescriptorPool.generated_pool.lookup("api.Aggregate").enummodule - AuthType = Google::Protobuf::DescriptorPool.generated_pool.lookup("api.AuthType").enummodule end diff --git a/gql/helpers.go b/gql/helpers.go index 8121c44..d436c18 100644 --- a/gql/helpers.go +++ b/gql/helpers.go @@ -424,22 +424,12 @@ func protoIndex(index *model.IndexInput) *apipb.Index { } } -func protoAuthType(t model.AuthType) apipb.AuthType { - switch t { - case model.AuthTypeViewConnection: - return apipb.AuthType_VIEW_CONNECTION - case model.AuthTypeViewDoc: - return apipb.AuthType_VIEW_DOC - default: - return apipb.AuthType_REQUEST - } -} - func protoAuthorizer(auth *model.AuthorizerInput) *apipb.Authorizer { return &apipb.Authorizer{ - Name: auth.Name, - Expression: auth.Expression, - Type: protoAuthType(auth.Type), + Name: auth.Name, + Expression: auth.Expression, + TargetRequests: auth.TargetRequests, + TargetResponses: auth.TargetResponses, } } diff --git a/gql/resolver.go b/gql/resolver.go index b4aac9c..68e96f2 100644 --- a/gql/resolver.go +++ b/gql/resolver.go @@ -35,23 +35,23 @@ func init() { // It serves as dependency injection for your app, add any dependencies you require here. type Resolver struct { - client apipb.DatabaseServiceClient - cors *cors.Cors - machine *machine.Machine - store sessions.Store - config *oauth2.Config - cookieName string + client apipb.DatabaseServiceClient + cors *cors.Cors + machine *machine.Machine + store sessions.Store + config *oauth2.Config + cookieName string sessionPath string sessionType string } func NewResolver(ctx context.Context, client apipb.DatabaseServiceClient, cors *cors.Cors, config *oauth2.Config, sessionPath string) *Resolver { r := &Resolver{ - client: client, - cors: cors, - machine: machine.New(ctx), - config: config, - cookieName: "graphik-playground", + client: client, + cors: cors, + machine: machine.New(ctx), + config: config, + cookieName: "graphik-playground", sessionPath: sessionPath, } if sessionPath == "" { diff --git a/graphik-client-go/example_test.go b/graphik-client-go/example_test.go index 5112369..8f85d47 100644 --- a/graphik-client-go/example_test.go +++ b/graphik-client-go/example_test.go @@ -69,8 +69,14 @@ func ExampleClient_SetAuthorizers() { _, err := client.SetAuthorizers(context.Background(), &apipb2.Authorizers{ Authorizers: []*apipb2.Authorizer{ { - Name: "testing", - Expression: `this.user.attributes.email.contains("coleman")`, + Name: "testing-request", + Expression: `this.user.attributes.email.contains("coleman")`, + TargetRequests: true, + }, + { + Name: "testing-response", + Expression: `this.user.attributes.email.contains("coleman") && this.method != ""`, + TargetResponses: true, }, }, }) @@ -88,7 +94,7 @@ func ExampleClient_SetAuthorizers() { authorizers = append(authorizers, a.Name) } fmt.Printf("%s", strings.Join(authorizers, ",")) - // Output: testing + // Output: testing-request,testing-response } func ExampleClient_SetTypeValidators() { @@ -397,7 +403,7 @@ func ExampleClient_GetSchema() { fmt.Printf("authorizers: %s", strings.Join(authorizers, ",")) // Output: doc types: dog,human,user //connection types: created,created_by,edited,edited_by,owner - //authorizers: testing + //authorizers: testing-request,testing-response } func ExampleClient_Traverse() { diff --git a/graphik.proto b/graphik.proto index 9b7e1f5..065d829 100644 --- a/graphik.proto +++ b/graphik.proto @@ -100,12 +100,6 @@ enum Aggregate { PROD =5; } -enum AuthType { - REQUEST = 0; - VIEW_DOC = 1; - VIEW_CONNECTION = 2; -} - // Ref describes a doc/connection type & id message Ref { // gtype is the type of the doc/connection ex: pet @@ -311,19 +305,18 @@ message IndexConstructor { } message AuthTarget { - AuthType type =1; // method is the rpc method - string method =2 [(validator.field) = {regex : "^.{1,225}$"}]; + string method =3 [(validator.field) = {regex : "^.{1,225}$"}]; // user is the user making the request - Doc user =3 [(validator.field) = {msg_exists : true}]; - // request is the intercepted request - google.protobuf.Struct data = 4; + Doc user =4 [(validator.field) = {msg_exists : true}]; + google.protobuf.Struct target = 5; } message Authorizer { string name =1[(validator.field) = {regex : "^.{1,225}$"}]; string expression =2[(validator.field) = {regex : "^.{1,225}$"}]; - AuthType type =3; + bool target_requests =3; + bool target_responses =4; } message Authorizers { diff --git a/schema.graphql b/schema.graphql index cdf17bc..4e8cc02 100644 --- a/schema.graphql +++ b/schema.graphql @@ -28,12 +28,6 @@ enum Aggregate { PROD } -enum AuthType { - REQUEST - VIEW_DOC - VIEW_CONNECTION -} - # Pong returns PONG if the server is healthy type Pong { message: String! @@ -73,13 +67,12 @@ type Traversal { # AuthTarget type AuthTarget { - type: AuthType! # method is the gRPC method invoked method: String! # user is the user making the request user: Doc! - # data is the payload gived to the authorizer(request, doc, connection) - data: Map! + # target is the payload gived to the authorizer(request or response payload) + target: Map! } # Traversals is an array of Traversal that is returned from Graph traversal algorithms @@ -159,7 +152,8 @@ type Authorizer { name: String! # expression is a boolean CEL expression used to evaluate the inbound request expression: String! - type: AuthType! + target_requests: Boolean! + target_responses: Boolean! } # Authorizers is an array of Authorizer @@ -426,7 +420,8 @@ input AuthorizerInput { name: String! # expression is a boolean CEL expression used to evaluate the inbound request expression: String! - type: AuthType! + target_requests: Boolean! + target_responses: Boolean! } # AuthorizersInput is an array of authorizers diff --git a/version/version.go b/version/version.go index 419e94d..6cc8872 100644 --- a/version/version.go +++ b/version/version.go @@ -1,3 +1,3 @@ package version -const Version = "0.5.2" +const Version = "0.6.0" diff --git a/vm/auth.go b/vm/auth.go index 76aca58..3f86c61 100644 --- a/vm/auth.go +++ b/vm/auth.go @@ -57,7 +57,7 @@ func (n *AuthVM) Eval(target *apipb.AuthTarget, programs ...cel.Program) (bool, } for _, program := range programs { out, _, err := program.Eval(map[string]interface{}{ - "this": target, + "this": target.AsMap(), }) if err != nil { if strings.Contains(err.Error(), "no such key") { diff --git a/vm/connection.go b/vm/connection.go index 8bcfcd7..80efac1 100644 --- a/vm/connection.go +++ b/vm/connection.go @@ -55,7 +55,7 @@ func (n *ConnectionVM) Eval(connection *apipb.Connection, programs ...cel.Progra var passes = true for _, program := range programs { out, _, err := program.Eval(map[string]interface{}{ - "this": connection, + "this": connection.AsMap(), }) if err != nil { if strings.Contains(err.Error(), "no such key") { diff --git a/vm/message.go b/vm/message.go index 8439694..377b8a8 100644 --- a/vm/message.go +++ b/vm/message.go @@ -55,7 +55,7 @@ func (n *MessageVM) Eval(message *apipb.Message, programs ...cel.Program) (bool, var passes = true for _, program := range programs { out, _, err := program.Eval(map[string]interface{}{ - "this": message, + "this": message.AsMap(), }) if err != nil { if strings.Contains(err.Error(), "no such key") { diff --git a/vm/node.go b/vm/node.go index 33c6723..87f0188 100644 --- a/vm/node.go +++ b/vm/node.go @@ -58,7 +58,7 @@ func (n *DocVM) Eval(doc *apipb.Doc, programs ...cel.Program) (bool, error) { var passes = true for _, program := range programs { out, _, err := program.Eval(map[string]interface{}{ - "this": doc, + "this": doc.AsMap(), }) if err != nil { if strings.Contains(err.Error(), "no such key") {