123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545 |
- {
- "basePath":"/db",
- "definitions":{
- "Error":{
- "description":"A human readable error mesage.",
- "type":"string"
- },
- "GraphQLRequest":{
- "properties":{
- "operationName":{
- "description":"GraphQL query operation name.",
- "type":"string"
- },
- "query":{
- "description":"GraphQL query.",
- "type":"string"
- },
- "variables":{
- "description":"GraphQL query variable values.",
- "type":"object"
- }
- },
- "type":"object"
- },
- "GroupSelectionState":{
- "properties":{
- "groups":{
- "description":"List of group names which include one or more selected nodes.",
- "items":{
- "description":"Group name.",
- "type":"string"
- },
- "type":"array"
- },
- "keys":{
- "description":"Lists of selected node keys which are part of the groups in the 'groups' list.",
- "items":{
- "description":"List of node keys.",
- "items":{
- "description":"Node key.",
- "type":"string"
- },
- "type":"array"
- },
- "type":"array"
- },
- "kinds":{
- "description":"Lists of selected node kinds which are part of the groups in the 'groups' list.",
- "items":{
- "description":"List of node kinds.",
- "items":{
- "description":"Node kind.",
- "type":"string"
- },
- "type":"array"
- },
- "type":"array"
- }
- },
- "type":"object"
- },
- "QueryResult":{
- "properties":{
- "groups":{
- "description":"Group names for each row.",
- "items":{
- "description":" Groups of the primary kind node.",
- "items":{
- "description":"Group name.",
- "type":"string"
- },
- "type":"array"
- },
- "type":"array"
- },
- "header":{
- "description":"Header for the query result.",
- "properties":{
- "data":{
- "description":"The data which is displayed in each column of the search result.",
- "items":{
- "description":"Data source for the column (e.g. 1:n:name - Name of starting nodes, 3:e:key - Key of edge traversed in the second traversal).",
- "type":"string"
- },
- "type":"array"
- },
- "format":{
- "description":"All column format definitions of the search result.",
- "items":{
- "description":"Column format as specified in the show format (e.g. text).",
- "type":"string"
- },
- "type":"array"
- },
- "labels":{
- "description":"All column labels of the search result.",
- "items":{
- "description":"Column label.",
- "type":"string"
- },
- "type":"array"
- }
- },
- "type":"object"
- },
- "rows":{
- "description":"Rows of the query result.",
- "items":{
- "description":"Columns of a row of the query result.",
- "items":{
- "description":"A single cell of the query result (string, integer or null).",
- "type":"object"
- },
- "type":"array"
- },
- "type":"array"
- },
- "selections":{
- "description":"List of row selections.",
- "items":{
- "description":"Row selection.",
- "type":"boolean"
- },
- "type":"array"
- },
- "sources":{
- "description":"Data sources of the query result.",
- "items":{
- "description":"Columns of a row of the query result.",
- "items":{
- "description":"Data source of a single cell of the query result.",
- "type":"string"
- },
- "type":"array"
- },
- "type":"array"
- },
- "total_selections":{
- "description":"Number of total selections.",
- "format":"integer",
- "type":"number"
- }
- },
- "type":"object"
- },
- "SelectionState":{
- "properties":{
- "keys":{
- "description":"Lists of selected node keys.",
- "items":{
- "description":"Node key.",
- "type":"string"
- },
- "type":"array"
- },
- "kinds":{
- "description":"Kinds of all selected nodes.",
- "items":{
- "description":"Node kind.",
- "type":"string"
- },
- "type":"array"
- }
- },
- "type":"object"
- }
- },
- "host":"localhost:9090",
- "info":{
- "description":"Query and modify the EliasDB datastore.",
- "title":"EliasDB API",
- "version":"1.0.0"
- },
- "paths":{
- "/about":{
- "get":{
- "description":"Returns available API versions, product name and product version.",
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"About info object",
- "schema":{
- "properties":{
- "api_versions":{
- "description":"List of available API versions.",
- "items":{
- "description":"Available API version.",
- "type":"string"
- },
- "type":"array"
- },
- "product":{
- "description":"Product name of the REST API provider.",
- "type":"string"
- },
- "version":{
- "description":"Version of the REST API provider.",
- "type":"string"
- }
- },
- "type":"object"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return information about the REST API provider."
- }
- },
- "/v1/blob/{partition}":{
- "post":{
- "consumes":[
- "application/octet-stream"
- ],
- "description":"The blob endpoint can be used to store binary data. Its location will be automatically allocated.",
- "parameters":[
- {
- "description":"The data to store.",
- "in":"body",
- "name":"data",
- "required":true,
- "schema":{
- "description":"A blob of binary data."
- }
- },
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"The operation was successful.",
- "schema":{
- "properties":{
- "id":{
- "description":"The data ID which can be used to lookup the data.",
- "type":"number"
- }
- },
- "type":"object"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Create a binary blob of data."
- }
- },
- "/v1/blob/{partition}/{id}":{
- "delete":{
- "description":"The blob endpoint can be used to remove binary data from a specific location.",
- "parameters":[
- {
- "description":"ID of the binary blob.",
- "in":"path",
- "name":"id",
- "required":true,
- "type":"string"
- },
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain"
- ],
- "responses":{
- "200":{
- "description":"The operation was successful."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Remove a binary blob of data."
- },
- "get":{
- "description":"The blob endpoint can be used to retrieve binary data from a specific location.",
- "parameters":[
- {
- "description":"ID of the binary blob.",
- "in":"path",
- "name":"id",
- "required":true,
- "type":"string"
- },
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/octet-stream"
- ],
- "responses":{
- "200":{
- "description":"The requested binary blob."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Retrieve a binary blob of data."
- },
- "put":{
- "description":"The blob endpoint can be used to update binary data at a specific location.",
- "parameters":[
- {
- "description":"ID of the binary blob.",
- "in":"path",
- "name":"id",
- "required":true,
- "type":"string"
- },
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain"
- ],
- "responses":{
- "200":{
- "description":"The operation was successful."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Update a binary blob of data."
- }
- },
- "/v1/cluster":{
- "get":{
- "description":"The cluster endpoint returns the cluster state info which contains cluster members and their state.",
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"A key-value map."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return cluster specific information."
- }
- },
- "/v1/cluster/log":{
- "delete":{
- "description":"A delete call to the log endpoint resets the cluster related log and clears the ring buffer in memory.",
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"Cluster related log was reset."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Reset the cluster log."
- },
- "get":{
- "description":"The cluster log endpoint returns the latest cluster related log messages from a memory ring buffer.",
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"A list of log messages."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return latest cluster related log messages."
- }
- },
- "/v1/cluster/memberinfos":{
- "get":{
- "description":"The memberinfos returns the static member info of every known cluster member. If a member is not reachable its info contains a single key-value pair with the key error and an error message as value.",
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"A map of memberinfos (keys are member names)."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return static member info of every known cluster member."
- }
- },
- "/v1/cluster/{command}":{
- "put":{
- "consumes":[
- "application/json"
- ],
- "description":"The cluster can be controlled via this command endpoint on any member.",
- "parameters":[
- {
- "description":"Valid commands are: ping, join and eject.",
- "in":"path",
- "name":"command",
- "required":true,
- "type":"string"
- },
- {
- "description":"Arguments for a command",
- "in":"body",
- "name":"args",
- "required":true,
- "schema":{
- "properties":{
- "name":{
- "description":"Name of a cluster member (ping/join=member to contact, eject=member to eject).",
- "type":"string"
- },
- "netaddr":{
- "description":"Network address of a member e.g. localhost:9030 (ping/join=member address to contact)",
- "type":"string"
- }
- },
- "type":"object"
- }
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"Only the ping command returns its result. All other positive responses are empty."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Commands can be given to the cluster by using PUT requests."
- }
- },
- "/v1/eql":{
- "post":{
- "consumes":[
- "application/json"
- ],
- "description":"The eql endpoint should be used to parse a given EQL query into an Abstract Syntax Tree or pretty print a given Abstract Syntax Tree into an EQL query.",
- "parameters":[
- {
- "description":"Query or AST which should be converted.",
- "in":"body",
- "name":"data",
- "required":true,
- "schema":{
- "properties":{
- "ast":{
- "description":"AST which should be pretty printed.",
- "type":"object"
- },
- "query":{
- "description":"Query which should be parsed.",
- "type":"string"
- }
- },
- "type":"object"
- }
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"The operation was successful.",
- "schema":{
- "properties":{
- "ast":{
- "description":"The resulting AST if a query was parsed.",
- "type":"object"
- },
- "query":{
- "description":"The pretty printed query if an AST was given.",
- "type":"string"
- }
- },
- "type":"object"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"EQL parser and pretty printer endpoint."
- }
- },
- "/v1/find":{
- "get":{
- "description":"The find endpoint should be used to run simple index searches for either a value or a phrase.",
- "parameters":[
- {
- "description":"A word or phrase to search for.",
- "in":"query",
- "name":"text",
- "required":false,
- "type":"string"
- },
- {
- "description":"A node value to search for.",
- "in":"query",
- "name":"value",
- "required":false,
- "type":"string"
- },
- {
- "description":"Flag if a complete node lookup should be done (otherwise only key and kind are returned).",
- "in":"query",
- "name":"lookup",
- "required":false,
- "type":"boolean"
- },
- {
- "description":"Limit the search to a partition (without the option all partitions are searched).",
- "in":"query",
- "name":"part",
- "required":false,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"An object of search results.",
- "schema":{
- "description":"Object of results per partition.",
- "properties":{
- "partition":{
- "description":"Object of results per kind.",
- "properties":{
- "kind":{
- "description":"List of found nodes.",
- "items":{
- "description":"Found node.",
- "type":"object"
- },
- "type":"array"
- }
- },
- "type":"object"
- }
- },
- "type":"object"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Run index searches on the EliasDB datastore."
- }
- },
- "/v1/graph/{partition}":{
- "post":{
- "consumes":[
- "application/json"
- ],
- "description":"A whole graph can be send. POST will store data in the datastore and always overwrite any existing data.",
- "parameters":[
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"Nodes and Edges which should be stored",
- "in":"body",
- "name":"entities",
- "required":true,
- "schema":{
- "properties":{
- "edges":{
- "description":"List of edges to be inserted / updated.",
- "items":{
- "description":"Edge to be inserted / updated.",
- "type":"object"
- },
- "type":"array"
- },
- "nodes":{
- "description":"List of nodes to be inserted / updated.",
- "items":{
- "description":"Node to be inserted / updated.",
- "type":"object"
- },
- "type":"array"
- }
- },
- "type":"object"
- }
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"No data is returned when data is created."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Data can be send by using POST requests."
- }
- },
- "/v1/graph/{partition}/{entity_type}":{
- "post":{
- "consumes":[
- "application/json"
- ],
- "description":"A list of nodes / edges can be send. POST will store data in the datastore and always overwrite any existing data.",
- "parameters":[
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
- "in":"path",
- "name":"entity_type",
- "required":true,
- "type":"string"
- },
- {
- "description":"Nodes or Edges which should be stored",
- "in":"body",
- "name":"entities",
- "required":true,
- "schema":{
- "items":{
- "description":"Node or edge to be inserted / updated.",
- "type":"object"
- },
- "type":"array"
- }
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"No data is returned when data is created."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Data can be send by using POST requests."
- }
- },
- "/v1/graph/{partition}/{entity_type}/{kind}":{
- "get":{
- "description":"GET requests can be used to query a series of nodes. The X-Total-Count header contains the total number of nodes which were found.",
- "parameters":[
- {
- "description":"Node or edge kind to be queried.",
- "in":"path",
- "name":"kind",
- "required":true,
- "type":"string"
- },
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
- "in":"path",
- "name":"entity_type",
- "required":true,
- "type":"string"
- },
- {
- "description":"How many list items to return.",
- "format":"integer",
- "in":"query",
- "name":"limit",
- "required":false,
- "type":"number"
- },
- {
- "description":"Offset in the dataset.",
- "format":"integer",
- "in":"query",
- "name":"offset",
- "required":false,
- "type":"number"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"The return data is a list of objects",
- "schema":{
- "items":{
- "type":"object"
- },
- "type":"array"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"The graph endpoint is the main entry point to request data."
- }
- },
- "/v1/graph/{partition}/{entity_type}/{kind}/{key}":{
- "get":{
- "description":"GET requests can be used to query a single node.",
- "parameters":[
- {
- "description":"Node or edge kind to be queried.",
- "in":"path",
- "name":"kind",
- "required":true,
- "type":"string"
- },
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
- "in":"path",
- "name":"entity_type",
- "required":true,
- "type":"string"
- },
- {
- "description":"Node or edge key to be queried.",
- "in":"path",
- "name":"key",
- "required":true,
- "type":"string"
- },
- {
- "description":"How many list items to return.",
- "format":"integer",
- "in":"query",
- "name":"limit",
- "required":false,
- "type":"number"
- },
- {
- "description":"Offset in the dataset.",
- "format":"integer",
- "in":"query",
- "name":"offset",
- "required":false,
- "type":"number"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"The return data is a single object",
- "schema":{
- "type":"object"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"The graph endpoint is the main entry point to request data."
- }
- },
- "/v1/graph/{partition}/{entity_type}/{kind}/{key}/{traversal_spec}":{
- "get":{
- "description":"GET requests can be used to query a single node and then traverse to its neighbours.",
- "parameters":[
- {
- "description":"Node or edge kind to be queried.",
- "in":"path",
- "name":"kind",
- "required":true,
- "type":"string"
- },
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
- "in":"path",
- "name":"entity_type",
- "required":true,
- "type":"string"
- },
- {
- "description":"Node or edge key to be queried.",
- "in":"path",
- "name":"key",
- "required":true,
- "type":"string"
- },
- {
- "description":"Traversal to be followed from a single node.",
- "in":"path",
- "name":"traversal_spec",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"The return data are two lists containing traversed nodes and edges. The traversal endpoint does NOT support limit and offset parameters. Also the X-Total-Count header is not set.",
- "schema":{
- "items":{
- "items":{
- "type":"object"
- },
- "type":"array"
- },
- "type":"array"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"The graph endpoint is the main entry point to request data."
- }
- },
- "/v1/graphql-query/{partition}":{
- "get":{
- "consumes":[
- "application/json"
- ],
- "description":"The GraphQL interface can be used to query data.",
- "parameters":[
- {
- "description":"Partition to query.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"GraphQL query operation name.",
- "in":"query",
- "name":"operationName",
- "required":false,
- "type":"string"
- },
- {
- "description":"GraphQL query.",
- "in":"query",
- "name":"query",
- "required":true,
- "type":"string"
- },
- {
- "description":"GraphQL query variable values.",
- "in":"query",
- "name":"variables",
- "required":false,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"The operation was successful."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"GraphQL interface which only executes non-modifying queries."
- }
- },
- "/v1/graphql/{partition}":{
- "post":{
- "consumes":[
- "application/json"
- ],
- "description":"The GraphQL interface can be used to query and modify data.",
- "parameters":[
- {
- "description":"Partition to query.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"GraphQL request",
- "in":"body",
- "name":"graphql_request",
- "required":true,
- "schema":{
- "$ref":"#/definitions/GraphQLRequest"
- }
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"The operation was successful."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"GraphQL interface."
- }
- },
- "/v1/index/{partition}/{entity_type}/{kind}":{
- "get":{
- "description":"The index endpoint should be used to run index searches for either a word, phrase or a whole value. All queries must specify a kind and an node/edge attribute.",
- "parameters":[
- {
- "description":"Partition to query.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
- "in":"path",
- "name":"entity_type",
- "required":true,
- "type":"string"
- },
- {
- "description":"Node or edge kind to be queried.",
- "in":"path",
- "name":"kind",
- "required":true,
- "type":"string"
- },
- {
- "description":"Attribute which should contain the word, phrase or value.",
- "in":"query",
- "name":"attr",
- "required":true,
- "type":"string"
- },
- {
- "description":"Word to search for in word queries.",
- "in":"query",
- "name":"word",
- "required":false,
- "type":"string"
- },
- {
- "description":"Phrase to search for in phrase queries.",
- "in":"query",
- "name":"phrase",
- "required":false,
- "type":"string"
- },
- {
- "description":"Value (node/edge attribute value) to search for in value queries.",
- "in":"query",
- "name":"value",
- "required":false,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"A list of keys or when doing a word search a map with node/edge key to word positions."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Run index searches on the EliasDB datastore."
- }
- },
- "/v1/info":{
- "get":{
- "description":"The info endpoint returns general database information such as known node kinds, known attributes, etc.",
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"A key-value map."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return general datastore information."
- }
- },
- "/v1/info/kind/{kind}":{
- "get":{
- "description":"The info kind endpoint returns information on a given node kind such as known attributes and edges.",
- "parameters":[
- {
- "description":"Node or edge kind to be queried.",
- "in":"path",
- "name":"kind",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"A key-value map."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return information on a given node or edge kind."
- }
- },
- "/v1/query/{partition}":{
- "get":{
- "description":"The query endpoint should be used to run EQL search queries against partitions. The return value is always a list (even if there is only a single entry). A query result gets an ID and is stored in a cache. The ID is returned in the X-Cache-Id header. Subsequent requests for the same result can use the ID instead of a query.",
- "parameters":[
- {
- "description":"Partition to query.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"URL encoded query to execute.",
- "in":"query",
- "name":"q",
- "required":false,
- "type":"string"
- },
- {
- "description":"Result ID to retrieve from the result cache.",
- "format":"integer",
- "in":"query",
- "name":"rid",
- "required":false,
- "type":"number"
- },
- {
- "description":"How many list items to return.",
- "format":"integer",
- "in":"query",
- "name":"limit",
- "required":false,
- "type":"number"
- },
- {
- "description":"Offset in the dataset.",
- "format":"integer",
- "in":"query",
- "name":"offset",
- "required":false,
- "type":"number"
- },
- {
- "description":"Include group information in the result if set to any value.",
- "format":"integer",
- "in":"query",
- "name":"groups",
- "required":false,
- "type":"number"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"A query result",
- "schema":{
- "$ref":"#/definitions/QueryResult"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Run EQL queries to query the EliasDB datastore."
- }
- },
- "/v1/queryresult/{rid}/csv":{
- "get":{
- "description":"The csv endpoint is used to generate a CSV string from the search result.",
- "parameters":[
- {
- "description":"Result ID of a query result.",
- "in":"path",
- "name":"rid",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain"
- ],
- "responses":{
- "200":{
- "description":"A CSV string."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return the search result in CSV format."
- }
- },
- "/v1/queryresult/{rid}/groupselected":{
- "get":{
- "description":"Returns the current selections state which contains all selected nodes which are in groups.",
- "parameters":[
- {
- "description":"Result ID of a query result.",
- "in":"path",
- "name":"rid",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"Current group selection state.",
- "schema":{
- "$ref":"#/definitions/GroupSelectionState"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Get the current group selection state."
- },
- "post":{
- "description":"Sets the groups in the given selection state.",
- "parameters":[
- {
- "description":"Result ID of a query result.",
- "in":"path",
- "name":"rid",
- "required":true,
- "type":"string"
- },
- {
- "description":"Group seletion state of a query result",
- "in":"body",
- "name":"selection_state",
- "required":true,
- "schema":{
- "$ref":"#/definitions/GroupSelectionState"
- }
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"Current group selection state after the operation.",
- "schema":{
- "$ref":"#/definitions/GroupSelectionState"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Set a new group selection state."
- }
- },
- "/v1/queryresult/{rid}/groupselected/{group_name}":{
- "delete":{
- "description":"The groupselected endpoint is used to remove all selected nodes (primary node of each row) from the given (existing) group.",
- "parameters":[
- {
- "description":"Result ID of a query result.",
- "in":"path",
- "name":"rid",
- "required":true,
- "type":"string"
- },
- {
- "description":"Name of an existing group.",
- "in":"path",
- "name":"group_name",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"Current group selection state after the operation.",
- "schema":{
- "$ref":"#/definitions/GroupSelectionState"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Remove all selected nodes (primary node of each row) from the given group."
- },
- "put":{
- "description":"The groupselected endpoint is used to add all selected nodes (primary node of each row) to the given (existing) group.",
- "parameters":[
- {
- "description":"Result ID of a query result.",
- "in":"path",
- "name":"rid",
- "required":true,
- "type":"string"
- },
- {
- "description":"Name of an existing group.",
- "in":"path",
- "name":"group_name",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"Current group selection state after the operation.",
- "schema":{
- "$ref":"#/definitions/GroupSelectionState"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Add all selected nodes (primary node of each row) to the given group."
- }
- },
- "/v1/queryresult/{rid}/quickfilter/{column}":{
- "get":{
- "description":"The quickfilter endpoint is used to determine the 10 most frequent used values in a particular result column.",
- "parameters":[
- {
- "description":"Result ID of a query result.",
- "in":"path",
- "name":"rid",
- "required":true,
- "type":"string"
- },
- {
- "description":"Column of the query result.",
- "in":"path",
- "name":"column",
- "required":true,
- "type":"string"
- },
- {
- "description":"Limit the maximum number of result items.",
- "in":"query",
- "name":"limit",
- "required":false,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"An object containing values and frequencies."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return quickfilter information on a given result column."
- }
- },
- "/v1/queryresult/{rid}/select":{
- "get":{
- "description":"The select endpoint is used to query all selected nodes of a given query result.",
- "parameters":[
- {
- "description":"Result ID of a query result.",
- "in":"path",
- "name":"rid",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"Current total selections.",
- "schema":{
- "$ref":"#/definitions/SelectionState"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return the (primary) nodes which are currently selected."
- }
- },
- "/v1/queryresult/{rid}/select/{row}":{
- "put":{
- "description":"The select endpoint is used to select one or more rows of a given query result.",
- "parameters":[
- {
- "description":"Result ID of a query result.",
- "in":"path",
- "name":"rid",
- "required":true,
- "type":"string"
- },
- {
- "description":"Row number of the query result or 'all', 'none' or 'invert'.",
- "in":"path",
- "name":"row",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"Current total selections."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Selects one or more rows of a given query result."
- }
- }
- },
- "produces":[
- "application/json"
- ],
- "schemes":[
- "https"
- ],
- "swagger":"2.0"
- }
|