<?xml version="1.0" encoding="UTF-8"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://wadl.dev.java.net/2009/02"
  xmlns:ops="http://ops.epo.org" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://wadl.dev.java.net/2009/02  ..\schema\wadl.xsd">
  <grammars>
    <include href="../schema/ops.xsd" />
  </grammars>

  <resources base="http://ops.epo.org/3.2/rest-services">
    <!-- GET Published data search -->
    <resource path="published-data/search/{publishedConstituents}/" id="publishedDataSearch">
      <doc xml:lang="en" title="Published document search" />
      <param name="publishedConstituents" type="xs:string" required="true" style="template" default="biblio">
        <option value="biblio" />
        <option value="abstract" />
        <option value="full-cycle" />
        <option value="abstract,full-cycle" />
        <option value="biblio,full-cycle" />
      </param>
      <method name="GET" href="#wpdSearchGET" />
      <!-- search query -->
    </resource>
    <!-- GET Published data biblio -->
    <resource path="published-data/{type}/{format}/{number}/{publishedConstituents}" id="publishedDataRetrieval">
      <doc xml:lang="en" title="Published document retrieval GET interface" />
      <param href="#type" />
      <param href="#format" />
      <param name="number" type="xs:string" required="true" style="template" default="EP1000000">
        <doc xml:lang="en">Reference number</doc>
      </param>
      <param name="publishedConstituents" type="xs:string" required="true" style="template" default="biblio">
        <option value="biblio" />
        <option value="abstract" />
        <option value="full-cycle" />
        <option value="abstract,full-cycle" />
        <option value="biblio,full-cycle" />
      </param>
      <method name="GET" href="#wpdGETPOST" />
    </resource>
    <!--Published data fulltext availability inquiry GET -->
    <resource path="published-data/{type}/{format}/{number}/fulltext" id="publishedDataFulltextRequest">
      <doc xml:lang="en" title="Published document fulltext availability inquiry" />
      <param href="#type" />
      <param href="#format" />
      <param name="number" type="xs:string" required="true" style="template" default="EP1000000">
        <doc xml:lang="en">Reference number</doc>
      </param>
      <method name="GET" href="#wpdGETPOST" />
    </resource>
    <!--Published data claims retrieval GET -->
    <resource path="published-data/{type}/{format}/{number}/claims" id="publishedDataClaimsRequest">
      <doc xml:lang="en" title="Published document claims" />
      <param href="#type" />
      <param href="#format" />
      <param name="number" type="xs:string" required="true" style="template" default="EP1000000">
        <doc xml:lang="en">Reference number</doc>
      </param>
      <method name="GET" href="#wpdGETPOST" />
    </resource>
    <!--Published data description retrieval GET -->
    <resource path="published-data/{type}/{format}/{number}/description" id="publishedDataDescriptionRequest">
      <doc xml:lang="en" title="Published document description" />
      <param href="#type" />
      <param href="#format" />
      <param name="number" type="xs:string" required="true" style="template" default="EP1000000">
        <doc xml:lang="en">Reference number</doc>
      </param>
      <method name="GET" href="#wpdGETPOST" />
    </resource>
    <!--Published data equivalents retrieval GET -->
    <resource path="published-data/{type}/{format}/{number}/equivalents/{equivalentsConstituents}" id="publishedDataEquivalentsRequest">
      <doc xml:lang="en" title="Published document equivalents" />
      <param href="#type" />
      <param href="#format" />
      <param name="number" type="xs:string" required="true" style="template" default="EP1000000">
        <doc xml:lang="en">Reference number</doc>
      </param>
      <param name="equivalentsConstituents" type="xs:string" required="false" style="template" default="">
        <option value="" />
        <option value="abstract" />
        <option value="biblio" />
        <option value="full-cycle" />
        <option value="images" />
      </param>
      <method name="GET" href="#wpdGETPOST" />
    </resource>
    <!--Published data images inquiry GET -->
    <resource path="published-data/{type}/{format}/{number}/images" id="publishedDataImagesInquiryRequest">
      <doc xml:lang="en" title="Published document images availability inquiry" />
      <param href="#type" />
      <param href="#format" />
      <param name="number" type="xs:string" required="true" style="template" default="EP1000000">
        <doc xml:lang="en">Reference number</doc>
      </param>
      <method name="GET" href="#wpdGETPOST" />
    </resource>
    <!--Published images retrieval GET -->
    <resource path="published-data/images/{imageId}/" id="publishedDataImagesDownload">
      <doc xml:lang="en" title="Published document images download" />
      <param name="imageId" type="xs:string" required="true" style="template">
        <doc xml:lang="en" title="Image identifier can be obtained by Published data images inquiry request" />
      </param>
      <param name="attachment" type="xs:boolean" required="false" style="query">
        <doc xml:lang="en">Attachment/inline content disposition indicator. Inline is default value.</doc>
      </param>
      <param name="Range" type="xs:nonNegativeInteger" required="false" style="query">
        <doc xml:lang="en">Page number</doc>
      </param>
      <method name="GET" href="#imagesGETPOST" />
    </resource>

    <!--GET Published data family data retrieval -->
    <resource path="family/{type}/{format}/{number}/{familyConstituents}" id="familyRequest">
      <doc xml:lang="en" title="Family information retrieval" />
      <param href="#type" />
      <param href="#format" />
      <param name="number" type="xs:string" required="true" style="template" default="EP1000000">
        <doc xml:lang="en">Reference number</doc>
      </param>
      <param name="familyConstituents" type="xs:string" required="false" style="template" default="">
        <option value="" />
        <option value="legal" />
        <option value="biblio" />
      </param>
      <method name="GET" href="#wpdGETPOST" />
    </resource>
    <!--GET Published data legal data retrieval -->
    <resource path="legal/{type}/{format}/{number}" id="legalRequest">
      <doc xml:lang="en" title="Legal information retrieval" />
      <param href="#type" />
      <param href="#format" />
      <param name="number" type="xs:string" required="true" style="template" default="EP1000000">
        <doc xml:lang="en">Reference number</doc>
      </param>
      <method name="GET" href="#wpdGETPOST" />
    </resource>
    <!-- GET Register data search -->
    <resource path="register/search/{registerConstituents}" id="registerSearchRequest">
      <doc xml:lang="en" title="Register documents search" />
      <param name="registerConstituents" type="xs:string" required="false" style="template" default="biblio">
        <option value="biblio" />
        <option value="events" />
        <option value="procedural-steps" />
        <option value="upp" />        
      </param>
      <method name="GET" href="#wpdSearchGET" />
    </resource>
    <!--GET Register data retrieval -->
    <resource path="register/{type}/{format}/{number}/{registerConstituents}" id="registerRequest">
      <doc xml:lang="en" title="Register information retrieval" />
      <param href="#type" />
      <param href="#format" />
      <param name="number" type="xs:string" required="true" style="template" default="EP1000000">
        <doc xml:lang="en">Reference number</doc>
      </param>
      <param name="registerConstituents" type="xs:string" required="false" style="template" default="biblio">
        <option value="biblio" />
        <option value="events" />
        <option value="procedural-steps" />
      </param>
      <method name="GET" href="#wpdGETPOST" />
    </resource>
    <!-- CPC Classification inquiry GET -->
    <resource path="classification/cpc/{class}" id="cpcRequest">
      <doc xml:lang="en" title="CPC schema information retrieval service" />
      <param name="class" type="xs:string" required="true" style="template">
        <doc xml:lang="en" title="CPC class name" />
      </param>
      <method name="GET" href="#cpcGETPOST" />
    </resource>
    <!-- CPC Classification media retrieval -->
    <resource path="classification/media/{media}" id="cpcMediaRequest">
      <doc xml:lang="en" title="CPC media information  retrieval" />
      <param name="media" type="xs:anyURI" required="true" style="template">
        <doc xml:lang="en" title="CPC media resource name" />
      </param>
      <param name="attachment" type="xs:boolean" required="false" style="query">
        <doc xml:lang="en">Attachment/inline content disposition indicator. Inline is default value.</doc>
      </param>
      <method name="GET" id="cpcMediaGET">
        <response status="200">
          <representation mediaType="image/gif" />
        </response>
        <response status="400 403 404 405 406 408 413 500 503">
          <representation mediaType="application/xml" element="ops:fault" />
        </response>
      </method>
    </resource>
    <!-- CPC Classification search -->
    <resource path="classification/cpc/search" id="cpcSearchRequest">
      <doc xml:lang="en" title="CPC classification search" />
      <method name="GET" href="#wpdSearchGET" />
    </resource>
    <!-- Classification mapping service -->
    <resource path="classification/map/{input-format}/{class}/{output-format}" id="classMappingRequest">
      <doc xml:lang="en" title="CPC mapping service. Converts classification formats" />
      <param name="input-format" type="xs:string" required="true" style="template">
        <doc xml:lang="en" title="Input classification type" />
        <option value="cpc" />
        <option value="ecla" />
      </param>
      <param name="class" type="xs:string" required="true" style="template">
        <doc xml:lang="en" title="Any format class name" />
      </param>
      <param name="output-format" type="xs:string" required="true" style="template">
        <doc xml:lang="en" title="Output classification type" />
        <option value="cpc" />
        <option value="ecla" />
        <option value="ipc" />
      </param>
      <param name="additional" type="xs:boolean" required="false" style="query">
        <doc xml:lang="en">Invention/Additional resolution indicator. Invention is default value.</doc>
      </param>
      <method name="GET" href="#wpdGETPOST" />
    </resource>
    <!-- Number service request GET -->
    <resource path="number-service/{type}/{input-format}/{number}/{output-format}" id="numberServiceRequestGET">
      <doc xml:lang="en" title="Number service. Converts number formats" />
      <param href="#type" />
      <param name="input-format" type="xs:string" required="true" style="template" default="original">
        <doc xml:lang="en">Input reference format</doc>
        <option value="docdb" />        
        <option value="original" />        
      </param>
      <param name="number" type="xs:string" required="true" style="template" default="EP1000000">
        <doc xml:lang="en">Reference number</doc>
      </param>
      <param name="output-format" href="#format" />
      <method name="GET" href="#wpdGETPOST" />
    </resource>
  </resources>

  <!-- METHODS -->
  <method id="wpdGETPOST" name="GET">
    <response status="200">
      <representation mediaType="application/xml" element="ops:world-patent-data" />
      <representation mediaType="application/json" />
      <representation mediaType="application/javascript" />
    </response>
    <response status="400 403 404 405 406 408 413 500 503">
      <representation mediaType="application/xml" element="ops:fault" />
    </response>
  </method>
  <method id="wpdSearchGET" name="GET">
    <request>
      <param name="q" type="xs:string" required="true" style="query">
        <doc xml:lang="en">Search query</doc>
      </param>
      <param name="Range" type="ops:range-Type" required="false" style="query">
        <doc xml:lang="en">Range of elements were requested, e.g. 1-20 or 7 </doc>
      </param>
    </request>
    <response status="200">
      <representation mediaType="application/xml" element="ops:world-patent-data" />
      <representation mediaType="application/json" />
      <representation mediaType="application/javascript" />
    </response>
    <response status="400 403 404 405 406 408 413 500 503">
      <representation mediaType="application/xml" element="ops:fault" />
    </response>
  </method>
  <method id="imagesGETPOST" name="GET">
    <response status="200">
      <representation mediaType="application/pdf" />
      <representation mediaType="application/tiff" />
      <representation mediaType="image/tiff" />
      <representation mediaType="image/png" />
    </response>
    <response status="400 403 404 405 406 408 413 500 503">
      <representation mediaType="application/xml" element="ops:fault" />
    </response>
  </method>
  <method id="cpcGETPOST" name="GET">
    <request>
      <param name="ancestors" type="xs:boolean" required="false" style="query">
        <doc xml:lang="en">Ancestors flag</doc>
      </param>
      <param name="navigation" type="xs:boolean" required="false" style="query">
        <doc xml:lang="en">Navigation flag</doc>
      </param>
      <param name="depth" type="xs:string" required="false" style="query">
        <option value="0" />
        <option value="1" />
        <option value="2" />
        <option value="3" />
        <option value="all" />
      </param>
    </request>
    <response status="200">
      <representation mediaType="application/xml" element="ops:world-patent-data" />
      <representation mediaType="application/json" />
      <representation mediaType="application/javascript" />
    </response>
    <response status="400 403 404 405 406 408 413 500 503">
      <representation mediaType="application/xml" element="ops:fault" />
    </response>
  </method>

  <!-- PARAMS -->
  <param name="type" id="type" type="ops:refType-Type" required="true" style="template" default="publication">
    <doc xml:lang="en" title="Reference type" />
    <option value="application" />
    <option value="publication" />
    <option value="priority" />
  </param>
  <param name="format" id="format" type="ops:refFormat-Type" required="true" style="template" default="epodoc">
    <doc xml:lang="en" title="Reference format" />
    <option value="epodoc" />
    <option value="docdb" />
    <option value="original" />
  </param>
</application>
