You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by hs...@apache.org on 2013/11/06 23:17:03 UTC
svn commit: r1539479 [3/9] - in /sqoop/site/trunk/content: ./
resources/docs/1.99.3/ resources/docs/1.99.3/_sources/
resources/docs/1.99.3/_static/ resources/docs/1.99.3/css/
resources/docs/1.99.3/images/ resources/docs/1.99.3/images/logos/ xdoc/
Added: sqoop/site/trunk/content/resources/docs/1.99.3/RESTAPI.html
URL: http://svn.apache.org/viewvc/sqoop/site/trunk/content/resources/docs/1.99.3/RESTAPI.html?rev=1539479&view=auto
==============================================================================
--- sqoop/site/trunk/content/resources/docs/1.99.3/RESTAPI.html (added)
+++ sqoop/site/trunk/content/resources/docs/1.99.3/RESTAPI.html Wed Nov 6 22:17:01 2013
@@ -0,0 +1,2054 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Sqoop REST API Guide — Apache Sqoop documentation</title>
+
+ <link rel="stylesheet" href="_static/haiku.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="_static/print.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '',
+ VERSION: '',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <script type="text/javascript" src="_static/theme_extras.js"></script>
+ <link rel="top" title="Apache Sqoop documentation" href="index.html" />
+ </head>
+ <body>
+ <div class="header"><img class="rightlogo" src="_static/sqoop-logo.png" alt="Logo"/><h1 class="heading"><a href="index.html">
+ <span>Apache Sqoop documentation</span></a></h1>
+ <h2 class="heading"><span>Sqoop REST API Guide</span></h2>
+ </div>
+ <div class="topnav">
+
+ <p>
+ <a class="uplink" href="index.html">Contents</a>
+ </p>
+
+ </div>
+ <div class="content">
+
+
+ <div class="section" id="sqoop-rest-api-guide">
+<h1><a class="toc-backref" href="#id1">Sqoop REST API Guide</a><a class="headerlink" href="#sqoop-rest-api-guide" title="Permalink to this headline">¶</a></h1>
+<p>This document will explain you how to use Sqoop Network API to allow external applications interacting with Sqoop server.
+The REST API is a lower level API than the <a class="reference external" href="ClientAPI.html">Sqoop client API</a>, which gives you the freedom to execute commands in Sqoop
+server with any tools or programming language. Generally, the REST API is leveraged via HTTP requests and use <tt class="docutils literal"><span class="pre">JSON</span></tt> format to encode data content.</p>
+<div class="contents topic" id="table-of-contents">
+<p class="topic-title first">Table of Contents</p>
+<ul class="simple">
+<li><a class="reference internal" href="#sqoop-rest-api-guide" id="id1">Sqoop REST API Guide</a><ul>
+<li><a class="reference internal" href="#initialization" id="id2">Initialization</a></li>
+<li><a class="reference internal" href="#understand-connector-connection-job-and-framework" id="id3">Understand Connector, Connection, Job and Framework</a></li>
+<li><a class="reference internal" href="#objects" id="id4">Objects</a><ul>
+<li><a class="reference internal" href="#form" id="id5">Form</a></li>
+<li><a class="reference internal" href="#exception" id="id6">Exception</a></li>
+<li><a class="reference internal" href="#form-validation-status" id="id7">Form Validation Status</a></li>
+<li><a class="reference internal" href="#job-status" id="id8">Job Status</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#header-parameters" id="id9">Header Parameters</a></li>
+<li><a class="reference internal" href="#functions" id="id10">Functions</a><ul>
+<li><a class="reference internal" href="#version-get-get-sqoop-version" id="id11">/version - [GET] - Get Sqoop Version</a></li>
+<li><a class="reference internal" href="#v1-connector-cid-get-get-connector" id="id12">/v1/connector/[cid] - [GET] - Get Connector</a></li>
+<li><a class="reference internal" href="#v1-framework-get-get-sqoop-framework" id="id13">/v1/framework - [GET]- Get Sqoop Framework</a></li>
+<li><a class="reference internal" href="#v1-connection-xid-get-get-connection" id="id14">/v1/connection/[xid] - [GET] - Get Connection</a></li>
+<li><a class="reference internal" href="#v1-connection-post-create-connection" id="id15">/v1/connection - [POST] - Create Connection</a></li>
+<li><a class="reference internal" href="#v1-connection-xid-put-update-connection" id="id16">/v1/connection/[xid] - [PUT] - Update Connection</a></li>
+<li><a class="reference internal" href="#v1-connection-xid-delete-delete-connection" id="id17">/v1/connection/[xid] - [DELETE] - Delete Connection</a></li>
+<li><a class="reference internal" href="#v1-connection-xid-enable-put-enable-connection" id="id18">/v1/connection/[xid]/enable - [PUT] - Enable Connection</a></li>
+<li><a class="reference internal" href="#v1-connection-xid-disable-put-disable-connection" id="id19">/v1/connection/[xid]/disable - [PUT] - Disable Connection</a></li>
+<li><a class="reference internal" href="#v1-job-jid-get-get-job" id="id20">/v1/job/[jid] - [GET] - Get Job</a></li>
+<li><a class="reference internal" href="#v1-job-post-create-job" id="id21">/v1/job - [POST] - Create Job</a></li>
+<li><a class="reference internal" href="#v1-job-jid-put-update-job" id="id22">/v1/job/[jid] - [PUT] - Update Job</a></li>
+<li><a class="reference internal" href="#v1-job-jid-delete-delete-job" id="id23">/v1/job/[jid] - [DELETE] - Delete Job</a></li>
+<li><a class="reference internal" href="#v1-job-jid-enable-put-enable-job" id="id24">/v1/job/[jid]/enable - [PUT] - Enable Job</a></li>
+<li><a class="reference internal" href="#v1-job-jid-disable-put-disable-job" id="id25">/v1/job/[jid]/disable - [PUT] - Disable Job</a></li>
+<li><a class="reference internal" href="#v1-submission-history-jid-get-get-job-submission-history" id="id26">/v1/submission/history/[jid] - [GET] - Get Job Submission History</a></li>
+<li><a class="reference internal" href="#v1-submission-action-jid-get-get-the-latest-submission-of-a-given-job" id="id27">/v1/submission/action/[jid] - [GET]- Get The Latest Submission Of A Given Job</a></li>
+<li><a class="reference internal" href="#v1-submission-action-jid-post-submit-job" id="id28">/v1/submission/action/[jid] - [POST]- Submit Job</a></li>
+<li><a class="reference internal" href="#v1-submission-action-jid-delete-stop-job" id="id29">/v1/submission/action/[jid] - [DELETE]- Stop Job</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section" id="initialization">
+<h2><a class="toc-backref" href="#id2">Initialization</a><a class="headerlink" href="#initialization" title="Permalink to this headline">¶</a></h2>
+<p>Before making any move, make sure that the Sqoop server is running.</p>
+<p>Then find out three pieces of information about the Sqoop server: <tt class="docutils literal"><span class="pre">host</span></tt>, <tt class="docutils literal"><span class="pre">port</span></tt> and <tt class="docutils literal"><span class="pre">webapp</span></tt>, and keep them in mind.</p>
+<p>To execute a function of Sqoop, you could assemble and send a HTTP request to an url of that function in Sqoop. Generally, the url
+contain the <tt class="docutils literal"><span class="pre">host</span></tt> has the hostname, the <tt class="docutils literal"><span class="pre">port</span></tt> as the port number and <tt class="docutils literal"><span class="pre">webapp</span></tt> as the root directory of the url, which follows
+any functions available in this page.</p>
+<p>The request and its response might need to contain some additional parameters and contents. These parameters could be given via
+HTTP header, body or both. All the content in the HTTP body is in <tt class="docutils literal"><span class="pre">JSON</span></tt> format.</p>
+</div>
+<div class="section" id="understand-connector-connection-job-and-framework">
+<h2><a class="toc-backref" href="#id3">Understand Connector, Connection, Job and Framework</a><a class="headerlink" href="#understand-connector-connection-job-and-framework" title="Permalink to this headline">¶</a></h2>
+<p>To create and run a Sqoop task, we need to provide a bunch of parameters. All these parameters are provide via Input.</p>
+<p>Some of these parameters are connector specific, which are needed for a connector. And the other parameters
+might be required all the times. Sqoop provides these specifications via forms, each of which is a list of inputs. Each connector claims its own
+forms. And the Sqoop framework claims global forms.</p>
+<p>On the other hand, some of these parameters are stable for different jobs, like the url, the username and the password of database. And some
+of them are job specific. Therefore Sqoop categorizes these parameters into 2 groups, which are connection object and job object. So, for
+each connector and the framework, it has to provide forms for connection and job, respectively.</p>
+</div>
+<div class="section" id="objects">
+<h2><a class="toc-backref" href="#id4">Objects</a><a class="headerlink" href="#objects" title="Permalink to this headline">¶</a></h2>
+<p>This section covers all the objects that might exist in the request or response.</p>
+<div class="section" id="form">
+<h3><a class="toc-backref" href="#id5">Form</a><a class="headerlink" href="#form" title="Permalink to this headline">¶</a></h3>
+<p>Before creating any connection or job, the first thing to do is getting familiar with all forms in the connector and the framework, via Get Connector
+and Get Framework HTTP requests.</p>
+<p>Each form is structured below:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="24%" />
+<col width="76%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Field</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">id</span></tt></td>
+<td>The id of this form</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">inputs</span></tt></td>
+<td>A array of input fields of this form</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">name</span></tt></td>
+<td>The name of this form</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">type</span></tt></td>
+<td>The type of this form (CONNECTION/JOB)</td>
+</tr>
+</tbody>
+</table>
+<p>A typical form object is showing below:</p>
+<div class="highlight-none"><div class="highlight"><pre>{
+ "id":3,
+ "inputs":[
+ {
+ "id":13,
+ "name":"table.schemaName",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ }
+ ],
+ "name":"table",
+ "type":"CONNECTION"
+}
+</pre></div>
+</div>
+<p>Each input object in a form is structured below:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="24%" />
+<col width="76%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Field</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">id</span></tt></td>
+<td>The id of this input</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">name</span></tt></td>
+<td>The name of this input</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">type</span></tt></td>
+<td>The data type of this input field</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">size</span></tt></td>
+<td>The length of this input field</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">sensitive</span></tt></td>
+<td>Whether this input contain sensitive information</td>
+</tr>
+</tbody>
+</table>
+<p>The connector and framework have both <tt class="docutils literal"><span class="pre">job-forms</span></tt> and <tt class="docutils literal"><span class="pre">conn-forms</span></tt>, each of which is a array of forms. In <tt class="docutils literal"><span class="pre">job-forms</span></tt>,
+there are 2 arrays of forms, for <tt class="docutils literal"><span class="pre">IMPORT</span></tt> and <tt class="docutils literal"><span class="pre">EXPORT</span></tt>, job respectively.</p>
+<p>To send a filled form in the request, you should always use form id and input id to map the values to inputs. For example, the
+following request contains a input value <tt class="docutils literal"><span class="pre">com.mysql.jdbc.Driver</span></tt> for input <tt class="docutils literal"><span class="pre">1</span></tt> in form <tt class="docutils literal"><span class="pre">1</span></tt> of connector and an input value
+<tt class="docutils literal"><span class="pre">10</span></tt> for input <tt class="docutils literal"><span class="pre">17</span></tt> in form <tt class="docutils literal"><span class="pre">4</span></tt> of framework.</p>
+<div class="highlight-none"><div class="highlight"><pre>{
+ "connector":[
+ {
+ "id":1,
+ "inputs":[
+ {
+ "id":1,
+ "name":"connection.jdbcDriver",
+ "value":"com.mysql.jdbc.Driver",
+ "type":"STRING",
+ "size":128,
+ "sensitive":false
+ },
+ ],
+ "name":"connection",
+ "type":"CONNECTION"
+ }
+ ],
+ "connector-id":1,
+ "framework":[
+ {
+ "id":4,
+ "inputs":[
+ {
+ "id":17,
+ "name":"security.maxConnections",
+ "value":"10",
+ "type":"INTEGER",
+ "sensitive":false
+ }
+ ],
+ "name":"security",
+ "type":"CONNECTION"
+ }
+ ]
+}
+</pre></div>
+</div>
+</div>
+<div class="section" id="exception">
+<h3><a class="toc-backref" href="#id6">Exception</a><a class="headerlink" href="#exception" title="Permalink to this headline">¶</a></h3>
+<p>Each operation on Sqoop server might return an exception in the Http response. Remember to take this into account.</p>
+<p>The exception code and message could be found in both the header and body of the response, if happens.</p>
+<p>Please jump to “Header Parameters” section to find how to get exception information from header.</p>
+<p>In the body, the exception is expressed in <tt class="docutils literal"><span class="pre">JSON</span></tt> format. An example of the exception is:</p>
+<div class="highlight-none"><div class="highlight"><pre>{
+ "message":"DERBYREPO_0030:Unable to load specific job metadata from repository - Couldn't find job with id 2",
+ "stack-trace":[
+ {
+ "file":"DerbyRepositoryHandler.java",
+ "line":1111,
+ "class":"org.apache.sqoop.repository.derby.DerbyRepositoryHandler",
+ "method":"findJob"
+ },
+ {
+ "file":"JdbcRepository.java",
+ "line":451,
+ "class":"org.apache.sqoop.repository.JdbcRepository$16",
+ "method":"doIt"
+ },
+ {
+ "file":"JdbcRepository.java",
+ "line":90,
+ "class":"org.apache.sqoop.repository.JdbcRepository",
+ "method":"doWithConnection"
+ },
+ {
+ "file":"JdbcRepository.java",
+ "line":61,
+ "class":"org.apache.sqoop.repository.JdbcRepository",
+ "method":"doWithConnection"
+ },
+ {
+ "file":"JdbcRepository.java",
+ "line":448,
+ "class":"org.apache.sqoop.repository.JdbcRepository",
+ "method":"findJob"
+ },
+ {
+ "file":"JobRequestHandler.java",
+ "line":238,
+ "class":"org.apache.sqoop.handler.JobRequestHandler",
+ "method":"getJobs"
+ }
+ ],
+ "class":"org.apache.sqoop.common.SqoopException"
+}
+</pre></div>
+</div>
+</div>
+<div class="section" id="form-validation-status">
+<h3><a class="toc-backref" href="#id7">Form Validation Status</a><a class="headerlink" href="#form-validation-status" title="Permalink to this headline">¶</a></h3>
+<p>After submitting the forms of creating/updating connection/job, the server will validate these forms and send
+back feedbacks to show the validation status.</p>
+<p>There are 3 possible status:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="24%" />
+<col width="76%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Status</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">FINE</span></tt></td>
+<td>No issues, no warnings. Everything is perfect</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">ACCEPTABLE</span></tt></td>
+<td>No issues, but might be some warnings. Good to go.</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">UNACCEPTABLE</span></tt></td>
+<td>The form has severe issues needed to be fixed</td>
+</tr>
+</tbody>
+</table>
+<p>An example of a good status is:</p>
+<div class="highlight-none"><div class="highlight"><pre>{
+ "status":"FINE",
+ "messages":{}
+}
+</pre></div>
+</div>
+<p>A bad status might be:</p>
+<div class="highlight-none"><div class="highlight"><pre>{
+ "message":"Can't load specified driver",
+ "status":"UNACCEPTABLE"
+}
+</pre></div>
+</div>
+</div>
+<div class="section" id="job-status">
+<h3><a class="toc-backref" href="#id8">Job Status</a><a class="headerlink" href="#job-status" title="Permalink to this headline">¶</a></h3>
+<p>After submitting a job, you could look up the running status of it. There could be 7 possible status:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="34%" />
+<col width="66%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Status</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">BOOTING</span></tt></td>
+<td>In the middle of submitting the job</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">FAILURE_ON_SUBMIT</span></tt></td>
+<td>Unable to submit this job to remote cluster</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">RUNNING</span></tt></td>
+<td>The job is running now</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">SUCCEEDED</span></tt></td>
+<td>Job finished successfully</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">FAILED</span></tt></td>
+<td>Job failed</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">NEVER_EXECUTED</span></tt></td>
+<td>The job has never been executed since created</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">UNKNOWN</span></tt></td>
+<td>The status is unknown</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" id="header-parameters">
+<h2><a class="toc-backref" href="#id9">Header Parameters</a><a class="headerlink" href="#header-parameters" title="Permalink to this headline">¶</a></h2>
+<p>For all Sqoop requests, the following header parameters are supported:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="29%" />
+<col width="11%" />
+<col width="61%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Parameter</th>
+<th class="head">Required</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">sqoop-user-name</span></tt></td>
+<td>true</td>
+<td>The name of the user who makes the requests</td>
+</tr>
+</tbody>
+</table>
+<p>For all the responses, the following parameters in the HTTP message header are available:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="23%" />
+<col width="9%" />
+<col width="68%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Parameter</th>
+<th class="head">Required</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">sqoop-error-code</span></tt></td>
+<td>false</td>
+<td>The error code when some error happen in the server side for this request</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">sqoop-error-message</span></tt></td>
+<td>false</td>
+<td>The explanation for a error code</td>
+</tr>
+</tbody>
+</table>
+<p>So far, there are only these 2 parameters in the header of response message. They only exist when something bad happen in the server.
+And they always come along with an exception message in the response body.</p>
+</div>
+<div class="section" id="functions">
+<h2><a class="toc-backref" href="#id10">Functions</a><a class="headerlink" href="#functions" title="Permalink to this headline">¶</a></h2>
+<p>The section elaborates all the functions that are supported by the Sqoop server.</p>
+<div class="section" id="version-get-get-sqoop-version">
+<h3><a class="toc-backref" href="#id11">/version - [GET] - Get Sqoop Version</a><a class="headerlink" href="#version-get-get-sqoop-version" title="Permalink to this headline">¶</a></h3>
+<p>Get all the version metadata of Sqoop software in the server side.</p>
+<ul class="simple">
+<li>Method: <tt class="docutils literal"><span class="pre">GET</span></tt></li>
+<li>Format: <tt class="docutils literal"><span class="pre">JSON</span></tt></li>
+<li>Request Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+<li>Fields of Response:</li>
+</ul>
+<table border="1" class="docutils">
+<colgroup>
+<col width="21%" />
+<col width="79%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Field</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">revision</span></tt></td>
+<td>The revision number of Sqoop source code</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">protocols</span></tt></td>
+<td>The version of network protocol</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">date</span></tt></td>
+<td>The Sqoop release date</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">user</span></tt></td>
+<td>The user who made the release</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">url</span></tt></td>
+<td>The url of the source code trunk</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">version</span></tt></td>
+<td>The version of Sqoop in the server side</td>
+</tr>
+</tbody>
+</table>
+<ul class="simple">
+<li>Response Example:</li>
+</ul>
+<div class="highlight-none"><div class="highlight"><pre>{
+ "revision":"e56c977b56f4dc32a4cad06a328bad11e0d0055b",
+ "protocols":["1"],
+ "date":"Wed Aug 7 13:31:36 PDT 2013",
+ "user":"mengwei.ding",
+ "url":"git:\/\/mding-MBP.local\/Users\/mengwei.ding\/Documents\/workspace\/sqoop2\/common",
+ "version":"2.0.0-SNAPSHOT"
+}
+</pre></div>
+</div>
+</div>
+<div class="section" id="v1-connector-cid-get-get-connector">
+<h3><a class="toc-backref" href="#id12">/v1/connector/[cid] - [GET] - Get Connector</a><a class="headerlink" href="#v1-connector-cid-get-get-connector" title="Permalink to this headline">¶</a></h3>
+<p>Retrieve all the metadata of a given connector, such as its forms to be filled for jobs and connections, the explanation
+for each fields of these forms.</p>
+<p>Provide the id of the connector in the url <tt class="docutils literal"><span class="pre">[cid]</span></tt> part. If you provide <tt class="docutils literal"><span class="pre">all</span></tt> in the <tt class="docutils literal"><span class="pre">[cid]</span></tt> part in the url, you will
+get the metadata of all connectors.</p>
+<ul class="simple">
+<li>Method: <tt class="docutils literal"><span class="pre">GET</span></tt></li>
+<li>Format: <tt class="docutils literal"><span class="pre">JSON</span></tt></li>
+<li>Request Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+<li>Fields of Response:</li>
+</ul>
+<table border="1" class="docutils">
+<colgroup>
+<col width="26%" />
+<col width="74%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Field</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">resources-connector</span></tt></td>
+<td>All resources for the given connector</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">all</span></tt></td>
+<td>All metadata about the given connector, such as id, name and all forms</td>
+</tr>
+</tbody>
+</table>
+<p>If all connectors are retrieved, the <tt class="docutils literal"><span class="pre">resources-connector</span></tt> and <tt class="docutils literal"><span class="pre">all</span></tt> fields will become arrays and contain data for all connectors.</p>
+<p>So far, the resource contains only explanations for fields of forms. For example, in the IMPORT job form, you could find a field called
+<tt class="docutils literal"><span class="pre">table.schemaName</span></tt>. If you have no idea about what that field means, you could go the resource for help.</p>
+<ul class="simple">
+<li>Response Example:</li>
+</ul>
+<div class="highlight-none"><div class="highlight"><pre>{
+ "resources-connector":{
+ "1":{
+ "ignored.label":"Ignored",
+ "table.partitionColumn.help":"A specific column for data partition",
+ "table.label":"Database configuration",
+ "table.boundaryQuery.label":"Boundary query",
+ "ignored.help":"This is completely ignored",
+ "ignored.ignored.label":"Ignored",
+ "connection.jdbcProperties.help":"Enter any JDBC properties that should be supplied during the creation of connection.",
+ "table.tableName.help":"Table name to process data in the remote database",
+ "connection.jdbcDriver.label":"JDBC Driver Class",
+ "connection.username.help":"Enter the username to be used for connecting to the database.",
+ "table.help":"You must supply the information requested in order to create a job object.",
+ "table.partitionColumn.label":"Partition column name",
+ "ignored.ignored.help":"This is completely ignored",
+ "table.partitionColumnNull.label":"Nulls in partition column",
+ "table.warehouse.label":"Data warehouse",
+ "table.boundaryQuery.help":"The boundary query for data partition",
+ "connection.username.label":"Username",
+ "connection.jdbcDriver.help":"Enter the fully qualified class name of the JDBC driver that will be used for establishing this connection.",
+ "connection.label":"Connection configuration",
+ "table.columns.label":"Table column names",
+ "table.dataDirectory.label":"Data directory",
+ "table.partitionColumnNull.help":"Whether there are null values in partition column",
+ "connection.password.label":"Password",
+ "table.warehouse.help":"The root directory for data",
+ "table.sql.label":"Table SQL statement",
+ "table.sql.help":"SQL statement to process data in the remote database",
+ "table.schemaName.help":"Schema name to process data in the remote database",
+ "connection.jdbcProperties.label":"JDBC Connection Properties",
+ "table.columns.help":"Specific columns of a table name or a table SQL",
+ "connection.connectionString.help":"Enter the value of JDBC connection string to be used by this connector for creating connections.",
+ "table.dataDirectory.help":"The sub-directory under warehouse for data",
+ "table.schemaName.label":"Schema name",
+ "connection.connectionString.label":"JDBC Connection String",
+ "connection.help":"You must supply the information requested in order to create a connection object.",
+ "connection.password.help":"Enter the password to be used for connecting to the database.",
+ "table.tableName.label":"Table name"
+ }
+ },
+ "all":[
+ {
+ "id":1,
+ "name":"generic-jdbc-connector",
+ "class":"org.apache.sqoop.connector.jdbc.GenericJdbcConnector",
+ "job-forms":{
+ "IMPORT":[
+ {
+ "id":2,
+ "inputs":[
+ {
+ "id":6,
+ "name":"table.schemaName",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ },
+ {
+ "id":7,
+ "name":"table.tableName",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ },
+ {
+ "id":8,
+ "name":"table.sql",
+ "type":"STRING",
+ "size":2000,
+ "sensitive":false
+ },
+ {
+ "id":9,
+ "name":"table.columns",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ },
+ {
+ "id":10,
+ "name":"table.partitionColumn",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ },
+ {
+ "id":11,
+ "name":"table.partitionColumnNull",
+ "type":"BOOLEAN",
+ "sensitive":false
+ },
+ {
+ "id":12,
+ "name":"table.boundaryQuery",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ }
+ ],
+ "name":"table",
+ "type":"CONNECTION"
+ }
+ ],
+ "EXPORT":[
+ {
+ "id":3,
+ "inputs":[
+ {
+ "id":13,
+ "name":"table.schemaName",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ },
+ {
+ "id":14,
+ "name":"table.tableName",
+ "type":"STRING",
+ "size":2000,
+ "sensitive":false
+ },
+ {
+ "id":15,
+ "name":"table.sql",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ },
+ {
+ "id":16,
+ "name":"table.columns",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ }
+ ],
+ "name":"table",
+ "type":"CONNECTION"
+ }
+ ]
+ },
+ "con-forms":[
+ {
+ "id":1,
+ "inputs":[
+ {
+ "id":1,
+ "name":"connection.jdbcDriver",
+ "type":"STRING",
+ "size":128,
+ "sensitive":false
+ },
+ {
+ "id":2,
+ "name":"connection.connectionString",
+ "type":"STRING",
+ "size":128,
+ "sensitive":false
+ },
+ {
+ "id":3,
+ "name":"connection.username",
+ "type":"STRING",
+ "size":40,
+ "sensitive":false
+ },
+ {
+ "id":4,
+ "name":"connection.password",
+ "type":"STRING",
+ "size":40,
+ "sensitive":true
+ },
+ {
+ "id":5,
+ "name":"connection.jdbcProperties",
+ "type":"MAP",
+ "sensitive":false
+ }
+ ],
+ "name":"connection",
+ "type":"CONNECTION"
+ }
+ ],
+ "version":"2.0.0-SNAPSHOT"
+ }
+ ]
+}
+</pre></div>
+</div>
+</div>
+<div class="section" id="v1-framework-get-get-sqoop-framework">
+<h3><a class="toc-backref" href="#id13">/v1/framework - [GET]- Get Sqoop Framework</a><a class="headerlink" href="#v1-framework-get-get-sqoop-framework" title="Permalink to this headline">¶</a></h3>
+<p>Retrieve all metadata of Sqoop framework. The metadata include all the form fields that are required to all Sqoop objects, such as connection and jobs.</p>
+<ul class="simple">
+<li>Method: <tt class="docutils literal"><span class="pre">GET</span></tt></li>
+<li>Format: <tt class="docutils literal"><span class="pre">JSON</span></tt></li>
+<li>Request Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+<li>Fields of Response:</li>
+</ul>
+<table border="1" class="docutils">
+<colgroup>
+<col width="21%" />
+<col width="79%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Field</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">id</span></tt></td>
+<td>The id for Sqoop framework (It should be always be 1, since there is always 1 framework out there)</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">resources</span></tt></td>
+<td>All resources for Sqoop framework</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">framework-version</span></tt></td>
+<td>The version of Sqoop framework</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">job-forms</span></tt></td>
+<td>Framework’s Job Configuration forms</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">con-forms</span></tt></td>
+<td>Framework’s connection configuration forms</td>
+</tr>
+</tbody>
+</table>
+<p>The framework and connector might contain several forms to be filled for job or connection object. Many parameters for job and connection
+are categorize into different classes, which are know as forms. Each form has its id and name. In job and connection objects, they use
+the id of the form to track these parameter inputs.</p>
+<ul class="simple">
+<li>Response Example:</li>
+</ul>
+<div class="highlight-none"><div class="highlight"><pre>{
+ "id":1,
+ "resources":{
+ "output.label":"Output configuration",
+ "security.maxConnections.help":"Maximal number of connections that this connection object can use at one point in time",
+ "output.storageType.label":"Storage type",
+ "output.ignored.help":"This value is ignored",
+ "input.label":"Input configuration",
+ "security.help":"You must supply the information requested in order to create a job object.",
+ "output.storageType.help":"Target on Hadoop ecosystem where to store data",
+ "input.inputDirectory.help":"Directory that should be exported",
+ "output.outputFormat.label":"Output format",
+ "output.ignored.label":"Ignored",
+ "output.outputFormat.help":"Format in which data should be serialized",
+ "output.help":"You must supply the information requested in order to get information where you want to store your data.",
+ "throttling.help":"Set throttling boundaries to not overload your systems",
+ "input.inputDirectory.label":"Input directory",
+ "throttling.loaders.label":"Loaders",
+ "input.help":"Specifies information required to get data from Hadoop ecosystem",
+ "throttling.extractors.label":"Extractors",
+ "throttling.extractors.help":"Number of extractors that Sqoop will use",
+ "security.label":"Security related configuration options",
+ "throttling.label":"Throttling resources",
+ "throttling.loaders.help":"Number of loaders that Sqoop will use",
+ "output.outputDirectory.help":"Output directory for final data",
+ "security.maxConnections.label":"Max connections",
+ "output.outputDirectory.label":"Output directory"
+ },
+ "framework-version":"1",
+ "job-forms":{
+ "IMPORT":[
+ {
+ "id":5,
+ "inputs":[
+ {
+ "id":18,
+ "values":"HDFS",
+ "name":"output.storageType",
+ "type":"ENUM",
+ "sensitive":false
+ },
+ {
+ "id":19,
+ "values":"TEXT_FILE,SEQUENCE_FILE",
+ "name":"output.outputFormat",
+ "type":"ENUM",
+ "sensitive":false
+ },
+ {
+ "id":20,
+ "name":"output.outputDirectory",
+ "type":"STRING",
+ "size":255,
+ "sensitive":false
+ }
+ ],
+ "name":"output",
+ "type":"CONNECTION"
+ },
+ {
+ "id":6,
+ "inputs":[
+ {
+ "id":21,
+ "name":"throttling.extractors",
+ "type":"INTEGER",
+ "sensitive":false
+ },
+ {
+ "id":22,
+ "name":"throttling.loaders",
+ "type":"INTEGER",
+ "sensitive":false
+ }
+ ],
+ "name":"throttling",
+ "type":"CONNECTION"
+ }
+ ],
+ "EXPORT":[
+ {
+ "id":7,
+ "inputs":[
+ {
+ "id":23,
+ "name":"input.inputDirectory",
+ "type":"STRING",
+ "size":255,
+ "sensitive":false
+ }
+ ],
+ "name":"input",
+ "type":"CONNECTION"
+ },
+ {
+ "id":8,
+ "inputs":[
+ {
+ "id":24,
+ "name":"throttling.extractors",
+ "type":"INTEGER",
+ "sensitive":false
+ },
+ {
+ "id":25,
+ "name":"throttling.loaders",
+ "type":"INTEGER",
+ "sensitive":false
+ }
+ ],
+ "name":"throttling",
+ "type":"CONNECTION"
+ }
+ ]
+ },
+ "con-forms":[
+ {
+ "id":4,
+ "inputs":[
+ {
+ "id":17,
+ "name":"security.maxConnections",
+ "type":"INTEGER",
+ "sensitive":false
+ }
+ ],
+ "name":"security",
+ "type":"CONNECTION"
+ }
+ ]
+}
+</pre></div>
+</div>
+</div>
+<div class="section" id="v1-connection-xid-get-get-connection">
+<h3><a class="toc-backref" href="#id14">/v1/connection/[xid] - [GET] - Get Connection</a><a class="headerlink" href="#v1-connection-xid-get-get-connection" title="Permalink to this headline">¶</a></h3>
+<p>Retrieve all the metadata of a given connection, such as its values for different fields of connector form and sqoop framework form.</p>
+<p>Provide the id of the connector in the url [xid] part. If you provide <tt class="docutils literal"><span class="pre">all</span></tt> in the [xid] part in the url, you will get the metadata of all connections.</p>
+<ul class="simple">
+<li>Method: <tt class="docutils literal"><span class="pre">GET</span></tt></li>
+<li>Format: <tt class="docutils literal"><span class="pre">JSON</span></tt></li>
+<li>Request Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+<li>Fields of Response:</li>
+</ul>
+<table border="1" class="docutils">
+<colgroup>
+<col width="23%" />
+<col width="77%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Field</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">resources-connector</span></tt></td>
+<td>All resources for the given connector</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">resources-framework</span></tt></td>
+<td>All resources related with Sqoop framework</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">all</span></tt></td>
+<td>All metadata about the given connection, such as id, name and all form input values</td>
+</tr>
+</tbody>
+</table>
+<ul class="simple">
+<li>Response Example:</li>
+</ul>
+<div class="highlight-none"><div class="highlight"><pre>{
+ "resources-connector":{
+ "1":{
+ "ignored.label":"Ignored",
+ "table.partitionColumn.help":"A specific column for data partition",
+ "table.label":"Database configuration",
+ "table.boundaryQuery.label":"Boundary query",
+ "ignored.help":"This is completely ignored",
+ "ignored.ignored.label":"Ignored",
+ "connection.jdbcProperties.help":"Enter any JDBC properties that should be supplied during the creation of connection.",
+ "table.tableName.help":"Table name to process data in the remote database",
+ "connection.jdbcDriver.label":"JDBC Driver Class",
+ "connection.username.help":"Enter the username to be used for connecting to the database.",
+ "table.help":"You must supply the information requested in order to create a job object.",
+ "table.partitionColumn.label":"Partition column name",
+ "ignored.ignored.help":"This is completely ignored",
+ "table.partitionColumnNull.label":"Nulls in partition column",
+ "table.warehouse.label":"Data warehouse",
+ "table.boundaryQuery.help":"The boundary query for data partition",
+ "connection.username.label":"Username",
+ "connection.jdbcDriver.help":"Enter the fully qualified class name of the JDBC driver that will be used for establishing this connection.",
+ "connection.label":"Connection configuration",
+ "table.columns.label":"Table column names",
+ "table.dataDirectory.label":"Data directory",
+ "table.partitionColumnNull.help":"Whether there are null values in partition column",
+ "connection.password.label":"Password",
+ "table.warehouse.help":"The root directory for data",
+ "table.sql.label":"Table SQL statement",
+ "table.sql.help":"SQL statement to process data in the remote database",
+ "table.schemaName.help":"Schema name to process data in the remote database",
+ "connection.jdbcProperties.label":"JDBC Connection Properties",
+ "table.columns.help":"Specific columns of a table name or a table SQL",
+ "connection.connectionString.help":"Enter the value of JDBC connection string to be used by this connector for creating connections.",
+ "table.dataDirectory.help":"The sub-directory under warehouse for data",
+ "table.schemaName.label":"Schema name",
+ "connection.connectionString.label":"JDBC Connection String",
+ "connection.help":"You must supply the information requested in order to create a connection object.",
+ "connection.password.help":"Enter the password to be used for connecting to the database.",
+ "table.tableName.label":"Table name"
+ }
+ },
+ "resources-framework":{
+ "output.label":"Output configuration",
+ "security.maxConnections.help":"Maximal number of connections that this connection object can use at one point in time",
+ "output.storageType.label":"Storage type",
+ "output.ignored.help":"This value is ignored",
+ "input.label":"Input configuration",
+ "security.help":"You must supply the information requested in order to create a job object.",
+ "output.storageType.help":"Target on Hadoop ecosystem where to store data",
+ "input.inputDirectory.help":"Directory that should be exported",
+ "output.outputFormat.label":"Output format",
+ "output.ignored.label":"Ignored",
+ "output.outputFormat.help":"Format in which data should be serialized",
+ "output.help":"You must supply the information requested in order to get information where you want to store your data.",
+ "throttling.help":"Set throttling boundaries to not overload your systems",
+ "input.inputDirectory.label":"Input directory",
+ "throttling.loaders.label":"Loaders",
+ "input.help":"Specifies information required to get data from Hadoop ecosystem",
+ "throttling.extractors.label":"Extractors",
+ "throttling.extractors.help":"Number of extractors that Sqoop will use",
+ "security.label":"Security related configuration options",
+ "throttling.label":"Throttling resources",
+ "throttling.loaders.help":"Number of loaders that Sqoop will use",
+ "output.outputDirectory.help":"Output directory for final data",
+ "security.maxConnections.label":"Max connections",
+ "output.outputDirectory.label":"Output directory"
+ },
+ "all":[
+ {
+ "id":1,
+ "enabled":true,
+ "updated":1375912819893,
+ "created":1375912819893,
+ "name":"First connection",
+ "connector":[
+ {
+ "id":1,
+ "inputs":[
+ {
+ "id":1,
+ "name":"connection.jdbcDriver",
+ "value":"com.mysql.jdbc.Driver",
+ "type":"STRING",
+ "size":128,
+ "sensitive":false
+ },
+ {
+ "id":2,
+ "name":"connection.connectionString",
+ "value":"jdbc%3Amysql%3A%2F%2Flocalhost%2Ftest",
+ "type":"STRING",
+ "size":128,
+ "sensitive":false
+ },
+ {
+ "id":3,
+ "name":"connection.username",
+ "value":"root",
+ "type":"STRING",
+ "size":40,
+ "sensitive":false
+ },
+ {
+ "id":4,
+ "name":"connection.password",
+ "type":"STRING",
+ "size":40,
+ "sensitive":true
+ },
+ {
+ "id":5,
+ "name":"connection.jdbcProperties",
+ "type":"MAP",
+ "sensitive":false
+ }
+ ],
+ "name":"connection",
+ "type":"CONNECTION"
+ }
+ ],
+ "connector-id":1,
+ "framework":[
+ {
+ "id":4,
+ "inputs":[
+ {
+ "id":17,
+ "name":"security.maxConnections",
+ "value":"10",
+ "type":"INTEGER",
+ "sensitive":false
+ }
+ ],
+ "name":"security",
+ "type":"CONNECTION"
+ }
+ ]
+ }
+ ]
+}
+</pre></div>
+</div>
+</div>
+<div class="section" id="v1-connection-post-create-connection">
+<h3><a class="toc-backref" href="#id15">/v1/connection - [POST] - Create Connection</a><a class="headerlink" href="#v1-connection-post-create-connection" title="Permalink to this headline">¶</a></h3>
+<p>Create a new connection object. Try your best to provide values for as many as inputs of
+connection forms from both connectors and framework.</p>
+<ul class="simple">
+<li>Method: <tt class="docutils literal"><span class="pre">POST</span></tt></li>
+<li>Format: <tt class="docutils literal"><span class="pre">JSON</span></tt></li>
+<li>Fields of Request:</li>
+</ul>
+<table border="1" class="docutils">
+<colgroup>
+<col width="23%" />
+<col width="77%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Field</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">all</span></tt></td>
+<td>Request array, in which each element is an independent request</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">id</span></tt></td>
+<td>The id of the connection. Useless here, because we don’t know the id before creation</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">enabled</span></tt></td>
+<td>Whether to enable this connection (true/false)</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">updated</span></tt></td>
+<td>The last updated time of this connection</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">created</span></tt></td>
+<td>The creation time of this connection</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">name</span></tt></td>
+<td>The name of this connection</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">connector</span></tt></td>
+<td>Filled inputs for connector forms for this connection</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">connector-id</span></tt></td>
+<td>The id of the connector used for this connection</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">framework</span></tt></td>
+<td>Filled inputs for framework forms for this connection</td>
+</tr>
+</tbody>
+</table>
+<ul class="simple">
+<li>Request Example:</li>
+</ul>
+<div class="highlight-none"><div class="highlight"><pre>{
+ "all":[
+ {
+ "id":-1,
+ "enabled":true,
+ "updated":1375919952017,
+ "created":1375919952017,
+ "name":"First connection",
+ "connector":[
+ {
+ "id":1,
+ "inputs":[
+ {
+ "id":1,
+ "name":"connection.jdbcDriver",
+ "value":"com.mysql.jdbc.Driver",
+ "type":"STRING",
+ "size":128,
+ "sensitive":false
+ },
+ {
+ "id":2,
+ "name":"connection.connectionString",
+ "value":"jdbc%3Amysql%3A%2F%2Flocalhost%2Ftest",
+ "type":"STRING",
+ "size":128,
+ "sensitive":false
+ },
+ {
+ "id":3,
+ "name":"connection.username",
+ "value":"root",
+ "type":"STRING",
+ "size":40,
+ "sensitive":false
+ },
+ {
+ "id":4,
+ "name":"connection.password",
+ "type":"STRING",
+ "size":40,
+ "sensitive":true
+ },
+ {
+ "id":5,
+ "name":"connection.jdbcProperties",
+ "type":"MAP",
+ "sensitive":false
+ }
+ ],
+ "name":"connection",
+ "type":"CONNECTION"
+ }
+ ],
+ "connector-id":1,
+ "framework":[
+ {
+ "id":4,
+ "inputs":[
+ {
+ "id":17,
+ "name":"security.maxConnections",
+ "value":"10",
+ "type":"INTEGER",
+ "sensitive":false
+ }
+ ],
+ "name":"security",
+ "type":"CONNECTION"
+ }
+ ]
+ }
+ ]
+}
+</pre></div>
+</div>
+<ul class="simple">
+<li>Fields of Response:</li>
+</ul>
+<table border="1" class="docutils">
+<colgroup>
+<col width="23%" />
+<col width="77%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Field</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">id</span></tt></td>
+<td>The id assigned for this new created connection</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">connector</span></tt></td>
+<td>The validation status for the inputs of connector forms, provided by the request</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">framework</span></tt></td>
+<td>The validation status for the inputs of connector forms, provided by the request</td>
+</tr>
+</tbody>
+</table>
+<ul class="simple">
+<li>Response Example:</li>
+</ul>
+<div class="highlight-none"><div class="highlight"><pre>{
+ "id":1,
+ "connector":{
+ "status":"FINE",
+ "messages":{
+
+ }
+ },
+ "framework":{
+ "status":"FINE",
+ "messages":{
+
+ }
+ }
+}
+</pre></div>
+</div>
+</div>
+<div class="section" id="v1-connection-xid-put-update-connection">
+<h3><a class="toc-backref" href="#id16">/v1/connection/[xid] - [PUT] - Update Connection</a><a class="headerlink" href="#v1-connection-xid-put-update-connection" title="Permalink to this headline">¶</a></h3>
+<p>Update an existing connection object with id [xid]. To make the procedure of filling inputs easier, the general practice
+is get the connection first and then change some of the inputs.</p>
+<ul class="simple">
+<li>Method: <tt class="docutils literal"><span class="pre">PUT</span></tt></li>
+<li>Format: <tt class="docutils literal"><span class="pre">JSON</span></tt></li>
+<li>Fields of Request:</li>
+</ul>
+<p>The same as Create Connection.</p>
+<ul class="simple">
+<li>Fields of Response:</li>
+</ul>
+<table border="1" class="docutils">
+<colgroup>
+<col width="23%" />
+<col width="77%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Field</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">connector</span></tt></td>
+<td>The validation status for the inputs of connector forms, provided by the request</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">framework</span></tt></td>
+<td>The validation status for the inputs of connector forms, provided by the request</td>
+</tr>
+</tbody>
+</table>
+<ul class="simple">
+<li>Response Example:</li>
+</ul>
+<div class="highlight-none"><div class="highlight"><pre>{
+ "connector":{
+ "status":"FINE",
+ "messages":{
+
+ }
+ },
+ "framework":{
+ "status":"FINE",
+ "messages":{
+
+ }
+ }
+}
+</pre></div>
+</div>
+</div>
+<div class="section" id="v1-connection-xid-delete-delete-connection">
+<h3><a class="toc-backref" href="#id17">/v1/connection/[xid] - [DELETE] - Delete Connection</a><a class="headerlink" href="#v1-connection-xid-delete-delete-connection" title="Permalink to this headline">¶</a></h3>
+<p>Delete a connection with id <tt class="docutils literal"><span class="pre">xid</span></tt>.</p>
+<ul class="simple">
+<li>Method: <tt class="docutils literal"><span class="pre">DELETE</span></tt></li>
+<li>Format: <tt class="docutils literal"><span class="pre">JSON</span></tt></li>
+<li>Request Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+<li>Response Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+</ul>
+</div>
+<div class="section" id="v1-connection-xid-enable-put-enable-connection">
+<h3><a class="toc-backref" href="#id18">/v1/connection/[xid]/enable - [PUT] - Enable Connection</a><a class="headerlink" href="#v1-connection-xid-enable-put-enable-connection" title="Permalink to this headline">¶</a></h3>
+<p>Enable a connection with id <tt class="docutils literal"><span class="pre">xid</span></tt>.</p>
+<ul class="simple">
+<li>Method: <tt class="docutils literal"><span class="pre">PUT</span></tt></li>
+<li>Format: <tt class="docutils literal"><span class="pre">JSON</span></tt></li>
+<li>Request Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+<li>Response Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+</ul>
+</div>
+<div class="section" id="v1-connection-xid-disable-put-disable-connection">
+<h3><a class="toc-backref" href="#id19">/v1/connection/[xid]/disable - [PUT] - Disable Connection</a><a class="headerlink" href="#v1-connection-xid-disable-put-disable-connection" title="Permalink to this headline">¶</a></h3>
+<p>Disable a connection with id <tt class="docutils literal"><span class="pre">xid</span></tt>.</p>
+<ul class="simple">
+<li>Method: <tt class="docutils literal"><span class="pre">PUT</span></tt></li>
+<li>Format: <tt class="docutils literal"><span class="pre">JSON</span></tt></li>
+<li>Request Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+<li>Response Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+</ul>
+</div>
+<div class="section" id="v1-job-jid-get-get-job">
+<h3><a class="toc-backref" href="#id20">/v1/job/[jid] - [GET] - Get Job</a><a class="headerlink" href="#v1-job-jid-get-get-job" title="Permalink to this headline">¶</a></h3>
+<p>Retrieve all the metadata of a given job, such as its values for different fields of connector form and sqoop framework form.</p>
+<p>Provide the id of the job in the url [jid] part. If you provide <tt class="docutils literal"><span class="pre">all</span></tt> in the [jid] part in the url, you will get the metadata of all connections.</p>
+<ul class="simple">
+<li>Method: <tt class="docutils literal"><span class="pre">GET</span></tt></li>
+<li>Format: <tt class="docutils literal"><span class="pre">JSON</span></tt></li>
+<li>Request Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+<li>Fields of Response:</li>
+</ul>
+<table border="1" class="docutils">
+<colgroup>
+<col width="23%" />
+<col width="77%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Field</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">resources-connector</span></tt></td>
+<td>All resources for the given connector</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">resources-framework</span></tt></td>
+<td>All resources related with Sqoop framework</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">all</span></tt></td>
+<td>All metadata about the given job, such as id, name and all form input values</td>
+</tr>
+</tbody>
+</table>
+<ul class="simple">
+<li>Response Example:</li>
+</ul>
+<div class="highlight-none"><div class="highlight"><pre>{
+ "resources-connector":{
+ "1":{
+ "ignored.label":"Ignored",
+ "table.partitionColumn.help":"A specific column for data partition",
+ "table.label":"Database configuration",
+ "table.boundaryQuery.label":"Boundary query",
+ "ignored.help":"This is completely ignored",
+ "ignored.ignored.label":"Ignored",
+ "connection.jdbcProperties.help":"Enter any JDBC properties that should be supplied during the creation of connection.",
+ "table.tableName.help":"Table name to process data in the remote database",
+ "connection.jdbcDriver.label":"JDBC Driver Class",
+ "connection.username.help":"Enter the username to be used for connecting to the database.",
+ "table.help":"You must supply the information requested in order to create a job object.",
+ "table.partitionColumn.label":"Partition column name",
+ "ignored.ignored.help":"This is completely ignored",
+ "table.partitionColumnNull.label":"Nulls in partition column",
+ "table.warehouse.label":"Data warehouse",
+ "table.boundaryQuery.help":"The boundary query for data partition",
+ "connection.username.label":"Username",
+ "connection.jdbcDriver.help":"Enter the fully qualified class name of the JDBC driver that will be used for establishing this connection.",
+ "connection.label":"Connection configuration",
+ "table.columns.label":"Table column names",
+ "table.dataDirectory.label":"Data directory",
+ "table.partitionColumnNull.help":"Whether there are null values in partition column",
+ "connection.password.label":"Password",
+ "table.warehouse.help":"The root directory for data",
+ "table.sql.label":"Table SQL statement",
+ "table.sql.help":"SQL statement to process data in the remote database",
+ "table.schemaName.help":"Schema name to process data in the remote database",
+ "connection.jdbcProperties.label":"JDBC Connection Properties",
+ "table.columns.help":"Specific columns of a table name or a table SQL",
+ "connection.connectionString.help":"Enter the value of JDBC connection string to be used by this connector for creating connections.",
+ "table.dataDirectory.help":"The sub-directory under warehouse for data",
+ "table.schemaName.label":"Schema name",
+ "connection.connectionString.label":"JDBC Connection String",
+ "connection.help":"You must supply the information requested in order to create a connection object.",
+ "connection.password.help":"Enter the password to be used for connecting to the database.",
+ "table.tableName.label":"Table name"
+ }
+ },
+ "resources-framework":{
+ "output.label":"Output configuration",
+ "security.maxConnections.help":"Maximal number of connections that this connection object can use at one point in time",
+ "output.storageType.label":"Storage type",
+ "output.ignored.help":"This value is ignored",
+ "input.label":"Input configuration",
+ "security.help":"You must supply the information requested in order to create a job object.",
+ "output.storageType.help":"Target on Hadoop ecosystem where to store data",
+ "input.inputDirectory.help":"Directory that should be exported",
+ "output.outputFormat.label":"Output format",
+ "output.ignored.label":"Ignored",
+ "output.outputFormat.help":"Format in which data should be serialized",
+ "output.help":"You must supply the information requested in order to get information where you want to store your data.",
+ "throttling.help":"Set throttling boundaries to not overload your systems",
+ "input.inputDirectory.label":"Input directory",
+ "throttling.loaders.label":"Loaders",
+ "input.help":"Specifies information required to get data from Hadoop ecosystem",
+ "throttling.extractors.label":"Extractors",
+ "throttling.extractors.help":"Number of extractors that Sqoop will use",
+ "security.label":"Security related configuration options",
+ "throttling.label":"Throttling resources",
+ "throttling.loaders.help":"Number of loaders that Sqoop will use",
+ "output.outputDirectory.help":"Output directory for final data",
+ "security.maxConnections.label":"Max connections",
+ "output.outputDirectory.label":"Output directory"
+ },
+ "all":[
+ {
+ "connection-id":1,
+ "id":1,
+ "enabled":true,
+ "updated":1375913231253,
+ "created":1375913231253,
+ "name":"First job",
+ "connector":[
+ {
+ "id":2,
+ "inputs":[
+ {
+ "id":6,
+ "name":"table.schemaName",
+ "value":"test",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ },
+ {
+ "id":7,
+ "name":"table.tableName",
+ "value":"example",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ },
+ {
+ "id":8,
+ "name":"table.sql",
+ "type":"STRING",
+ "size":2000,
+ "sensitive":false
+ },
+ {
+ "id":9,
+ "name":"table.columns",
+ "value":"id%2Cdata",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ },
+ {
+ "id":10,
+ "name":"table.partitionColumn",
+ "value":"id",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ },
+ {
+ "id":11,
+ "name":"table.partitionColumnNull",
+ "value":"true",
+ "type":"BOOLEAN",
+ "sensitive":false
+ },
+ {
+ "id":12,
+ "name":"table.boundaryQuery",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ }
+ ],
+ "name":"table",
+ "type":"CONNECTION"
+ }
+ ],
+ "connector-id":1,
+ "type":"IMPORT",
+ "framework":[
+ {
+ "id":5,
+ "inputs":[
+ {
+ "id":18,
+ "values":"HDFS",
+ "name":"output.storageType",
+ "value":"HDFS",
+ "type":"ENUM",
+ "sensitive":false
+ },
+ {
+ "id":19,
+ "values":"TEXT_FILE,SEQUENCE_FILE",
+ "name":"output.outputFormat",
+ "value":"TEXT_FILE",
+ "type":"ENUM",
+ "sensitive":false
+ },
+ {
+ "id":20,
+ "name":"output.outputDirectory",
+ "value":"%2Ftmp%2Foutput",
+ "type":"STRING",
+ "size":255,
+ "sensitive":false
+ }
+ ],
+ "name":"output",
+ "type":"CONNECTION"
+ },
+ {
+ "id":6,
+ "inputs":[
+ {
+ "id":21,
+ "name":"throttling.extractors",
+ "type":"INTEGER",
+ "sensitive":false
+ },
+ {
+ "id":22,
+ "name":"throttling.loaders",
+ "type":"INTEGER",
+ "sensitive":false
+ }
+ ],
+ "name":"throttling",
+ "type":"CONNECTION"
+ }
+ ]
+ }
+ ]
+}
+</pre></div>
+</div>
+</div>
+<div class="section" id="v1-job-post-create-job">
+<h3><a class="toc-backref" href="#id21">/v1/job - [POST] - Create Job</a><a class="headerlink" href="#v1-job-post-create-job" title="Permalink to this headline">¶</a></h3>
+<p>Create a new job object. Try your best to provide values for as many as inputs of
+job forms from both connectors and framework.</p>
+<ul class="simple">
+<li>Method: <tt class="docutils literal"><span class="pre">POST</span></tt></li>
+<li>Format: <tt class="docutils literal"><span class="pre">JSON</span></tt></li>
+<li>Fields of Request:</li>
+</ul>
+<table border="1" class="docutils">
+<colgroup>
+<col width="23%" />
+<col width="77%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Field</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">all</span></tt></td>
+<td>Request array, in which each element is an independent request</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">connection-id</span></tt></td>
+<td>The id of the connection used for this job</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">id</span></tt></td>
+<td>The id of the job. Useless here, because we don’t know the id before creation</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">type</span></tt></td>
+<td>The type of this job (“IMPORT”/”EXPORT”)</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">enabled</span></tt></td>
+<td>Whether to enable this connection (true/false)</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">updated</span></tt></td>
+<td>The last updated time of this connection</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">created</span></tt></td>
+<td>The creation time of this connection</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">name</span></tt></td>
+<td>The name of this connection</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">connector</span></tt></td>
+<td>Filled inputs for connector forms for this connection</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">connector-id</span></tt></td>
+<td>The id of the connector used for this connection</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">framework</span></tt></td>
+<td>Filled inputs for framework forms for this connection</td>
+</tr>
+</tbody>
+</table>
+<ul class="simple">
+<li>Request Example:</li>
+</ul>
+<div class="highlight-none"><div class="highlight"><pre>{
+ "all":[
+ {
+ "connection-id":1,
+ "id":-1,
+ "enabled":true,
+ "updated":1375920083970,
+ "created":1375920083970,
+ "name":"First job",
+ "connector":[
+ {
+ "id":2,
+ "inputs":[
+ {
+ "id":6,
+ "name":"table.schemaName",
+ "value":"test",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ },
+ {
+ "id":7,
+ "name":"table.tableName",
+ "value":"example",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ },
+ {
+ "id":8,
+ "name":"table.sql",
+ "type":"STRING",
+ "size":2000,
+ "sensitive":false
+ },
+ {
+ "id":9,
+ "name":"table.columns",
+ "value":"id%2Cdata",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ },
+ {
+ "id":10,
+ "name":"table.partitionColumn",
+ "value":"id",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ },
+ {
+ "id":11,
+ "name":"table.partitionColumnNull",
+ "value":"true",
+ "type":"BOOLEAN",
+ "sensitive":false
+ },
+ {
+ "id":12,
+ "name":"table.boundaryQuery",
+ "type":"STRING",
+ "size":50,
+ "sensitive":false
+ }
+ ],
+ "name":"table",
+ "type":"CONNECTION"
+ }
+ ],
+ "connector-id":1,
+ "type":"IMPORT",
+ "framework":[
+ {
+ "id":5,
+ "inputs":[
+ {
+ "id":18,
+ "values":"HDFS",
+ "name":"output.storageType",
+ "value":"HDFS",
+ "type":"ENUM",
+ "sensitive":false
+ },
+ {
+ "id":19,
+ "values":"TEXT_FILE,SEQUENCE_FILE",
+ "name":"output.outputFormat",
+ "value":"TEXT_FILE",
+ "type":"ENUM",
+ "sensitive":false
+ },
+ {
+ "id":20,
+ "name":"output.outputDirectory",
+ "value":"%2Ftmp%2Foutput",
+ "type":"STRING",
+ "size":255,
+ "sensitive":false
+ }
+ ],
+ "name":"output",
+ "type":"CONNECTION"
+ },
+ {
+ "id":6,
+ "inputs":[
+ {
+ "id":21,
+ "name":"throttling.extractors",
+ "type":"INTEGER",
+ "sensitive":false
+ },
+ {
+ "id":22,
+ "name":"throttling.loaders",
+ "type":"INTEGER",
+ "sensitive":false
+ }
+ ],
+ "name":"throttling",
+ "type":"CONNECTION"
+ }
+ ]
+ }
+ ]
+}
+</pre></div>
+</div>
+<ul class="simple">
+<li>Fields of Response:</li>
+</ul>
+<table border="1" class="docutils">
+<colgroup>
+<col width="23%" />
+<col width="77%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Field</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">id</span></tt></td>
+<td>The id assigned for this new created job</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">connector</span></tt></td>
+<td>The validation status for the inputs of connector forms, provided by the request</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">framework</span></tt></td>
+<td>The validation status for the inputs of framework forms, provided by the request</td>
+</tr>
+</tbody>
+</table>
+<ul class="simple">
+<li>Response Example:</li>
+</ul>
+<div class="highlight-none"><div class="highlight"><pre>{
+ "id":1,
+ "connector":{
+ "status":"FINE",
+ "messages":{
+
+ }
+ },
+ "framework":{
+ "status":"FINE",
+ "messages":{
+
+ }
+ }
+}
+</pre></div>
+</div>
+</div>
+<div class="section" id="v1-job-jid-put-update-job">
+<h3><a class="toc-backref" href="#id22">/v1/job/[jid] - [PUT] - Update Job</a><a class="headerlink" href="#v1-job-jid-put-update-job" title="Permalink to this headline">¶</a></h3>
+<p>Update an existing job object with id [jid]. To make the procedure of filling inputs easier, the general practice
+is get the existing job object first and then change some of the inputs.</p>
+<ul class="simple">
+<li>Method: <tt class="docutils literal"><span class="pre">PUT</span></tt></li>
+<li>Format: <tt class="docutils literal"><span class="pre">JSON</span></tt></li>
+<li>Fields of Request:</li>
+</ul>
+<p>The same as Create Job.</p>
+<ul class="simple">
+<li>Fields of Response:</li>
+</ul>
+<table border="1" class="docutils">
+<colgroup>
+<col width="23%" />
+<col width="77%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Field</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">connector</span></tt></td>
+<td>The validation status for the inputs of connector forms, provided by the request</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">framework</span></tt></td>
+<td>The validation status for the inputs of framework forms, provided by the request</td>
+</tr>
+</tbody>
+</table>
+<ul class="simple">
+<li>Response Example:</li>
+</ul>
+<div class="highlight-none"><div class="highlight"><pre>{
+ "connector":{
+ "status":"FINE",
+ "messages":{
+
+ }
+ },
+ "framework":{
+ "status":"FINE",
+ "messages":{
+
+ }
+ }
+}
+</pre></div>
+</div>
+</div>
+<div class="section" id="v1-job-jid-delete-delete-job">
+<h3><a class="toc-backref" href="#id23">/v1/job/[jid] - [DELETE] - Delete Job</a><a class="headerlink" href="#v1-job-jid-delete-delete-job" title="Permalink to this headline">¶</a></h3>
+<p>Delete a job with id <tt class="docutils literal"><span class="pre">jid</span></tt>.</p>
+<ul class="simple">
+<li>Method: <tt class="docutils literal"><span class="pre">DELETE</span></tt></li>
+<li>Format: <tt class="docutils literal"><span class="pre">JSON</span></tt></li>
+<li>Request Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+<li>Response Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+</ul>
+</div>
+<div class="section" id="v1-job-jid-enable-put-enable-job">
+<h3><a class="toc-backref" href="#id24">/v1/job/[jid]/enable - [PUT] - Enable Job</a><a class="headerlink" href="#v1-job-jid-enable-put-enable-job" title="Permalink to this headline">¶</a></h3>
+<p>Enable a job with id <tt class="docutils literal"><span class="pre">jid</span></tt>.</p>
+<ul class="simple">
+<li>Method: <tt class="docutils literal"><span class="pre">PUT</span></tt></li>
+<li>Format: <tt class="docutils literal"><span class="pre">JSON</span></tt></li>
+<li>Request Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+<li>Response Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+</ul>
+</div>
+<div class="section" id="v1-job-jid-disable-put-disable-job">
+<h3><a class="toc-backref" href="#id25">/v1/job/[jid]/disable - [PUT] - Disable Job</a><a class="headerlink" href="#v1-job-jid-disable-put-disable-job" title="Permalink to this headline">¶</a></h3>
+<p>Disable a job with id <tt class="docutils literal"><span class="pre">jid</span></tt>.</p>
+<ul class="simple">
+<li>Method: <tt class="docutils literal"><span class="pre">PUT</span></tt></li>
+<li>Format: <tt class="docutils literal"><span class="pre">JSON</span></tt></li>
+<li>Request Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+<li>Response Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+</ul>
+</div>
+<div class="section" id="v1-submission-history-jid-get-get-job-submission-history">
+<h3><a class="toc-backref" href="#id26">/v1/submission/history/[jid] - [GET] - Get Job Submission History</a><a class="headerlink" href="#v1-submission-history-jid-get-get-job-submission-history" title="Permalink to this headline">¶</a></h3>
+<p>Retrieve all job submission history of a given job, such as the status, counters and links for those submissions.</p>
+<p>Provide the id of the job in the url [jid] part. If you provide <tt class="docutils literal"><span class="pre">all</span></tt> in the [jid] part in the url, you will get all job submission history of all jobs.</p>
+<ul class="simple">
+<li>Method: <tt class="docutils literal"><span class="pre">GET</span></tt></li>
+<li>Format: <tt class="docutils literal"><span class="pre">JSON</span></tt></li>
+<li>Request Content: <tt class="docutils literal"><span class="pre">None</span></tt></li>
+<li>Fields of Response:</li>
+</ul>
+<table border="1" class="docutils">
+<colgroup>
+<col width="23%" />
+<col width="77%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Field</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">progress</span></tt></td>
+<td>The progress of the running Sqoop job</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">job</span></tt></td>
+<td>The id of the Sqoop job</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">creation-date</span></tt></td>
+<td>The submission timestamp</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">last-update-date</span></tt></td>
+<td>The timestamp of the last status update</td>
+</tr>
[... 163 lines stripped ...]