Added: oozie/site/trunk/content/resources/docs/5.2.1/WebServicesAPI.html
URL: 
http://svn.apache.org/viewvc/oozie/site/trunk/content/resources/docs/5.2.1/WebServicesAPI.html?rev=1886952&view=auto
==============================================================================
--- oozie/site/trunk/content/resources/docs/5.2.1/WebServicesAPI.html (added)
+++ oozie/site/trunk/content/resources/docs/5.2.1/WebServicesAPI.html Fri Feb 
26 14:14:19 2021
@@ -0,0 +1,2473 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia at 2021-02-26 
+ | Rendered using Apache Maven Fluido Skin 1.4
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20210226" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Oozie &#x2013; </title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+      
+    <script type="text/javascript" 
src="./js/apache-maven-fluido-1.4.min.js"></script>
+
+    
+                  </head>
+        <body class="topBarDisabled">
+          
+        
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                    <a href="https://oozie.apache.org/"; 
id="bannerLeft">
+                                                                               
         <img src="https://oozie.apache.org/images/oozie_200x.png";  
alt="Oozie"/>
+                </a>
+                      </div>
+        <div class="pull-right">  </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/"; class="externalLink" 
title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../" title="Oozie">
+        Oozie</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="docs">
+        docs</a>
+                    <span class="divider">/</span>
+      </li>
+                <li class="">
+                    <a href="./" title="5.2.1">
+        5.2.1</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active "></li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span 
class="divider">|</span> Last Published: 2021-02-26</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 5.2.1
+        </li>
+            
+                            </ul>
+      </div>
+
+            
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+  </ul>
+                
+                    
+                
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/"; title="Built 
by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" 
src="./images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <p><a href="index.html">::Go back to Oozie Documentation 
Index::</a></p><hr />
+<ul>
+<li><a href="#Oozie_Web_Services_API_V1_Workflow_Coordinator_And_Bundle">Oozie 
Web Services API, V1 (Workflow, Coordinator, And Bundle)</a>
+<ul>
+<li><a href="#Versions_End-Point">Versions End-Point</a></li>
+<li><a href="#Admin_End-Point">Admin End-Point</a>
+<ul>
+<li><a href="#System_Status">System Status</a></li>
+<li><a href="#OS_Environment">OS Environment</a></li>
+<li><a href="#Java_System_Properties">Java System Properties</a></li>
+<li><a href="#Oozie_Configuration">Oozie Configuration</a></li>
+<li><a href="#Oozie_Instrumentation">Oozie Instrumentation</a></li>
+<li><a href="#Oozie_Metrics">Oozie Metrics</a></li>
+<li><a href="#Version">Version</a></li>
+<li><a href="#Available_Time_Zones">Available Time Zones</a></li>
+<li><a href="#Queue_Dump">Queue Dump</a></li>
+<li><a href="#Available_Oozie_Servers">Available Oozie Servers</a></li>
+<li><a href="#List_available_sharelib">List available sharelib</a></li>
+<li><a href="#Update_system_sharelib">Update system sharelib</a></li>
+<li><a href="#Purge_Command">Purge Command</a></li></ul></li>
+<li><a href="#Job_and_Jobs_End-Points">Job and Jobs End-Points</a>
+<ul>
+<li><a href="#Job_Submission">Job Submission</a></li>
+<li><a href="#Standard_Job_Submission">Standard Job Submission</a></li>
+<li><a href="#Proxy_MapReduce_Job_Submission">Proxy MapReduce Job 
Submission</a></li>
+<li><a href="#Proxy_Pig_Job_Submission">Proxy Pig Job Submission</a></li>
+<li><a href="#Proxy_Hive_Job_Submission">Proxy Hive Job Submission</a></li>
+<li><a href="#Proxy_Sqoop_Job_Submission">Proxy Sqoop Job Submission</a></li>
+<li><a href="#Embedded_workflow_XML_Job_Submission">Embedded workflow XML Job 
Submission</a></li>
+<li><a href="#Managing_a_Job">Managing a Job</a>
+<ul>
+<li><a href="#Re-Running_a_Workflow_Job">Re-Running a Workflow Job</a></li>
+<li><a href="#Re-Running_a_coordinator_job">Re-Running a coordinator 
job</a></li>
+<li><a href="#Re-Running_a_bundle_job">Re-Running a bundle job</a></li>
+<li><a 
href="#Changing_endtimeconcurrencypausetime_of_a_Coordinator_Job">Changing 
endtime/concurrency/pausetime of a Coordinator Job</a></li>
+<li><a href="#Updating_coordinator_definition_and_properties">Updating 
coordinator definition and properties</a></li></ul></li>
+<li><a href="#Job_Information">Job Information</a></li>
+<li><a href="#Job_Application_Definition">Job Application Definition</a></li>
+<li><a href="#Job_Log">Job Log</a></li>
+<li><a href="#Job_Error_Log">Job Error Log</a></li>
+<li><a href="#Job_Audit_Log">Job Audit Log</a></li>
+<li><a href="#Filtering_the_server_logs_with_logfilter_options">Filtering the 
server logs with logfilter options</a></li>
+<li><a href="#Job_graph">Job graph</a></li>
+<li><a href="#Job_Status">Job Status</a></li>
+<li><a href="#Changing_job_SLA_definition_and_alerting">Changing job SLA 
definition and alerting</a></li></ul></li>
+<li><a href="#Getting_missing_dependencies_of_coordinator_actions">Getting 
missing dependencies of coordinator action(s)</a>
+<ul>
+<li><a href="#Jobs_Information">Jobs Information</a></li>
+<li><a href="#Bulk_modify_jobs">Bulk modify jobs</a></li>
+<li><a href="#Jobs_information_using_Bulk_API">Jobs information using Bulk 
API</a></li></ul></li></ul></li>
+<li><a 
href="#Oozie_Web_Services_API_V2_Workflow__Coordinator_And_Bundle">Oozie Web 
Services API, V2 (Workflow , Coordinator And Bundle)</a>
+<ul>
+<li><a href="#Job_and_Jobs_End-Points">Job and Jobs End-Points</a>
+<ul>
+<li><a href="#Job_Information">Job Information</a></li>
+<li><a href="#Managing_a_Job">Managing a Job</a>
+<ul>
+<li><a href="#Ignore_a_Coordinator_Job_or_Action">Ignore a Coordinator Job or 
Action</a></li></ul></li></ul></li>
+<li><a href="#Validate_End-Point">Validate End-Point</a>
+<ul>
+<li><a href="#Validate_a_local_file">Validate a local file</a></li>
+<li><a href="#Validate_a_file_in_HDFS">Validate a file in 
HDFS</a></li></ul></li></ul></li></ul>
+
+<div class="section">
+<h2><a 
name="Oozie_Web_Services_API_V1_Workflow_Coordinator_And_Bundle"></a>Oozie Web 
Services API, V1 (Workflow, Coordinator, And Bundle)</h2>
+<p>The Oozie Web Services API is a HTTP REST JSON API.</p>
+<p>All responses are in <tt>UTF-8</tt>.</p>
+<p>Assuming Oozie is running at <tt>OOZIE_URL</tt>, the following web services 
end points are supported:</p>
+<ul>
+
+<li>&lt;OOZIE_URL&gt;/versions</li>
+<li>&lt;OOZIE_URL&gt;/v1/admin</li>
+<li>&lt;OOZIE_URL&gt;/v1/job</li>
+<li>&lt;OOZIE_URL&gt;/v1/jobs</li>
+<li>&lt;OOZIE_URL&gt;/v2/job</li>
+<li>&lt;OOZIE_URL&gt;/v2/jobs</li>
+<li>&lt;OOZIE_URL&gt;/v2/admin</li>
+<li>&lt;OOZIE_URL&gt;/v2/sla</li>
+</ul>
+<p>Documentation on the API is below; in some cases, looking at the 
corresponding command in the <a href="DG_CommandLineTool.html">Command Line 
Documentation</a> page will provide additional details and examples.  Most of 
the functionality offered by the Oozie CLI is using the WS API. If you export 
<tt>OOZIE_DEBUG</tt> then the Oozie CLI will output the WS API details used by 
any commands you execute. This is useful for debugging purposes to or see how 
the Oozie CLI works with the WS API.</p>
+<div class="section">
+<h3><a name="Versions_End-Point"></a>Versions End-Point</h3>
+<p><i>Identical to the corresponding Oozie v0 WS API</i></p>
+<p>This endpoint is for clients to perform protocol negotiation.</p>
+<p>It support only HTTP GET request and not sub-resources.</p>
+<p>It returns the supported Oozie protocol versions by the server.</p>
+<p>Current returned values are <tt>0, 1, 2</tt>.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET /oozie/versions
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+[0,1]
+</pre></div></div>
+</div>
+<div class="section">
+<h3><a name="Admin_End-Point"></a>Admin End-Point</h3>
+<p>This endpoint is for obtaining Oozie system status and configuration 
information.</p>
+<p>It supports the following sub-resources: <tt>status, os-env, sys-props, 
configuration, instrumentation, systems, available-timezones</tt>.</p>
+<div class="section">
+<h4><a name="System_Status"></a>System Status</h4>
+<p><i>Identical to the corresponding Oozie v0 WS API</i></p>
+<p>A HTTP GET request returns the system status.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET /oozie/v1/admin/status
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{&quot;systemMode&quot;:NORMAL}
+</pre></div></div>
+
+<p>With a HTTP PUT request it is possible to change the system status between 
<tt>NORMAL</tt>, <tt>NOWEBSERVICE</tt>, and <tt>SAFEMODE</tt>.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">PUT /oozie/v1/admin/status?systemmode=SAFEMODE
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="OS_Environment"></a>OS Environment</h4>
+<p><i>Identical to the corresponding Oozie v0 WS API</i></p>
+<p>A HTTP GET request returns the Oozie system OS environment.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET /oozie/v1/admin/os-env
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{
+  TERM: &quot;xterm&quot;,
+  JAVA_HOME: &quot;/usr/java/latest&quot;,
+  XCURSOR_SIZE: &quot;&quot;,
+  SSH_CLIENT: &quot;::ffff:127.0.0.1 49082 22&quot;,
+  XCURSOR_THEME: &quot;default&quot;,
+  INPUTRC: &quot;/etc/inputrc&quot;,
+  HISTSIZE: &quot;1000&quot;,
+  PATH: &quot;/usr/java/latest/bin&quot;
+  KDE_FULL_SESSION: &quot;true&quot;,
+  LANG: &quot;en_US.UTF-8&quot;,
+  ...
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Java_System_Properties"></a>Java System Properties</h4>
+<p><i>Identical to the corresponding Oozie v0 WS API</i></p>
+<p>A HTTP GET request returns the Oozie Java system properties.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET /oozie/v1/admin/java-sys-properties
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{
+  java.vm.version: &quot;11.0-b15&quot;,
+  sun.jnu.encoding: &quot;UTF-8&quot;,
+  java.vendor.url: &quot;http://java.sun.com/&quot;,
+  java.vm.info: &quot;mixed mode&quot;,
+  ...
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Oozie_Configuration"></a>Oozie Configuration</h4>
+<p><i>Identical to the corresponding Oozie v0 WS API</i></p>
+<p>A HTTP GET request returns the Oozie system configuration.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET /oozie/v1/admin/configuration
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{
+  oozie.service.SchedulerService.threads: &quot;5&quot;,
+  oozie.service.ActionService.executor.classes: &quot;
+            org.apache.oozie.dag.action.decision.DecisionActionExecutor,
+            org.apache.oozie.dag.action.hadoop.HadoopActionExecutor,
+            org.apache.oozie.dag.action.hadoop.FsActionExecutor
+        &quot;,
+  oozie.service.CallableQueueService.threads.min: &quot;10&quot;,
+  oozie.service.DBLiteWorkflowStoreService.oozie.autoinstall: &quot;true&quot;,
+  ...
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Oozie_Instrumentation"></a>Oozie Instrumentation</h4>
+<p><i>Identical to the corresponding Oozie v0 WS API</i></p>
+<p>Deprecated and by default disabled since 5.0.0.</p>
+<p>A HTTP GET request returns the Oozie instrumentation information.  Keep in 
mind that timers and counters that the Oozie server hasn&#x2019;t incremented 
yet will not show up.</p>
+<p><b>Note:</b> If Instrumentation is enabled, then Metrics is unavailable.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET /oozie/v1/admin/instrumentation
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{
+  timers: [
+    {
+      group: &quot;db&quot;,
+      data: [
+        {
+          ownMinTime: 2,
+          ownTimeStdDev: 0,
+          totalTimeStdDev: 0,
+          ownTimeAvg: 3,
+          ticks: 117,
+          name: &quot;update-workflow&quot;,
+          ownMaxTime: 32,
+          totalMinTime: 2,
+          totalMaxTime: 32,
+          totalTimeAvg: 3
+        },
+        ...
+      ]
+    },
+    ...
+  ],
+  samplers: [
+    {
+      group: &quot;callablequeue&quot;,
+      data: [
+        {
+          name: &quot;threads.active&quot;,
+          value: 1.8333333333333333
+        },
+        {
+          name: &quot;delayed.queue.size&quot;,
+          value: 0
+        },
+        {
+          name: &quot;queue.size&quot;,
+          value: 0
+        }
+      ]
+    },
+    ...
+  ],
+  variables: [
+    {
+      group: &quot;jvm&quot;,
+      data: [
+        {
+          name: &quot;max.memory&quot;,
+          value: 506920960
+        },
+        {
+          name: &quot;total.memory&quot;,
+          value: 56492032
+        },
+        {
+          name: &quot;free.memory&quot;,
+          value: 45776800
+        }
+      ]
+    },
+    ...
+  ]
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Oozie_Metrics"></a>Oozie Metrics</h4>
+<p><i>Available in the Oozie v2 WS API and later</i></p>
+<p>A HTTP GET request returns the Oozie metrics information.  Keep in mind 
that timers and counters that the Oozie server hasn&#x2019;t incremented yet 
will not show up.</p>
+<p><b>Note:</b> If Metrics is enabled, then Instrumentation is unavailable.</p>
+<p><b>Note:</b> by default enabled since 5.0.0.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET /oozie/v2/admin/metrics
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{
+   &quot;gauges&quot; : {
+        &quot;jvm.memory.non-heap.committed&quot; : {
+          &quot;value&quot; : 62590976
+        },
+        &quot;oozie.mode&quot; : {
+          &quot;value&quot; : &quot;NORMAL&quot;
+        },
+        ...
+    },
+    &quot;timers&quot; : {
+        &quot;commands.action.end.call.timer&quot; : {
+          &quot;mean&quot; : 108.5,
+          &quot;p50&quot; : 111.5,
+          &quot;p75&quot; : 165.5,
+          &quot;p999&quot; : 169,
+          &quot;count&quot; : 4,
+          &quot;p95&quot; : 169,
+          &quot;max&quot; : 169,
+          &quot;mean_rate&quot; : 0,
+          &quot;duration_units&quot; : &quot;milliseconds&quot;,
+          &quot;p98&quot; : 169,
+          &quot;m1_rate&quot; : 0,
+          &quot;rate_units&quot; : &quot;calls/millisecond&quot;,
+          &quot;m15_rate&quot; : 0,
+          &quot;stddev&quot; : 62.9417720330995,
+          &quot;m5_rate&quot; : 0,
+          &quot;p99&quot; : 169,
+          &quot;min&quot; : 42
+        },
+        ...
+    },
+    &quot;histograms&quot; : {
+        &quot;callablequeue.threads.active.histogram&quot; : {
+          &quot;p999&quot; : 1,
+          &quot;mean&quot; : 0.0625,
+          &quot;min&quot; : 0,
+          &quot;p75&quot; : 0,
+          &quot;p95&quot; : 1,
+          &quot;count&quot; : 48,
+          &quot;p98&quot; : 1,
+          &quot;stddev&quot; : 0.24462302739504083,
+          &quot;max&quot; : 1,
+          &quot;p99&quot; : 1,
+          &quot;p50&quot; : 0
+        },
+        ...
+    },
+    &quot;counters&quot; : {
+        &quot;commands.job.info.executions&quot; : {
+          &quot;count&quot; : 9
+        },
+        &quot;jpa.CoordJobsGetPendingJPAExecutor&quot; : {
+          &quot;count&quot; : 1
+        },
+        &quot;jpa.GET_WORKFLOW&quot; : {
+          &quot;count&quot; : 10
+        },
+        ...
+    }
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Version"></a>Version</h4>
+<p><i>Identical to the corresponding Oozie v0 WS API</i></p>
+<p>A HTTP GET request returns the Oozie build version.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET /oozie/v1/admin/build-version
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{buildVersion: &quot;3.0.0-SNAPSHOT&quot; }
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Available_Time_Zones"></a>Available Time Zones</h4>
+<p>A HTTP GET request returns the available time zones.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET /oozie/v1/admin/available-timezones
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{
+  &quot;available-timezones&quot;:[
+    {
+      &quot;timezoneDisplayName&quot;:&quot;SST (Pacific\/Midway)&quot;,
+      &quot;timezoneId&quot;:&quot;Pacific\/Midway&quot;
+    },
+    {
+      &quot;timezoneDisplayName&quot;:&quot;NUT (Pacific\/Niue)&quot;,
+      &quot;timezoneId&quot;:&quot;Pacific\/Niue&quot;
+    },
+    {
+      &quot;timezoneDisplayName&quot;:&quot;SST (Pacific\/Pago_Pago)&quot;,
+      &quot;timezoneId&quot;:&quot;Pacific\/Pago_Pago&quot;
+    },
+    {
+      &quot;timezoneDisplayName&quot;:&quot;SST (Pacific\/Samoa)&quot;,
+      &quot;timezoneId&quot;:&quot;Pacific\/Samoa&quot;
+    },
+    {
+      &quot;timezoneDisplayName&quot;:&quot;SST (US\/Samoa)&quot;,
+      &quot;timezoneId&quot;:&quot;US\/Samoa&quot;
+    },
+    {
+      &quot;timezoneDisplayName&quot;:&quot;HAST (America\/Adak)&quot;,
+      &quot;timezoneId&quot;:&quot;America\/Adak&quot;
+    },
+    {
+      &quot;timezoneDisplayName&quot;:&quot;HAST (America\/Atka)&quot;,
+      &quot;timezoneId&quot;:&quot;America\/Atka&quot;
+    },
+    {
+      &quot;timezoneDisplayName&quot;:&quot;HST (HST)&quot;,
+      &quot;timezoneId&quot;:&quot;HST&quot;
+    },
+    ...
+  ]
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Queue_Dump"></a>Queue Dump</h4>
+<p>A HTTP GET request returns the queue dump of the Oozie system.  This is an 
administrator debugging feature.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET /oozie/v1/admin/queue-dump
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Available_Oozie_Servers"></a>Available Oozie Servers</h4>
+<p>A HTTP GET request returns the list of available Oozie Servers.  This is 
useful when Oozie is configured for <a href="AG_Install.html#HA">High 
Availability</a>; if not, it will simply return the one Oozie Server.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET /oozie/v2/admin/available-oozie-servers
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{
+    &quot;hostA&quot;: &quot;http://hostA:11000/oozie&quot;,
+    &quot;hostB&quot;: &quot;http://hostB:11000/oozie&quot;,
+    &quot;hostC&quot;: &quot;http://hostC:11000/oozie&quot;,
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="List_available_sharelib"></a>List available sharelib</h4>
+<p>A HTTP GET request to get list of available sharelib. If the name of the 
sharelib is passed as an argument (regex supported) then all corresponding 
files are also listed.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET /oozie/v2/admin/list_sharelib
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+{
+    &quot;sharelib&quot;:
+        [
+            &quot;oozie&quot;,
+            &quot;hive&quot;,
+            &quot;distcp&quot;,
+            &quot;hcatalog&quot;,
+            &quot;sqoop&quot;,
+            &quot;mapreduce-streaming&quot;,
+            &quot;pig&quot;
+        ]
+}
+</pre></div></div>
+
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET /oozie/v2/admin/list_sharelib?lib=pig*
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+
+{
+    &quot;sharelib&quot;:
+            [
+                {
+                    &quot;pig&quot;:
+                        {
+                            &quot;sharelibFiles&quot;:
+                                [
+                                    
hdfs://localhost:9000/user/purushah/share/lib/lib_20131114095729/pig/pig.jar
+                                    
hdfs://localhost:9000/user/purushah/share/lib/lib_20131114095729/pig/piggybank.jar
+                                ]
+                        }
+                }
+            ]
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Update_system_sharelib"></a>Update system sharelib</h4>
+<p>This webservice call makes the oozie server(s) to pick up the latest 
version of sharelib present under 
oozie.service.WorkflowAppService.system.libpath directory based on the sharelib 
directory timestamp or reloads the sharelib metafile if one is configured. The 
main purpose is to update the sharelib on the oozie server without 
restarting.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET /oozie/v2/admin/update_sharelib
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+[
+    {
+       &quot;sharelibUpdate&quot;:{
+          &quot;host&quot;:&quot;server1&quot;,
+          &quot;status&quot;:&quot;Server not found&quot;
+       }
+    },
+    {
+       &quot;sharelibUpdate&quot;:{
+          &quot;host&quot;:&quot;server2&quot;,
+          &quot;status&quot;:&quot;Successful&quot;,
+          
&quot;sharelibDirOld&quot;:&quot;hdfs://localhost:51951/user/purushah/share/lib/lib_20140107181218&quot;,
+          
&quot;sharelibDirNew&quot;:&quot;hdfs://localhost:51951/user/purushah/share/lib/lib_20140107181218&quot;
+       }
+    },
+    {
+       &quot;sharelibUpdate&quot;:{
+          &quot;host&quot;:&quot;server3&quot;,
+          &quot;status&quot;:&quot;Successful&quot;,
+          
&quot;sharelibDirOld&quot;:&quot;hdfs://localhost:51951/user/purushah/share/lib/lib_20140107181218&quot;,
+          
&quot;sharelibDirNew&quot;:&quot;hdfs://localhost:51951/user/purushah/share/lib/lib_20140107181218&quot;
+       }
+    }
+]
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Purge_Command"></a>Purge Command</h4>
+<p>Oozie admin purge command cleans up the Oozie Workflow/Coordinator/Bundle 
records based on the parameters. The unit for parameters is day.</p>
+<p>Purge command will delete the workflow records (wf=30) older than 30 days, 
coordinator records (coord=7) older than 7 days and bundle records (bundle=7) 
older than 7 days. The limit (limit=10) defines, number of records to be fetch 
at a time. Turn (oldCoordAction<tt>true/false)</tt>on/off= coordinator action 
record purging for long running coordinators. If any of the parameter is not 
provided, then it will be taken from the <tt>oozie-default/oozie-site</tt> 
configuration.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET 
/oozie/v2/admin/purge?wf=30&amp;coord=7&amp;bundle=7&amp;limit=10&amp;oldCoordAction=true
+
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">{
+  &quot;purge&quot;: &quot;Purge command executed successfully&quot;
+}
+
+</pre></div></div>
+</div></div>
+<div class="section">
+<h3><a name="Job_and_Jobs_End-Points"></a>Job and Jobs End-Points</h3>
+<p><i>Modified in Oozie v1 WS API</i></p>
+<p>These endpoints are for submitting, managing and retrieving information of 
workflow, coordinator, and bundle jobs.</p>
+<div class="section">
+<h4><a name="Job_Submission"></a>Job Submission</h4></div>
+<div class="section">
+<h4><a name="Standard_Job_Submission"></a>Standard Job Submission</h4>
+<p>An HTTP POST request with an XML configuration as payload creates a job.</p>
+<p>The type of job is determined by the presence of one of the following 3 
properties:</p>
+<ul>
+
+<li><tt>oozie.wf.application.path</tt> : path to a workflow application 
directory, creates a workflow job</li>
+<li><tt>oozie.coord.application.path</tt> : path to a coordinator application 
file, creates a coordinator job</li>
+<li><tt>oozie.bundle.application.path</tt> : path to a bundle application 
file, creates a bundle job</li>
+</ul>
+<p>Or, if none of those are present, the jobtype parameter determines the type 
of job to run. It can either be mapreduce or pig.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">POST /oozie/v1/jobs
+Content-Type: application/xml;charset=UTF-8
+.
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;configuration&gt;
+    &lt;property&gt;
+        &lt;name&gt;user.name&lt;/name&gt;
+        &lt;value&gt;bansalm&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.wf.application.path&lt;/name&gt;
+        &lt;value&gt;hdfs://foo:8020/user/bansalm/myapp/&lt;/value&gt;
+    &lt;/property&gt;
+    ...
+&lt;/configuration&gt;
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 201 CREATED
+Content-Type: application/json;charset=UTF-8
+.
+{
+  id: &quot;job-3&quot;
+}
+</pre></div></div>
+
+<p>A created job will be in <tt>PREP</tt> status. If the query string 
parameter &#x2018;action=start&#x2019; is provided in the POST URL, the job 
will be started immediately and its status will be <tt>RUNNING</tt>.</p>
+<p>Coordinator jobs with start time in the future they will not create any 
action until the start time happens.</p>
+<p>A coordinator job will remain in <tt>PREP</tt> status until it&#x2019;s 
triggered, in which case it will change to <tt>RUNNING</tt> status. The 
&#x2018;action=start&#x2019; parameter is not valid for coordinator 
jobs.</p></div>
+<div class="section">
+<h4><a name="Proxy_MapReduce_Job_Submission"></a>Proxy MapReduce Job 
Submission</h4>
+<p>You can submit a Workflow that contains a single MapReduce action without 
writing a workflow.xml. Any required Jars or other files must already exist in 
HDFS.</p>
+<p>The following properties are required; any additional parameters needed by 
the MapReduce job can also be specified here:</p>
+<ul>
+
+<li><tt>fs.default.name</tt>: The NameNode</li>
+<li><tt>mapred.job.tracker</tt>: The JobTracker</li>
+<li><tt>mapred.mapper.class</tt>: The map-task classname</li>
+<li><tt>mapred.reducer.class</tt>: The reducer-task classname</li>
+<li><tt>mapred.input.dir</tt>: The map-task input directory</li>
+<li><tt>mapred.output.dir</tt>: The reduce-task output directory</li>
+<li><tt>user.name</tt>: The username of the user submitting the job</li>
+<li><tt>oozie.libpath</tt>: A directory in HDFS that contains necessary Jars 
for your job</li>
+<li><tt>oozie.proxysubmission</tt>: Must be set to <tt>true</tt></li>
+</ul>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">POST /oozie/v1/jobs?jobtype=mapreduce
+Content-Type: application/xml;charset=UTF-8
+.
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;configuration&gt;
+    &lt;property&gt;
+        &lt;name&gt;fs.default.name&lt;/name&gt;
+        &lt;value&gt;hdfs://localhost:8020&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;mapred.job.tracker&lt;/name&gt;
+        &lt;value&gt;localhost:8021&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;mapred.mapper.class&lt;/name&gt;
+        &lt;value&gt;org.apache.oozie.example.SampleMapper&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;mapred.reducer.class&lt;/name&gt;
+        &lt;value&gt;org.apache.oozie.example.SampleReducer&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;mapred.input.dir&lt;/name&gt;
+        
&lt;value&gt;hdfs://localhost:8020/user/rkanter/examples/input-data/text&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;mapred.output.dir&lt;/name&gt;
+        
&lt;value&gt;hdfs://localhost:8020/user/rkanter/examples/output-data/map-reduce&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;user.name&lt;/name&gt;
+        &lt;value&gt;rkanter&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.libpath&lt;/name&gt;
+        
&lt;value&gt;hdfs://localhost:8020/user/rkanter/examples/apps/map-reduce/lib&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.proxysubmission&lt;/name&gt;
+        &lt;value&gt;true&lt;/value&gt;
+    &lt;/property&gt;
+&lt;/configuration&gt;
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 201 CREATED
+Content-Type: application/json;charset=UTF-8
+.
+{
+  id: &quot;job-3&quot;
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Proxy_Pig_Job_Submission"></a>Proxy Pig Job Submission</h4>
+<p>You can submit a Workflow that contains a single Pig action without writing 
a workflow.xml.  Any required Jars or other files must already exist in 
HDFS.</p>
+<p>The following properties are required:</p>
+<ul>
+
+<li><tt>fs.default.name</tt>: The NameNode</li>
+<li><tt>mapred.job.tracker</tt>: The JobTracker</li>
+<li><tt>user.name</tt>: The username of the user submitting the job</li>
+<li><tt>oozie.pig.script</tt>: Contains the pig script you want to run (the 
actual script, not a file path)</li>
+<li><tt>oozie.libpath</tt>: A directory in HDFS that contains necessary Jars 
for your job</li>
+<li><tt>oozie.proxysubmission</tt>: Must be set to <tt>true</tt></li>
+</ul>
+<p>The following properties are optional:</p>
+<ul>
+
+<li><tt>oozie.pig.script.params.size</tt>: The number of parameters 
you&#x2019;ll be passing to Pig required</li>
+<li><tt>oozie.pig.script.params.n</tt>: A parameter (variable definition for 
the script) in &#x2018;key=value&#x2019; format, the &#x2018;n&#x2019; should 
be an integer starting with 0 to indicate the parameter number</li>
+<li><tt>oozie.pig.options.size</tt>: The number of options you&#x2019;ll be 
passing to Pig</li>
+<li><tt>oozie.pig.options.n</tt>: An argument to pass to Pig, the 
&#x2018;n&#x2019; should be an integer starting with 0 to indicate the option 
number</li>
+</ul>
+<p>The <tt>oozie.pig.options.n</tt> parameters are sent directly to Pig 
without any modification unless they start with <tt>-D</tt>, in which case they 
are put into the <tt>&lt;configuration&gt;</tt> element of the action.</p>
+<p>In addition to passing parameters to Pig with 
<tt>oozie.pig.script.params.n</tt>, you can also create a properties file on 
HDFS and reference it with the <tt>-param_file</tt> option in 
<tt>oozie.pig.script.options.n</tt>; both are shown in the following 
example.</p>
+
+<div>
+<div>
+<pre class="source">$ hadoop fs -cat /user/rkanter/pig_params.properties
+INPUT=/user/rkanter/examples/input-data/text
+</pre></div></div>
+
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">POST /oozie/v1/jobs?jobtype=pig
+Content-Type: application/xml;charset=UTF-8
+.
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;configuration&gt;
+    &lt;property&gt;
+        &lt;name&gt;fs.default.name&lt;/name&gt;
+        &lt;value&gt;hdfs://localhost:8020&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;mapred.job.tracker&lt;/name&gt;
+        &lt;value&gt;localhost:8021&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;user.name&lt;/name&gt;
+        &lt;value&gt;rkanter&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.pig.script&lt;/name&gt;
+        &lt;value&gt;
+            A = load '$INPUT' using PigStorage(':');
+            B = foreach A generate $0 as id;
+            store B into '$OUTPUT' USING PigStorage();
+        &lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.pig.script.params.size&lt;/name&gt;
+        &lt;value&gt;1&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.pig.script.params.0&lt;/name&gt;
+        
&lt;value&gt;OUTPUT=/user/rkanter/examples/output-data/pig&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.pig.options.size&lt;/name&gt;
+        &lt;value&gt;2&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.pig.options.0&lt;/name&gt;
+        &lt;value&gt;-param_file&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.pig.options.1&lt;/name&gt;
+        
&lt;value&gt;hdfs://localhost:8020/user/rkanter/pig_params.properties&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.libpath&lt;/name&gt;
+        
&lt;value&gt;hdfs://localhost:8020/user/rkanter/share/lib/pig&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.proxysubmission&lt;/name&gt;
+        &lt;value&gt;true&lt;/value&gt;
+    &lt;/property&gt;
+&lt;/configuration&gt;
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 201 CREATED
+Content-Type: application/json;charset=UTF-8
+.
+{
+  id: &quot;job-3&quot;
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Proxy_Hive_Job_Submission"></a>Proxy Hive Job Submission</h4>
+<p>You can submit a Workflow that contains a single Hive action without 
writing a workflow.xml.  Any required Jars or other files must already exist in 
HDFS.</p>
+<p>The following properties are required:</p>
+<ul>
+
+<li><tt>fs.default.name</tt>: The NameNode</li>
+<li><tt>mapred.job.tracker</tt>: The JobTracker</li>
+<li><tt>user.name</tt>: The username of the user submitting the job</li>
+<li><tt>oozie.hive.script</tt>: Contains the hive script you want to run (the 
actual script, not a file path)</li>
+<li><tt>oozie.libpath</tt>: A directory in HDFS that contains necessary Jars 
for your job</li>
+<li><tt>oozie.proxysubmission</tt>: Must be set to <tt>true</tt></li>
+</ul>
+<p>The following properties are optional:</p>
+<ul>
+
+<li><tt>oozie.hive.script.params.size</tt>: The number of parameters 
you&#x2019;ll be passing to Hive</li>
+<li><tt>oozie.hive.script.params.n</tt>: A parameter (variable definition for 
the script) in &#x2018;key=value&#x2019; format, the &#x2018;n&#x2019; should 
be an integer starting with 0 to indicate the parameter number</li>
+<li><tt>oozie.hive.options.size</tt>: The number of options you&#x2019;ll be 
passing to Hive</li>
+<li><tt>oozie.hive.options.n</tt>: An argument to pass to Hive, the 
&#x2018;n&#x2019; should be an integer starting with 0 to indicate the option 
number</li>
+</ul>
+<p>The <tt>oozie.hive.options.n</tt> parameters are sent directly to Hive 
without any modification unless they start with <tt>-D</tt>, in which case they 
are put into the <tt>&lt;configuration&gt;</tt> element of the action.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">POST /oozie/v1/jobs?jobtype=hive
+Content-Type: application/xml;charset=UTF-8
+.
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;configuration&gt;
+    &lt;property&gt;
+        &lt;name&gt;fs.default.name&lt;/name&gt;
+        &lt;value&gt;hdfs://localhost:8020&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;mapred.job.tracker&lt;/name&gt;
+        &lt;value&gt;localhost:8021&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;user.name&lt;/name&gt;
+        &lt;value&gt;rkanter&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.hive.script&lt;/name&gt;
+        &lt;value&gt;
+            CREATE EXTERNAL TABLE test (a INT) STORED AS TEXTFILE LOCATION 
'${INPUT}';
+            INSERT OVERWRITE DIRECTORY '${OUTPUT}' SELECT * FROM test;
+        &lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.hive.script.params.size&lt;/name&gt;
+        &lt;value&gt;2&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.hive.script.params.0&lt;/name&gt;
+        
&lt;value&gt;OUTPUT=/user/rkanter/examples/output-data/hive&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.hive.script.params.1&lt;/name&gt;
+        
&lt;value&gt;INPUT=/user/rkanter/examples/input-data/table&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.libpath&lt;/name&gt;
+        
&lt;value&gt;hdfs://localhost:8020/user/rkanter/share/lib/hive&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.proxysubmission&lt;/name&gt;
+        &lt;value&gt;true&lt;/value&gt;
+    &lt;/property&gt;
+&lt;/configuration&gt;
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 201 CREATED
+Content-Type: application/json;charset=UTF-8
+.
+{
+  id: &quot;job-3&quot;
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Proxy_Sqoop_Job_Submission"></a>Proxy Sqoop Job Submission</h4>
+<p>You can submit a Workflow that contains a single Sqoop command without 
writing a workflow.xml. Any required Jars or other files must already exist in 
HDFS.</p>
+<p>The following properties are required:</p>
+<ul>
+
+<li><tt>fs.default.name</tt>: The NameNode</li>
+<li><tt>mapred.job.tracker</tt>: The JobTracker</li>
+<li><tt>user.name</tt>: The username of the user submitting the job</li>
+<li><tt>oozie.sqoop.command</tt>: The sqoop command you want to run where each 
argument occupies one line or separated by &#x201c;\n&#x201d;</li>
+<li><tt>oozie.libpath</tt>: A directory in HDFS that contains necessary Jars 
for your job</li>
+<li><tt>oozie.proxysubmission</tt>: Must be set to <tt>true</tt></li>
+</ul>
+<p>The following properties are optional:</p>
+<ul>
+
+<li><tt>oozie.sqoop.options.size</tt>: The number of options you&#x2019;ll be 
passing to Sqoop Hadoop job</li>
+<li><tt>oozie.sqoop.options.n</tt>: An argument to pass to Sqoop hadoop job 
conf, the &#x2018;n&#x2019; should be an integer starting with 0 to indicate 
the option number</li>
+</ul>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">POST /oozie/v1/jobs?jobtype=sqoop
+Content-Type: application/xml;charset=UTF-8
+.
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;configuration&gt;
+    &lt;property&gt;
+        &lt;name&gt;fs.default.name&lt;/name&gt;
+        &lt;value&gt;hdfs://localhost:8020&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;mapred.job.tracker&lt;/name&gt;
+        &lt;value&gt;localhost:8021&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;user.name&lt;/name&gt;
+        &lt;value&gt;bzhang&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.sqoop.command&lt;/name&gt;
+        &lt;value&gt;
+            import
+            --connect
+            jdbc:mysql://localhost:3306/oozie
+            --username
+            oozie
+            --password
+            oozie
+            --table
+            WF_JOBS
+            --target-dir
+            /user/${wf:user()}/${examplesRoot}/output-data/sqoop
+        &lt;/value&gt;
+    &lt;/property&gt;
+        &lt;name&gt;oozie.libpath&lt;/name&gt;
+        
&lt;value&gt;hdfs://localhost:8020/user/bzhang/share/lib/sqoop&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.proxysubmission&lt;/name&gt;
+        &lt;value&gt;true&lt;/value&gt;
+    &lt;/property&gt;
+&lt;/configuration&gt;
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 201 CREATED
+Content-Type: application/json;charset=UTF-8
+.
+{
+  id: &quot;job-3&quot;
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Embedded_workflow_XML_Job_Submission"></a>Embedded workflow XML 
Job Submission</h4>
+<p>You can submit a workflow XML embedded into the XML configuration. This job 
submission mode makes it possible to submit a job using a single REST API call, 
instead of the separate workflow.xml upload and REST API call of the standard 
job submission mode.</p>
+<p>The following property is required:</p>
+<ul>
+
+<li><tt>oozie.jobs.api.generated.xml</tt>: The workflow XML. Note that the XML 
should be HTML escaped.</li>
+</ul>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">POST /oozie/v1/jobs?action=start
+Content-Type: application/xml;charset=UTF-8
+.
+&lt;configuration&gt;
+  &lt;property&gt;
+    &lt;name&gt;resourceManager&lt;/name&gt;
+    &lt;value&gt;localhost:8032&lt;/value&gt;
+  &lt;/property&gt;
+  &lt;property&gt;
+    &lt;name&gt;nameNode&lt;/name&gt;
+    &lt;value&gt;hdfs://localhost:9000&lt;/value&gt;
+  &lt;/property&gt;
+  &lt;property&gt;
+    &lt;name&gt;queueName&lt;/name&gt;
+    &lt;value&gt;default&lt;/value&gt;
+  &lt;/property&gt;
+  &lt;property&gt;
+    &lt;name&gt;user.name&lt;/name&gt;
+    &lt;value&gt;testuser&lt;/value&gt;
+  &lt;/property&gt;
+  &lt;property&gt;
+    &lt;name&gt;oozie.jobs.api.generated.xml&lt;/name&gt;
+    &lt;value&gt;&amp;lt;workflow-app 
xmlns=&amp;quot;uri:oozie:workflow:1.0&amp;quot; 
name=&amp;quot;shell-wf&amp;quot;&amp;gt;
+    &amp;lt;start to=&amp;quot;shell-node&amp;quot;/&amp;gt;
+    &amp;lt;action name=&amp;quot;shell-node&amp;quot;&amp;gt;
+        &amp;lt;shell 
xmlns=&amp;quot;uri:oozie:shell-action:1.0&amp;quot;&amp;gt;
+            
&amp;lt;resource-manager&amp;gt;${resourceManager}&amp;lt;/resource-manager&amp;gt;
+            &amp;lt;name-node&amp;gt;${nameNode}&amp;lt;/name-node&amp;gt;
+            &amp;lt;configuration&amp;gt;
+                &amp;lt;property&amp;gt;
+                    
&amp;lt;name&amp;gt;mapred.job.queue.name&amp;lt;/name&amp;gt;
+                    &amp;lt;value&amp;gt;${queueName}&amp;lt;/value&amp;gt;
+                &amp;lt;/property&amp;gt;
+            &amp;lt;/configuration&amp;gt;
+            &amp;lt;exec&amp;gt;echo&amp;lt;/exec&amp;gt;
+            &amp;lt;argument&amp;gt;my_output=Hello 
Oozie&amp;lt;/argument&amp;gt;
+            &amp;lt;capture-output/&amp;gt;
+        &amp;lt;/shell&amp;gt;
+        &amp;lt;ok to=&amp;quot;check-output&amp;quot;/&amp;gt;
+        &amp;lt;error to=&amp;quot;fail&amp;quot;/&amp;gt;
+    &amp;lt;/action&amp;gt;
+    &amp;lt;decision name=&amp;quot;check-output&amp;quot;&amp;gt;
+        &amp;lt;switch&amp;gt;
+            &amp;lt;case to=&amp;quot;end&amp;quot;&amp;gt;
+                ${wf:actionData('shell-node')['my_output'] eq 'Hello Oozie'}
+            &amp;lt;/case&amp;gt;
+            &amp;lt;default to=&amp;quot;fail-output&amp;quot;/&amp;gt;
+        &amp;lt;/switch&amp;gt;
+    &amp;lt;/decision&amp;gt;
+    &amp;lt;kill name=&amp;quot;fail&amp;quot;&amp;gt;
+        &amp;lt;message&amp;gt;Shell action failed, error 
message[${wf:errorMessage(wf:lastErrorNode())}]&amp;lt;/message&amp;gt;
+    &amp;lt;/kill&amp;gt;
+    &amp;lt;kill name=&amp;quot;fail-output&amp;quot;&amp;gt;
+        &amp;lt;message&amp;gt;Incorrect output, expected [Hello Oozie] but 
was [${wf:actionData('shell-node')['my_output']}]&amp;lt;/message&amp;gt;
+    &amp;lt;/kill&amp;gt;
+    &amp;lt;end name=&amp;quot;end&amp;quot;/&amp;gt;
+&amp;lt;/workflow-app&amp;gt;
+    &lt;/value&gt;
+  &lt;/property&gt;
+&lt;/configuration&gt;
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 201 CREATED
+Content-Type: application/json;charset=&quot;UTF-8&quot;
+.
+{
+  id: &quot;0000047-181005142721927-oozie-test-W&quot;
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Managing_a_Job"></a>Managing a Job</h4>
+<p>A HTTP PUT request starts, suspends, resumes, kills, update or dryruns a 
job.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">PUT /oozie/v1/job/job-3?action=start
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+</pre></div></div>
+
+<p>Valid values for the &#x2018;action&#x2019; parameter are 
&#x2018;start&#x2019;, &#x2018;suspend&#x2019;, &#x2018;resume&#x2019;, 
&#x2018;kill&#x2019;, &#x2018;dryrun&#x2019;, &#x2018;rerun&#x2019;, and 
&#x2018;change&#x2019;.</p>
+<p>Rerunning and changing a job require additional parameters, and are 
described below:</p>
+<div class="section">
+<h5><a name="Re-Running_a_Workflow_Job"></a>Re-Running a Workflow Job</h5>
+<p>A workflow job in <tt>SUCCEEDED</tt>, <tt>KILLED</tt> or <tt>FAILED</tt> 
status can be partially rerun specifying a list of workflow nodes to skip 
during the rerun. All the nodes in the skip list must have complete its 
execution.</p>
+<p>The rerun job will have the same job ID.</p>
+<p>A rerun request is done with a HTTP PUT request with a <tt>rerun</tt> 
action.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">PUT /oozie/v1/job/job-3?action=rerun
+Content-Type: application/xml;charset=UTF-8
+.
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;configuration&gt;
+    &lt;property&gt;
+        &lt;name&gt;user.name&lt;/name&gt;
+        &lt;value&gt;tucu&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.wf.application.path&lt;/name&gt;
+        &lt;value&gt;hdfs://foo:8020/user/tucu/myapp/&lt;/value&gt;
+    &lt;/property&gt;
+    &lt;property&gt;
+        &lt;name&gt;oozie.wf.rerun.skip.nodes&lt;/name&gt;
+        &lt;value&gt;firstAction,secondAction&lt;/value&gt;
+    &lt;/property&gt;
+    ...
+&lt;/configuration&gt;
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+</pre></div></div>
+</div>
+<div class="section">
+<h5><a name="Re-Running_a_coordinator_job"></a>Re-Running a coordinator 
job</h5>
+<p>A coordinator job in <tt>RUNNING</tt> <tt>SUCCEEDED</tt>, <tt>KILLED</tt> 
or <tt>FAILED</tt> status can be partially rerun by specifying the coordinator 
actions to re-execute.</p>
+<p>A rerun request is done with an HTTP PUT request with a 
<tt>coord-rerun</tt> <tt>action</tt>.</p>
+<p>The <tt>type</tt> of the rerun can be <tt>date</tt> or <tt>action</tt>.</p>
+<p>The <tt>scope</tt> of the rerun depends on the type: * <tt>date</tt>: a 
comma-separated list of date ranges. Each date range element is specified with 
dates separated by <tt>::</tt> * <tt>action</tt>: a comma-separated list of 
action ranges. Each action range is specified with two action numbers separated 
by <tt>-</tt></p>
+<p>The <tt>refresh</tt> parameter can be <tt>true</tt> or <tt>false</tt> to 
specify if the user wants to refresh an action&#x2019;s input and output 
events.</p>
+<p>The <tt>nocleanup</tt> parameter can be <tt>true</tt> or <tt>false</tt> to 
specify is the user wants to cleanup output events for the rerun actions.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">PUT 
/oozie/v1/job/job-3?action=coord-rerun&amp;type=action&amp;scope=1-2&amp;refresh=false&amp;nocleanup=false
+.
+</pre></div></div>
+
+<p>or</p>
+
+<div>
+<div>
+<pre class="source">PUT 
/oozie/v1/job/job-3?action=coord-rerun&amp;type=date2009-02-01T00:10Z::2009-03-01T00:10Z&amp;scope=&amp;refresh=false&amp;nocleanup=false
+.
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+</pre></div></div>
+</div>
+<div class="section">
+<h5><a name="Re-Running_a_bundle_job"></a>Re-Running a bundle job</h5>
+<p>A coordinator job in <tt>RUNNING</tt> <tt>SUCCEEDED</tt>, <tt>KILLED</tt> 
or <tt>FAILED</tt> status can be partially rerun by specifying the coordinators 
to re-execute.</p>
+<p>A rerun request is done with an HTTP PUT request with a 
<tt>bundle-rerun</tt> <tt>action</tt>.</p>
+<p>A comma separated list of coordinator job names (not IDs) can be specified 
in the <tt>coord-scope</tt> parameter.</p>
+<p>The <tt>date-scope</tt> parameter is a comma-separated list of date ranges. 
Each date range element is specified with dates separated by <tt>::</tt>. If 
empty or not included, Oozie will figure this out for you</p>
+<p>The <tt>refresh</tt> parameter can be <tt>true</tt> or <tt>false</tt> to 
specify if the user wants to refresh the coordinator&#x2019;s input and output 
events.</p>
+<p>The <tt>nocleanup</tt> parameter can be <tt>true</tt> or <tt>false</tt> to 
specify is the user wants to cleanup output events for the rerun 
coordinators.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">PUT 
/oozie/v1/job/job-3?action=bundle-rerun&amp;coord-scope=coord-1&amp;refresh=false&amp;nocleanup=false
+.
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+</pre></div></div>
+</div>
+<div class="section">
+<h5><a 
name="Changing_endtimeconcurrencypausetime_of_a_Coordinator_Job"></a>Changing 
endtime/concurrency/pausetime of a Coordinator Job</h5>
+<p>A coordinator job not in <tt>KILLED</tt> status can have it&#x2019;s 
endtime, concurrency, or pausetime changed.</p>
+<p>A change request is done with an HTTP PUT request with a <tt>change</tt> 
<tt>action</tt>.</p>
+<p>The <tt>value</tt> parameter can contain any of the following: * endtime: 
the end time of the coordinator job. * concurrency: the concurrency of the 
coordinator job. * pausetime: the pause time of the coordinator job.</p>
+<p>Multiple arguments can be passed to the <tt>value</tt> parameter by 
separating them with a &#x2018;;&#x2019; character.</p>
+<p>If an already-succeeded job changes its end time, its status will become 
running.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">PUT 
/oozie/v1/job/job-3?action=change&amp;value=endtime=2011-12-01T05:00Z
+.
+</pre></div></div>
+
+<p>or</p>
+
+<div>
+<div>
+<pre class="source">PUT 
/oozie/v1/job/job-3?action=change&amp;value=concurrency=100
+.
+</pre></div></div>
+
+<p>or</p>
+
+<div>
+<div>
+<pre class="source">PUT 
/oozie/v1/job/job-3?action=change&amp;value=pausetime=2011-12-01T05:00Z
+.
+</pre></div></div>
+
+<p>or</p>
+
+<div>
+<div>
+<pre class="source">PUT 
/oozie/v1/job/job-3?action=change&amp;value=endtime=2011-12-01T05:00Z;concurrency=100;pausetime=2011-12-01T05:00Z
+.
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+</pre></div></div>
+</div>
+<div class="section">
+<h5><a name="Updating_coordinator_definition_and_properties"></a>Updating 
coordinator definition and properties</h5>
+<p>Existing coordinator definition and properties will be replaced by new 
definition and properties. Refer <a 
href="DG_CommandLineTool.html#Updating_coordinator_definition_and_properties">Updating
 coordinator definition and properties</a></p>
+
+<div>
+<div>
+<pre class="source">PUT 
oozie/v2/job/0000000-140414102048137-oozie-puru-C?action=update
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+{&quot;update&quot;:
+     {&quot;diff&quot;:&quot;**********Job definition 
changes**********\n******************************************\n**********Job 
conf changes****************\n@@ -8,16 +8,12 @@\n
+          
&lt;value&gt;hdfs:\/\/localhost:9000\/user\/purushah\/examples\/apps\/aggregator\/coordinator.xml&lt;\/value&gt;\r\n
   &lt;\/property&gt;\r\n   &lt;property&gt;\r\n
+          -    &lt;name&gt;user.name&lt;\/name&gt;\r\n
+          -    &lt;value&gt;purushah&lt;\/value&gt;\r\n
+          -    &lt;\/property&gt;\r\n
+          -  &lt;property&gt;\r\n     &lt;name&gt;start&lt;\/name&gt;\r\n
+               &lt;value&gt;2010-01-01T01:00Z&lt;\/value&gt;\r\n   
&lt;\/property&gt;\r\n   &lt;property&gt;\r\n
+          -    &lt;name&gt;newproperty&lt;\/name&gt;\r\n
+          -    &lt;value&gt;new&lt;\/value&gt;\r\n
+          +    &lt;name&gt;user.name&lt;\/name&gt;\r\n
+          +    &lt;value&gt;purushah&lt;\/value&gt;\r\n   
&lt;\/property&gt;\r\n   &lt;property&gt;\r\n
+               
&lt;name&gt;queueName&lt;\/name&gt;\r\n******************************************\n&quot;
+      }
+}
+</pre></div></div>
+</div></div>
+<div class="section">
+<h4><a name="Job_Information"></a>Job Information</h4>
+<p>A HTTP GET request retrieves the job information.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET /oozie/v1/job/job-3?show=info&amp;timezone=GMT
+</pre></div></div>
+
+<p><b>Response for a workflow job:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{
+  id: &quot;0-200905191240-oozie-W&quot;,
+  appName: &quot;indexer-workflow&quot;,
+  appPath: &quot;hdfs://user/bansalm/indexer.wf&quot;,
+  externalId: &quot;0-200905191230-oozie-pepe&quot;,
+  user: &quot;bansalm&quot;,
+  status: &quot;RUNNING&quot;,
+  conf: &quot;&lt;configuration&gt; ... &lt;/configuration&gt;&quot;,
+  createdTime: &quot;Thu, 01 Jan 2009 00:00:00 GMT&quot;,
+  startTime: &quot;Fri, 02 Jan 2009 00:00:00 GMT&quot;,
+  endTime: null,
+  run: 0,
+  actions: [
+    {
+      id: &quot;0-200905191240-oozie-W@indexer&quot;,
+      name: &quot;indexer&quot;,
+      type: &quot;map-reduce&quot;,
+      conf: &quot;&lt;configuration&gt; ...&lt;/configuration&gt;&quot;,
+      startTime: &quot;Thu, 01 Jan 2009 00:00:00 GMT&quot;,
+      endTime: &quot;Fri, 02 Jan 2009 00:00:00 GMT&quot;,
+      status: &quot;OK&quot;,
+      externalId: &quot;job-123-200903101010&quot;,
+      externalStatus: &quot;SUCCEEDED&quot;,
+      trackerUri: &quot;foo:8021&quot;,
+      consoleUrl: &quot;http://foo:50040/jobdetailshistory.jsp?jobId=...&quot;,
+      transition: &quot;reporter&quot;,
+      data: null,
+      errorCode: null,
+      errorMessage: null,
+      retries: 0
+    },
+    ...
+  ]
+}
+</pre></div></div>
+
+<p><b>Response for a coordinator job:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{
+  id: &quot;0-200905191240-oozie-C&quot;,
+  appName: &quot;indexer-Coord&quot;,
+  appPath: &quot;hdfs://user/bansalm/myapp/logprocessor-coord.xml&quot;,
+  externalId: &quot;0-200905191230-oozie-pepe&quot;,
+  user: &quot;bansalm&quot;,
+  status: &quot;RUNNING&quot;,
+  conf: &quot;&lt;configuration&gt; ... &lt;/configuration&gt;&quot;,
+  createdTime: &quot;Thu, 01 Jan 2009 00:00:00 GMT&quot;,
+  startTime: &quot;Fri, 02 Jan 2009 00:00:00 GMT&quot;,
+  endTime: &quot;Fri, 31 Dec 2009 00:00:00 GMT&quot;,
+  frequency: &quot;${days(1)}&quot;
+  actions: [
+    {
+      id: &quot;0000010-130426111815091-oozie-bansalm-C@1&quot;,
+      createdTime: &quot;Fri, 26 Apr 2013 20:57:07 GMT&quot;,
+      externalId: &quot;&quot;,
+      missingDependencies: &quot;&quot;,
+      runConf: null,
+      createdConf: null,
+      consoleUrl: null,
+      nominalTime: &quot;Fri, 01 Jan 2010 01:00:00 GMT&quot;,
+  ...
+}
+</pre></div></div>
+
+<p><b>Response for a bundle job:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{
+  jobType: &quot;bundle&quot;,
+  id: &quot;0-200905191240-oozie-B&quot;,
+  appName: &quot;new-bundle&quot;,
+  appPath: &quot;hdfs://user/bansalm/myapp/logprocessor-bundle.xml&quot;,
+  externalId: &quot;0-200905191230-oozie-pepe&quot;,
+  user: &quot;bansalm&quot;,
+  status: &quot;RUNNING&quot;,
+  conf: &quot;&lt;configuration&gt; ... &lt;/configuration&gt;&quot;,
+  createdTime: &quot;Thu, 01 Jan 2009 00:00:00 GMT&quot;,
+  startTime: &quot;Fri, 02 Jan 2009 00:00:00 GMT&quot;,
+  endTime: &quot;Fri, 31 Dec 2009 00:00:00 GMT&quot;
+  bundleCoordJobs: [
+    {
+      status: &quot;RUNNING&quot;,
+      concurrency: 1,
+      conf: &quot;&lt;configuration&gt; ... &lt;/configuration&gt;&quot;,
+      executionPolicy: &quot;FIFO&quot;,
+      toString: &quot;Coordinator application 
id[0000010-130426111815091-oozie-bansalm-C] status[RUNNING]&quot;,
+      coordJobName: &quot;coord-1&quot;,
+      endTime: &quot;Fri, 01 Jan 2010 03:00:00 GMT&quot;,
+      ...
+    }
+  ...
+}
+</pre></div></div>
+
+<p><b>Getting all the Workflows corresponding to a Coordinator Action:</b></p>
+<p>A coordinator action kicks off different workflows for its original run and 
all subsequent reruns. Getting a list of those workflow ids is a useful tool to 
keep track of your actions&#x2019; runs and to go debug the workflow job logs 
if required. Along with ids, it also lists their statuses, and start and end 
times for quick reference.</p>
+<p>Both v1 and v2 API are supported. v0 is not supported.</p>
+
+<div>
+<div>
+<pre class="source">GET 
/oozie/v2/job/0000001-111219170928042-oozie-joe-C@1?show=allruns
+</pre></div></div>
+
+<p><b>Response</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{&quot;workflows&quot;:[
+    {
+        &quot;startTime&quot;:&quot;Mon, 24 Mar 2014 23:40:53 GMT&quot;,
+        &quot;id&quot;:&quot;0000001-140324163709596-oozie-chit-W&quot;,
+        &quot;status&quot;:&quot;SUCCEEDED&quot;,
+        &quot;endTime&quot;:&quot;Mon, 24 Mar 2014 23:40:54 GMT&quot;
+    },
+    {
+        &quot;startTime&quot;:&quot;Mon, 24 Mar 2014 23:44:01 GMT&quot;,
+        &quot;id&quot;:&quot;0000000-140324164318985-oozie-chit-W&quot;,
+        &quot;status&quot;:&quot;SUCCEEDED&quot;,
+        &quot;endTime&quot;:&quot;Mon, 24 Mar 2014 23:44:01 GMT&quot;
+    },
+    {
+        &quot;startTime&quot;:&quot;Mon, 24 Mar 2014 23:44:24 GMT&quot;,
+        &quot;id&quot;:&quot;0000001-140324164318985-oozie-chit-W&quot;,
+        &quot;status&quot;:&quot;SUCCEEDED&quot;,
+        &quot;endTime&quot;:&quot;Mon, 24 Mar 2014 23:44:24 GMT&quot;
+    }
+]}
+</pre></div></div>
+
+<p>An alternate API is also available for the same output. With this API, one 
can pass the coordinator <b>JOB</b> Id followed by query params - 
<tt>type=action</tt> and <tt>scope=&lt;action-number&gt;</tt>. One single 
action number can be passed at a time.</p>
+
+<div>
+<div>
+<pre class="source">GET 
/oozie/v2/job/0000001-111219170928042-oozie-joe-C?show=allruns&amp;type=action&amp;scope=1
+</pre></div></div>
+
+<p><b>Retrieve a subset of actions</b></p>
+<p>Query parameters, <tt>offset</tt> and <tt>length</tt> can be specified with 
a workflow job to retrieve specific actions. Default is offset=0, len=1000</p>
+
+<div>
+<div>
+<pre class="source">GET 
/oozie/v1/job/0000002-130507145349661-oozie-joe-W?show=info&amp;offset=5&amp;len=10
+</pre></div></div>
+
+<p>Query parameters, <tt>offset</tt>, <tt>length</tt>, <tt>filter</tt> can be 
specified with a coordinator job to retrieve specific actions. Query parameter, 
<tt>order</tt> with value &#x201c;desc&#x201d; can be used to retrieve the 
latest coordinator actions materialized instead of actions from @1. Query 
parameters <tt>filter</tt> can be used to retrieve coordinator actions matching 
specific status. Default is offset=0, len=0 for v2/job (i.e., does not return 
any coordinator actions) and offset=0, len=1000 with v1/job and v0/job. So if 
you need actions to be returned with v2 API, specifying <tt>len</tt> parameter 
is necessary. Default <tt>order</tt> is &#x201c;asc&#x201d;.</p>
+
+<div>
+<div>
+<pre class="source">GET 
/oozie/v1/job/0000001-111219170928042-oozie-joe-C?show=info&amp;offset=5&amp;len=10&amp;filter=status%3DKILLED&amp;order=desc
+</pre></div></div>
+
+<p>Note that the filter is URL encoded, its decoded value is 
<tt>status=KILLED</tt>.</p>
+
+<div>
+<div>
+<pre class="source">GET 
/oozie/v1/job/0000001-111219170928042-oozie-joe-C?show=info&amp;filter=status%21%3DSUCCEEDED&amp;order=desc
+</pre></div></div>
+
+<p>This retrieves coordinator actions except for SUCCEEDED status, which is 
useful for debugging.</p>
+<p><b>Retrieve information of the retry attempts of the workflow 
action:</b></p>
+
+<div>
+<div>
+<pre class="source">GET 
oozie/v2/job/0000000-161212175234862-oozie-puru-W@pig-node?show=retries
+</pre></div></div>
+
+<p><b>Response</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{
+     &quot;retries&quot;:
+     [
+         {
+             &quot;startTime&quot;: &quot;Tue, 13 Dec 2016 01:54:13 GMT&quot;,
+             &quot;consoleUrl&quot;: 
&quot;http://localhost:50030/jobdetails.jsp?jobid=job_201612051339_2648&quot;,
+             &quot;endTime&quot;: &quot;Tue, 13 Dec 2016 01:54:20 GMT&quot;,
+             &quot;attempt&quot;: &quot;1&quot;
+         },
+         {
+             &quot;startTime&quot;: &quot;Tue, 13 Dec 2016 01:55:20 GMT&quot;,
+             &quot;consoleUrl&quot;: 
&quot;http://localhost:50030/jobdetails.jsp?jobid=job_201612051339_2649&quot;,
+             &quot;endTime&quot;: &quot;Tue, 13 Dec 2016 01:55:24 GMT&quot;,
+             &quot;attempt&quot;: &quot;2&quot;
+         }
+    ]
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Job_Application_Definition"></a>Job Application Definition</h4>
+<p>A HTTP GET request retrieves the workflow or a coordinator job definition 
file.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET /oozie/v1/job/job-3?show=definition
+</pre></div></div>
+
+<p><b>Response for a workflow job:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/xml;charset=UTF-8
+.
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;workflow-app name='xyz-app' xmlns=&quot;uri:oozie:workflow:0.1&quot;&gt;
+    &lt;start to='firstaction' /&gt;
+    ...
+    &lt;end name='end' /&gt;
+&lt;/workflow-app&gt;
+</pre></div></div>
+
+<p><b>Response for a coordinator job:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/xml;charset=UTF-8
+.
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;coordinator-app name='abc-app' xmlns=&quot;uri:oozie:coordinator:0.1&quot; 
frequency=&quot;${days(1)}
+                 start=&quot;2009-01-01T00:00Z&quot; 
end=&quot;2009-12-31T00:00Z&quot; timezone=&quot;America/Los_Angeles&quot;&gt;
+    &lt;datasets&gt;
+    ...
+    &lt;/datasets&gt;
+    ...
+&lt;/coordinator-app&gt;
+</pre></div></div>
+
+<p><b>Response for a bundle job:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/xml;charset=UTF-8
+.
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;bundle-app name='abc-app' xmlns=&quot;uri:oozie:coordinator:0.1&quot;
+                 start=&quot;2009-01-01T00:00Z&quot; 
end=&quot;2009-12-31T00:00Z&quot;&quot;&gt;
+    &lt;datasets&gt;
+    ...
+    &lt;/datasets&gt;
+    ...
+&lt;/bundle-app&gt;
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Job_Log"></a>Job Log</h4>
+<p>An HTTP GET request retrieves the job log.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET /oozie/v1/job/job-3?show=log
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: text/plain;charset=UTF-8
+.
+...
+23:21:31,272 TRACE oozieapp:526 - USER[bansalm] GROUP[other] TOKEN[-] 
APP[test-wf] JOB[0-20090518232130-oozie-tucu] ACTION[mr-1] Start
+23:21:31,305 TRACE oozieapp:526 - USER[bansalm] GROUP[other] TOKEN[-] 
APP[test-wf] JOB[0-20090518232130-oozie-tucu] ACTION[mr-1] End
+...
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Job_Error_Log"></a>Job Error Log</h4>
+<p>An HTTP GET request retrieves the job error log.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET 
/oozie/v2/job/0000000-150121110331712-oozie-puru-B?show=errorlog
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: text/plain;charset=UTF-8
+2015-01-21 11:33:29,090  WARN CoordSubmitXCommand:523 - SERVER[-] USER[-] 
GROUP[-] TOKEN[-] APP[-] JOB[0000000-150121110331712-oozie-puru-B] ACTION[] 
SAXException :
+org.xml.sax.SAXParseException; lineNumber: 20; columnNumber: 22; 
cvc-complex-type.2.4.a: Invalid content was found starting with element 
'concurrency'. One of '{&quot;uri:oozie:coordinator:0.2&quot;:controls, 
&quot;uri:oozie:coordinator:0.2&quot;:datasets, 
&quot;uri:oozie:coordinator:0.2&quot;:input-events, 
&quot;uri:oozie:coordinator:0.2&quot;:output-events, 
&quot;uri:oozie:coordinator:0.2&quot;:action}' is expected.
+        at 
org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown 
Source)
+        at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
+...
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Job_Audit_Log"></a>Job Audit Log</h4>
+<p>An HTTP GET request retrieves the job audit log.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET 
/oozie/v2/job/0000000-150322000230582-oozie-puru-C?show=auditlog
+</pre></div></div>
+
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: text/plain;charset=UTF-8
+2015-03-22 00:04:35,494  INFO oozieaudit:520 - IP [-], USER [purushah], GROUP 
[null], APP [-], JOBID [0000000-150322000230582-oozie-puru-C], OPERATION 
[start], PARAMETER [null], STATUS [SUCCESS], HTTPCODE [200], ERRORCODE [null], 
ERRORMESSAGE [null]
+2015-03-22 00:05:13,823  INFO oozieaudit:520 - IP [-], USER [purushah], GROUP 
[null], APP [-], JOBID [0000000-150322000230582-oozie-puru-C], OPERATION 
[suspend], PARAMETER [0000000-150322000230582-oozie-puru-C], STATUS [SUCCESS], 
HTTPCODE [200], ERRORCODE [null], ERRORMESSAGE [null]
+2015-03-22 00:06:59,561  INFO oozieaudit:520 - IP [-], USER [purushah], GROUP 
[null], APP [-], JOBID [0000000-150322000230582-oozie-puru-C], OPERATION 
[suspend], PARAMETER [0000000-150322000230582-oozie-puru-C], STATUS [SUCCESS], 
HTTPCODE [200], ERRORCODE [null], ERRORMESSAGE [null]
+2015-03-22 23:22:20,012  INFO oozieaudit:520 - IP [-], USER [purushah], GROUP 
[null], APP [-], JOBID [0000000-150322000230582-oozie-puru-C], OPERATION 
[suspend], PARAMETER [0000000-150322000230582-oozie-puru-C], STATUS [SUCCESS], 
HTTPCODE [200], ERRORCODE [null], ERRORMESSAGE [null]
+2015-03-22 23:28:48,218  INFO oozieaudit:520 - IP [-], USER [purushah], GROUP 
[null], APP [-], JOBID [0000000-150322000230582-oozie-puru-C], OPERATION 
[resume], PARAMETER [0000000-150322000230582-oozie-puru-C], STATUS [SUCCESS], 
HTTPCODE [200], ERRORCODE [null], ERRORMESSAGE [null]
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Filtering_the_server_logs_with_logfilter_options"></a>Filtering 
the server logs with logfilter options</h4>
+<p>User can provide multiple option to filter logs using -logfilter 
opt1=val1;opt2=val1;opt3=val1. This can be used to fetch only just logs of 
interest faster as fetching Oozie server logs is slow due to the overhead of 
pattern matching.</p>
+
+<div>
+<div>
+<pre class="source">GET 
/oozie/v1/job/0000003-140319184715726-oozie-puru-C?show=log&amp;logfilter=limit=3;loglevel=WARN
+</pre></div></div>
+
+<p>Refer to the <a 
href="DG_CommandLineTool.html#Filtering_the_server_logs_with_logfilter_options">Filtering
 the server logs with logfilter options</a> for more details.</p></div>
+<div class="section">
+<h4><a name="Job_graph"></a>Job graph</h4>
+<p>An <tt>HTTP GET</tt> request returns the image of the workflow DAG 
(rendered as a PNG or SVG image, or as a DOT string).</p>
+<ul>
+
+<li>The nodes that are being executed are painted yellow</li>
+<li>The nodes that have successfully executed are painted green</li>
+<li>The nodes that have failed execution are painted red</li>
+<li>The nodes that are yet to be executed are pained gray</li>
+<li>An arc painted green marks the successful path taken so far</li>
+<li>An arc painted red marks the failure of the node and highlights the 
<i>error</i> action</li>
+<li>An arc painted gray marks a path not taken yet</li>
+</ul>
+<p><b>PNG request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET 
/oozie/v1/job/job-3?show=graph[&amp;show-kill=true][&amp;format=png]
+</pre></div></div>
+
+<p><b>PNG response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: image/png
+Content-Length: {image_size_in_bytes}
+
+{image_bits}
+</pre></div></div>
+
+<p><b>SVG request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET 
/oozie/v1/job/job-3?show=graph[&amp;show-kill=true]&amp;format=svg
+</pre></div></div>
+
+<p><b>SVG response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: image/svg+xml
+Content-Length: {image_size_in_bytes}
+
+{image_bits}
+</pre></div></div>
+
+<p><b>DOT request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET 
/oozie/v1/job/job-3?show=graph[&amp;show-kill=true]&amp;format=dot
+</pre></div></div>
+
+<p><b>DOT response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: text/plain
+Content-Length: {dot_size_in_bytes}
+
+{dot_bytes}
+</pre></div></div>
+
+<p>The optional <tt>show-kill</tt> parameter shows <tt>kill</tt> node in the 
graph. Valid values for this parameter are <tt>1</tt>, <tt>yes</tt>, and 
<tt>true</tt>. This parameter has no effect when workflow fails and the failure 
node leads to the <tt>kill</tt> node; in  that case <tt>kill</tt> node is shown 
always.</p>
+<p>The optional <tt>format</tt> parameter describes whether the response has 
to be rendered as a PNG image, or an SVG image, or a DOT string. When omitted, 
<tt>format</tt> is considered as <tt>png</tt> for backwards compatibility. 
Oozie Web UI uses the <tt>svg</tt> <tt>format</tt>.</p>
+<p>The node labels are the node names provided in the workflow XML.</p>
+<p>This API returns <tt>HTTP 400</tt> when run on a resource other than a 
workflow, viz. bundle and coordinator.</p>
+<p>Note that when running on JDK8 the supported minimum minor version for this 
feature is <tt>1.8.0_u40</tt>.</p></div>
+<div class="section">
+<h4><a name="Job_Status"></a>Job Status</h4>
+<p>An <tt>HTTP GET</tt> request that returns the current status (e.g. 
<tt>SUCCEEDED</tt>, <tt>KILLED</tt>, etc) of a given job.  If you are only 
interested in the status, and don&#x2019;t want the rest of the information 
that the <tt>info</tt> query provides, it is recommended to use this call as it 
is more efficient.</p>
+<p><b>Request</b></p>
+
+<div>
+<div>
+<pre class="source">GET 
/oozie/v2/job/0000000-140908152307821-oozie-rkan-C?show=status
+</pre></div></div>
+
+<p><b>Response</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{
+  &quot;status&quot; : &quot;SUCCEEDED&quot;
+}
+</pre></div></div>
+
+<p>It accepts any valid Workflow Job ID, Coordinator Job ID, Coordinator 
Action ID, or Bundle Job ID.</p></div>
+<div class="section">
+<h4><a name="Changing_job_SLA_definition_and_alerting"></a>Changing job SLA 
definition and alerting</h4>
+<p>An <tt>HTTP PUT</tt> request to change job SLA alert status/SLA 
definition.</p>
+<ul>
+
+<li>All sla commands takes actions-list or date parameter.</li>
+<li><tt>date</tt>: a comma-separated list of date ranges. Each date range 
element is specified with dates separated by <tt>::</tt></li>
+<li><tt>action-list</tt>: a comma-separated list of action ranges. Each action 
range is specified with two action numbers separated by <tt>-</tt></li>
+<li>For bundle jobs additional <tt>coordinators</tt> (coord_name/id) parameter 
can be passed.</li>
+<li>Sla change command need extra parameter <tt>value</tt> to specify new sla 
definition.</li>
+<li>Changing SLA definition</li>
+</ul>
+<p>SLA definition of should-start, should-end, nominal-time and max-duration 
can be changed.</p>
+
+<div>
+<div>
+<pre class="source">PUT 
/oozie/v2/job/0000003-140319184715726-oozie-puru-C?action=sla-change&amp;value=&lt;key&gt;=&lt;value&gt;;...;&lt;key&gt;=&lt;value&gt;
+</pre></div></div>
+
+<ul>
+
+<li>Disabling SLA alert</li>
+</ul>
+
+<div>
+<div>
+<pre class="source">PUT 
/oozie/v2/job/0000003-140319184715726-oozie-puru-C?action=sla-disable&amp;action-list=3-4
+</pre></div></div>
+
+<p>Will disable SLA alert for actions 3 and 4.</p>
+
+<div>
+<div>
+<pre class="source">PUT 
/oozie/v1/job/0000003-140319184715726-oozie-puru-C?action=sla-disable&amp;date=2009-02-01T00:10Z::2009-03-01T00:10Z
+</pre></div></div>
+
+<p>Will disable SLA alert for actions whose nominal time is in-between 
2009-02-01T00:10Z 2009-03-01T00:10Z (inclusive).</p>
+
+<div>
+<div>
+<pre class="source">PUT 
/oozie/v1/job/0000004-140319184715726-oozie-puru-B?action=sla-disable&amp;date=2009-02-01T00:10Z::2009-03-01T00:10Z&amp;coordinators=abc
+</pre></div></div>
+
+<p>For bundle jobs additional coordinators (list of comma separated 
coord_name/id) parameter can be passed.</p>
+<ul>
+
+<li>Enabling SLA alert</li>
+</ul>
+
+<div>
+<div>
+<pre class="source">PUT 
/oozie/v2/job/0000003-140319184715726-oozie-puru-C?action=sla-enable&amp;action-list=1,14,17-20
+</pre></div></div>
+
+<p>Will enable SLA alert for actions 1,14,17,18,19,20.</p></div></div>
+<div class="section">
+<h3><a name="Getting_missing_dependencies_of_coordinator_actions"></a>Getting 
missing dependencies of coordinator action(s)</h3>
+
+<div>
+<div>
+<pre class="source">GET 
oozie/v2/job/0000000-170104115137443-oozie-puru-C?show=missing-dependencies&amp;action-list=1,20
+</pre></div></div>
+
+<p><b>Response</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+
+{
+&quot;missingDependencies&quot;:
+[{
+        &quot;blockedOn&quot;: 
&quot;hdfs://localhost:9000/user/purushah/examples/input-data/rawLogs/2010/01/01/00/00/_SUCCESS&quot;,
+        &quot;dataSets&quot;:
+        [
+            {
+                &quot;missingDependencies&quot;:
+                [
+                    
&quot;hdfs://localhost:9000/user/purushah/examples/input-data/rawLogs/2010/01/01/00/00/_SUCCESS&quot;
+                ],
+                &quot;dataSet&quot;: &quot;input-2&quot;
+            }
+        ],
+        &quot;id&quot;: 1
+    },
+    {
+        &quot;blockedOn&quot;: 
&quot;hdfs://localhost:9000/user/purushah/examples/input-data/rawLogs/2010/01/01/20/00/_SUCCESS&quot;,
+        &quot;dataSets&quot;:
+        [
+            {
+                &quot;missingDependencies&quot;:
+                [
+                    
&quot;hdfs://localhost:9000/user/purushah/examples/input-data/rawLogs/2010/01/01/20/00/_SUCCESS&quot;,
+                    
&quot;hdfs://localhost:9000/user/purushah/examples/input-data/rawLogs/2010/01/01/19/40/_SUCCESS&quot;,
+                    
&quot;hdfs://localhost:9000/user/purushah/examples/input-data/rawLogs/2010/01/01/19/20/_SUCCESS&quot;,
+                    
&quot;hdfs://localhost:9000/user/purushah/examples/input-data/rawLogs/2010/01/01/19/00/_SUCCESS&quot;,
+                    
&quot;hdfs://localhost:9000/user/purushah/examples/input-data/rawLogs/2010/01/01/18/40/_SUCCESS&quot;,
+                    
&quot;hdfs://localhost:9000/user/purushah/examples/input-data/rawLogs/2010/01/01/18/20/_SUCCESS&quot;
+                ],
+                &quot;dataSet&quot;: &quot;input-2&quot;
+            }
+        ],
+        &quot;id&quot;: 20
+    }]
+}
+</pre></div></div>
+
+<div class="section">
+<h4><a name="Jobs_Information"></a>Jobs Information</h4>
+<p>A HTTP GET request retrieves workflow and coordinator jobs information.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET 
/oozie/v1/jobs?filter=user%3Dbansalm&amp;offset=1&amp;len=50&amp;timezone=GMT
+</pre></div></div>
+
+<p>Note that the filter is URL encoded, its decoded value is 
<tt>user=bansalm</tt>.</p>
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{
+  offset: 1,
+  len: 50,
+  total: 1002,
+**jobs: [
+    {
+**    jobType: &quot;workflow&quot;
+      id: &quot;0-200905191240-oozie-W&quot;,
+      appName: &quot;indexer-workflow&quot;,
+      appPath: &quot;hdfs://user/tucu/indexer-wf&quot;,
+      user: &quot;bansalm&quot;,
+      group: &quot;other&quot;,
+      status: &quot;RUNNING&quot;,
+      createdTime: &quot;Thu, 01 Jan 2009 00:00:00 GMT&quot;,
+      startTime: &quot;Fri, 02 Jan 2009 00:00:00 GMT&quot;,
+      endTime: null,
+      info: &quot;run=0&quot;,
+    },
+    {
+**    jobType: &quot;coordinator&quot;
+      id: &quot;0-200905191240-oozie-C&quot;,
+      appName: &quot;logprocessor-coord&quot;,
+      appPath: &quot;hdfs://user/bansalm/myapp/logprocessor-coord.xml&quot;,
+      user: &quot;bansalm&quot;,
+      group: &quot;other&quot;,
+      status: &quot;RUNNING&quot;,
+      createdTime: &quot;Thu, 01 Jan 2009 00:00:00 GMT&quot;,
+      startTime: &quot;Fri, 02 Jan 2009 00:00:00 GMT&quot;,
+      endTime: &quot;Fri, 31 Dec 2009 00:00:00 GMT&quot;,
+      info: &quot;nextAction=5&quot;,
+    },
+    {
+**    jobType: &quot;bundle&quot;
+      id: &quot;0-200905191240-oozie-B&quot;,
+      appName: &quot;logprocessor-bundle&quot;,
+      appPath: &quot;hdfs://user/bansalm/myapp/logprocessor-bundle.xml&quot;,
+      user: &quot;bansalm&quot;,
+      group: &quot;other&quot;,
+      status: &quot;RUNNING&quot;,
+      createdTime: &quot;Thu, 01 Jan 2009 00:00:00 GMT&quot;,
+      startTime: &quot;Fri, 02 Jan 2009 00:00:00 GMT&quot;,
+      endTime: &quot;Fri, 31 Dec 2009 00:00:00 GMT&quot;,
+    },
+    ...
+  ]
+}
+</pre></div></div>
+
+<p>No action information is returned when querying for multiple jobs.</p>
+<p>The syntax for the filter is  <tt>[NAME=VALUE][;NAME=VALUE]*</tt></p>
+<p>Valid filter names are:</p>
+<ul>
+
+<li>text: any text that might be a part of application name or a part of user 
name or a complete job ID</li>
+<li>name: the application name from the workflow/coordinator/bundle 
definition</li>
+<li>user: the user who submitted the job</li>
+<li>group: the group for the job (support for the group filter is 
discontinued. version: 3.2.0 OOZIE-228).</li>
+<li>id: the id of the workflow/coordinator/bundle job</li>
+<li>status: the status of the job</li>
+<li>startCreatedTime : the start of the window about workflow job&#x2019;s 
created time</li>
+<li>endCreatedTime : the end of above window</li>
+<li>sortby: order the results. Supported values for <tt>sortby</tt> are: 
<tt>createdTime</tt> and <tt>lastModifiedTime</tt></li>
+</ul>
+<p>The query will do an AND among all the filter names.</p>
+<p>The query will do an OR among all the filter values for the same name. 
Multiple values must be specified as different name value pairs.</p>
+<p>Additionally the <tt>offset</tt> and <tt>len</tt> parameters can be used 
for pagination. The start parameter is base 1.</p>
+<p>Moreover, the <tt>jobtype</tt> parameter could be used to determine what 
type of job is looking for. The valid values of job type are: <tt>wf</tt>, 
<tt>coordinator</tt> or <tt>bundle</tt>.</p>
+<p>startCreatedTime and endCreatedTime should be specified either in 
<b>ISO8601 (UTC)</b> format 
<b>(yyyy-MM-dd&#x2019;T&#x2019;HH:mm&#x2019;Z&#x2019;)</b> or a offset value in 
days or hours or minutes from the current time. For example, -2d means the 
(current time - 2 days), -3h means the (current time - 3 hours), -5m means the 
(current time - 5 minutes).</p></div>
+<div class="section">
+<h4><a name="Bulk_modify_jobs"></a>Bulk modify jobs</h4>
+<p>A HTTP PUT request can kill, suspend, or resume all jobs that satisfy the 
url encoded parameters.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">PUT 
/oozie/v1/jobs?action=kill&amp;filter=name%3Dcron-coord&amp;offset=1&amp;len=50&amp;jobtype=coordinator
+</pre></div></div>
+
+<p>This request will kill all the coordinators with name=cron-coord up to 50 
of them.</p>
+<p>Note that the filter is URL encoded, its decoded value is 
<tt>name=cron-coord</tt>.</p>
+<p>The syntax for the filter is  <tt>[NAME=VALUE][;NAME=VALUE]*</tt></p>
+<p>Valid filter names are:</p>
+<ul>
+
+<li>name: the application name from the workflow/coordinator/bundle 
definition</li>
+<li>user: the user that submitted the job</li>
+<li>group: the group for the job</li>
+<li>status: the status of the job</li>
+</ul>
+<p>The query will do an AND among all the filter names.</p>
+<p>The query will do an OR among all the filter values for the same name. 
Multiple values must be specified as different name value pairs.</p>
+<p>Additionally the <tt>offset</tt> and <tt>len</tt> parameters can be used 
for pagination. The start parameter is base 1.</p>
+<p>Moreover, the <tt>jobtype</tt> parameter could be used to determine what 
type of job is looking for. The valid values of job type are: <tt>wf</tt>, 
<tt>coordinator</tt> or <tt>bundle</tt></p>
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{
+  offset: 1,
+  len: 50,
+  total: 2,
+**jobs: [
+    {
+**    jobType: &quot;coordinator&quot;
+      id: &quot;0-200905191240-oozie-C&quot;,
+      appName: &quot;cron-coord&quot;,
+      appPath: &quot;hdfs://user/bansalm/app/cron-coord.xml&quot;,
+      user: &quot;bansalm&quot;,
+      group: &quot;other&quot;,
+      status: &quot;KILLED&quot;,
+      createdTime: &quot;Thu, 01 Jan 2009 00:00:00 GMT&quot;,
+      startTime: &quot;Fri, 02 Jan 2009 00:00:00 GMT&quot;,
+      endTime: &quot;Fri, 31 Dec 2009 00:00:00 GMT&quot;,
+      info: &quot;nextAction=5&quot;,
+    },
+    {
+**    jobType: &quot;coordinator&quot;
+      id: &quot;0-200905191240-oozie-C&quot;,
+      appName: &quot;cron-coord&quot;,
+      appPath: &quot;hdfs://user/bansalm/myapp/cron-coord.xml&quot;,
+      user: &quot;bansalm&quot;,
+      group: &quot;other&quot;,
+      status: &quot;KILLED&quot;,
+      createdTime: &quot;Thu, 01 Jan 2009 00:00:00 GMT&quot;,
+      startTime: &quot;Fri, 02 Jan 2009 00:00:00 GMT&quot;,
+      endTime: &quot;Fri, 31 Dec 2009 00:00:00 GMT&quot;,
+    },
+    ...
+  ]
+}
+</pre></div></div>
+
+<div>
+<div>
+<pre class="source">PUT 
/oozie/v1/jobs?action=suspend&amp;filter=status%3Drunning&amp;offset=1&amp;len=50&amp;jobtype=wf
+</pre></div></div>
+
+<p>This request will suspend all the workflows with status=running up to 50 of 
them. Note that the filter is URL encoded, its decoded value is 
<tt>status=running</tt>.</p>
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{
+  offset: 1,
+  len: 50,
+  total: 50,
+**jobs: [
+    {
+**    jobType: &quot;workflow&quot;
+      id: &quot;0-200905191240-oozie-W&quot;,
+      appName: &quot;indexer-workflow&quot;,
+      appPath: &quot;hdfs://user/tucu/indexer-wf&quot;,
+      user: &quot;bansalm&quot;,
+      group: &quot;other&quot;,
+      status: &quot;SUSPENDED&quot;,
+      createdTime: &quot;Thu, 01 Jan 2009 00:00:00 GMT&quot;,
+      startTime: &quot;Fri, 02 Jan 2009 00:00:00 GMT&quot;,
+      endTime: null,
+      info: &quot;run=0&quot;,
+    },
+    {
+**    jobType: &quot;workflow&quot;
+      id: &quot;0-200905191240-oozie-W&quot;,
+      appName: &quot;logprocessor-wf&quot;,
+      appPath: &quot;hdfs://user/bansalm/myapp/workflow.xml&quot;,
+      user: &quot;bansalm&quot;,
+      group: &quot;other&quot;,
+      status: &quot;SUSPENDED&quot;,
+      createdTime: &quot;Thu, 01 Jan 2009 00:00:00 GMT&quot;,
+      startTime: &quot;Fri, 02 Jan 2009 00:00:00 GMT&quot;,
+      endTime: null,
+      info: &quot;run=0&quot;,
+    },
+    ...
+  ]
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h4><a name="Jobs_information_using_Bulk_API"></a>Jobs information using Bulk 
API</h4>
+<p>A HTTP GET request retrieves a bulk response for all actions, corresponding 
to a particular bundle, that satisfy user specified criteria. This is useful 
for monitoring purposes, where user can find out about the status of downstream 
jobs with a single bulk request. The criteria are used for filtering the 
actions returned. Valid options (<i>case insensitive</i>) for these request 
criteria are:</p>
+<ul>
+
+<li><b>bundle</b>: the application name from the bundle definition</li>
+<li><b>coordinators</b>: the application name(s) from the coordinator 
definition.</li>
+<li><b>actionStatus</b>: the status of coordinator action (Valid values are 
WAITING, READY, SUBMITTED, RUNNING, SUSPENDED, TIMEDOUT, SUCCEEDED, KILLED, 
FAILED)</li>
+<li><b>startCreatedTime</b>: the start of the window you want to look at, of 
the actions&#x2019; created time</li>
+<li><b>endCreatedTime</b>: the end of above window</li>
+<li><b>startScheduledTime</b>: the start of the window you want to look at, of 
the actions&#x2019; scheduled i.e. nominal time.</li>
+<li><b>endScheduledTime</b>: the end of above window</li>
+</ul>
+<p>Specifying &#x2018;bundle&#x2019; is REQUIRED. All the rest are OPTIONAL 
but that might result in thousands of results depending on the size of your 
job. (pagination comes into play then)</p>
+<p>If no &#x2018;actionStatus&#x2019; values provided, by default 
KILLED,FAILED will be used. For e.g if the query string is only 
&#x201c;bundle=MyBundle&#x201d;, the response will have all actions (across all 
coordinators) whose status is KILLED or FAILED</p>
+<p>The query will do an AND among all the filter names, and OR among each 
filter name&#x2019;s values.</p>
+<p>The syntax for the request criteria is  
<tt>[NAME=VALUE][;NAME=VALUE]*</tt></p>
+<p>For &#x2018;coordinators&#x2019; and &#x2018;actionStatus&#x2019;, if user 
wants to check for multiple values, they can be passed in a comma-separated 
manner. <b>Note</b>: The query will do an OR among them. Hence no need to 
repeat the criteria name</p>
+<p>All the time values should be specified in <b>ISO8601 (UTC)</b> format i.e. 
<b>yyyy-MM-dd&#x2019;T&#x2019;HH:mm&#x2019;Z&#x2019;</b></p>
+<p>Additionally the <tt>offset</tt> and <tt>len</tt> parameters can be used as 
usual for pagination. The start parameter is base 1.</p>
+<p>If you specify a coordinator in the list, that does not exist, no error is 
thrown; simply the response will be empty or pertaining to the other valid 
coordinators. However, if bundle name provided does not exist, an error is 
thrown.</p>
+<p><b>Request:</b></p>
+
+<div>
+<div>
+<pre class="source">GET 
/oozie/v1/jobs?bulk=bundle%3Dmy-bundle-app;coordinators%3Dmy-coord-1,my-coord-5;actionStatus%3DKILLED&amp;offset=1&amp;len=50
+</pre></div></div>
+
+<p>Note that the filter is URL encoded, its decoded value is 
<tt>user=chitnis</tt>. If typing in browser URL, one can type decoded value 
itself i.e. using &#x2018;=&#x2019;</p>
+<p><b>Response:</b></p>
+
+<div>
+<div>
+<pre class="source">HTTP/1.1 200 OK
+Content-Type: application/json;charset=UTF-8
+.
+{
+  offset: 1,
+  len: 50,
+  total: 1002,
+**  bulkresponses: [
+**  {
+      bulkbundle:
+      {
+        bundleJobName: &quot;my-bundle-app&quot;,
+        bundleJobId: &quot;0-200905191240-oozie-B&quot;,
+        status: &quot;SUSPENDED&quot;,
+      },
+      bulkcoord:
+      {
+        coordJobName: &quot;my-coord-1&quot;,
+        status: &quot;SUSPENDED&quot;,
+      },
+      bulkaction:
+      {
+        id: &quot;0-200905191240-oozie-C@21&quot;,
+        coordJobId: &quot;0-200905191240-oozie-C&quot;,
+        actionNumber: 21,
+        externalId: &quot;job_00076_0009&quot;,
+        status: &quot;KILLED&quot;,
+        externalStatus: &quot;FAILED&quot;,
+        errorCode: &quot;E0902&quot;,
+        errorMessage: &quot;Input file corrupt&quot;,
+        createdTime: &quot;Fri, 02 Jan 2009 00:00:00 GMT&quot;,
+        nominalTime: &quot;Thu, 01 Jan 2009 00:00:00 GMT&quot;,
+        missingDependencies: &quot;hdfs://nn:port/user/joe/file.txt&quot;
+      },
+    },
+**  {
+      bulkbundle:
+      {
+        bundleJobName: &quot;my-bundle-app&quot;,
+        bundleJobId: &quot;0-200905191240-oozie-B&quot;,
+        status: &quot;SUSPENDED&quot;,
+      }
+      bulkcoord:
+      {
+        coordJobName: &quot;my-coord-5&quot;,
+        status: &quot;SUSPENDED&quot;,
+      }
+      bulkaction:
+      {
+        id: &quot;0-200905191245-oozie-C@114&quot;,
+        coordJobId: &quot;0-200905191245-oozie-C&quot;,

[... 219 lines stripped ...]

Reply via email to