<!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>ldapConfiguration</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">ldapConfiguration</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="model.html">Data Model</a> &gt;
              <ul>
                <li><a href="model.html">Data Model</a></li>
                <li><a href="rest.html">REST</a></li>
              </ul>
            </li>
            <li>
              <a href="ns0.html">ns0</a> &gt;
              <ul>
                <li><a href="ns0.html">ns0</a></li>
              </ul>
            </li>
            <li class="current">
              <a href="ns0_ldapConfiguration.html">ldapConfiguration</a>
              <ul>
                <li><a href="ns0_organisationInformation.html">organisationInformation</a></li>
                <li><a href="ns0_networkConfiguration.html">networkConfiguration</a></li>
                <li><a href="ns0_ldapConfiguration.html">ldapConfiguration</a></li>
                <li><a href="ns0_facetedMetadata.html">facetedMetadata</a></li>
                <li><a href="ns0_proxyConnector.html">proxyConnector</a></li>
                <li><a href="ns0_dependency.html">dependency</a></li>
                <li><a href="ns0_legacyArtifactPath.html">legacyArtifactPath</a></li>
                <li><a href="ns0_redbackImplementationsInformations.html">redbackImplementationsInformations</a></li>
                <li><a href="ns0_redbackRuntimeConfiguration.html">redbackRuntimeConfiguration</a></li>
                <li><a href="ns0_artifactContent.html">artifactContent</a></li>
                <li><a href="ns0_queueEntry.html">queueEntry</a></li>
                <li><a href="ns0_artifactTransferRequest.html">artifactTransferRequest</a></li>
                <li><a href="ns0_consumerScanningStatistics.html">consumerScanningStatistics</a></li>
                <li><a href="ns0_networkProxy.html">networkProxy</a></li>
                <li><a href="ns0_remoteRepository.html">remoteRepository</a></li>
                <li><a href="ns0_abstractRepositoryConnector.html">abstractRepositoryConnector</a></li>
                <li><a href="ns0_ldapGroupMapping.html">ldapGroupMapping</a></li>
                <li><a href="ns0_adminRepositoryConsumer.html">adminRepositoryConsumer</a></li>
                <li><a href="ns0_cacheConfiguration.html">cacheConfiguration</a></li>
                <li><a href="ns0_repositoryGroup.html">repositoryGroup</a></li>
                <li><a href="ns0_propertyEntry.html">propertyEntry</a></li>
                <li><a href="ns0_proxyConnectorRule.html">proxyConnectorRule</a></li>
                <li><a href="ns0_RBACManagerImplementationInformation.html">RBACManagerImplementationInformation</a></li>
                <li><a href="ns0_browseResultEntry.html">browseResultEntry</a></li>
                <li><a href="ns0_artifactContentEntry.html">artifactContentEntry</a></li>
                <li><a href="ns0_repositoryScanStatistics.html">repositoryScanStatistics</a></li>
                <li><a href="ns0_uiConfiguration.html">uiConfiguration</a></li>
                <li><a href="ns0_scm.html">scm</a></li>
                <li><a href="ns0_userManagerImplementationInformation.html">userManagerImplementationInformation</a></li>
                <li><a href="ns0_cacheEntry.html">cacheEntry</a></li>
                <li><a href="ns0_organization.html">organization</a></li>
                <li><a href="ns0_archivaRepositoryStatistics.html">archivaRepositoryStatistics</a></li>
                <li><a href="ns0_stringList.html">stringList</a></li>
                <li><a href="ns0_license.html">license</a></li>
                <li><a href="ns0_issueManagement.html">issueManagement</a></li>
                <li><a href="ns0_managedRepository.html">managedRepository</a></li>
                <li><a href="ns0_fileType.html">fileType</a></li>
                <li><a href="ns0_abstractImplementationInformation.html">abstractImplementationInformation</a></li>
                <li><a href="ns0_browseResult.html">browseResult</a></li>
                <li><a href="ns0_searchRequest.html">searchRequest</a></li>
                <li><a href="ns0_ciManagement.html">ciManagement</a></li>
                <li><a href="ns0_metadataAddRequest.html">metadataAddRequest</a></li>
                <li><a href="ns0_artifact.html">artifact</a></li>
                <li><a href="ns0_projectVersionMetadata.html">projectVersionMetadata</a></li>
                <li><a href="ns0_repositoryScannerStatistics.html">repositoryScannerStatistics</a></li>
                <li><a href="ns0_mailingList.html">mailingList</a></li>
                <li><a href="ns0_policyInformation.html">policyInformation</a></li>
                <li><a href="ns0_proxyConnectorRuleType.html">proxyConnectorRuleType</a></li>
                <li><a href="ns0_archivaRuntimeConfiguration.html">archivaRuntimeConfiguration</a></li>
                <li><a href="ns0_groupIdList.html">groupIdList</a></li>
                <li><a href="ns0_abstractRepository.html">abstractRepository</a></li>
                <li><a href="ns0_versionsList.html">versionsList</a></li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </header>
    <div id="main" class="column first last span-20">
      <h1>ldapConfiguration</h1>
      <table>
        <tr>
          <td align="right">Namespace:</td>
          <td>(default namespace)</td>
        </tr>
        <tr>
          <td align="right">XML Schema:</td>
          <td><a href="ns0.xsd">ns0.xsd</a></td>
        </tr>
      </table>

      <h2>XML</h2>
      <h3>Elements</h3>
      <table>
        <tr>
          <th>name (type)</th>
          <th>min/max<br/>occurs</th>
          <th>description</th>
        </tr>
        <tr>
          <td>
            authenticationMethod (string)
          </td>
          <td>0/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            extraProperties (<a href="ns0_(anonymous).html">(anonymous)</a>)
          </td>
          <td>0/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            extraPropertiesEntries (<a href="ns0_propertyEntry.html">propertyEntry</a>)
          </td>
          <td>0/unbounded</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            ssl (boolean)
          </td>
          <td>1/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            port (int)
          </td>
          <td>1/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            baseDn (string)
          </td>
          <td>0/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            bindAuthenticatorEnabled (boolean)
          </td>
          <td>1/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            hostName (string)
          </td>
          <td>0/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            contextFactory (string)
          </td>
          <td>0/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            useRoleNameAsGroup (boolean)
          </td>
          <td>1/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            writable (boolean)
          </td>
          <td>1/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            password (string)
          </td>
          <td>0/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            bindDn (string)
          </td>
          <td>0/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            baseGroupsDn (string)
          </td>
          <td>0/1</td>
          <td>
          </td>
        </tr>
      </table>

      <h2>JSON</h2>
      <table>
        <tr>
          <th>property</th>
          <th>type</th>
          <th>description</th>
        </tr>
        <tr>
          <td>authenticationMethod</td>
          <td>
              authenticationMethod (string)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>extraProperties</td>
          <td>
              extraProperties (<a href="ns0_(anonymous).html">(anonymous)</a>)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>extraPropertiesEntries</td>
          <td>
              array of extraPropertiesEntries (<a href="ns0_propertyEntry.html">propertyEntry</a>)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>ssl</td>
          <td>
              ssl (boolean)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>port</td>
          <td>
              port (int)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>baseDn</td>
          <td>
              baseDn (string)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>bindAuthenticatorEnabled</td>
          <td>
              bindAuthenticatorEnabled (boolean)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>hostName</td>
          <td>
              hostName (string)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>contextFactory</td>
          <td>
              contextFactory (string)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>useRoleNameAsGroup</td>
          <td>
              useRoleNameAsGroup (boolean)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>writable</td>
          <td>
              writable (boolean)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>password</td>
          <td>
              password (string)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>bindDn</td>
          <td>
              bindDn (string)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>baseGroupsDn</td>
          <td>
              baseGroupsDn (string)
          </td>
          <td>
          </td>
        </tr>
      </table>

      <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>