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>
+{
+  &quot;status&quot;: &quot;OK&quot;,
+  &quot;body&quot;: [
+    {
+      &quot;id&quot;:&quot;20151121-212654_766735423&quot;,
+      &quot;status&quot;:&quot;FINISHED&quot;,
+      &quot;finished&quot;:&quot;Tue Nov 24 14:21:40 KST 2015&quot;,
+      &quot;started&quot;:&quot;Tue Nov 24 14:21:39 KST 2015&quot;
+    },
+    {
+      &quot;progress&quot;:&quot;1&quot;,
+      &quot;id&quot;:&quot;20151121-212657_730976687&quot;,
+      &quot;status&quot;:&quot;RUNNING&quot;,
+      &quot;finished&quot;:&quot;Tue Nov 24 14:21:35 KST 2015&quot;,
+      &quot;started&quot;:&quot;Tue Nov 24 14:21:40 KST 2015&quot;
+    }
+  ]
+}</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>{
+  &quot;paragraphs&quot;: [
+    {
+      &quot;text&quot;: &quot;%md This is my new paragraph in my new note&quot;,
+      &quot;dateUpdated&quot;: &quot;Jan 8, 2016 4:49:38 PM&quot;,
+      &quot;config&quot;: {
+        &quot;enabled&quot;: true
+      },
+      &quot;settings&quot;: {
+        &quot;params&quot;: {},
+        &quot;forms&quot;: {}
+      },
+      &quot;jobName&quot;: &quot;paragraph_1452300578795_1196072540&quot;,
+      &quot;id&quot;: &quot;20160108-164938_1685162144&quot;,
+      &quot;dateCreated&quot;: &quot;Jan 8, 2016 4:49:38 PM&quot;,
+      &quot;status&quot;: &quot;READY&quot;,
+      &quot;progressUpdateIntervalMs&quot;: 500
+    }
+  ],
+  &quot;name&quot;: &quot;source note for export&quot;,
+  &quot;id&quot;: &quot;2B82H3RR1&quot;,
+  &quot;angularObjects&quot;: {},
+  &quot;config&quot;: {},
+  &quot;info&quot;: {}
+}</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>
+{
+  &quot;paragraphs&quot;: [
+    {
+      &quot;text&quot;: &quot;%md This is my new paragraph in my new note&quot;,
+      &quot;dateUpdated&quot;: &quot;Jan 8, 2016 4:49:38 PM&quot;,
+      &quot;config&quot;: {
+        &quot;enabled&quot;: true
+      },
+      &quot;settings&quot;: {
+        &quot;params&quot;: {},
+        &quot;forms&quot;: {}
+      },
+      &quot;jobName&quot;: &quot;paragraph_1452300578795_1196072540&quot;,
+      &quot;id&quot;: &quot;20160108-164938_1685162144&quot;,
+      &quot;dateCreated&quot;: &quot;Jan 8, 2016 4:49:38 PM&quot;,
+      &quot;status&quot;: &quot;READY&quot;,
+      &quot;progressUpdateIntervalMs&quot;: 500
+    }
+  ],
+  &quot;name&quot;: &quot;source note for export&quot;,
+  &quot;id&quot;: &quot;2B82H3RR1&quot;,
+  &quot;angularObjects&quot;: {},
+  &quot;config&quot;: {},
+  &quot;info&quot;: {}
+}</pre></td>
+    </tr>
+    <tr>
+      <td>sample JSON response</td>
+      <td><pre>
+{
+  &quot;status&quot;: &quot;CREATED&quot;,
+  &quot;message&quot;: &quot;&quot;,
+  &quot;body&quot;: &quot;2AZPHY918&quot;
+}</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>
-{
-  &quot;status&quot;: &quot;OK&quot;,
-  &quot;body&quot;: [
-    {
-      &quot;id&quot;:&quot;20151121-212654_766735423&quot;,
-      &quot;status&quot;:&quot;FINISHED&quot;,
-      &quot;finished&quot;:&quot;Tue Nov 24 14:21:40 KST 2015&quot;,
-      &quot;started&quot;:&quot;Tue Nov 24 14:21:39 KST 2015&quot;
-    },
-    {
-      &quot;progress&quot;:&quot;1&quot;,
-      &quot;id&quot;:&quot;20151121-212657_730976687&quot;,
-      &quot;status&quot;:&quot;RUNNING&quot;,
-      &quot;finished&quot;:&quot;Tue Nov 24 14:21:35 KST 2015&quot;,
-      &quot;started&quot;:&quot;Tue Nov 24 14:21:40 KST 2015&quot;
-    }
-  ]
-}</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>{&quot;status&quot;: &quot;OK&quot;}</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>
+{
+  &quot;title&quot;: &quot;Paragraph insert revised&quot;,
+  &quot;text&quot;: &quot;%spark\nprintln(\&quot;Paragraph insert revised\&quot;)&quot;
+}</pre></td>
+    </tr>
+    <tr>
+      <td> sample JSON input (add to specific index) </td>
+      <td><pre>
+{
+  &quot;title&quot;: &quot;Paragraph insert revised&quot;,
+  &quot;text&quot;: &quot;%spark\nprintln(\&quot;Paragraph insert revised\&quot;)&quot;,
+  &quot;index&quot;: 0
+}</pre></td>
+    </tr>
+    <tr>
       <td> sample JSON response </td>
       <td><pre>
 {
-  &quot;status&quot;: &quot;OK&quot;,
-  &quot;body&quot;: {
-      &quot;id&quot;:&quot;20151121-212654_766735423&quot;,
-      &quot;status&quot;:&quot;FINISHED&quot;,
-      &quot;finished&quot;:&quot;Tue Nov 24 14:21:40 KST 2015&quot;,
-      &quot;started&quot;:&quot;Tue Nov 24 14:21:39 KST 2015&quot;
-    }
+  &quot;status&quot;: &quot;CREATED&quot;,
+  &quot;message&quot;: &quot;&quot;,
+  &quot;body&quot;: &quot;20151218-100330_1754029574&quot;
 }</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&#39;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&#39;s value) </td>
+      <td> sample JSON response </td>
       <td><pre>
 {
-  &quot;name&quot;: &quot;name of new note&quot;,
-  &quot;params&quot;: {
-    &quot;formLabel1&quot;: &quot;value1&quot;,
-    &quot;formLabel2&quot;: &quot;value2&quot;
+  &quot;status&quot;: &quot;OK&quot;,
+  &quot;message&quot;: &quot;&quot;,
+  &quot;body&quot;: {
+    &quot;title&quot;: &quot;Paragraph2&quot;,
+    &quot;text&quot;: &quot;%spark\n\nprintln(\&quot;it&#39;s paragraph2\&quot;)&quot;,
+    &quot;dateUpdated&quot;: &quot;Dec 18, 2015 7:33:54 AM&quot;,
+    &quot;config&quot;: {
+      &quot;colWidth&quot;: 12,
+      &quot;graph&quot;: {
+        &quot;mode&quot;: &quot;table&quot;,
+        &quot;height&quot;: 300,
+        &quot;optionOpen&quot;: false,
+        &quot;keys&quot;: [],
+        &quot;values&quot;: [],
+        &quot;groups&quot;: [],
+        &quot;scatter&quot;: {}
+      },
+      &quot;enabled&quot;: true,
+      &quot;title&quot;: true,
+      &quot;editorMode&quot;: &quot;ace/mode/scala&quot;
+    },
+    &quot;settings&quot;: {
+      &quot;params&quot;: {},
+      &quot;forms&quot;: {}
+    },
+    &quot;jobName&quot;: &quot;paragraph_1450391574392_-1890856722&quot;,
+    &quot;id&quot;: &quot;20151218-073254_1105602047&quot;,
+    &quot;results&quot;: {
+      &quot;code&quot;: &quot;SUCCESS&quot;,
+      &quot;msg&quot;: [
+        {
+           &quot;type&quot;: &quot;TEXT&quot;,
+           &quot;data&quot;: &quot;it&#39;s paragraph2\n&quot;
+        }
+      ]
+    },
+    &quot;dateCreated&quot;: &quot;Dec 18, 2015 7:32:54 AM&quot;,
+    &quot;dateStarted&quot;: &quot;Dec 18, 2015 7:33:55 AM&quot;,
+    &quot;dateFinished&quot;: &quot;Dec 18, 2015 7:33:55 AM&quot;,
+    &quot;status&quot;: &quot;FINISHED&quot;,
+    &quot;progressUpdateIntervalMs&quot;: 500
   }
 }</pre></td>
     </tr>
-    <tr>
-      <td> sample JSON response </td>
-      <td><pre>{&quot;status&quot;: &quot;OK&quot;}</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&#39;s value) </td>
-      <td><pre>
-{
-  &quot;name&quot;: &quot;name of new note&quot;,
-  &quot;params&quot;: {
-    &quot;formLabel1&quot;: &quot;value1&quot;,
-    &quot;formLabel2&quot;: &quot;value2&quot;
-  }
-}</pre></td>
-    </tr>
-    <tr>
       <td> sample JSON response </td>
-      <td><pre>{&quot;status&quot;: &quot;OK&quot;}</pre></td>
-    </tr><br>
-    <tr>
-      <td> sample JSON error </td>
       <td><pre>
 {
-   &quot;status&quot;: &quot;INTERNAL_SERVER_ERROR&quot;,
-   &quot;body&quot;: {
-       &quot;code&quot;: &quot;ERROR&quot;,
-       &quot;type&quot;: &quot;TEXT&quot;,
-       &quot;msg&quot;: &quot;bash: -c: line 0: unexpected EOF while looking for matching ``&#39;\nbash: -c: line 1: syntax error: unexpected end of file\nExitValue: 2&quot;
-   }
+  &quot;status&quot;: &quot;OK&quot;,
+  &quot;body&quot;: {
+      &quot;id&quot;:&quot;20151121-212654_766735423&quot;,
+      &quot;status&quot;:&quot;FINISHED&quot;,
+      &quot;finished&quot;:&quot;Tue Nov 24 14:21:40 KST 2015&quot;,
+      &quot;started&quot;:&quot;Tue Nov 24 14:21:39 KST 2015&quot;
+    }
 }</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>{&quot;colWidth&quot;: 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>{&quot;status&quot;: &quot;OK&quot;}</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>{&quot;cron&quot;: &quot;cron expression of note&quot;}</pre></td>
+      <td>sample JSON input</td>
+      <td><pre>
+{
+  &quot;colWidth&quot;: 6.0,
+  &quot;graph&quot;: {
+    &quot;mode&quot;: &quot;lineChart&quot;,
+    &quot;height&quot;: 200.0,
+    &quot;optionOpen&quot;: false,
+    &quot;keys&quot;: [
+      {
+        &quot;name&quot;: &quot;age&quot;,
+        &quot;index&quot;: 0.0,
+        &quot;aggr&quot;: &quot;sum&quot;
+      }
+    ],
+    &quot;values&quot;: [
+      {
+        &quot;name&quot;: &quot;value&quot;,
+        &quot;index&quot;: 1.0,
+        &quot;aggr&quot;: &quot;sum&quot;
+      }
+    ],
+    &quot;groups&quot;: [],
+    &quot;scatter&quot;: {}
+  },
+  &quot;editorHide&quot;: true,
+  &quot;editorMode&quot;: &quot;ace/mode/markdown&quot;,
+  &quot;tableHide&quot;: false
+}</pre></td>
     </tr>
     <tr>
-      <td> sample JSON response </td>
-      <td><pre>{&quot;status&quot;: &quot;OK&quot;}</pre></td>
+      <td>sample JSON response</td>
+      <td><pre>
+{
+  &quot;status&quot;:&quot;OK&quot;,
+  &quot;message&quot;:&quot;&quot;,
+  &quot;body&quot;:{
+    &quot;text&quot;:&quot;%sql \nselect age, count(1) value\nfrom bank \nwhere age \u003c 30 \ngroup by age \norder by age&quot;,
+    &quot;config&quot;:{
+      &quot;colWidth&quot;:6.0,
+      &quot;graph&quot;:{
+        &quot;mode&quot;:&quot;lineChart&quot;,
+        &quot;height&quot;:200.0,
+        &quot;optionOpen&quot;:false,
+        &quot;keys&quot;:[
+          {
+            &quot;name&quot;:&quot;age&quot;,
+            &quot;index&quot;:0.0,
+            &quot;aggr&quot;:&quot;sum&quot;
+          }
+        ],
+        &quot;values&quot;:[
+          {
+            &quot;name&quot;:&quot;value&quot;,
+            &quot;index&quot;:1.0,
+            &quot;aggr&quot;:&quot;sum&quot;
+          }
+        ],
+        &quot;groups&quot;:[],
+        &quot;scatter&quot;:{}
+      },
+      &quot;tableHide&quot;:false,
+      &quot;editorMode&quot;:&quot;ace/mode/markdown&quot;,
+      &quot;editorHide&quot;:true
+    },
+    &quot;settings&quot;:{
+      &quot;params&quot;:{},
+      &quot;forms&quot;:{}
+    },
+    &quot;apps&quot;:[],
+    &quot;jobName&quot;:&quot;paragraph<em>1423500782552</em>-1439281894&quot;,
+    &quot;id&quot;:&quot;20150210-015302_1492795503&quot;,
+    &quot;results&quot;:{
+      &quot;code&quot;:&quot;SUCCESS&quot;,
+      &quot;msg&quot;: [
+        {
+          &quot;type&quot;:&quot;TABLE&quot;,
+          &quot;data&quot;:&quot;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&quot;
+        }
+      ]
+    },
+    &quot;dateCreated&quot;:&quot;Feb 10, 2015 1:53:02 AM&quot;,
+    &quot;dateStarted&quot;:&quot;Jul 3, 2015 1:43:17 PM&quot;,
+    &quot;dateFinished&quot;:&quot;Jul 3, 2015 1:43:23 PM&quot;,
+    &quot;status&quot;:&quot;FINISHED&quot;,
+    &quot;progressUpdateIntervalMs&quot;: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>{&quot;status&quot;: &quot;OK&quot;}</pre></td>
+      <td><pre>{&quot;status&quot;: &quot;OK&quot;,&quot;message&quot;: &quot;&quot;}</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&#39;s value) </td>
+      <td><pre>
+{
+  &quot;name&quot;: &quot;name of new note&quot;,
+  &quot;params&quot;: {
+    &quot;formLabel1&quot;: &quot;value1&quot;,
+    &quot;formLabel2&quot;: &quot;value2&quot;
+  }
+}</pre></td>
+    </tr>
+    <tr>
       <td> sample JSON response </td>
-      <td><pre>{&quot;status&quot;: &quot;OK&quot;, &quot;body&quot;: &quot;* * * * * ?&quot;}</pre></td>
+      <td><pre>{&quot;status&quot;: &quot;OK&quot;}</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&#39;s value) </td>
       <td><pre>
 {
-  &quot;status&quot;: &quot;OK&quot;,
-  &quot;body&quot;: [
-    {
-      &quot;id&quot;: &quot;<noteId>/paragraph/<paragraphId>&quot;,
-      &quot;name&quot;:&quot;Note Name&quot;, 
-      &quot;snippet&quot;:&quot;&quot;,
-      &quot;text&quot;:&quot;&quot;
-    }
-  ]
+  &quot;name&quot;: &quot;name of new note&quot;,
+  &quot;params&quot;: {
+    &quot;formLabel1&quot;: &quot;value1&quot;,
+    &quot;formLabel2&quot;: &quot;value2&quot;
+  }
+}</pre></td>
+    </tr>
+    <tr>
+      <td> sample JSON response </td>
+      <td><pre>{&quot;status&quot;: &quot;OK&quot;}</pre></td>
+    </tr><br>
+    <tr>
+      <td> sample JSON error </td>
+      <td><pre>
+{
+   &quot;status&quot;: &quot;INTERNAL_SERVER_ERROR&quot;,
+   &quot;body&quot;: {
+       &quot;code&quot;: &quot;ERROR&quot;,
+       &quot;type&quot;: &quot;TEXT&quot;,
+       &quot;msg&quot;: &quot;bash: -c: line 0: unexpected EOF while looking for matching ``&#39;\nbash: -c: line 1: syntax error: unexpected end of file\nExitValue: 2&quot;
+   }
 }</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>
-{
-  &quot;title&quot;: &quot;Paragraph insert revised&quot;,
-  &quot;text&quot;: &quot;%spark\nprintln(\&quot;Paragraph insert revised\&quot;)&quot;
-}</pre></td>
-    </tr>
-    <tr>
-      <td> sample JSON input (add to specific index) </td>
-      <td><pre>
-{
-  &quot;title&quot;: &quot;Paragraph insert revised&quot;,
-  &quot;text&quot;: &quot;%spark\nprintln(\&quot;Paragraph insert revised\&quot;)&quot;,
-  &quot;index&quot;: 0
-}</pre></td>
-    </tr>
-    <tr>
       <td> sample JSON response </td>
-      <td><pre>
-{
-  &quot;status&quot;: &quot;CREATED&quot;,
-  &quot;message&quot;: &quot;&quot;,
-  &quot;body&quot;: &quot;20151218-100330_1754029574&quot;
-}</pre></td>
+      <td><pre>{&quot;status&quot;: &quot;OK&quot;}</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&#39;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>
-{
-  &quot;status&quot;: &quot;OK&quot;,
-  &quot;message&quot;: &quot;&quot;,
-  &quot;body&quot;: {
-    &quot;title&quot;: &quot;Paragraph2&quot;,
-    &quot;text&quot;: &quot;%spark\n\nprintln(\&quot;it&#39;s paragraph2\&quot;)&quot;,
-    &quot;dateUpdated&quot;: &quot;Dec 18, 2015 7:33:54 AM&quot;,
-    &quot;config&quot;: {
-      &quot;colWidth&quot;: 12,
-      &quot;graph&quot;: {
-        &quot;mode&quot;: &quot;table&quot;,
-        &quot;height&quot;: 300,
-        &quot;optionOpen&quot;: false,
-        &quot;keys&quot;: [],
-        &quot;values&quot;: [],
-        &quot;groups&quot;: [],
-        &quot;scatter&quot;: {}
-      },
-      &quot;enabled&quot;: true,
-      &quot;title&quot;: true,
-      &quot;editorMode&quot;: &quot;ace/mode/scala&quot;
-    },
-    &quot;settings&quot;: {
-      &quot;params&quot;: {},
-      &quot;forms&quot;: {}
-    },
-    &quot;jobName&quot;: &quot;paragraph_1450391574392_-1890856722&quot;,
-    &quot;id&quot;: &quot;20151218-073254_1105602047&quot;,
-    &quot;results&quot;: {
-      &quot;code&quot;: &quot;SUCCESS&quot;,
-      &quot;msg&quot;: [
-        {
-           &quot;type&quot;: &quot;TEXT&quot;,
-           &quot;data&quot;: &quot;it&#39;s paragraph2\n&quot;
-        }
-      ]
-    },
-    &quot;dateCreated&quot;: &quot;Dec 18, 2015 7:32:54 AM&quot;,
-    &quot;dateStarted&quot;: &quot;Dec 18, 2015 7:33:55 AM&quot;,
-    &quot;dateFinished&quot;: &quot;Dec 18, 2015 7:33:55 AM&quot;,
-    &quot;status&quot;: &quot;FINISHED&quot;,
-    &quot;progressUpdateIntervalMs&quot;: 500
-  }
-}</pre></td>
+      <td> Fail code</td>
+      <td> 500 </td>
+    </tr>
+    <tr>
+      <td> sample JSON response </td>
+      <td><pre>{&quot;status&quot;: &quot;OK&quot;,&quot;message&quot;: &quot;&quot;}</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>{&quot;colWidth&quot;: 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>
-{
-  &quot;colWidth&quot;: 6.0,
-  &quot;graph&quot;: {
-    &quot;mode&quot;: &quot;lineChart&quot;,
-    &quot;height&quot;: 200.0,
-    &quot;optionOpen&quot;: false,
-    &quot;keys&quot;: [
-      {
-        &quot;name&quot;: &quot;age&quot;,
-        &quot;index&quot;: 0.0,
-        &quot;aggr&quot;: &quot;sum&quot;
-      }
-    ],
-    &quot;values&quot;: [
-      {
-        &quot;name&quot;: &quot;value&quot;,
-        &quot;index&quot;: 1.0,
-        &quot;aggr&quot;: &quot;sum&quot;
-      }
-    ],
-    &quot;groups&quot;: [],
-    &quot;scatter&quot;: {}
-  },
-  &quot;editorHide&quot;: true,
-  &quot;editorMode&quot;: &quot;ace/mode/markdown&quot;,
-  &quot;tableHide&quot;: false
-}</pre></td>
+      <td> 500 </td>
     </tr>
     <tr>
-      <td>sample JSON response</td>
+      <td>Sample JSON response </td>
       <td><pre>
 {
-  &quot;status&quot;:&quot;OK&quot;,
-  &quot;message&quot;:&quot;&quot;,
-  &quot;body&quot;:{
-    &quot;text&quot;:&quot;%sql \nselect age, count(1) value\nfrom bank \nwhere age \u003c 30 \ngroup by age \norder by age&quot;,
-    &quot;config&quot;:{
-      &quot;colWidth&quot;:6.0,
-      &quot;graph&quot;:{
-        &quot;mode&quot;:&quot;lineChart&quot;,
-        &quot;height&quot;:200.0,
-        &quot;optionOpen&quot;:false,
-        &quot;keys&quot;:[
-          {
-            &quot;name&quot;:&quot;age&quot;,
-            &quot;index&quot;:0.0,
-            &quot;aggr&quot;:&quot;sum&quot;
-          }
-        ],
-        &quot;values&quot;:[
-          {
-            &quot;name&quot;:&quot;value&quot;,
-            &quot;index&quot;:1.0,
-            &quot;aggr&quot;:&quot;sum&quot;
-          }
-        ],
-        &quot;groups&quot;:[],
-        &quot;scatter&quot;:{}
-      },
-      &quot;tableHide&quot;:false,
-      &quot;editorMode&quot;:&quot;ace/mode/markdown&quot;,
-      &quot;editorHide&quot;:true
-    },
-    &quot;settings&quot;:{
-      &quot;params&quot;:{},
-      &quot;forms&quot;:{}
-    },
-    &quot;apps&quot;:[],
-    &quot;jobName&quot;:&quot;paragraph<em>1423500782552</em>-1439281894&quot;,
-    &quot;id&quot;:&quot;20150210-015302_1492795503&quot;,
-    &quot;results&quot;:{
-      &quot;code&quot;:&quot;SUCCESS&quot;,
-      &quot;msg&quot;: [
-        {
-          &quot;type&quot;:&quot;TABLE&quot;,
-          &quot;data&quot;:&quot;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&quot;
-        }
-      ]
-    },
-    &quot;dateCreated&quot;:&quot;Feb 10, 2015 1:53:02 AM&quot;,
-    &quot;dateStarted&quot;:&quot;Jul 3, 2015 1:43:17 PM&quot;,
-    &quot;dateFinished&quot;:&quot;Jul 3, 2015 1:43:23 PM&quot;,
-    &quot;status&quot;:&quot;FINISHED&quot;,
-    &quot;progressUpdateIntervalMs&quot;:500
-  }
+  &quot;status&quot;: &quot;OK&quot;,
+  &quot;body&quot;: [
+    {
+      &quot;id&quot;: &quot;<noteId>/paragraph/<paragraphId>&quot;,
+      &quot;name&quot;:&quot;Note Name&quot;, 
+      &quot;snippet&quot;:&quot;&quot;,
+      &quot;text&quot;:&quot;&quot;
+    }
+  ]
 }</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>{&quot;cron&quot;: &quot;cron expression of note&quot;}</pre></td>
+    </tr>
+    <tr>
       <td> sample JSON response </td>
-      <td><pre>{&quot;status&quot;: &quot;OK&quot;,&quot;message&quot;: &quot;&quot;}</pre></td>
+      <td><pre>{&quot;status&quot;: &quot;OK&quot;}</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>{&quot;status&quot;: &quot;OK&quot;,&quot;message&quot;: &quot;&quot;}</pre></td>
+      <td><pre>{&quot;status&quot;: &quot;OK&quot;}</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>{
-  &quot;paragraphs&quot;: [
-    {
-      &quot;text&quot;: &quot;%md This is my new paragraph in my new note&quot;,
-      &quot;dateUpdated&quot;: &quot;Jan 8, 2016 4:49:38 PM&quot;,
-      &quot;config&quot;: {
-        &quot;enabled&quot;: true
-      },
-      &quot;settings&quot;: {
-        &quot;params&quot;: {},
-        &quot;forms&quot;: {}
-      },
-      &quot;jobName&quot;: &quot;paragraph_1452300578795_1196072540&quot;,
-      &quot;id&quot;: &quot;20160108-164938_1685162144&quot;,
-      &quot;dateCreated&quot;: &quot;Jan 8, 2016 4:49:38 PM&quot;,
-      &quot;status&quot;: &quot;READY&quot;,
-      &quot;progressUpdateIntervalMs&quot;: 500
-    }
-  ],
-  &quot;name&quot;: &quot;source note for export&quot;,
-  &quot;id&quot;: &quot;2B82H3RR1&quot;,
-  &quot;angularObjects&quot;: {},
-  &quot;config&quot;: {},
-  &quot;info&quot;: {}
-}</pre></td>
+    <tr>
+      <td> sample JSON response </td>
+      <td><pre>{&quot;status&quot;: &quot;OK&quot;, &quot;body&quot;: &quot;* * * * * ?&quot;}</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>
-{
-  &quot;paragraphs&quot;: [
-    {
-      &quot;text&quot;: &quot;%md This is my new paragraph in my new note&quot;,
-      &quot;dateUpdated&quot;: &quot;Jan 8, 2016 4:49:38 PM&quot;,
-      &quot;config&quot;: {
-        &quot;enabled&quot;: true
-      },
-      &quot;settings&quot;: {
-        &quot;params&quot;: {},
-        &quot;forms&quot;: {}
-      },
-      &quot;jobName&quot;: &quot;paragraph_1452300578795_1196072540&quot;,
-      &quot;id&quot;: &quot;20160108-164938_1685162144&quot;,
-      &quot;dateCreated&quot;: &quot;Jan 8, 2016 4:49:38 PM&quot;,
-      &quot;status&quot;: &quot;READY&quot;,
-      &quot;progressUpdateIntervalMs&quot;: 500
-    }
-  ],
-  &quot;name&quot;: &quot;source note for export&quot;,
-  &quot;id&quot;: &quot;2B82H3RR1&quot;,
-  &quot;angularObjects&quot;: {},
-  &quot;config&quot;: {},
-  &quot;info&quot;: {}
-}</pre></td>
+      <td>Fail code</td>
+      <td>500</td>
     </tr>
     <tr>
-      <td>sample JSON response</td>
+      <td> sample JSON response </td>
       <td><pre>
-{
-  &quot;status&quot;: &quot;CREATED&quot;,
-  &quot;message&quot;: &quot;&quot;,
-  &quot;body&quot;: &quot;2AZPHY918&quot;
-}</pre></td>
+{<br>
+   &quot;status&quot;:&quot;OK&quot;,
+   &quot;message&quot;:&quot;&quot;,
+   &quot;body&quot;:{<br>
+      &quot;readers&quot;:[<br>
+         &quot;user2&quot;
+      ],
+      &quot;owners&quot;:[<br>
+         &quot;user1&quot;
+      ],
+      &quot;writers&quot;:[<br>
+         &quot;user2&quot;
+      ]
+   }
+}
+      </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>{&quot;status&quot;: &quot;OK&quot;}</pre></td>
+      <td> sample JSON input </td>
+      <td><pre>
+{
+  &quot;readers&quot;: [
+    &quot;user1&quot;
+  ],
+  &quot;owners&quot;: [
+    &quot;user2&quot;
+  ],
+  &quot;writers&quot;: [
+    &quot;user1&quot;
+  ]
+}
+</pre></td>
     </tr>
+    <tr>
+      <td> sample JSON response </td>
+      <td><pre>
+{
+  &quot;status&quot;: &quot;OK&quot;
+}</pre></td>
     </tr>
   </table></p>