<!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>UserService</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">UserService</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_UserService.html">UserService</a>
              <ul>
                <li><a href="resource_UtilServices.html">UtilServices</a></li>
                <li><a href="resource_UserService.html">UserService</a></li>
                <li><a href="resource_LoginService.html">LoginService</a></li>
                <li><a href="resource_RoleManagementService.html">RoleManagementService</a></li>
                <li><a href="resource_LdapGroupMappingService.html">LdapGroupMappingService</a></li>
                <li><a href="resource_PasswordService.html">PasswordService</a></li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </header>
    <div id="main" class="column first last span-20">
      <h1>UserService</h1>

      <p></p>
      <p>The following resources are part of this group:</p>
      <ul>
        <li><a href="#path__userService_createAdminUser.html">/userService/createAdminUser</a></li>
        <li><a href="#path__userService_createGuestUser.html">/userService/createGuestUser</a></li>
        <li><a href="#path__userService_createUser.html">/userService/createUser</a></li>
        <li><a href="#path__userService_getCurrentUserOperations.html">/userService/getCurrentUserOperations</a></li>
        <li><a href="#path__userService_getCurrentUserPermissions.html">/userService/getCurrentUserPermissions</a></li>
        <li><a href="#path__userService_getGuestUser.html">/userService/getGuestUser</a></li>
        <li><a href="#path__userService_getUsers.html">/userService/getUsers</a></li>
        <li><a href="#path__userService_isAdminUserExists.html">/userService/isAdminUserExists</a></li>
        <li><a href="#path__userService_ping.html">/userService/ping</a></li>
        <li><a href="#path__userService_registerUser.html">/userService/registerUser</a></li>
        <li><a href="#path__userService_resetPassword.html">/userService/resetPassword</a></li>
        <li><a href="#path__userService_updateMe.html">/userService/updateMe</a></li>
        <li><a href="#path__userService_updateUser.html">/userService/updateUser</a></li>
        <li><a href="#path__userService_deleteUser_-userName-.html">/userService/deleteUser/{userName}</a></li>
        <li><a href="#path__userService_getUser_-userName-.html">/userService/getUser/{userName}</a></li>
        <li><a href="#path__userService_getUserOperations_-userName-.html">/userService/getUserOperations/{userName}</a></li>
        <li><a href="#path__userService_getUserPermissions_-userName-.html">/userService/getUserPermissions/{userName}</a></li>
        <li><a href="#path__userService_lockUser_-username-.html">/userService/lockUser/{username}</a></li>
        <li><a href="#path__userService_passwordChangeNotRequired_-username-.html">/userService/passwordChangeNotRequired/{username}</a></li>
        <li><a href="#path__userService_passwordChangeRequired_-username-.html">/userService/passwordChangeRequired/{username}</a></li>
        <li><a href="#path__userService_removeFromCache_-userName-.html">/userService/removeFromCache/{userName}</a></li>
        <li><a href="#path__userService_unlockUser_-username-.html">/userService/unlockUser/{username}</a></li>
        <li><a href="#path__userService_validateKey_-key-.html">/userService/validateKey/{key}</a></li>
      </ul>
      <a name="path__userService_createAdminUser.html"></a>
      <h1>/userService/createAdminUser</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/createAdminUser">/redbackServices/userService/createAdminUser</a></p>
      <a name="POST"></a>
      <h2>POST</h2>
      <p>
            will create admin user only if not exists !! if exists will return false
          </p>
      <h3>Request Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_user.html">user</a></td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</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>application/xml<br/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <a name="path__userService_createGuestUser.html"></a>
      <h1>/userService/createGuestUser</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/createGuestUser">/redbackServices/userService/createGuestUser</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_user.html">user</a></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>
      <a name="path__userService_createUser.html"></a>
      <h1>/userService/createUser</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/createUser">/redbackServices/userService/createUser</a></p>
      <a name="POST"></a>
      <h2>POST</h2>
      <h3>Request Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_user.html">user</a></td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</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>application/xml<br/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <a name="path__userService_getCurrentUserOperations.html"></a>
      <h1>/userService/getCurrentUserOperations</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/getCurrentUserOperations">/redbackServices/userService/getCurrentUserOperations</a></p>
      <p class="note">Available Since: 1.4</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4</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>the current logged user operations, if no logged user guest operations are returned</p>
      <a name="path__userService_getCurrentUserPermissions.html"></a>
      <h1>/userService/getCurrentUserPermissions</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/getCurrentUserPermissions">/redbackServices/userService/getCurrentUserPermissions</a></p>
      <p class="note">Available Since: 1.4</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4</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>the current logged user permissions, if no logged user guest permissions are returned</p>
      <a name="path__userService_getGuestUser.html"></a>
      <h1>/userService/getGuestUser</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/getGuestUser">/redbackServices/userService/getGuestUser</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_user.html">user</a></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>
      <a name="path__userService_getUsers.html"></a>
      <h1>/userService/getUsers</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/getUsers">/redbackServices/userService/getUsers</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <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__userService_isAdminUserExists.html"></a>
      <h1>/userService/isAdminUserExists</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/isAdminUserExists">/redbackServices/userService/isAdminUserExists</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <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>
      <a name="path__userService_ping.html"></a>
      <h1>/userService/ping</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/ping">/redbackServices/userService/ping</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <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>
      <a name="path__userService_registerUser.html"></a>
      <h1>/userService/registerUser</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/registerUser">/redbackServices/userService/registerUser</a></p>
      <p class="note">Available Since: 1.4</p>
      <a name="POST"></a>
      <h2>POST</h2>
      <p class="note">Available Since: 1.4</p>
      <p>
            if redback is not configured for email validation is required, -1 is returned as key
          </p>
      <h3>Request Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_userRegistrationRequest.html">userRegistrationRequest</a></td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>*/*<br/>application/xml<br/></td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_registrationKey.html">registrationKey</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__userService_resetPassword.html"></a>
      <h1>/userService/resetPassword</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/resetPassword">/redbackServices/userService/resetPassword</a></p>
      <p class="note">Available Since: 1.4</p>
      <a name="POST"></a>
      <h2>POST</h2>
      <p class="note">Available Since: 1.4</p>
      <h3>Request 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>contains username for send a password reset email</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>
      <a name="path__userService_updateMe.html"></a>
      <h1>/userService/updateMe</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/updateMe">/redbackServices/userService/updateMe</a></p>
      <p class="note">Available Since: 1.4</p>
      <a name="POST"></a>
      <h2>POST</h2>
      <p class="note">Available Since: 1.4</p>
      <p>
            update only the current user and this fields: fullname, email, password.
the service verify the curent logged user with the one passed in the method
          </p>
      <h3>Request Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_user.html">user</a></td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>*/*<br/>application/xml<br/></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>application/xml<br/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <a name="path__userService_updateUser.html"></a>
      <h1>/userService/updateUser</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/updateUser">/redbackServices/userService/updateUser</a></p>
      <a name="POST"></a>
      <h2>POST</h2>
      <h3>Request Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_user.html">user</a></td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>*/*<br/>application/xml<br/></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>application/xml<br/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <a name="path__userService_deleteUser_-userName-.html"></a>
      <h1>/userService/deleteUser/{userName}</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/deleteUser/{userName}">/redbackServices/userService/deleteUser/{userName}</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>userName</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/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <a name="path__userService_getUser_-userName-.html"></a>
      <h1>/userService/getUser/{userName}</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/getUser/{userName}">/redbackServices/userService/getUser/{userName}</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>userName</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><a href="el_ns0_user.html">user</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__userService_getUserOperations_-userName-.html"></a>
      <h1>/userService/getUserOperations/{userName}</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/getUserOperations/{userName}">/redbackServices/userService/getUserOperations/{userName}</a></p>
      <p class="note">Available Since: 1.4</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4</p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>userName</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/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <a name="path__userService_getUserPermissions_-userName-.html"></a>
      <h1>/userService/getUserPermissions/{userName}</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/getUserPermissions/{userName}">/redbackServices/userService/getUserPermissions/{userName}</a></p>
      <p class="note">Available Since: 1.4</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4</p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>userName</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/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <a name="path__userService_lockUser_-username-.html"></a>
      <h1>/userService/lockUser/{username}</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/lockUser/{username}">/redbackServices/userService/lockUser/{username}</a></p>
      <p class="note">Available Since: 2.0</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 2.0</p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>username</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/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <a name="path__userService_passwordChangeNotRequired_-username-.html"></a>
      <h1>/userService/passwordChangeNotRequired/{username}</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/passwordChangeNotRequired/{username}">/redbackServices/userService/passwordChangeNotRequired/{username}</a></p>
      <p class="note">Available Since: 2.0</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 2.0</p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>username</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/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <a name="path__userService_passwordChangeRequired_-username-.html"></a>
      <h1>/userService/passwordChangeRequired/{username}</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/passwordChangeRequired/{username}">/redbackServices/userService/passwordChangeRequired/{username}</a></p>
      <p class="note">Available Since: 2.0</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 2.0</p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>username</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/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <a name="path__userService_removeFromCache_-userName-.html"></a>
      <h1>/userService/removeFromCache/{userName}</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/removeFromCache/{userName}">/redbackServices/userService/removeFromCache/{userName}</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>userName</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/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <a name="path__userService_unlockUser_-username-.html"></a>
      <h1>/userService/unlockUser/{username}</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/unlockUser/{username}">/redbackServices/userService/unlockUser/{username}</a></p>
      <p class="note">Available Since: 2.0</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 2.0</p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>username</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/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <a name="path__userService_validateKey_-key-.html"></a>
      <h1>/userService/validateKey/{key}</h1>
      <p class="note">Mount Point: <a href="../redbackServices/userService/validateKey/{key}">/redbackServices/userService/validateKey/{key}</a></p>
      <p class="note">Available Since: 1.4</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4</p>
      <p>
            validate the key and the user with forcing a password change for next login.
http session is created.
          </p>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>key</td>
          <td>
            authentication key
          </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/>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>