You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by ah...@apache.org on 2017/01/11 02:34:54 UTC
svn commit: r1778231 -
/zeppelin/site/docs/0.7.0-SNAPSHOT/rest-api/rest-notebook.html
Author: ahyoungryu
Date: Wed Jan 11 02:34:54 2017
New Revision: 1778231
URL: http://svn.apache.org/viewvc?rev=1778231&view=rev
Log: (empty)
Modified:
zeppelin/site/docs/0.7.0-SNAPSHOT/rest-api/rest-notebook.html
Modified: zeppelin/site/docs/0.7.0-SNAPSHOT/rest-api/rest-notebook.html
URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.0-SNAPSHOT/rest-api/rest-notebook.html?rev=1778231&r1=1778230&r2=1778231&view=diff
==============================================================================
--- zeppelin/site/docs/0.7.0-SNAPSHOT/rest-api/rest-notebook.html (original)
+++ zeppelin/site/docs/0.7.0-SNAPSHOT/rest-api/rest-notebook.html Wed Jan 11 02:34:54 2017
@@ -213,14 +213,13 @@ limitations under the License.
<p>Apache Zeppelin provides several REST APIs for interaction and remote activation of zeppelin functionality.
All REST APIs are available starting with the following endpoint <code>http://[zeppelin-server]:[zeppelin-port]/api</code>.
-Note that Apache Zeppelin REST APIs receive or return JSON objects, it is recommended for you to install some JSON viewers such as <a href="https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc">JSONView</a>.</p>
-
-<p>If you work with Apache Zeppelin and find a need for an additional REST API, please <a href="http://zeppelin.apache.org/community.html">file an issue or send us an email</a>.</p>
-
-<h2>Notebook REST API List</h2>
+Note that Apache Zeppelin REST APIs receive or return JSON objects, it is recommended for you to install some JSON viewers such as <a href="https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc">JSONView</a>.
+If you work with Apache Zeppelin and find a need for an additional REST API, please <a href="http://zeppelin.apache.org/community.html">file an issue or send us an email</a>.</p>
<p>Notebooks REST API supports the following operations: List, Create, Get, Delete, Clone, Run, Export, Import as detailed in the following tables.</p>
+<h2>Note operations</h2>
+
<h3>List of the notes</h3>
<p><table class="table-configuration">
@@ -321,6 +320,54 @@ Note that Apache Zeppelin REST APIs rece
<p><br/></p>
+<h3>Get the status of all paragraphs</h3>
+
+<p><table class="table-configuration">
+ <col width="200">
+ <tr>
+ <td>Description</td>
+ <td>This <code>GET</code> method gets the status of all paragraphs by the given note id.
+ The body field of the returned JSON contains of the array that compose of the paragraph id, paragraph status, paragraph finish date, paragraph started date.
+ </td>
+ </tr>
+ <tr>
+ <td>URL</td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]</code></td>
+ </tr>
+ <tr>
+ <td>Success code</td>
+ <td>200</td>
+ </tr>
+ <tr>
+ <td> Fail code</td>
+ <td> 500 </td>
+ </tr>
+ <tr>
+ <td> sample JSON response </td>
+ <td><pre>
+{
+ "status": "OK",
+ "body": [
+ {
+ "id":"20151121-212654_766735423",
+ "status":"FINISHED",
+ "finished":"Tue Nov 24 14:21:40 KST 2015",
+ "started":"Tue Nov 24 14:21:39 KST 2015"
+ },
+ {
+ "progress":"1",
+ "id":"20151121-212657_730976687",
+ "status":"RUNNING",
+ "finished":"Tue Nov 24 14:21:35 KST 2015",
+ "started":"Tue Nov 24 14:21:40 KST 2015"
+ }
+ ]
+}</pre></td>
+ </tr>
+ </table></p>
+
+<p><br/></p>
+
<h3>Get an existing note information</h3>
<p><table class="table-configuration">
@@ -491,7 +538,120 @@ Note that Apache Zeppelin REST APIs rece
</tr>
</table></p>
-<p><br/></p>
+<p><br /></p>
+
+<h3>Export a note</h3>
+
+<p><table class="table-configuration">
+ <col width="200">
+ <tr>
+ <td>Description</td>
+ <td>This <code>GET</code> method exports a note by the given id and gernerates a JSON
+ </td>
+ </tr>
+ <tr>
+ <td>URL</td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/export/[noteId]</code></td>
+ </tr>
+ <tr>
+ <td>Success code</td>
+ <td>201</td>
+ </tr>
+ <tr>
+ <td> Fail code</td>
+ <td> 500 </td>
+ </tr>
+ <td> sample JSON response </td>
+ <td><pre>{
+ "paragraphs": [
+ {
+ "text": "%md This is my new paragraph in my new note",
+ "dateUpdated": "Jan 8, 2016 4:49:38 PM",
+ "config": {
+ "enabled": true
+ },
+ "settings": {
+ "params": {},
+ "forms": {}
+ },
+ "jobName": "paragraph_1452300578795_1196072540",
+ "id": "20160108-164938_1685162144",
+ "dateCreated": "Jan 8, 2016 4:49:38 PM",
+ "status": "READY",
+ "progressUpdateIntervalMs": 500
+ }
+ ],
+ "name": "source note for export",
+ "id": "2B82H3RR1",
+ "angularObjects": {},
+ "config": {},
+ "info": {}
+}</pre></td>
+ </tr>
+ </table></p>
+
+<p><br /></p>
+
+<h3>Import a note</h3>
+
+<p><table class="table-configuration">
+ <col width="200">
+ <tr>
+ <td>Description</td>
+ <td>This <code>POST</code> method imports a note from the note JSON input
+ </td>
+ </tr>
+ <tr>
+ <td>URL</td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/import</code></td>
+ </tr>
+ <tr>
+ <td>Success code</td>
+ <td>201</td>
+ </tr>
+ <tr>
+ <td> Fail code</td>
+ <td> 500 </td>
+ </tr>
+ <tr>
+ <td>sample JSON input</td>
+ <td><pre>
+{
+ "paragraphs": [
+ {
+ "text": "%md This is my new paragraph in my new note",
+ "dateUpdated": "Jan 8, 2016 4:49:38 PM",
+ "config": {
+ "enabled": true
+ },
+ "settings": {
+ "params": {},
+ "forms": {}
+ },
+ "jobName": "paragraph_1452300578795_1196072540",
+ "id": "20160108-164938_1685162144",
+ "dateCreated": "Jan 8, 2016 4:49:38 PM",
+ "status": "READY",
+ "progressUpdateIntervalMs": 500
+ }
+ ],
+ "name": "source note for export",
+ "id": "2B82H3RR1",
+ "angularObjects": {},
+ "config": {},
+ "info": {}
+}</pre></td>
+ </tr>
+ <tr>
+ <td>sample JSON response</td>
+ <td><pre>
+{
+ "status": "CREATED",
+ "message": "",
+ "body": "2AZPHY918"
+}</pre></td>
+ </tr>
+ </table></p>
<h3>Run all paragraphs</h3>
@@ -569,107 +729,113 @@ Note that Apache Zeppelin REST APIs rece
</tr>
</table></p>
-<p><br/></p>
+<p><br /></p>
-<h3>Get the status of all paragraphs</h3>
+<h3>Clear all paragraph result</h3>
<p><table class="table-configuration">
<col width="200">
<tr>
<td>Description</td>
- <td>This <code>GET</code> method gets the status of all paragraphs by the given note id.
- The body field of the returned JSON contains of the array that compose of the paragraph id, paragraph status, paragraph finish date, paragraph started date.
+ <td>This <code>PUT</code> method clear all paragraph results from note of given id.
</td>
</tr>
<tr>
<td>URL</td>
- <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]</code></td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/clear</code></td>
</tr>
<tr>
<td>Success code</td>
<td>200</td>
</tr>
<tr>
- <td> Fail code</td>
- <td> 500 </td>
+ <td>Forbidden code</td>
+ <td>401</td>
</tr>
<tr>
- <td> sample JSON response </td>
- <td><pre>
-{
- "status": "OK",
- "body": [
- {
- "id":"20151121-212654_766735423",
- "status":"FINISHED",
- "finished":"Tue Nov 24 14:21:40 KST 2015",
- "started":"Tue Nov 24 14:21:39 KST 2015"
- },
- {
- "progress":"1",
- "id":"20151121-212657_730976687",
- "status":"RUNNING",
- "finished":"Tue Nov 24 14:21:35 KST 2015",
- "started":"Tue Nov 24 14:21:40 KST 2015"
- }
- ]
-}</pre></td>
+ <td>Not Found code</td>
+ <td>404</td>
+ </tr>
+ <tr>
+ <td>Fail code</td>
+ <td>500</td>
+ </tr>
+ <tr>
+ <td>sample JSON response</td>
+ <td><pre>{"status": "OK"}</pre></td>
+ </tr>
</tr>
</table></p>
+<h2>Paragraph operations</h2>
+
<p><br/></p>
-<h3>Get the status of a single paragraph</h3>
+<h3>Create a new paragraph</h3>
<p><table class="table-configuration">
<col width="200">
<tr>
<td>Description</td>
- <td>This <code>GET</code> method gets the status of a single paragraph by the given note and paragraph id.
- The body field of the returned JSON contains of the array that compose of the paragraph id, paragraph status, paragraph finish date, paragraph started date.
+ <td>This <code>POST</code> method create a new paragraph using JSON payload.
+ The body field of the returned JSON contain the new paragraph id.
</td>
</tr>
<tr>
<td>URL</td>
- <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]/[paragraphId]</code></td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph</code></td>
</tr>
<tr>
<td>Success code</td>
- <td>200</td>
+ <td>201</td>
</tr>
<tr>
<td> Fail code</td>
<td> 500 </td>
</tr>
<tr>
+ <td> sample JSON input (add to the last) </td>
+ <td><pre>
+{
+ "title": "Paragraph insert revised",
+ "text": "%spark\nprintln(\"Paragraph insert revised\")"
+}</pre></td>
+ </tr>
+ <tr>
+ <td> sample JSON input (add to specific index) </td>
+ <td><pre>
+{
+ "title": "Paragraph insert revised",
+ "text": "%spark\nprintln(\"Paragraph insert revised\")",
+ "index": 0
+}</pre></td>
+ </tr>
+ <tr>
<td> sample JSON response </td>
<td><pre>
{
- "status": "OK",
- "body": {
- "id":"20151121-212654_766735423",
- "status":"FINISHED",
- "finished":"Tue Nov 24 14:21:40 KST 2015",
- "started":"Tue Nov 24 14:21:39 KST 2015"
- }
+ "status": "CREATED",
+ "message": "",
+ "body": "20151218-100330_1754029574"
}</pre></td>
</tr>
</table></p>
<p><br/></p>
-<h3>Run a paragraph asynchronously</h3>
+<h3>Get a paragraph information</h3>
<p><table class="table-configuration">
<col width="200">
<tr>
<td>Description</td>
- <td>This <code>POST</code> method runs the paragraph asynchronously by given note and paragraph id. This API always return SUCCESS even if the execution of the paragraph fails later because the API is asynchronous
+ <td>This <code>GET</code> method retrieves an existing paragraph's information using the given id.
+ The body field of the returned JSON contain information about paragraph.
</td>
</tr>
<tr>
<td>URL</td>
- <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]/[paragraphId]</code></td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]</code></td>
</tr>
<tr>
<td>Success code</td>
@@ -680,36 +846,70 @@ Note that Apache Zeppelin REST APIs rece
<td> 500 </td>
</tr>
<tr>
- <td> sample JSON input (optional, only needed when if you want to update dynamic form's value) </td>
+ <td> sample JSON response </td>
<td><pre>
{
- "name": "name of new note",
- "params": {
- "formLabel1": "value1",
- "formLabel2": "value2"
+ "status": "OK",
+ "message": "",
+ "body": {
+ "title": "Paragraph2",
+ "text": "%spark\n\nprintln(\"it's paragraph2\")",
+ "dateUpdated": "Dec 18, 2015 7:33:54 AM",
+ "config": {
+ "colWidth": 12,
+ "graph": {
+ "mode": "table",
+ "height": 300,
+ "optionOpen": false,
+ "keys": [],
+ "values": [],
+ "groups": [],
+ "scatter": {}
+ },
+ "enabled": true,
+ "title": true,
+ "editorMode": "ace/mode/scala"
+ },
+ "settings": {
+ "params": {},
+ "forms": {}
+ },
+ "jobName": "paragraph_1450391574392_-1890856722",
+ "id": "20151218-073254_1105602047",
+ "results": {
+ "code": "SUCCESS",
+ "msg": [
+ {
+ "type": "TEXT",
+ "data": "it's paragraph2\n"
+ }
+ ]
+ },
+ "dateCreated": "Dec 18, 2015 7:32:54 AM",
+ "dateStarted": "Dec 18, 2015 7:33:55 AM",
+ "dateFinished": "Dec 18, 2015 7:33:55 AM",
+ "status": "FINISHED",
+ "progressUpdateIntervalMs": 500
}
}</pre></td>
</tr>
- <tr>
- <td> sample JSON response </td>
- <td><pre>{"status": "OK"}</pre></td>
- </tr>
</table></p>
<p><br/></p>
-<h3>Run a paragraph synchronously</h3>
+<h3>Get the status of a single paragraph</h3>
<p><table class="table-configuration">
<col width="200">
<tr>
<td>Description</td>
- <td>This <code>POST</code> method runs the paragraph synchronously by given note and paragraph id. This API can return SUCCESS or ERROR depending on the outcome of the paragraph execution
+ <td>This <code>GET</code> method gets the status of a single paragraph by the given note and paragraph id.
+ The body field of the returned JSON contains of the array that compose of the paragraph id, paragraph status, paragraph finish date, paragraph started date.
</td>
</tr>
<tr>
<td>URL</td>
- <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/run/[noteId]/[paragraphId]</code></td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]/[paragraphId]</code></td>
</tr>
<tr>
<td>Success code</td>
@@ -720,110 +920,161 @@ Note that Apache Zeppelin REST APIs rece
<td> 500 </td>
</tr>
<tr>
- <td> sample JSON input (optional, only needed when if you want to update dynamic form's value) </td>
- <td><pre>
-{
- "name": "name of new note",
- "params": {
- "formLabel1": "value1",
- "formLabel2": "value2"
- }
-}</pre></td>
- </tr>
- <tr>
<td> sample JSON response </td>
- <td><pre>{"status": "OK"}</pre></td>
- </tr><br>
- <tr>
- <td> sample JSON error </td>
<td><pre>
{
- "status": "INTERNAL_SERVER_ERROR",
- "body": {
- "code": "ERROR",
- "type": "TEXT",
- "msg": "bash: -c: line 0: unexpected EOF while looking for matching ``'\nbash: -c: line 1: syntax error: unexpected end of file\nExitValue: 2"
- }
+ "status": "OK",
+ "body": {
+ "id":"20151121-212654_766735423",
+ "status":"FINISHED",
+ "finished":"Tue Nov 24 14:21:40 KST 2015",
+ "started":"Tue Nov 24 14:21:39 KST 2015"
+ }
}</pre></td>
</tr>
</table></p>
<p><br/></p>
-<h3>Stop a paragraph</h3>
+<h3>Update paragraph configuration</h3>
<p><table class="table-configuration">
<col width="200">
<tr>
<td>Description</td>
- <td>This <code>DELETE</code> method stops the paragraph by given note and paragraph id.
+ <td>This <code>PUT</code> method update paragraph configuration using given id so that user can change paragraph setting such as graph type, show or hide editor/result and paragraph size, etc. You can update certain fields you want, for example you can update <code>colWidth</code> field only by sending request with payload <code>{"colWidth": 12.0}</code>.
</td>
</tr>
<tr>
<td>URL</td>
- <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]/[paragraphId]</code></td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]/config</code></td>
</tr>
<tr>
<td>Success code</td>
<td>200</td>
</tr>
<tr>
- <td> Fail code</td>
- <td> 500 </td>
- </tr>
- <tr>
- <td> sample JSON response </td>
- <td><pre>{"status": "OK"}</pre></td>
- </tr>
- </table></p>
-
-<p><br/></p>
-
-<h3>Add Cron Job</h3>
-
-<p><table class="table-configuration">
- <col width="200">
- <tr>
- <td>Description</td>
- <td>This <code>POST</code> method adds cron job by the given note id.
- </td>
+ <td>Bad Request code</td>
+ <td>400</td>
</tr>
<tr>
- <td>URL</td>
- <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[noteId]</code></td>
+ <td>Forbidden code</td>
+ <td>403</td>
</tr>
<tr>
- <td>Success code</td>
- <td>200</td>
+ <td>Not Found code</td>
+ <td>404</td>
</tr>
<tr>
- <td> Fail code</td>
- <td> 500 </td>
+ <td>Fail code</td>
+ <td>500</td>
</tr>
<tr>
- <td> sample JSON input </td>
- <td><pre>{"cron": "cron expression of note"}</pre></td>
+ <td>sample JSON input</td>
+ <td><pre>
+{
+ "colWidth": 6.0,
+ "graph": {
+ "mode": "lineChart",
+ "height": 200.0,
+ "optionOpen": false,
+ "keys": [
+ {
+ "name": "age",
+ "index": 0.0,
+ "aggr": "sum"
+ }
+ ],
+ "values": [
+ {
+ "name": "value",
+ "index": 1.0,
+ "aggr": "sum"
+ }
+ ],
+ "groups": [],
+ "scatter": {}
+ },
+ "editorHide": true,
+ "editorMode": "ace/mode/markdown",
+ "tableHide": false
+}</pre></td>
</tr>
<tr>
- <td> sample JSON response </td>
- <td><pre>{"status": "OK"}</pre></td>
+ <td>sample JSON response</td>
+ <td><pre>
+{
+ "status":"OK",
+ "message":"",
+ "body":{
+ "text":"%sql \nselect age, count(1) value\nfrom bank \nwhere age \u003c 30 \ngroup by age \norder by age",
+ "config":{
+ "colWidth":6.0,
+ "graph":{
+ "mode":"lineChart",
+ "height":200.0,
+ "optionOpen":false,
+ "keys":[
+ {
+ "name":"age",
+ "index":0.0,
+ "aggr":"sum"
+ }
+ ],
+ "values":[
+ {
+ "name":"value",
+ "index":1.0,
+ "aggr":"sum"
+ }
+ ],
+ "groups":[],
+ "scatter":{}
+ },
+ "tableHide":false,
+ "editorMode":"ace/mode/markdown",
+ "editorHide":true
+ },
+ "settings":{
+ "params":{},
+ "forms":{}
+ },
+ "apps":[],
+ "jobName":"paragraph<em>1423500782552</em>-1439281894",
+ "id":"20150210-015302_1492795503",
+ "results":{
+ "code":"SUCCESS",
+ "msg": [
+ {
+ "type":"TABLE",
+ "data":"age\tvalue\n19\t4\n20\t3\n21\t7\n22\t9\n23\t20\n24\t24\n25\t44\n26\t77\n27\t94\n28\t103\n29\t97\n"
+ }
+ ]
+ },
+ "dateCreated":"Feb 10, 2015 1:53:02 AM",
+ "dateStarted":"Jul 3, 2015 1:43:17 PM",
+ "dateFinished":"Jul 3, 2015 1:43:23 PM",
+ "status":"FINISHED",
+ "progressUpdateIntervalMs":500
+ }
+}</pre></td>
</tr>
</table></p>
<p><br/></p>
-<h3>Remove Cron Job</h3>
+<h3>Delete a paragraph</h3>
<p><table class="table-configuration">
<col width="200">
<tr>
<td>Description</td>
- <td>This <code>DELETE</code> method removes cron job by the given note id.
+ <td>This <code>DELETE</code> method deletes a paragraph by the given note and paragraph id.
</td>
</tr>
<tr>
<td>URL</td>
- <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[noteId]</code></td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]</code></td>
</tr>
<tr>
<td>Success code</td>
@@ -835,25 +1086,24 @@ Note that Apache Zeppelin REST APIs rece
</tr>
<tr>
<td> sample JSON response </td>
- <td><pre>{"status": "OK"}</pre></td>
+ <td><pre>{"status": "OK","message": ""}</pre></td>
</tr>
</table></p>
<p><br/></p>
-<h3>Get Cron Job</h3>
+<h3>Run a paragraph asynchronously</h3>
<p><table class="table-configuration">
<col width="200">
<tr>
<td>Description</td>
- <td>This <code>GET</code> method gets cron job expression of given note id.
- The body field of the returned JSON contains the cron expression.
+ <td>This <code>POST</code> method runs the paragraph asynchronously by given note and paragraph id. This API always return SUCCESS even if the execution of the paragraph fails later because the API is asynchronous
</td>
</tr>
<tr>
<td>URL</td>
- <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[noteId]</code></td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]/[paragraphId]</code></td>
</tr>
<tr>
<td>Success code</td>
@@ -864,318 +1114,188 @@ Note that Apache Zeppelin REST APIs rece
<td> 500 </td>
</tr>
<tr>
+ <td> sample JSON input (optional, only needed when if you want to update dynamic form's value) </td>
+ <td><pre>
+{
+ "name": "name of new note",
+ "params": {
+ "formLabel1": "value1",
+ "formLabel2": "value2"
+ }
+}</pre></td>
+ </tr>
+ <tr>
<td> sample JSON response </td>
- <td><pre>{"status": "OK", "body": "* * * * * ?"}</pre></td>
+ <td><pre>{"status": "OK"}</pre></td>
</tr>
</table></p>
-<p><br /></p>
+<p><br/></p>
-<h3>Full text search through the paragraphs in all notes</h3>
+<h3>Run a paragraph synchronously</h3>
<p><table class="table-configuration">
<col width="200">
<tr>
<td>Description</td>
- <td><code>GET</code> request will return list of matching paragraphs
+ <td>This <code>POST</code> method runs the paragraph synchronously by given note and paragraph id. This API can return SUCCESS or ERROR depending on the outcome of the paragraph execution
</td>
</tr>
<tr>
<td>URL</td>
- <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/search?q=[query]</code></td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/run/[noteId]/[paragraphId]</code></td>
</tr>
<tr>
<td>Success code</td>
<td>200</td>
</tr>
<tr>
- <td>Fail code</td>
+ <td> Fail code</td>
<td> 500 </td>
</tr>
<tr>
- <td>Sample JSON response </td>
+ <td> sample JSON input (optional, only needed when if you want to update dynamic form's value) </td>
<td><pre>
{
- "status": "OK",
- "body": [
- {
- "id": "<noteId>/paragraph/<paragraphId>",
- "name":"Note Name",
- "snippet":"",
- "text":""
- }
- ]
+ "name": "name of new note",
+ "params": {
+ "formLabel1": "value1",
+ "formLabel2": "value2"
+ }
+}</pre></td>
+ </tr>
+ <tr>
+ <td> sample JSON response </td>
+ <td><pre>{"status": "OK"}</pre></td>
+ </tr><br>
+ <tr>
+ <td> sample JSON error </td>
+ <td><pre>
+{
+ "status": "INTERNAL_SERVER_ERROR",
+ "body": {
+ "code": "ERROR",
+ "type": "TEXT",
+ "msg": "bash: -c: line 0: unexpected EOF while looking for matching ``'\nbash: -c: line 1: syntax error: unexpected end of file\nExitValue: 2"
+ }
}</pre></td>
</tr>
</table></p>
<p><br/></p>
-<h3>Create a new paragraph</h3>
+<h3>Stop a paragraph</h3>
<p><table class="table-configuration">
<col width="200">
<tr>
<td>Description</td>
- <td>This <code>POST</code> method create a new paragraph using JSON payload.
- The body field of the returned JSON contain the new paragraph id.
+ <td>This <code>DELETE</code> method stops the paragraph by given note and paragraph id.
</td>
</tr>
<tr>
<td>URL</td>
- <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph</code></td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]/[paragraphId]</code></td>
</tr>
<tr>
<td>Success code</td>
- <td>201</td>
+ <td>200</td>
</tr>
<tr>
<td> Fail code</td>
<td> 500 </td>
</tr>
<tr>
- <td> sample JSON input (add to the last) </td>
- <td><pre>
-{
- "title": "Paragraph insert revised",
- "text": "%spark\nprintln(\"Paragraph insert revised\")"
-}</pre></td>
- </tr>
- <tr>
- <td> sample JSON input (add to specific index) </td>
- <td><pre>
-{
- "title": "Paragraph insert revised",
- "text": "%spark\nprintln(\"Paragraph insert revised\")",
- "index": 0
-}</pre></td>
- </tr>
- <tr>
<td> sample JSON response </td>
- <td><pre>
-{
- "status": "CREATED",
- "message": "",
- "body": "20151218-100330_1754029574"
-}</pre></td>
+ <td><pre>{"status": "OK"}</pre></td>
</tr>
</table></p>
<p><br/></p>
-<h3>Get a paragraph information</h3>
+<h3>Move a paragraph to the specific index</h3>
<p><table class="table-configuration">
<col width="200">
<tr>
<td>Description</td>
- <td>This <code>GET</code> method retrieves an existing paragraph's information using the given id.
- The body field of the returned JSON contain information about paragraph.
+ <td>This <code>POST</code> method moves a paragraph to the specific index (order) from the note.
</td>
</tr>
<tr>
<td>URL</td>
- <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]</code></td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]/move/[newIndex]</code></td>
</tr>
<tr>
<td>Success code</td>
<td>200</td>
</tr>
<tr>
- <td> Fail code</td>
- <td> 500 </td>
- </tr>
- <tr>
- <td> sample JSON response </td>
- <td><pre>
-{
- "status": "OK",
- "message": "",
- "body": {
- "title": "Paragraph2",
- "text": "%spark\n\nprintln(\"it's paragraph2\")",
- "dateUpdated": "Dec 18, 2015 7:33:54 AM",
- "config": {
- "colWidth": 12,
- "graph": {
- "mode": "table",
- "height": 300,
- "optionOpen": false,
- "keys": [],
- "values": [],
- "groups": [],
- "scatter": {}
- },
- "enabled": true,
- "title": true,
- "editorMode": "ace/mode/scala"
- },
- "settings": {
- "params": {},
- "forms": {}
- },
- "jobName": "paragraph_1450391574392_-1890856722",
- "id": "20151218-073254_1105602047",
- "results": {
- "code": "SUCCESS",
- "msg": [
- {
- "type": "TEXT",
- "data": "it's paragraph2\n"
- }
- ]
- },
- "dateCreated": "Dec 18, 2015 7:32:54 AM",
- "dateStarted": "Dec 18, 2015 7:33:55 AM",
- "dateFinished": "Dec 18, 2015 7:33:55 AM",
- "status": "FINISHED",
- "progressUpdateIntervalMs": 500
- }
-}</pre></td>
+ <td> Fail code</td>
+ <td> 500 </td>
+ </tr>
+ <tr>
+ <td> sample JSON response </td>
+ <td><pre>{"status": "OK","message": ""}</pre></td>
</tr>
</table></p>
-<p><br/></p>
+<p><br /></p>
-<h3>Update paragraph configuration</h3>
+<h3>Full text search through the paragraphs in all notes</h3>
<p><table class="table-configuration">
<col width="200">
<tr>
<td>Description</td>
- <td>This <code>PUT</code> method update paragraph configuration using given id so that user can change paragraph setting such as graph type, show or hide editor/result and paragraph size, etc. You can update certain fields you want, for example you can update <code>colWidth</code> field only by sending request with payload <code>{"colWidth": 12.0}</code>.
+ <td><code>GET</code> request will return list of matching paragraphs
</td>
</tr>
<tr>
<td>URL</td>
- <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]/config</code></td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/search?q=[query]</code></td>
</tr>
<tr>
<td>Success code</td>
<td>200</td>
</tr>
<tr>
- <td>Bad Request code</td>
- <td>400</td>
- </tr>
- <tr>
- <td>Forbidden code</td>
- <td>403</td>
- </tr>
- <tr>
- <td>Not Found code</td>
- <td>404</td>
- </tr>
- <tr>
<td>Fail code</td>
- <td>500</td>
- </tr>
- <tr>
- <td>sample JSON input</td>
- <td><pre>
-{
- "colWidth": 6.0,
- "graph": {
- "mode": "lineChart",
- "height": 200.0,
- "optionOpen": false,
- "keys": [
- {
- "name": "age",
- "index": 0.0,
- "aggr": "sum"
- }
- ],
- "values": [
- {
- "name": "value",
- "index": 1.0,
- "aggr": "sum"
- }
- ],
- "groups": [],
- "scatter": {}
- },
- "editorHide": true,
- "editorMode": "ace/mode/markdown",
- "tableHide": false
-}</pre></td>
+ <td> 500 </td>
</tr>
<tr>
- <td>sample JSON response</td>
+ <td>Sample JSON response </td>
<td><pre>
{
- "status":"OK",
- "message":"",
- "body":{
- "text":"%sql \nselect age, count(1) value\nfrom bank \nwhere age \u003c 30 \ngroup by age \norder by age",
- "config":{
- "colWidth":6.0,
- "graph":{
- "mode":"lineChart",
- "height":200.0,
- "optionOpen":false,
- "keys":[
- {
- "name":"age",
- "index":0.0,
- "aggr":"sum"
- }
- ],
- "values":[
- {
- "name":"value",
- "index":1.0,
- "aggr":"sum"
- }
- ],
- "groups":[],
- "scatter":{}
- },
- "tableHide":false,
- "editorMode":"ace/mode/markdown",
- "editorHide":true
- },
- "settings":{
- "params":{},
- "forms":{}
- },
- "apps":[],
- "jobName":"paragraph<em>1423500782552</em>-1439281894",
- "id":"20150210-015302_1492795503",
- "results":{
- "code":"SUCCESS",
- "msg": [
- {
- "type":"TABLE",
- "data":"age\tvalue\n19\t4\n20\t3\n21\t7\n22\t9\n23\t20\n24\t24\n25\t44\n26\t77\n27\t94\n28\t103\n29\t97\n"
- }
- ]
- },
- "dateCreated":"Feb 10, 2015 1:53:02 AM",
- "dateStarted":"Jul 3, 2015 1:43:17 PM",
- "dateFinished":"Jul 3, 2015 1:43:23 PM",
- "status":"FINISHED",
- "progressUpdateIntervalMs":500
- }
+ "status": "OK",
+ "body": [
+ {
+ "id": "<noteId>/paragraph/<paragraphId>",
+ "name":"Note Name",
+ "snippet":"",
+ "text":""
+ }
+ ]
}</pre></td>
</tr>
</table></p>
+<h2>Cron jobs</h2>
+
<p><br/></p>
-<h3>Move a paragraph to the specific index</h3>
+<h3>Add Cron Job</h3>
<p><table class="table-configuration">
<col width="200">
<tr>
<td>Description</td>
- <td>This <code>POST</code> method moves a paragraph to the specific index (order) from the note.
+ <td>This <code>POST</code> method adds cron job by the given note id.
</td>
</tr>
<tr>
<td>URL</td>
- <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]/move/[newIndex]</code></td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[noteId]</code></td>
</tr>
<tr>
<td>Success code</td>
@@ -1186,25 +1306,29 @@ Note that Apache Zeppelin REST APIs rece
<td> 500 </td>
</tr>
<tr>
+ <td> sample JSON input </td>
+ <td><pre>{"cron": "cron expression of note"}</pre></td>
+ </tr>
+ <tr>
<td> sample JSON response </td>
- <td><pre>{"status": "OK","message": ""}</pre></td>
+ <td><pre>{"status": "OK"}</pre></td>
</tr>
</table></p>
<p><br/></p>
-<h3>Delete a paragraph</h3>
+<h3>Remove Cron Job</h3>
<p><table class="table-configuration">
<col width="200">
<tr>
<td>Description</td>
- <td>This <code>DELETE</code> method deletes a paragraph by the given note and paragraph id.
+ <td>This <code>DELETE</code> method removes cron job by the given note id.
</td>
</tr>
<tr>
<td>URL</td>
- <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]</code></td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[noteId]</code></td>
</tr>
<tr>
<td>Success code</td>
@@ -1216,139 +1340,103 @@ Note that Apache Zeppelin REST APIs rece
</tr>
<tr>
<td> sample JSON response </td>
- <td><pre>{"status": "OK","message": ""}</pre></td>
+ <td><pre>{"status": "OK"}</pre></td>
</tr>
</table></p>
-<p><br /></p>
+<p><br/></p>
-<h3>Export a note</h3>
+<h3>Get Cron Job</h3>
<p><table class="table-configuration">
<col width="200">
<tr>
<td>Description</td>
- <td>This <code>GET</code> method exports a note by the given id and gernerates a JSON
+ <td>This <code>GET</code> method gets cron job expression of given note id.
+ The body field of the returned JSON contains the cron expression.
</td>
</tr>
<tr>
<td>URL</td>
- <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/export/[noteId]</code></td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[noteId]</code></td>
</tr>
<tr>
<td>Success code</td>
- <td>201</td>
+ <td>200</td>
</tr>
<tr>
<td> Fail code</td>
<td> 500 </td>
</tr>
- <td> sample JSON response </td>
- <td><pre>{
- "paragraphs": [
- {
- "text": "%md This is my new paragraph in my new note",
- "dateUpdated": "Jan 8, 2016 4:49:38 PM",
- "config": {
- "enabled": true
- },
- "settings": {
- "params": {},
- "forms": {}
- },
- "jobName": "paragraph_1452300578795_1196072540",
- "id": "20160108-164938_1685162144",
- "dateCreated": "Jan 8, 2016 4:49:38 PM",
- "status": "READY",
- "progressUpdateIntervalMs": 500
- }
- ],
- "name": "source note for export",
- "id": "2B82H3RR1",
- "angularObjects": {},
- "config": {},
- "info": {}
-}</pre></td>
+ <tr>
+ <td> sample JSON response </td>
+ <td><pre>{"status": "OK", "body": "* * * * * ?"}</pre></td>
</tr>
</table></p>
-<p><br /></p>
+<h2>Permission</h2>
-<h3>Import a note</h3>
+<h3>Get a note permission information</h3>
<p><table class="table-configuration">
<col width="200">
<tr>
<td>Description</td>
- <td>This <code>POST</code> method imports a note from the note JSON input
+ <td>This <code>GET</code> method gets a note authorization information.
</td>
</tr>
<tr>
<td>URL</td>
- <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/import</code></td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/permissions</code></td>
</tr>
<tr>
<td>Success code</td>
- <td>201</td>
+ <td>200</td>
</tr>
<tr>
- <td> Fail code</td>
- <td> 500 </td>
+ <td>Forbidden code</td>
+ <td>403</td>
</tr>
<tr>
- <td>sample JSON input</td>
- <td><pre>
-{
- "paragraphs": [
- {
- "text": "%md This is my new paragraph in my new note",
- "dateUpdated": "Jan 8, 2016 4:49:38 PM",
- "config": {
- "enabled": true
- },
- "settings": {
- "params": {},
- "forms": {}
- },
- "jobName": "paragraph_1452300578795_1196072540",
- "id": "20160108-164938_1685162144",
- "dateCreated": "Jan 8, 2016 4:49:38 PM",
- "status": "READY",
- "progressUpdateIntervalMs": 500
- }
- ],
- "name": "source note for export",
- "id": "2B82H3RR1",
- "angularObjects": {},
- "config": {},
- "info": {}
-}</pre></td>
+ <td>Fail code</td>
+ <td>500</td>
</tr>
<tr>
- <td>sample JSON response</td>
+ <td> sample JSON response </td>
<td><pre>
-{
- "status": "CREATED",
- "message": "",
- "body": "2AZPHY918"
-}</pre></td>
+{<br>
+ "status":"OK",
+ "message":"",
+ "body":{<br>
+ "readers":[<br>
+ "user2"
+ ],
+ "owners":[<br>
+ "user1"
+ ],
+ "writers":[<br>
+ "user2"
+ ]
+ }
+}
+ </pre></td>
</tr>
</table></p>
-<p><br /></p>
+<p><br/></p>
-<h3>Clear all paragraph result</h3>
+<h3>Set note permission</h3>
<p><table class="table-configuration">
<col width="200">
<tr>
<td>Description</td>
- <td>This <code>PUT</code> method clear all paragraph results from note of given id.
+ <td>This <code>PUT</code> method set note authorization information.
</td>
</tr>
<tr>
<td>URL</td>
- <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/clear</code></td>
+ <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/permissions</code></td>
</tr>
<tr>
<td>Success code</td>
@@ -1356,20 +1444,34 @@ Note that Apache Zeppelin REST APIs rece
</tr>
<tr>
<td>Forbidden code</td>
- <td>401</td>
- </tr>
- <tr>
- <td>Not Found code</td>
- <td>404</td>
+ <td>403</td>
</tr>
<tr>
<td>Fail code</td>
<td>500</td>
</tr>
<tr>
- <td>sample JSON response</td>
- <td><pre>{"status": "OK"}</pre></td>
+ <td> sample JSON input </td>
+ <td><pre>
+{
+ "readers": [
+ "user1"
+ ],
+ "owners": [
+ "user2"
+ ],
+ "writers": [
+ "user1"
+ ]
+}
+</pre></td>
</tr>
+ <tr>
+ <td> sample JSON response </td>
+ <td><pre>
+{
+ "status": "OK"
+}</pre></td>
</tr>
</table></p>