swagger.json 60 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763
  1. {
  2. "basePath":"/db",
  3. "definitions":{
  4. "Error":{
  5. "description":"A human readable error mesage.",
  6. "type":"string"
  7. },
  8. "GraphQLRequest":{
  9. "properties":{
  10. "operationName":{
  11. "description":"GraphQL query operation name.",
  12. "type":"string"
  13. },
  14. "query":{
  15. "description":"GraphQL query.",
  16. "type":"string"
  17. },
  18. "variables":{
  19. "description":"GraphQL query variable values.",
  20. "type":"object"
  21. }
  22. },
  23. "type":"object"
  24. },
  25. "GroupSelectionState":{
  26. "properties":{
  27. "groups":{
  28. "description":"List of group names which include one or more selected nodes.",
  29. "items":{
  30. "description":"Group name.",
  31. "type":"string"
  32. },
  33. "type":"array"
  34. },
  35. "keys":{
  36. "description":"Lists of selected node keys which are part of the groups in the 'groups' list.",
  37. "items":{
  38. "description":"List of node keys.",
  39. "items":{
  40. "description":"Node key.",
  41. "type":"string"
  42. },
  43. "type":"array"
  44. },
  45. "type":"array"
  46. },
  47. "kinds":{
  48. "description":"Lists of selected node kinds which are part of the groups in the 'groups' list.",
  49. "items":{
  50. "description":"List of node kinds.",
  51. "items":{
  52. "description":"Node kind.",
  53. "type":"string"
  54. },
  55. "type":"array"
  56. },
  57. "type":"array"
  58. }
  59. },
  60. "type":"object"
  61. },
  62. "QueryResult":{
  63. "properties":{
  64. "groups":{
  65. "description":"Group names for each row.",
  66. "items":{
  67. "description":" Groups of the primary kind node.",
  68. "items":{
  69. "description":"Group name.",
  70. "type":"string"
  71. },
  72. "type":"array"
  73. },
  74. "type":"array"
  75. },
  76. "header":{
  77. "description":"Header for the query result.",
  78. "properties":{
  79. "data":{
  80. "description":"The data which is displayed in each column of the search result.",
  81. "items":{
  82. "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).",
  83. "type":"string"
  84. },
  85. "type":"array"
  86. },
  87. "format":{
  88. "description":"All column format definitions of the search result.",
  89. "items":{
  90. "description":"Column format as specified in the show format (e.g. text).",
  91. "type":"string"
  92. },
  93. "type":"array"
  94. },
  95. "labels":{
  96. "description":"All column labels of the search result.",
  97. "items":{
  98. "description":"Column label.",
  99. "type":"string"
  100. },
  101. "type":"array"
  102. }
  103. },
  104. "type":"object"
  105. },
  106. "rows":{
  107. "description":"Rows of the query result.",
  108. "items":{
  109. "description":"Columns of a row of the query result.",
  110. "items":{
  111. "description":"A single cell of the query result (string, integer or null).",
  112. "type":"object"
  113. },
  114. "type":"array"
  115. },
  116. "type":"array"
  117. },
  118. "selections":{
  119. "description":"List of row selections.",
  120. "items":{
  121. "description":"Row selection.",
  122. "type":"boolean"
  123. },
  124. "type":"array"
  125. },
  126. "sources":{
  127. "description":"Data sources of the query result.",
  128. "items":{
  129. "description":"Columns of a row of the query result.",
  130. "items":{
  131. "description":"Data source of a single cell of the query result.",
  132. "type":"string"
  133. },
  134. "type":"array"
  135. },
  136. "type":"array"
  137. },
  138. "total_selections":{
  139. "description":"Number of total selections.",
  140. "format":"integer",
  141. "type":"number"
  142. }
  143. },
  144. "type":"object"
  145. },
  146. "SelectionState":{
  147. "properties":{
  148. "keys":{
  149. "description":"Lists of selected node keys.",
  150. "items":{
  151. "description":"Node key.",
  152. "type":"string"
  153. },
  154. "type":"array"
  155. },
  156. "kinds":{
  157. "description":"Kinds of all selected nodes.",
  158. "items":{
  159. "description":"Node kind.",
  160. "type":"string"
  161. },
  162. "type":"array"
  163. }
  164. },
  165. "type":"object"
  166. }
  167. },
  168. "host":"127.0.0.1:9090",
  169. "info":{
  170. "description":"Query and modify the EliasDB datastore.",
  171. "title":"EliasDB API",
  172. "version":"1.0.0"
  173. },
  174. "paths":{
  175. "/about":{
  176. "get":{
  177. "description":"Returns available API versions, product name and product version.",
  178. "produces":[
  179. "text/plain",
  180. "application/json"
  181. ],
  182. "responses":{
  183. "200":{
  184. "description":"About info object",
  185. "schema":{
  186. "properties":{
  187. "api_versions":{
  188. "description":"List of available API versions.",
  189. "items":{
  190. "description":"Available API version.",
  191. "type":"string"
  192. },
  193. "type":"array"
  194. },
  195. "product":{
  196. "description":"Product name of the REST API provider.",
  197. "type":"string"
  198. },
  199. "version":{
  200. "description":"Version of the REST API provider.",
  201. "type":"string"
  202. }
  203. },
  204. "type":"object"
  205. }
  206. },
  207. "default":{
  208. "description":"Error response",
  209. "schema":{
  210. "$ref":"#/definitions/Error"
  211. }
  212. }
  213. },
  214. "summary":"Return information about the REST API provider."
  215. }
  216. },
  217. "/v1/blob/{partition}":{
  218. "post":{
  219. "consumes":[
  220. "application/octet-stream"
  221. ],
  222. "description":"The blob endpoint can be used to store binary data. Its location will be automatically allocated.",
  223. "parameters":[
  224. {
  225. "description":"The data to store.",
  226. "in":"body",
  227. "name":"data",
  228. "required":true,
  229. "schema":{
  230. "description":"A blob of binary data."
  231. }
  232. },
  233. {
  234. "description":"Partition to select.",
  235. "in":"path",
  236. "name":"partition",
  237. "required":true,
  238. "type":"string"
  239. }
  240. ],
  241. "produces":[
  242. "text/plain",
  243. "application/json"
  244. ],
  245. "responses":{
  246. "200":{
  247. "description":"The operation was successful.",
  248. "schema":{
  249. "properties":{
  250. "id":{
  251. "description":"The data ID which can be used to lookup the data.",
  252. "type":"number"
  253. }
  254. },
  255. "type":"object"
  256. }
  257. },
  258. "default":{
  259. "description":"Error response",
  260. "schema":{
  261. "$ref":"#/definitions/Error"
  262. }
  263. }
  264. },
  265. "summary":"Create a binary blob of data."
  266. }
  267. },
  268. "/v1/blob/{partition}/{id}":{
  269. "delete":{
  270. "description":"The blob endpoint can be used to remove binary data from a specific location.",
  271. "parameters":[
  272. {
  273. "description":"ID of the binary blob.",
  274. "in":"path",
  275. "name":"id",
  276. "required":true,
  277. "type":"string"
  278. },
  279. {
  280. "description":"Partition to select.",
  281. "in":"path",
  282. "name":"partition",
  283. "required":true,
  284. "type":"string"
  285. }
  286. ],
  287. "produces":[
  288. "text/plain"
  289. ],
  290. "responses":{
  291. "200":{
  292. "description":"The operation was successful."
  293. },
  294. "default":{
  295. "description":"Error response",
  296. "schema":{
  297. "$ref":"#/definitions/Error"
  298. }
  299. }
  300. },
  301. "summary":"Remove a binary blob of data."
  302. },
  303. "get":{
  304. "description":"The blob endpoint can be used to retrieve binary data from a specific location.",
  305. "parameters":[
  306. {
  307. "description":"ID of the binary blob.",
  308. "in":"path",
  309. "name":"id",
  310. "required":true,
  311. "type":"string"
  312. },
  313. {
  314. "description":"Partition to select.",
  315. "in":"path",
  316. "name":"partition",
  317. "required":true,
  318. "type":"string"
  319. }
  320. ],
  321. "produces":[
  322. "text/plain",
  323. "application/octet-stream"
  324. ],
  325. "responses":{
  326. "200":{
  327. "description":"The requested binary blob."
  328. },
  329. "default":{
  330. "description":"Error response",
  331. "schema":{
  332. "$ref":"#/definitions/Error"
  333. }
  334. }
  335. },
  336. "summary":"Retrieve a binary blob of data."
  337. },
  338. "put":{
  339. "description":"The blob endpoint can be used to update binary data at a specific location.",
  340. "parameters":[
  341. {
  342. "description":"ID of the binary blob.",
  343. "in":"path",
  344. "name":"id",
  345. "required":true,
  346. "type":"string"
  347. },
  348. {
  349. "description":"Partition to select.",
  350. "in":"path",
  351. "name":"partition",
  352. "required":true,
  353. "type":"string"
  354. }
  355. ],
  356. "produces":[
  357. "text/plain"
  358. ],
  359. "responses":{
  360. "200":{
  361. "description":"The operation was successful."
  362. },
  363. "default":{
  364. "description":"Error response",
  365. "schema":{
  366. "$ref":"#/definitions/Error"
  367. }
  368. }
  369. },
  370. "summary":"Update a binary blob of data."
  371. }
  372. },
  373. "/v1/cluster":{
  374. "get":{
  375. "description":"The cluster endpoint returns the cluster state info which contains cluster members and their state.",
  376. "produces":[
  377. "text/plain",
  378. "application/json"
  379. ],
  380. "responses":{
  381. "200":{
  382. "description":"A key-value map."
  383. },
  384. "default":{
  385. "description":"Error response",
  386. "schema":{
  387. "$ref":"#/definitions/Error"
  388. }
  389. }
  390. },
  391. "summary":"Return cluster specific information."
  392. }
  393. },
  394. "/v1/cluster/log":{
  395. "delete":{
  396. "description":"A delete call to the log endpoint resets the cluster related log and clears the ring buffer in memory.",
  397. "produces":[
  398. "text/plain",
  399. "application/json"
  400. ],
  401. "responses":{
  402. "200":{
  403. "description":"Cluster related log was reset."
  404. },
  405. "default":{
  406. "description":"Error response",
  407. "schema":{
  408. "$ref":"#/definitions/Error"
  409. }
  410. }
  411. },
  412. "summary":"Reset the cluster log."
  413. },
  414. "get":{
  415. "description":"The cluster log endpoint returns the latest cluster related log messages from a memory ring buffer.",
  416. "produces":[
  417. "text/plain",
  418. "application/json"
  419. ],
  420. "responses":{
  421. "200":{
  422. "description":"A list of log messages."
  423. },
  424. "default":{
  425. "description":"Error response",
  426. "schema":{
  427. "$ref":"#/definitions/Error"
  428. }
  429. }
  430. },
  431. "summary":"Return latest cluster related log messages."
  432. }
  433. },
  434. "/v1/cluster/memberinfos":{
  435. "get":{
  436. "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.",
  437. "produces":[
  438. "text/plain",
  439. "application/json"
  440. ],
  441. "responses":{
  442. "200":{
  443. "description":"A map of memberinfos (keys are member names)."
  444. },
  445. "default":{
  446. "description":"Error response",
  447. "schema":{
  448. "$ref":"#/definitions/Error"
  449. }
  450. }
  451. },
  452. "summary":"Return static member info of every known cluster member."
  453. }
  454. },
  455. "/v1/cluster/{command}":{
  456. "put":{
  457. "consumes":[
  458. "application/json"
  459. ],
  460. "description":"The cluster can be controlled via this command endpoint on any member.",
  461. "parameters":[
  462. {
  463. "description":"Valid commands are: ping, join and eject.",
  464. "in":"path",
  465. "name":"command",
  466. "required":true,
  467. "type":"string"
  468. },
  469. {
  470. "description":"Arguments for a command",
  471. "in":"body",
  472. "name":"args",
  473. "required":true,
  474. "schema":{
  475. "properties":{
  476. "name":{
  477. "description":"Name of a cluster member (ping/join=member to contact, eject=member to eject).",
  478. "type":"string"
  479. },
  480. "netaddr":{
  481. "description":"Network address of a member e.g. localhost:9030 (ping/join=member address to contact)",
  482. "type":"string"
  483. }
  484. },
  485. "type":"object"
  486. }
  487. }
  488. ],
  489. "produces":[
  490. "text/plain",
  491. "application/json"
  492. ],
  493. "responses":{
  494. "200":{
  495. "description":"Only the ping command returns its result. All other positive responses are empty."
  496. },
  497. "default":{
  498. "description":"Error response",
  499. "schema":{
  500. "$ref":"#/definitions/Error"
  501. }
  502. }
  503. },
  504. "summary":"Commands can be given to the cluster by using PUT requests."
  505. }
  506. },
  507. "/v1/eql":{
  508. "post":{
  509. "consumes":[
  510. "application/json"
  511. ],
  512. "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.",
  513. "parameters":[
  514. {
  515. "description":"Query or AST which should be converted.",
  516. "in":"body",
  517. "name":"data",
  518. "required":true,
  519. "schema":{
  520. "properties":{
  521. "ast":{
  522. "description":"AST which should be pretty printed.",
  523. "type":"object"
  524. },
  525. "query":{
  526. "description":"Query which should be parsed.",
  527. "type":"string"
  528. }
  529. },
  530. "type":"object"
  531. }
  532. }
  533. ],
  534. "produces":[
  535. "text/plain",
  536. "application/json"
  537. ],
  538. "responses":{
  539. "200":{
  540. "description":"The operation was successful.",
  541. "schema":{
  542. "properties":{
  543. "ast":{
  544. "description":"The resulting AST if a query was parsed.",
  545. "type":"object"
  546. },
  547. "query":{
  548. "description":"The pretty printed query if an AST was given.",
  549. "type":"string"
  550. }
  551. },
  552. "type":"object"
  553. }
  554. },
  555. "default":{
  556. "description":"Error response",
  557. "schema":{
  558. "$ref":"#/definitions/Error"
  559. }
  560. }
  561. },
  562. "summary":"EQL parser and pretty printer endpoint."
  563. }
  564. },
  565. "/v1/find":{
  566. "get":{
  567. "description":"The find endpoint should be used to run simple index searches for either a value or a phrase.",
  568. "parameters":[
  569. {
  570. "description":"A word or phrase to search for.",
  571. "in":"query",
  572. "name":"text",
  573. "required":false,
  574. "type":"string"
  575. },
  576. {
  577. "description":"A node value to search for.",
  578. "in":"query",
  579. "name":"value",
  580. "required":false,
  581. "type":"string"
  582. },
  583. {
  584. "description":"Flag if a complete node lookup should be done (otherwise only key and kind are returned).",
  585. "in":"query",
  586. "name":"lookup",
  587. "required":false,
  588. "type":"boolean"
  589. },
  590. {
  591. "description":"Limit the search to a partition (without the option all partitions are searched).",
  592. "in":"query",
  593. "name":"part",
  594. "required":false,
  595. "type":"string"
  596. }
  597. ],
  598. "produces":[
  599. "text/plain",
  600. "application/json"
  601. ],
  602. "responses":{
  603. "200":{
  604. "description":"An object of search results.",
  605. "schema":{
  606. "description":"Object of results per partition.",
  607. "properties":{
  608. "partition":{
  609. "description":"Object of results per kind.",
  610. "properties":{
  611. "kind":{
  612. "description":"List of found nodes.",
  613. "items":{
  614. "description":"Found node.",
  615. "type":"object"
  616. },
  617. "type":"array"
  618. }
  619. },
  620. "type":"object"
  621. }
  622. },
  623. "type":"object"
  624. }
  625. },
  626. "default":{
  627. "description":"Error response",
  628. "schema":{
  629. "$ref":"#/definitions/Error"
  630. }
  631. }
  632. },
  633. "summary":"Run index searches on the EliasDB datastore."
  634. }
  635. },
  636. "/v1/graph/{partition}":{
  637. "delete":{
  638. "consumes":[
  639. "application/json"
  640. ],
  641. "description":"A whole graph can be send. DELETE will delete data in the datastore - only key and kind are required.",
  642. "parameters":[
  643. {
  644. "description":"Partition to select.",
  645. "in":"path",
  646. "name":"partition",
  647. "required":true,
  648. "type":"string"
  649. },
  650. {
  651. "description":"Nodes and Edges which should be stored",
  652. "in":"body",
  653. "name":"entities",
  654. "required":true,
  655. "schema":{
  656. "properties":{
  657. "edges":{
  658. "description":"List of edges to be inserted / updated.",
  659. "items":{
  660. "description":"Edge to be inserted / updated.",
  661. "type":"object"
  662. },
  663. "type":"array"
  664. },
  665. "nodes":{
  666. "description":"List of nodes to be inserted / updated.",
  667. "items":{
  668. "description":"Node to be inserted / updated.",
  669. "type":"object"
  670. },
  671. "type":"array"
  672. }
  673. },
  674. "type":"object"
  675. }
  676. }
  677. ],
  678. "produces":[
  679. "text/plain",
  680. "application/json"
  681. ],
  682. "responses":{
  683. "200":{
  684. "description":"No data is returned when data is created."
  685. },
  686. "default":{
  687. "description":"Error response",
  688. "schema":{
  689. "$ref":"#/definitions/Error"
  690. }
  691. }
  692. },
  693. "summary":"Data can be send by using DELETE requests."
  694. },
  695. "post":{
  696. "consumes":[
  697. "application/json"
  698. ],
  699. "description":"A whole graph can be send. POST will store data in the datastore and always overwrite any existing data.",
  700. "parameters":[
  701. {
  702. "description":"Partition to select.",
  703. "in":"path",
  704. "name":"partition",
  705. "required":true,
  706. "type":"string"
  707. },
  708. {
  709. "description":"Nodes and Edges which should be stored",
  710. "in":"body",
  711. "name":"entities",
  712. "required":true,
  713. "schema":{
  714. "properties":{
  715. "edges":{
  716. "description":"List of edges to be inserted / updated.",
  717. "items":{
  718. "description":"Edge to be inserted / updated.",
  719. "type":"object"
  720. },
  721. "type":"array"
  722. },
  723. "nodes":{
  724. "description":"List of nodes to be inserted / updated.",
  725. "items":{
  726. "description":"Node to be inserted / updated.",
  727. "type":"object"
  728. },
  729. "type":"array"
  730. }
  731. },
  732. "type":"object"
  733. }
  734. }
  735. ],
  736. "produces":[
  737. "text/plain",
  738. "application/json"
  739. ],
  740. "responses":{
  741. "200":{
  742. "description":"No data is returned when data is created."
  743. },
  744. "default":{
  745. "description":"Error response",
  746. "schema":{
  747. "$ref":"#/definitions/Error"
  748. }
  749. }
  750. },
  751. "summary":"Data can be send by using POST requests."
  752. },
  753. "put":{
  754. "consumes":[
  755. "application/json"
  756. ],
  757. "description":"A whole graph can be send. PUT will store data in the datastore and update existing data.",
  758. "parameters":[
  759. {
  760. "description":"Partition to select.",
  761. "in":"path",
  762. "name":"partition",
  763. "required":true,
  764. "type":"string"
  765. },
  766. {
  767. "description":"Nodes and Edges which should be stored",
  768. "in":"body",
  769. "name":"entities",
  770. "required":true,
  771. "schema":{
  772. "properties":{
  773. "edges":{
  774. "description":"List of edges to be inserted / updated.",
  775. "items":{
  776. "description":"Edge to be inserted / updated.",
  777. "type":"object"
  778. },
  779. "type":"array"
  780. },
  781. "nodes":{
  782. "description":"List of nodes to be inserted / updated.",
  783. "items":{
  784. "description":"Node to be inserted / updated.",
  785. "type":"object"
  786. },
  787. "type":"array"
  788. }
  789. },
  790. "type":"object"
  791. }
  792. }
  793. ],
  794. "produces":[
  795. "text/plain",
  796. "application/json"
  797. ],
  798. "responses":{
  799. "200":{
  800. "description":"No data is returned when data is created."
  801. },
  802. "default":{
  803. "description":"Error response",
  804. "schema":{
  805. "$ref":"#/definitions/Error"
  806. }
  807. }
  808. },
  809. "summary":"Data can be send by using PUT requests."
  810. }
  811. },
  812. "/v1/graph/{partition}/{entity_type}":{
  813. "delete":{
  814. "consumes":[
  815. "application/json"
  816. ],
  817. "description":"A list of nodes / edges can be send. DELETE will delete data in the datastore - only key and kind are required.",
  818. "parameters":[
  819. {
  820. "description":"Partition to select.",
  821. "in":"path",
  822. "name":"partition",
  823. "required":true,
  824. "type":"string"
  825. },
  826. {
  827. "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
  828. "in":"path",
  829. "name":"entity_type",
  830. "required":true,
  831. "type":"string"
  832. },
  833. {
  834. "description":"Nodes or Edges which should be stored",
  835. "in":"body",
  836. "name":"entities",
  837. "required":true,
  838. "schema":{
  839. "items":{
  840. "description":"Node or edge to be inserted / updated.",
  841. "type":"object"
  842. },
  843. "type":"array"
  844. }
  845. }
  846. ],
  847. "produces":[
  848. "text/plain",
  849. "application/json"
  850. ],
  851. "responses":{
  852. "200":{
  853. "description":"No data is returned when data is created."
  854. },
  855. "default":{
  856. "description":"Error response",
  857. "schema":{
  858. "$ref":"#/definitions/Error"
  859. }
  860. }
  861. },
  862. "summary":"Data can be send by using DELETE requests."
  863. },
  864. "post":{
  865. "consumes":[
  866. "application/json"
  867. ],
  868. "description":"A list of nodes / edges can be send. POST will store data in the datastore and always overwrite any existing data.",
  869. "parameters":[
  870. {
  871. "description":"Partition to select.",
  872. "in":"path",
  873. "name":"partition",
  874. "required":true,
  875. "type":"string"
  876. },
  877. {
  878. "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
  879. "in":"path",
  880. "name":"entity_type",
  881. "required":true,
  882. "type":"string"
  883. },
  884. {
  885. "description":"Nodes or Edges which should be stored",
  886. "in":"body",
  887. "name":"entities",
  888. "required":true,
  889. "schema":{
  890. "items":{
  891. "description":"Node or edge to be inserted / updated.",
  892. "type":"object"
  893. },
  894. "type":"array"
  895. }
  896. }
  897. ],
  898. "produces":[
  899. "text/plain",
  900. "application/json"
  901. ],
  902. "responses":{
  903. "200":{
  904. "description":"No data is returned when data is created."
  905. },
  906. "default":{
  907. "description":"Error response",
  908. "schema":{
  909. "$ref":"#/definitions/Error"
  910. }
  911. }
  912. },
  913. "summary":"Data can be send by using POST requests."
  914. },
  915. "put":{
  916. "consumes":[
  917. "application/json"
  918. ],
  919. "description":"A list of nodes / edges can be send. PUT will store data in the datastore and update existing data.",
  920. "parameters":[
  921. {
  922. "description":"Partition to select.",
  923. "in":"path",
  924. "name":"partition",
  925. "required":true,
  926. "type":"string"
  927. },
  928. {
  929. "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
  930. "in":"path",
  931. "name":"entity_type",
  932. "required":true,
  933. "type":"string"
  934. },
  935. {
  936. "description":"Nodes or Edges which should be stored",
  937. "in":"body",
  938. "name":"entities",
  939. "required":true,
  940. "schema":{
  941. "items":{
  942. "description":"Node or edge to be inserted / updated.",
  943. "type":"object"
  944. },
  945. "type":"array"
  946. }
  947. }
  948. ],
  949. "produces":[
  950. "text/plain",
  951. "application/json"
  952. ],
  953. "responses":{
  954. "200":{
  955. "description":"No data is returned when data is created."
  956. },
  957. "default":{
  958. "description":"Error response",
  959. "schema":{
  960. "$ref":"#/definitions/Error"
  961. }
  962. }
  963. },
  964. "summary":"Data can be send by using PUT requests."
  965. }
  966. },
  967. "/v1/graph/{partition}/{entity_type}/{kind}":{
  968. "get":{
  969. "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.",
  970. "parameters":[
  971. {
  972. "description":"Node or edge kind to be queried.",
  973. "in":"path",
  974. "name":"kind",
  975. "required":true,
  976. "type":"string"
  977. },
  978. {
  979. "description":"Partition to select.",
  980. "in":"path",
  981. "name":"partition",
  982. "required":true,
  983. "type":"string"
  984. },
  985. {
  986. "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
  987. "in":"path",
  988. "name":"entity_type",
  989. "required":true,
  990. "type":"string"
  991. },
  992. {
  993. "description":"How many list items to return.",
  994. "format":"integer",
  995. "in":"query",
  996. "name":"limit",
  997. "required":false,
  998. "type":"number"
  999. },
  1000. {
  1001. "description":"Offset in the dataset.",
  1002. "format":"integer",
  1003. "in":"query",
  1004. "name":"offset",
  1005. "required":false,
  1006. "type":"number"
  1007. }
  1008. ],
  1009. "produces":[
  1010. "text/plain",
  1011. "application/json"
  1012. ],
  1013. "responses":{
  1014. "200":{
  1015. "description":"The return data is a list of objects",
  1016. "schema":{
  1017. "items":{
  1018. "type":"object"
  1019. },
  1020. "type":"array"
  1021. }
  1022. },
  1023. "default":{
  1024. "description":"Error response",
  1025. "schema":{
  1026. "$ref":"#/definitions/Error"
  1027. }
  1028. }
  1029. },
  1030. "summary":"The graph endpoint is the main entry point to request data."
  1031. }
  1032. },
  1033. "/v1/graph/{partition}/{entity_type}/{kind}/{key}":{
  1034. "get":{
  1035. "description":"GET requests can be used to query a single node.",
  1036. "parameters":[
  1037. {
  1038. "description":"Node or edge kind to be queried.",
  1039. "in":"path",
  1040. "name":"kind",
  1041. "required":true,
  1042. "type":"string"
  1043. },
  1044. {
  1045. "description":"Partition to select.",
  1046. "in":"path",
  1047. "name":"partition",
  1048. "required":true,
  1049. "type":"string"
  1050. },
  1051. {
  1052. "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
  1053. "in":"path",
  1054. "name":"entity_type",
  1055. "required":true,
  1056. "type":"string"
  1057. },
  1058. {
  1059. "description":"Node or edge key to be queried.",
  1060. "in":"path",
  1061. "name":"key",
  1062. "required":true,
  1063. "type":"string"
  1064. },
  1065. {
  1066. "description":"How many list items to return.",
  1067. "format":"integer",
  1068. "in":"query",
  1069. "name":"limit",
  1070. "required":false,
  1071. "type":"number"
  1072. },
  1073. {
  1074. "description":"Offset in the dataset.",
  1075. "format":"integer",
  1076. "in":"query",
  1077. "name":"offset",
  1078. "required":false,
  1079. "type":"number"
  1080. }
  1081. ],
  1082. "produces":[
  1083. "text/plain",
  1084. "application/json"
  1085. ],
  1086. "responses":{
  1087. "200":{
  1088. "description":"The return data is a single object",
  1089. "schema":{
  1090. "type":"object"
  1091. }
  1092. },
  1093. "default":{
  1094. "description":"Error response",
  1095. "schema":{
  1096. "$ref":"#/definitions/Error"
  1097. }
  1098. }
  1099. },
  1100. "summary":"The graph endpoint is the main entry point to request data."
  1101. }
  1102. },
  1103. "/v1/graph/{partition}/{entity_type}/{kind}/{key}/{traversal_spec}":{
  1104. "get":{
  1105. "description":"GET requests can be used to query a single node and then traverse to its neighbours.",
  1106. "parameters":[
  1107. {
  1108. "description":"Node or edge kind to be queried.",
  1109. "in":"path",
  1110. "name":"kind",
  1111. "required":true,
  1112. "type":"string"
  1113. },
  1114. {
  1115. "description":"Partition to select.",
  1116. "in":"path",
  1117. "name":"partition",
  1118. "required":true,
  1119. "type":"string"
  1120. },
  1121. {
  1122. "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
  1123. "in":"path",
  1124. "name":"entity_type",
  1125. "required":true,
  1126. "type":"string"
  1127. },
  1128. {
  1129. "description":"Node or edge key to be queried.",
  1130. "in":"path",
  1131. "name":"key",
  1132. "required":true,
  1133. "type":"string"
  1134. },
  1135. {
  1136. "description":"Traversal to be followed from a single node.",
  1137. "in":"path",
  1138. "name":"traversal_spec",
  1139. "required":true,
  1140. "type":"string"
  1141. }
  1142. ],
  1143. "produces":[
  1144. "text/plain",
  1145. "application/json"
  1146. ],
  1147. "responses":{
  1148. "200":{
  1149. "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.",
  1150. "schema":{
  1151. "items":{
  1152. "items":{
  1153. "type":"object"
  1154. },
  1155. "type":"array"
  1156. },
  1157. "type":"array"
  1158. }
  1159. },
  1160. "default":{
  1161. "description":"Error response",
  1162. "schema":{
  1163. "$ref":"#/definitions/Error"
  1164. }
  1165. }
  1166. },
  1167. "summary":"The graph endpoint is the main entry point to request data."
  1168. }
  1169. },
  1170. "/v1/graphql-query/{partition}":{
  1171. "get":{
  1172. "consumes":[
  1173. "application/json"
  1174. ],
  1175. "description":"The GraphQL interface can be used to query data.",
  1176. "parameters":[
  1177. {
  1178. "description":"Partition to query.",
  1179. "in":"path",
  1180. "name":"partition",
  1181. "required":true,
  1182. "type":"string"
  1183. },
  1184. {
  1185. "description":"GraphQL query operation name.",
  1186. "in":"query",
  1187. "name":"operationName",
  1188. "required":false,
  1189. "type":"string"
  1190. },
  1191. {
  1192. "description":"GraphQL query.",
  1193. "in":"query",
  1194. "name":"query",
  1195. "required":true,
  1196. "type":"string"
  1197. },
  1198. {
  1199. "description":"GraphQL query variable values.",
  1200. "in":"query",
  1201. "name":"variables",
  1202. "required":false,
  1203. "type":"string"
  1204. }
  1205. ],
  1206. "produces":[
  1207. "text/plain",
  1208. "application/json"
  1209. ],
  1210. "responses":{
  1211. "200":{
  1212. "description":"The operation was successful."
  1213. },
  1214. "default":{
  1215. "description":"Error response",
  1216. "schema":{
  1217. "$ref":"#/definitions/Error"
  1218. }
  1219. }
  1220. },
  1221. "summary":"GraphQL interface which only executes non-modifying queries."
  1222. }
  1223. },
  1224. "/v1/graphql/{partition}":{
  1225. "post":{
  1226. "consumes":[
  1227. "application/json"
  1228. ],
  1229. "description":"The GraphQL interface can be used to query and modify data.",
  1230. "parameters":[
  1231. {
  1232. "description":"Partition to query.",
  1233. "in":"path",
  1234. "name":"partition",
  1235. "required":true,
  1236. "type":"string"
  1237. },
  1238. {
  1239. "description":"GraphQL request",
  1240. "in":"body",
  1241. "name":"graphql_request",
  1242. "required":true,
  1243. "schema":{
  1244. "$ref":"#/definitions/GraphQLRequest"
  1245. }
  1246. }
  1247. ],
  1248. "produces":[
  1249. "text/plain",
  1250. "application/json"
  1251. ],
  1252. "responses":{
  1253. "200":{
  1254. "description":"The operation was successful."
  1255. },
  1256. "default":{
  1257. "description":"Error response",
  1258. "schema":{
  1259. "$ref":"#/definitions/Error"
  1260. }
  1261. }
  1262. },
  1263. "summary":"GraphQL interface."
  1264. }
  1265. },
  1266. "/v1/index/{partition}/{entity_type}/{kind}":{
  1267. "get":{
  1268. "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.",
  1269. "parameters":[
  1270. {
  1271. "description":"Partition to query.",
  1272. "in":"path",
  1273. "name":"partition",
  1274. "required":true,
  1275. "type":"string"
  1276. },
  1277. {
  1278. "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
  1279. "in":"path",
  1280. "name":"entity_type",
  1281. "required":true,
  1282. "type":"string"
  1283. },
  1284. {
  1285. "description":"Node or edge kind to be queried.",
  1286. "in":"path",
  1287. "name":"kind",
  1288. "required":true,
  1289. "type":"string"
  1290. },
  1291. {
  1292. "description":"Attribute which should contain the word, phrase or value.",
  1293. "in":"query",
  1294. "name":"attr",
  1295. "required":true,
  1296. "type":"string"
  1297. },
  1298. {
  1299. "description":"Word to search for in word queries.",
  1300. "in":"query",
  1301. "name":"word",
  1302. "required":false,
  1303. "type":"string"
  1304. },
  1305. {
  1306. "description":"Phrase to search for in phrase queries.",
  1307. "in":"query",
  1308. "name":"phrase",
  1309. "required":false,
  1310. "type":"string"
  1311. },
  1312. {
  1313. "description":"Value (node/edge attribute value) to search for in value queries.",
  1314. "in":"query",
  1315. "name":"value",
  1316. "required":false,
  1317. "type":"string"
  1318. }
  1319. ],
  1320. "produces":[
  1321. "text/plain",
  1322. "application/json"
  1323. ],
  1324. "responses":{
  1325. "200":{
  1326. "description":"A list of keys or when doing a word search a map with node/edge key to word positions."
  1327. },
  1328. "default":{
  1329. "description":"Error response",
  1330. "schema":{
  1331. "$ref":"#/definitions/Error"
  1332. }
  1333. }
  1334. },
  1335. "summary":"Run index searches on the EliasDB datastore."
  1336. }
  1337. },
  1338. "/v1/info":{
  1339. "get":{
  1340. "description":"The info endpoint returns general database information such as known node kinds, known attributes, etc.",
  1341. "produces":[
  1342. "text/plain",
  1343. "application/json"
  1344. ],
  1345. "responses":{
  1346. "200":{
  1347. "description":"A key-value map."
  1348. },
  1349. "default":{
  1350. "description":"Error response",
  1351. "schema":{
  1352. "$ref":"#/definitions/Error"
  1353. }
  1354. }
  1355. },
  1356. "summary":"Return general datastore information."
  1357. }
  1358. },
  1359. "/v1/info/kind/{kind}":{
  1360. "get":{
  1361. "description":"The info kind endpoint returns information on a given node kind such as known attributes and edges.",
  1362. "parameters":[
  1363. {
  1364. "description":"Node or edge kind to be queried.",
  1365. "in":"path",
  1366. "name":"kind",
  1367. "required":true,
  1368. "type":"string"
  1369. }
  1370. ],
  1371. "produces":[
  1372. "text/plain",
  1373. "application/json"
  1374. ],
  1375. "responses":{
  1376. "200":{
  1377. "description":"A key-value map."
  1378. },
  1379. "default":{
  1380. "description":"Error response",
  1381. "schema":{
  1382. "$ref":"#/definitions/Error"
  1383. }
  1384. }
  1385. },
  1386. "summary":"Return information on a given node or edge kind."
  1387. }
  1388. },
  1389. "/v1/query/{partition}":{
  1390. "get":{
  1391. "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.",
  1392. "parameters":[
  1393. {
  1394. "description":"Partition to query.",
  1395. "in":"path",
  1396. "name":"partition",
  1397. "required":true,
  1398. "type":"string"
  1399. },
  1400. {
  1401. "description":"URL encoded query to execute.",
  1402. "in":"query",
  1403. "name":"q",
  1404. "required":false,
  1405. "type":"string"
  1406. },
  1407. {
  1408. "description":"Result ID to retrieve from the result cache.",
  1409. "format":"integer",
  1410. "in":"query",
  1411. "name":"rid",
  1412. "required":false,
  1413. "type":"number"
  1414. },
  1415. {
  1416. "description":"How many list items to return.",
  1417. "format":"integer",
  1418. "in":"query",
  1419. "name":"limit",
  1420. "required":false,
  1421. "type":"number"
  1422. },
  1423. {
  1424. "description":"Offset in the dataset.",
  1425. "format":"integer",
  1426. "in":"query",
  1427. "name":"offset",
  1428. "required":false,
  1429. "type":"number"
  1430. },
  1431. {
  1432. "description":"Include group information in the result if set to any value.",
  1433. "format":"integer",
  1434. "in":"query",
  1435. "name":"groups",
  1436. "required":false,
  1437. "type":"number"
  1438. }
  1439. ],
  1440. "produces":[
  1441. "text/plain",
  1442. "application/json"
  1443. ],
  1444. "responses":{
  1445. "200":{
  1446. "description":"A query result",
  1447. "schema":{
  1448. "$ref":"#/definitions/QueryResult"
  1449. }
  1450. },
  1451. "default":{
  1452. "description":"Error response",
  1453. "schema":{
  1454. "$ref":"#/definitions/Error"
  1455. }
  1456. }
  1457. },
  1458. "summary":"Run EQL queries to query the EliasDB datastore."
  1459. }
  1460. },
  1461. "/v1/queryresult/{rid}/csv":{
  1462. "get":{
  1463. "description":"The csv endpoint is used to generate a CSV string from the search result.",
  1464. "parameters":[
  1465. {
  1466. "description":"Result ID of a query result.",
  1467. "in":"path",
  1468. "name":"rid",
  1469. "required":true,
  1470. "type":"string"
  1471. }
  1472. ],
  1473. "produces":[
  1474. "text/plain"
  1475. ],
  1476. "responses":{
  1477. "200":{
  1478. "description":"A CSV string."
  1479. },
  1480. "default":{
  1481. "description":"Error response",
  1482. "schema":{
  1483. "$ref":"#/definitions/Error"
  1484. }
  1485. }
  1486. },
  1487. "summary":"Return the search result in CSV format."
  1488. }
  1489. },
  1490. "/v1/queryresult/{rid}/groupselected":{
  1491. "get":{
  1492. "description":"Returns the current selections state which contains all selected nodes which are in groups.",
  1493. "parameters":[
  1494. {
  1495. "description":"Result ID of a query result.",
  1496. "in":"path",
  1497. "name":"rid",
  1498. "required":true,
  1499. "type":"string"
  1500. }
  1501. ],
  1502. "produces":[
  1503. "text/plain",
  1504. "application/json"
  1505. ],
  1506. "responses":{
  1507. "200":{
  1508. "description":"Current group selection state.",
  1509. "schema":{
  1510. "$ref":"#/definitions/GroupSelectionState"
  1511. }
  1512. },
  1513. "default":{
  1514. "description":"Error response",
  1515. "schema":{
  1516. "$ref":"#/definitions/Error"
  1517. }
  1518. }
  1519. },
  1520. "summary":"Get the current group selection state."
  1521. },
  1522. "post":{
  1523. "description":"Sets the groups in the given selection state.",
  1524. "parameters":[
  1525. {
  1526. "description":"Result ID of a query result.",
  1527. "in":"path",
  1528. "name":"rid",
  1529. "required":true,
  1530. "type":"string"
  1531. },
  1532. {
  1533. "description":"Group seletion state of a query result",
  1534. "in":"body",
  1535. "name":"selection_state",
  1536. "required":true,
  1537. "schema":{
  1538. "$ref":"#/definitions/GroupSelectionState"
  1539. }
  1540. }
  1541. ],
  1542. "produces":[
  1543. "text/plain",
  1544. "application/json"
  1545. ],
  1546. "responses":{
  1547. "200":{
  1548. "description":"Current group selection state after the operation.",
  1549. "schema":{
  1550. "$ref":"#/definitions/GroupSelectionState"
  1551. }
  1552. },
  1553. "default":{
  1554. "description":"Error response",
  1555. "schema":{
  1556. "$ref":"#/definitions/Error"
  1557. }
  1558. }
  1559. },
  1560. "summary":"Set a new group selection state."
  1561. }
  1562. },
  1563. "/v1/queryresult/{rid}/groupselected/{group_name}":{
  1564. "delete":{
  1565. "description":"The groupselected endpoint is used to remove all selected nodes (primary node of each row) from the given (existing) group.",
  1566. "parameters":[
  1567. {
  1568. "description":"Result ID of a query result.",
  1569. "in":"path",
  1570. "name":"rid",
  1571. "required":true,
  1572. "type":"string"
  1573. },
  1574. {
  1575. "description":"Name of an existing group.",
  1576. "in":"path",
  1577. "name":"group_name",
  1578. "required":true,
  1579. "type":"string"
  1580. }
  1581. ],
  1582. "produces":[
  1583. "text/plain",
  1584. "application/json"
  1585. ],
  1586. "responses":{
  1587. "200":{
  1588. "description":"Current group selection state after the operation.",
  1589. "schema":{
  1590. "$ref":"#/definitions/GroupSelectionState"
  1591. }
  1592. },
  1593. "default":{
  1594. "description":"Error response",
  1595. "schema":{
  1596. "$ref":"#/definitions/Error"
  1597. }
  1598. }
  1599. },
  1600. "summary":"Remove all selected nodes (primary node of each row) from the given group."
  1601. },
  1602. "put":{
  1603. "description":"The groupselected endpoint is used to add all selected nodes (primary node of each row) to the given (existing) group.",
  1604. "parameters":[
  1605. {
  1606. "description":"Result ID of a query result.",
  1607. "in":"path",
  1608. "name":"rid",
  1609. "required":true,
  1610. "type":"string"
  1611. },
  1612. {
  1613. "description":"Name of an existing group.",
  1614. "in":"path",
  1615. "name":"group_name",
  1616. "required":true,
  1617. "type":"string"
  1618. }
  1619. ],
  1620. "produces":[
  1621. "text/plain",
  1622. "application/json"
  1623. ],
  1624. "responses":{
  1625. "200":{
  1626. "description":"Current group selection state after the operation.",
  1627. "schema":{
  1628. "$ref":"#/definitions/GroupSelectionState"
  1629. }
  1630. },
  1631. "default":{
  1632. "description":"Error response",
  1633. "schema":{
  1634. "$ref":"#/definitions/Error"
  1635. }
  1636. }
  1637. },
  1638. "summary":"Add all selected nodes (primary node of each row) to the given group."
  1639. }
  1640. },
  1641. "/v1/queryresult/{rid}/quickfilter/{column}":{
  1642. "get":{
  1643. "description":"The quickfilter endpoint is used to determine the 10 most frequent used values in a particular result column.",
  1644. "parameters":[
  1645. {
  1646. "description":"Result ID of a query result.",
  1647. "in":"path",
  1648. "name":"rid",
  1649. "required":true,
  1650. "type":"string"
  1651. },
  1652. {
  1653. "description":"Column of the query result.",
  1654. "in":"path",
  1655. "name":"column",
  1656. "required":true,
  1657. "type":"string"
  1658. },
  1659. {
  1660. "description":"Limit the maximum number of result items.",
  1661. "in":"query",
  1662. "name":"limit",
  1663. "required":false,
  1664. "type":"string"
  1665. }
  1666. ],
  1667. "produces":[
  1668. "text/plain",
  1669. "application/json"
  1670. ],
  1671. "responses":{
  1672. "200":{
  1673. "description":"An object containing values and frequencies."
  1674. },
  1675. "default":{
  1676. "description":"Error response",
  1677. "schema":{
  1678. "$ref":"#/definitions/Error"
  1679. }
  1680. }
  1681. },
  1682. "summary":"Return quickfilter information on a given result column."
  1683. }
  1684. },
  1685. "/v1/queryresult/{rid}/select":{
  1686. "get":{
  1687. "description":"The select endpoint is used to query all selected nodes of a given query result.",
  1688. "parameters":[
  1689. {
  1690. "description":"Result ID of a query result.",
  1691. "in":"path",
  1692. "name":"rid",
  1693. "required":true,
  1694. "type":"string"
  1695. }
  1696. ],
  1697. "produces":[
  1698. "text/plain",
  1699. "application/json"
  1700. ],
  1701. "responses":{
  1702. "200":{
  1703. "description":"Current total selections.",
  1704. "schema":{
  1705. "$ref":"#/definitions/SelectionState"
  1706. }
  1707. },
  1708. "default":{
  1709. "description":"Error response",
  1710. "schema":{
  1711. "$ref":"#/definitions/Error"
  1712. }
  1713. }
  1714. },
  1715. "summary":"Return the (primary) nodes which are currently selected."
  1716. }
  1717. },
  1718. "/v1/queryresult/{rid}/select/{row}":{
  1719. "put":{
  1720. "description":"The select endpoint is used to select one or more rows of a given query result.",
  1721. "parameters":[
  1722. {
  1723. "description":"Result ID of a query result.",
  1724. "in":"path",
  1725. "name":"rid",
  1726. "required":true,
  1727. "type":"string"
  1728. },
  1729. {
  1730. "description":"Row number of the query result or 'all', 'none' or 'invert'.",
  1731. "in":"path",
  1732. "name":"row",
  1733. "required":true,
  1734. "type":"string"
  1735. }
  1736. ],
  1737. "produces":[
  1738. "text/plain",
  1739. "application/json"
  1740. ],
  1741. "responses":{
  1742. "200":{
  1743. "description":"Current total selections."
  1744. },
  1745. "default":{
  1746. "description":"Error response",
  1747. "schema":{
  1748. "$ref":"#/definitions/Error"
  1749. }
  1750. }
  1751. },
  1752. "summary":"Selects one or more rows of a given query result."
  1753. }
  1754. }
  1755. },
  1756. "produces":[
  1757. "application/json"
  1758. ],
  1759. "schemes":[
  1760. "https"
  1761. ],
  1762. "swagger":"2.0"
  1763. }