<!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>PingService</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">PingService</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_PingService.html">PingService</a>
              <ul>
                <li><a href="resource_SystemStatusService.html">SystemStatusService</a></li>
                <li><a href="resource_ArchivaAdministrationService.html">ArchivaAdministrationService</a></li>
                <li><a href="resource_RemoteRepositoriesService.html">RemoteRepositoriesService</a></li>
                <li><a href="resource_ReportRepositoriesService.html">ReportRepositoriesService</a></li>
                <li><a href="resource_ManagedRepositoriesService.html">ManagedRepositoriesService</a></li>
                <li><a href="resource_PluginsService.html">PluginsService</a></li>
                <li><a href="resource_PingService.html">PingService</a></li>
                <li><a href="resource_RepositoryGroupService.html">RepositoryGroupService</a></li>
                <li><a href="resource_ProxyConnectorService.html">ProxyConnectorService</a></li>
                <li><a href="resource_RepositoriesService.html">RepositoriesService</a></li>
                <li><a href="resource_ArchivaRuntimeConfigurationService.html">ArchivaRuntimeConfigurationService</a></li>
                <li><a href="resource_MergeRepositoriesService.html">MergeRepositoriesService</a></li>
                <li><a href="resource_ProxyConnectorRuleService.html">ProxyConnectorRuleService</a></li>
                <li><a href="resource_SearchService.html">SearchService</a></li>
                <li><a href="resource_CommonServices.html">CommonServices</a></li>
                <li><a href="resource_RedbackRuntimeConfigurationService.html">RedbackRuntimeConfigurationService</a></li>
                <li><a href="resource_BrowseService.html">BrowseService</a></li>
                <li><a href="resource_NetworkProxyService.html">NetworkProxyService</a></li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </header>
    <div id="main" class="column first last span-20">
      <h1>PingService</h1>

      <p></p>
      <p>The following resources are part of this group:</p>
      <ul>
        <li><a href="#path__pingService_ping.html">/pingService/ping</a></li>
        <li><a href="#path__pingService_pingWithAuthz.html">/pingService/pingWithAuthz</a></li>
      </ul>
      <a name="path__pingService_ping.html"></a>
      <h1>/pingService/ping</h1>
      <p class="note">Mount Point: <a href="../restServices/pingService/ping">/restServices/pingService/ping</a></p>
      <p class="note">Available Since: 1.4-M1</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4-M1</p>
      <p>
            ping service to monitor Archiva with a nice returned message :-)
          </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/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>Yeah Baby It rocks!</p>
      <a name="path__pingService_pingWithAuthz.html"></a>
      <h1>/pingService/pingWithAuthz</h1>
      <p class="note">Mount Point: <a href="../restServices/pingService/pingWithAuthz">/restServices/pingService/pingWithAuthz</a></p>
      <p class="note">Available Since: 1.4-M1</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4-M1</p>
      <p>
            same as #ping but check authz
          </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/>text/plain<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>