Skip to content

Instantly share code, notes, and snippets.

@lbeckman314
Last active August 29, 2025 21:11
Show Gist options
  • Select an option

  • Save lbeckman314/5f8962aa7c0dfc3871fe427a11591417 to your computer and use it in GitHub Desktop.

Select an option

Save lbeckman314/5f8962aa7c0dfc3871fe427a11591417 to your computer and use it in GitHub Desktop.
# Generated with protoc-gen-openapi
# https://github.com/google/gnostic/tree/master/cmd/protoc-gen-openapi
openapi: 3.0.3
info:
title: "GRIP API"
version: 0.7.1
paths:
/v1/driver:
get:
tags:
- Configure
operationId: Configure_ListDrivers
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ListDriversResponse'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph:
get:
tags:
- Query
operationId: Query_ListGraphs
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ListGraphsResponse'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
post:
tags:
- Edit
operationId: Edit_BulkAdd
parameters:
- name: graph
in: query
schema:
type: string
- name: vertex.gid
in: query
schema:
type: string
- name: vertex.label
in: query
schema:
type: string
- name: edge.gid
in: query
schema:
type: string
- name: edge.label
in: query
schema:
type: string
- name: edge.from
in: query
schema:
type: string
- name: edge.to
in: query
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/BulkEditResult'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph/{graph}:
post:
tags:
- Edit
operationId: Edit_AddGraph
parameters:
- name: graph
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EditResult'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
delete:
tags:
- Edit
operationId: Edit_DeleteGraph
parameters:
- name: graph
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EditResult'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph/{graph}/edge:
post:
tags:
- Edit
operationId: Edit_AddEdge
parameters:
- name: graph
in: path
required: true
schema:
type: string
- name: vertex.gid
in: query
schema:
type: string
- name: vertex.label
in: query
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Edge'
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EditResult'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph/{graph}/edge/{id}:
get:
tags:
- Query
operationId: Query_GetEdge
parameters:
- name: graph
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Edge'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
delete:
tags:
- Edit
operationId: Edit_DeleteEdge
parameters:
- name: graph
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EditResult'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph/{graph}/index:
get:
tags:
- Query
operationId: Query_ListIndices
parameters:
- name: graph
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ListIndicesResponse'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph/{graph}/index/{label}:
post:
tags:
- Edit
operationId: Edit_AddIndex
parameters:
- name: graph
in: path
required: true
schema:
type: string
- name: label
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IndexID'
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EditResult'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph/{graph}/index/{label}/{field}:
delete:
tags:
- Edit
operationId: Edit_DeleteIndex
parameters:
- name: graph
in: path
required: true
schema:
type: string
- name: label
in: path
required: true
schema:
type: string
- name: field
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EditResult'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph/{graph}/job:
get:
tags:
- Job
operationId: Job_ListJobs
parameters:
- name: graph
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/QueryJob'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
post:
tags:
- Job
operationId: Job_Submit
parameters:
- name: graph
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GraphQuery'
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/QueryJob'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph/{graph}/job-resume:
post:
tags:
- Job
operationId: Job_ResumeJob
parameters:
- name: graph
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ExtendQuery'
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/QueryResult'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph/{graph}/job-search:
post:
tags:
- Job
operationId: Job_SearchJobs
parameters:
- name: graph
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GraphQuery'
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/JobStatus'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph/{graph}/job/{id}:
get:
tags:
- Job
operationId: Job_GetJob
parameters:
- name: graph
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/JobStatus'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
post:
tags:
- Job
operationId: Job_ViewJob
parameters:
- name: graph
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/QueryJob'
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/QueryResult'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
delete:
tags:
- Job
operationId: Job_DeleteJob
parameters:
- name: graph
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/JobStatus'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph/{graph}/label:
get:
tags:
- Query
operationId: Query_ListLabels
parameters:
- name: graph
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ListLabelsResponse'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph/{graph}/mapping:
get:
tags:
- Query
operationId: Query_GetMapping
parameters:
- name: graph
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Graph'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
post:
tags:
- Edit
operationId: Edit_AddMapping
parameters:
- name: graph
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Graph'
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EditResult'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph/{graph}/query:
post:
tags:
- Query
operationId: Query_Traversal
parameters:
- name: graph
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GraphQuery'
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/QueryResult'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph/{graph}/schema:
get:
tags:
- Query
operationId: Query_GetSchema
parameters:
- name: graph
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Graph'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
post:
tags:
- Edit
operationId: Edit_AddSchema
parameters:
- name: graph
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Graph'
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EditResult'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph/{graph}/timestamp:
get:
tags:
- Query
operationId: Query_GetTimestamp
parameters:
- name: graph
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Timestamp'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph/{graph}/vertex:
post:
tags:
- Edit
operationId: Edit_AddVertex
parameters:
- name: graph
in: path
required: true
schema:
type: string
- name: edge.gid
in: query
schema:
type: string
- name: edge.label
in: query
schema:
type: string
- name: edge.from
in: query
schema:
type: string
- name: edge.to
in: query
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Vertex'
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EditResult'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/graph/{graph}/vertex/{id}:
get:
tags:
- Query
operationId: Query_GetVertex
parameters:
- name: graph
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Vertex'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
delete:
tags:
- Edit
operationId: Edit_DeleteVertex
parameters:
- name: graph
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EditResult'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/plugin:
get:
tags:
- Configure
operationId: Configure_ListPlugins
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ListPluginsResponse'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/plugin/{name}:
post:
tags:
- Configure
operationId: Configure_StartPlugin
parameters:
- name: name
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PluginConfig'
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PluginStatus'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/v1/table:
get:
tags:
- Query
operationId: Query_ListTables
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TableInfo'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
components:
schemas:
Aggregate:
type: object
properties:
name:
type: string
term:
$ref: '#/components/schemas/TermAggregation'
percentile:
$ref: '#/components/schemas/PercentileAggregation'
histogram:
$ref: '#/components/schemas/HistogramAggregation'
field:
$ref: '#/components/schemas/FieldAggregation'
type:
$ref: '#/components/schemas/TypeAggregation'
Aggregations:
type: object
properties:
aggregations:
type: array
items:
$ref: '#/components/schemas/Aggregate'
BulkEditResult:
type: object
properties:
insertCount:
type: integer
format: int32
errorCount:
type: integer
format: int32
Edge:
type: object
properties:
gid:
type: string
label:
type: string
from:
type: string
to:
type: string
data:
type: object
EditResult:
type: object
properties:
id:
type: string
ExtendQuery:
type: object
properties:
srcId:
type: string
graph:
type: string
query:
type: array
items:
$ref: '#/components/schemas/GraphStatement'
FieldAggregation:
type: object
properties:
field:
type: string
GoogleProtobufAny:
type: object
properties:
'@type':
type: string
description: The type of the serialized message.
additionalProperties: true
description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
GoogleProtobufValue:
description: Represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values.
Graph:
type: object
properties:
graph:
type: string
vertices:
type: array
items:
$ref: '#/components/schemas/Vertex'
edges:
type: array
items:
$ref: '#/components/schemas/Edge'
GraphQuery:
type: object
properties:
graph:
type: string
query:
type: array
items:
$ref: '#/components/schemas/GraphStatement'
GraphStatement:
type: object
properties:
v:
allOf:
- $ref: '#/components/schemas/ListValue'
description: Tinkerpop methods
e:
$ref: '#/components/schemas/ListValue'
in:
$ref: '#/components/schemas/ListValue'
out:
$ref: '#/components/schemas/ListValue'
both:
$ref: '#/components/schemas/ListValue'
inE:
$ref: '#/components/schemas/ListValue'
outE:
$ref: '#/components/schemas/ListValue'
bothE:
$ref: '#/components/schemas/ListValue'
as:
type: string
select:
$ref: '#/components/schemas/SelectStatement'
limit:
type: integer
format: uint32
skip:
type: integer
format: uint32
range:
$ref: '#/components/schemas/Range'
has:
$ref: '#/components/schemas/HasExpression'
hasLabel:
$ref: '#/components/schemas/ListValue'
hasKey:
$ref: '#/components/schemas/ListValue'
hasId:
$ref: '#/components/schemas/ListValue'
distinct:
$ref: '#/components/schemas/ListValue'
fields:
$ref: '#/components/schemas/ListValue'
unwind:
type: string
count:
type: string
aggregate:
$ref: '#/components/schemas/Aggregations'
render:
$ref: '#/components/schemas/GoogleProtobufValue'
path:
$ref: '#/components/schemas/ListValue'
HasCondition:
type: object
properties:
key:
type: string
value:
$ref: '#/components/schemas/GoogleProtobufValue'
condition:
type: integer
format: enum
HasExpression:
type: object
properties:
and:
$ref: '#/components/schemas/HasExpressionList'
or:
$ref: '#/components/schemas/HasExpressionList'
not:
$ref: '#/components/schemas/HasExpression'
condition:
$ref: '#/components/schemas/HasCondition'
HasExpressionList:
type: object
properties:
expressions:
type: array
items:
$ref: '#/components/schemas/HasExpression'
HistogramAggregation:
type: object
properties:
field:
type: string
interval:
type: integer
format: uint32
IndexID:
type: object
properties:
graph:
type: string
label:
type: string
field:
type: string
JobStatus:
type: object
properties:
id:
type: string
graph:
type: string
state:
type: integer
format: enum
count:
type: string
query:
type: array
items:
$ref: '#/components/schemas/GraphStatement'
timestamp:
type: string
ListDriversResponse:
type: object
properties:
drivers:
type: array
items:
type: string
ListGraphsResponse:
type: object
properties:
graphs:
type: array
items:
type: string
ListIndicesResponse:
type: object
properties:
indices:
type: array
items:
$ref: '#/components/schemas/IndexID'
ListLabelsResponse:
type: object
properties:
vertexLabels:
type: array
items:
type: string
edgeLabels:
type: array
items:
type: string
ListPluginsResponse:
type: object
properties:
plugins:
type: array
items:
type: string
ListValue:
type: object
properties:
values:
type: array
items:
$ref: '#/components/schemas/GoogleProtobufValue'
description: Repeated field of dynamically typed values.
description: |-
`ListValue` is a wrapper around a repeated field of values.
The JSON representation for `ListValue` is JSON array.
NamedAggregationResult:
type: object
properties:
name:
type: string
key:
$ref: '#/components/schemas/GoogleProtobufValue'
value:
type: number
format: double
PercentileAggregation:
type: object
properties:
field:
type: string
percents:
type: array
items:
type: number
format: double
PluginConfig:
type: object
properties:
name:
type: string
driver:
type: string
config:
type: object
additionalProperties:
type: string
PluginStatus:
type: object
properties:
name:
type: string
error:
type: string
QueryJob:
type: object
properties:
id:
type: string
graph:
type: string
QueryResult:
type: object
properties:
vertex:
$ref: '#/components/schemas/Vertex'
edge:
$ref: '#/components/schemas/Edge'
aggregations:
$ref: '#/components/schemas/NamedAggregationResult'
selections:
$ref: '#/components/schemas/Selections'
render:
$ref: '#/components/schemas/GoogleProtobufValue'
count:
type: integer
format: uint32
path:
$ref: '#/components/schemas/ListValue'
Range:
type: object
properties:
start:
type: integer
format: int32
stop:
type: integer
format: int32
SelectStatement:
type: object
properties:
marks:
type: array
items:
type: string
Selection:
type: object
properties:
vertex:
$ref: '#/components/schemas/Vertex'
edge:
$ref: '#/components/schemas/Edge'
Selections:
type: object
properties:
selections:
type: object
additionalProperties:
$ref: '#/components/schemas/Selection'
Status:
type: object
properties:
code:
type: integer
description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
format: int32
message:
type: string
description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
details:
type: array
items:
$ref: '#/components/schemas/GoogleProtobufAny'
description: A list of messages that carry the error details. There is a common set of message types for APIs to use.
description: 'The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).'
TableInfo:
type: object
properties:
source:
type: string
name:
type: string
fields:
type: array
items:
type: string
linkMap:
type: object
additionalProperties:
type: string
TermAggregation:
type: object
properties:
field:
type: string
size:
type: integer
format: uint32
Timestamp:
type: object
properties:
timestamp:
type: string
TypeAggregation:
type: object
properties:
field:
type: string
Vertex:
type: object
properties:
gid:
type: string
label:
type: string
data:
type: object
tags:
- name: Configure
- name: Edit
- name: Job
- name: Query
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment