/**
* <p>This is the R Service Bus (RSB) API.</p>
*
* <h3>SOAP+MTOM API (Synchronous)</h3>
* <p>The RSB SOAP+MTOM API is fully described by its <a href="../api-specs.html">WSDL and the related XSDs</a>.</p>
* <h3>REST API (Asynchronous)</h3>
* <p>The RSB REST API is documented below. Its micro-format is defined in the <a href="../api-specs.html">XSDs for XML message defintions</a>.
* The JSON equivalents of these XML messages is built following the Jettison conventions as highlighted in <a href="https://cwiki.apache.org/CXF20DOC/json-support.html">this CXF documentation</a>.</p>
* <p>The REST API supports a set of HTTP headers:
* <ul>
* <li>Content-Type: required, defines the format of the data being sent by the client. Either application/json, application/xml or application/zip.</li>
* <li>Accept: optional, defines the micro-format used by RSB when responding to a request. Either: application/vnd.rsb+xml or application/vnd.rsb+json (defaults to the former if absent).</li>
* <li>X-RSB-Application-Name: required, a valid RSB application name (ie. must match this regular expression: /w+).</li>
* <li>X-RSB-Meta-rScript and X-RSB-Meta-sweaveFile: standard optional job meta information parameters.</li>
* <li>X-RSB-Meta-*: custom optional job-specific meta information parameters.</li>
* </ul>
* </p>
* <p>Any HTTP client that supports the GET, POST and DELETE verbs and HTTP headers can be used to interact with the REST API.</p>
* <h4>Example Interaction</h4>
* <p><i>This interaction will be done using the XML RSB micro-format. Only the significant HTTP headers are shown. Posting XML and JSON jobs is done the same way, only with different content types.</i></p>
* <h5>Posting a job</h5>
* <p>Request:</p>
* <pre>
* POST /rsb/api/rest/jobs HTTP/1.1
* Content-Type: application/zip
* X-RSB-Application-Name: testApp
*
* ...ZIP data...
* </pre>
* <p>Response:</p>
* <pre>
* HTTP/1.1 202 Accepted
* Content-Type: application/vnd.rsb+xml
*
* <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
* <jobToken xmlns="http://rest.rsb.openanalytics.eu/types"
* jobId="1f8c8aea-8d90-4bdf-92bb-b8da52f35e58"
* applicationName="testApp"
* submissionTime="2011-06-28T17:07:03.220Z"
* applicationResultsUri="http://localhost:8888/rsb/api/rest/results/testApp"
* resultUri="http://localhost:8888/rsb/api/rest/results/testApp/1f8c8aea-8d90-4bdf-92bb-b8da52f35e58"/>
* </pre>
* <p>The job token contains the necessary links to either browse all the jobs for the concerned application or to retrieve the result of the current job.</p>
* <h5>Retrieving a result</h5>
* <p>Request:</p>
* <pre>
* GET /rsb/api/rest/results/testApp/1f8c8aea-8d90-4bdf-92bb-b8da52f35e58 HTTP/1.1
* </pre>
* <p>Response when the result is not ready:<p>
* <pre>
* HTTP/1.1 404 Not Found
* </pre>
* <p>Response when the result is ready:<p>
* <pre>
* HTTP/1.1 200 OK
* Content-Type: application/vnd.rsb+xml
* <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
* <result xmlns="http://rest.rsb.openanalytics.eu/types"
* jobId="1f8c8aea-8d90-4bdf-92bb-b8da52f35e58"
* applicationName="testApp"
* resultTime="2011-06-28T17:07:03.000Z"
* success="true"
* type="zip"
* selfUri="http://localhost:8888/rsb/api/rest/results/testApp/1f8c8aea-8d90-4bdf-92bb-b8da52f35e58"
* dataUri="http://localhost:8888/rsb/api/rest/result/testApp/1f8c8aea-8d90-4bdf-92bb-b8da52f35e58.zip"/>
* </pre>
* <p>As you can see, this is only the metadata for a result. The actual result data is reachable, with an HTTP GET, using the the provided data URI.</p>
* <h5>Deleting a result</h5>
* <p>Request:</p>
* <pre>
* DELETE /rsb/api/rest/results/testApp/1f8c8aea-8d90-4bdf-92bb-b8da52f35e58 HTTP/1.1
* </pre>
* <p>Response:</p>
* <pre>
* HTTP/1.1 204 No Content
* </pre>
* <h4>Browser Client</h4>
* <p>It is also possible to use the REST API from a browser, using a standard HTML form. In that case the following rules apply:
* <ul>
* <li>Content-Type must be multipart/form-data upload.</li>
* <li>Accept: must be either application/xml or application/json (content sub-types are not well understood by browsers, hence the usage of the canonical XML and JSON types).</li>
* <li>The X-RSB-* headers must be passed as form input field values named after the HTTP header they pass a value for.</li>
* <li>File attachments must be passed as form input fields of type 'file' that must be named: X-RSB-JobFile[]</li>
* </ul>
* </p>
*/
@XmlSchema(namespace = "http://soap.rsb.openanalytics.eu/jobs")
package eu.openanalytics.rsb.component;
import javax.xml.bind.annotation.XmlSchema;