<!doctype html>
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html class="no-js ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]>    <html class="no-js ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]>    <html class="no-js ie8" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
  <meta charset="utf-8">

  <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
       Remove this if you use the .htaccess -->
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <title>BrowseService</title>

  <!-- Mobile viewport optimized: j.mp/bplateviewport -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- CSS: implied media="all" -->
  <link rel="stylesheet" href="css/style.css?v=2">
  <link rel="stylesheet" href="css/prettify.css">

  <!-- All JavaScript at the bottom, except for Modernizr which enables HTML5 elements & feature detects -->
  <script src="js/libs/modernizr-1.7.min.js"></script>

</head>

<body class="home">

  <div class="container">
    <header>
      <div id="header" class="column first last span-20">
        <div id="site-name" class="column span-18 append-1 prepend-1 first last"><a href="index.html">BrowseService</a></div>
        <div id="primary" class="column span-18 append-1 prepend-1 first last">
          <ul class="navigation">
            <li id="nav-rest"><a href="rest.html">REST</a></li>
            <li id="nav-data"><a href="model.html">Data Model</a></li>
          </ul>
        </div>
        <div>
          <ul class="xbreadcrumbs" id="breadcrumbs">
            <li>
              <a href="index.html" class="home">Home</a> &gt;
            </li>
            <li>
              <a href="rest.html">REST</a> &gt;
              <ul>
                <li><a href="model.html">Data Model</a></li>
                <li><a href="rest.html">REST</a></li>
              </ul>
            </li>
            <li class="current">
              <a href="resource_BrowseService.html">BrowseService</a>
              <ul>
                <li><a href="resource_ArchivaAdministrationService.html">ArchivaAdministrationService</a></li>
                <li><a href="resource_ArchivaRuntimeConfigurationService.html">ArchivaRuntimeConfigurationService</a></li>
                <li><a href="resource_BrowseService.html">BrowseService</a></li>
                <li><a href="resource_CommonServices.html">CommonServices</a></li>
                <li><a href="resource_ManagedRepositoriesService.html">ManagedRepositoriesService</a></li>
                <li><a href="resource_MergeRepositoriesService.html">MergeRepositoriesService</a></li>
                <li><a href="resource_NetworkProxyService.html">NetworkProxyService</a></li>
                <li><a href="resource_PingService.html">PingService</a></li>
                <li><a href="resource_PluginsService.html">PluginsService</a></li>
                <li><a href="resource_ProxyConnectorRuleService.html">ProxyConnectorRuleService</a></li>
                <li><a href="resource_ProxyConnectorService.html">ProxyConnectorService</a></li>
                <li><a href="resource_RedbackRuntimeConfigurationService.html">RedbackRuntimeConfigurationService</a></li>
                <li><a href="resource_RemoteRepositoriesService.html">RemoteRepositoriesService</a></li>
                <li><a href="resource_ReportRepositoriesService.html">ReportRepositoriesService</a></li>
                <li><a href="resource_RepositoriesService.html">RepositoriesService</a></li>
                <li><a href="resource_RepositoryGroupService.html">RepositoryGroupService</a></li>
                <li><a href="resource_SearchService.html">SearchService</a></li>
                <li><a href="resource_SystemStatusService.html">SystemStatusService</a></li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </header>
    <div id="main" class="column first last span-20">
      <h1>BrowseService</h1>

      <p></p>
      <p>The following resources are applicable:</p>
      <ul>
        <li>
        <a href="#path__browseService_artifactAvailable_-g-_-a-_-v-.html">/browseService/artifactAvailable/{g}/{a}/{v}</a>
        </li>
        <li>
        <a href="#path__browseService_artifactAvailable_-g-_-a-_-v-_-c-.html">/browseService/artifactAvailable/{g}/{a}/{v}/{c}</a>
        </li>
        <li>
        <a href="#path__browseService_artifactContentEntries_-g-_-a-_-v-.html">/browseService/artifactContentEntries/{g}/{a}/{v}</a>
        </li>
        <li>
        <a href="#path__browseService_artifactContentText_-g-_-a-_-v-.html">/browseService/artifactContentText/{g}/{a}/{v}</a>
        </li>
        <li>
        <a href="#path__browseService_artifactDownloadInfos_-g-_-a-_-v-.html">/browseService/artifactDownloadInfos/{g}/{a}/{v}</a>
        </li>
        <li>
        <a href="#path__browseService_artifacts_-r-.html">/browseService/artifacts/{r}</a>
        </li>
        <li>
        <a href="#path__browseService_artifactsByMetadata_-key-_-value-.html">/browseService/artifactsByMetadata/{key}/{value}</a>
        </li>
        <li>
        <a href="#path__browseService_artifactsByProjectVersionMetadata_-key-_-value-.html">/browseService/artifactsByProjectVersionMetadata/{key}/{value}</a>
        </li>
        <li>
        <a href="#path__browseService_artifactsByProperty_-key-_-value-.html">/browseService/artifactsByProperty/{key}/{value}</a>
        </li>
        <li>
        <a href="#path__browseService_browseGroupId_-groupId-.html">/browseService/browseGroupId/{groupId}</a>
        </li>
        <li>
        <a href="#path__browseService_dependees_-g-_-a-_-v-.html">/browseService/dependees/{g}/{a}/{v}</a>
        </li>
        <li>
        <a href="#path__browseService_importMetadata.html">/browseService/importMetadata</a>
        </li>
        <li>
        <a href="#path__browseService_metadata_-g-_-a-_-v-_-key-.html">/browseService/metadata/{g}/{a}/{v}/{key}</a>
        </li>
        <li>
        <a href="#path__browseService_metadata_-g-_-a-_-v-_-key-_-value-.html">/browseService/metadata/{g}/{a}/{v}/{key}/{value}</a>
        </li>
        <li>
        <a href="#path__browseService_metadatas_-g-_-a-_-v-.html">/browseService/metadatas/{g}/{a}/{v}</a>
        </li>
        <li>
        <a href="#path__browseService_projectVersionMetadata_-g-_-a-.html">/browseService/projectVersionMetadata/{g}/{a}</a>
        </li>
        <li>
        <a href="#path__browseService_projectVersionMetadata_-g-_-a-_-v-.html">/browseService/projectVersionMetadata/{g}/{a}/{v}</a>
        </li>
        <li>
        <a href="#path__browseService_rootGroups.html">/browseService/rootGroups</a>
        </li>
        <li>
        <a href="#path__browseService_searchArtifacts_-key-_-text-.html">/browseService/searchArtifacts/{key}/{text}</a>
        </li>
        <li>
        <a href="#path__browseService_searchArtifacts_-text-.html">/browseService/searchArtifacts/{text}</a>
        </li>
        <li>
        <a href="#path__browseService_treeEntries_-g-_-a-_-v-.html">/browseService/treeEntries/{g}/{a}/{v}</a>
        </li>
        <li>
        <a href="#path__browseService_userRepositories.html">/browseService/userRepositories</a>
        </li>
        <li>
        <a href="#path__browseService_versionsList_-g-_-a-.html">/browseService/versionsList/{g}/{a}</a>
        </li>
      </ul>
        <a name="path__browseService_artifactAvailable_-g-_-a-_-v-.html"></a>
      <h1>/browseService/artifactAvailable/{g}/{a}/{v}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/artifactAvailable/{g}/{a}/{v}">/restServices/browseService/artifactAvailable/{g}/{a}/{v}</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4-M3</p>
      <p>
            verify if an artifact is available locally if not download from proxies will be try
          </p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>g</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>a</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>v</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_artifactAvailable_-g-_-a-_-v-_-c-.html"></a>
      <h1>/browseService/artifactAvailable/{g}/{a}/{v}/{c}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/artifactAvailable/{g}/{a}/{v}/{c}">/restServices/browseService/artifactAvailable/{g}/{a}/{v}/{c}</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4-M4</p>
      <p>
            verify if an artifact is available locally if not download from proxies will be try
          </p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>g</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>a</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>v</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>c</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_artifactContentEntries_-g-_-a-_-v-.html"></a>
      <h1>/browseService/artifactContentEntries/{g}/{a}/{v}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/artifactContentEntries/{g}/{a}/{v}">/restServices/browseService/artifactContentEntries/{g}/{a}/{v}</a></p>
      <p class="note">Available Since: 1.4-M3</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4-M3</p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>g</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>a</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>v</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>c</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
        <tr>
          <td>t</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
        <tr>
          <td>p</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_artifactContentText_-g-_-a-_-v-.html"></a>
      <h1>/browseService/artifactContentText/{g}/{a}/{v}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/artifactContentText/{g}/{a}/{v}">/restServices/browseService/artifactContentText/{g}/{a}/{v}</a></p>
      <p class="note">Available Since: 1.4-M3</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4-M3</p>
      <p>
            if path is empty content of the file is returned (for pom view)
          </p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>g</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>a</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>v</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>c</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
        <tr>
          <td>t</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
        <tr>
          <td>p</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_artifactContent.html">artifactContent</a></td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_artifactDownloadInfos_-g-_-a-_-v-.html"></a>
      <h1>/browseService/artifactDownloadInfos/{g}/{a}/{v}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/artifactDownloadInfos/{g}/{a}/{v}">/restServices/browseService/artifactDownloadInfos/{g}/{a}/{v}</a></p>
      <p class="note">Available Since: 1.4-M3</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4-M3</p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>g</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>a</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>v</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_artifacts_-r-.html"></a>
      <h1>/browseService/artifacts/{r}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/artifacts/{r}">/restServices/browseService/artifacts/{r}</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4-M3</p>
      <p>
            return List of all artifacts from this repository
          </p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>r</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_artifactsByMetadata_-key-_-value-.html"></a>
      <h1>/browseService/artifactsByMetadata/{key}/{value}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/artifactsByMetadata/{key}/{value}">/restServices/browseService/artifactsByMetadata/{key}/{value}</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 2.2</p>
      <p>
            Return List of artifacts from this repository with artifact metadata key matching value.
If repository is not provided the search runs in all repositories.
          </p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>key</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>value</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_artifactsByProjectVersionMetadata_-key-_-value-.html"></a>
      <h1>/browseService/artifactsByProjectVersionMetadata/{key}/{value}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/artifactsByProjectVersionMetadata/{key}/{value}">/restServices/browseService/artifactsByProjectVersionMetadata/{key}/{value}</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 2.2</p>
      <p>
            Return List of artifacts from this repository with project version level metadata key matching value. If
repository is not provided the search runs in all repositories.
          </p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>key</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>value</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_artifactsByProperty_-key-_-value-.html"></a>
      <h1>/browseService/artifactsByProperty/{key}/{value}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/artifactsByProperty/{key}/{value}">/restServices/browseService/artifactsByProperty/{key}/{value}</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 2.2</p>
      <p>
            Return List of artifacts from this repository with property key matching value.
If repository is not provided the search runs in all repositories.
          </p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>key</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>value</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_browseGroupId_-groupId-.html"></a>
      <h1>/browseService/browseGroupId/{groupId}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/browseGroupId/{groupId}">/restServices/browseService/browseGroupId/{groupId}</a></p>
      <p class="note">Available Since: 1.4-M3</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4-M3</p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>groupId</td>
          <td>
            groupId to browse
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            optionnal (repository to browse if <tt>null</tt> all available user repositories are used)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_browseResult.html">browseResult</a></td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_dependees_-g-_-a-_-v-.html"></a>
      <h1>/browseService/dependees/{g}/{a}/{v}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/dependees/{g}/{a}/{v}">/restServices/browseService/dependees/{g}/{a}/{v}</a></p>
      <p class="note">Available Since: 1.4-M3</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4-M3</p>
      <p>
            List of artifacts using the artifact passed in parameter.
          </p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>g</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>a</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>v</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_importMetadata.html"></a>
      <h1>/browseService/importMetadata</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/importMetadata">/restServices/browseService/importMetadata</a></p>
      <p class="note">Available Since: 1.4-M3</p>
      <a name="POST"></a>
      <h2>POST</h2>
      <p class="note">Available Since: 1.4-M3</p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>repository</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Request Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_metadataAddRequest.html">metadataAddRequest</a></td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>*/*<br/>application/xml</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>*/*<br/>application/xml</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_metadata_-g-_-a-_-v-_-key-.html"></a>
      <h1>/browseService/metadata/{g}/{a}/{v}/{key}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/metadata/{g}/{a}/{v}/{key}">/restServices/browseService/metadata/{g}/{a}/{v}/{key}</a></p>
      <p class="note">Available Since: 1.4-M3</p>
      <a name="DELETE"></a>
      <h2>DELETE</h2>
      <p class="note">Available Since: 1.4-M3</p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>g</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>a</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>v</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>key</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_metadata_-g-_-a-_-v-_-key-_-value-.html"></a>
      <h1>/browseService/metadata/{g}/{a}/{v}/{key}/{value}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/metadata/{g}/{a}/{v}/{key}/{value}">/restServices/browseService/metadata/{g}/{a}/{v}/{key}/{value}</a></p>
      <p class="note">Available Since: 1.4-M3</p>
      <a name="PUT"></a>
      <h2>PUT</h2>
      <p class="note">Available Since: 1.4-M3</p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>g</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>a</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>v</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>key</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>value</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_metadatas_-g-_-a-_-v-.html"></a>
      <h1>/browseService/metadatas/{g}/{a}/{v}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/metadatas/{g}/{a}/{v}">/restServices/browseService/metadatas/{g}/{a}/{v}</a></p>
      <p class="note">Available Since: 1.4-M3</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4-M3</p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>g</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>a</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>v</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_projectVersionMetadata_-g-_-a-.html"></a>
      <h1>/browseService/projectVersionMetadata/{g}/{a}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/projectVersionMetadata/{g}/{a}">/restServices/browseService/projectVersionMetadata/{g}/{a}</a></p>
      <p class="note">Available Since: 1.4-M3</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4-M3</p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>g</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>a</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_projectVersionMetadata.html">projectVersionMetadata</a></td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_projectVersionMetadata_-g-_-a-_-v-.html"></a>
      <h1>/browseService/projectVersionMetadata/{g}/{a}/{v}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/projectVersionMetadata/{g}/{a}/{v}">/restServices/browseService/projectVersionMetadata/{g}/{a}/{v}</a></p>
      <p class="note">Available Since: 1.4-M3</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4-M3</p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>g</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>a</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>v</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_projectVersionMetadata.html">projectVersionMetadata</a></td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_rootGroups.html"></a>
      <h1>/browseService/rootGroups</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/rootGroups">/restServices/browseService/rootGroups</a></p>
      <p class="note">Available Since: 1.4-M3</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4-M3</p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_browseResult.html">browseResult</a></td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_searchArtifacts_-key-_-text-.html"></a>
      <h1>/browseService/searchArtifacts/{key}/{text}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/searchArtifacts/{key}/{text}">/restServices/browseService/searchArtifacts/{key}/{text}</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 2.2</p>
      <p>
            Search artifacts with the property specified by key matching text. If repository is not provided the search runs
in all repositories. If exact is true only the artifacts whose property match exactly are returned.
          </p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>key</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>text</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
        <tr>
          <td>exact</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_searchArtifacts_-text-.html"></a>
      <h1>/browseService/searchArtifacts/{text}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/searchArtifacts/{text}">/restServices/browseService/searchArtifacts/{text}</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 2.2</p>
      <p>
            Search artifacts with any property matching text. If repository is not provided the search runs in all
repositories. If exact is true only the artifacts whose property match exactly are returned.
          </p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>text</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
        <tr>
          <td>exact</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_treeEntries_-g-_-a-_-v-.html"></a>
      <h1>/browseService/treeEntries/{g}/{a}/{v}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/treeEntries/{g}/{a}/{v}">/restServices/browseService/treeEntries/{g}/{a}/{v}</a></p>
      <p class="note">Available Since: 1.4-M3</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4-M3</p>
      <p>
            return the dependency Tree for an artifacts
<b>the List result has only one entry</b>
          </p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>g</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>a</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>v</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
        <a name="path__browseService_userRepositories.html"></a>
      <h1>/browseService/userRepositories</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/userRepositories">/restServices/browseService/userRepositories</a></p>
      <p class="note">Available Since: 1.4-M3</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4-M3</p>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>List of managed repositories current user can read</p>
        <a name="path__browseService_versionsList_-g-_-a-.html"></a>
      <h1>/browseService/versionsList/{g}/{a}</h1>
      <p class="note">Mount Point: <a href="../restServices/browseService/versionsList/{g}/{a}">/restServices/browseService/versionsList/{g}/{a}</a></p>
      <p class="note">Available Since: 1.4-M3</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4-M3</p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>g</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>a</td>
          <td>
            (no documentation provided)
          </td>
          <td>path</td>
          <td></td>
        </tr>
        <tr>
          <td>repositoryId</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_versionsList.html">versionsList</a></td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>

      <div class="clear" />
    </div>
    <footer>
      <div id="footer">
        Generated by <a href="http://enunciate.codehaus.org">Enunciate</a>.
      </div>
    </footer>
  </div> <!--! end of #container -->

  <!-- JavaScript at the bottom for fast page loading -->

  <!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if necessary -->
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script>
  <script>window.jQuery || document.write("<script src='js/libs/jquery-1.5.1.min.js'>\x3C/script>")</script>

  <!--manage the navigation menu-->
  <script src="js/libs/xbreadcrumbs.js"></script>
  <script>
    $(function() {
      $('#breadcrumbs').xBreadcrumbs();
    });
  </script>


  <!-- prettify code blocks. see http://code.google.com/p/google-code-prettify/ -->
  <script src="js/libs/prettify/prettify.js"></script>
  <script>
    $(function() {
      prettyPrint();
    });
  </script>

  <!--[if lt IE 7 ]>
    <script src="js/libs/dd_belatedpng.js"></script>
    <script>DD_belatedPNG.fix("img, .png_bg"); // Fix any <img> or .png_bg bg-images. Also, please read goo.gl/mZiyb </script>
  <![endif]-->

</body>
</html>