<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 1.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../includes/main.css" type="text/css">
<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon">
<title>Apache CloudStack | The Power Behind Your Cloud</title>
</head>
<body>
<div id="insidetopbg">
<div id="inside_wrapper">
<div class="uppermenu_panel">
<div class="uppermenu_box"></div>
</div>
<div id="main_master">
<div id="inside_header">
<div class="header_top">
<a class="cloud_logo" href="http://cloudstack.org"></a>
<div class="mainemenu_panel"></div>
</div>
</div>
<div id="main_content">
<div class="inside_apileftpanel">
<div class="inside_contentpanel" style="width:930px;">
<div class="api_titlebox">
<div class="api_titlebox_left">
<span>
									Apache CloudStack v4.1.0 User API Reference
								</span>
<p></p>
<h1>login</h1>
<p>Logs a user into the CloudStack. A successful login attempt will generate a JSESSIONID cookie value that can be passed in subsequent Query command calls until the "logout" command has been issued or the session has expired.</p>
</div>
<div class="api_titlebox_right">
<a class="api_backbutton" href="../TOC_User.html"></a>
</div>
</div>
<div class="api_tablepanel">
<h2>Request parameters</h2>
<table class="apitable">
<tr class="hed">
<td style="width:200px;"><strong>Parameter Name</strong></td><td style="width:500px;">Description</td><td style="width:180px;">Required</td>
</tr>
<tr>
<td style="width:200px;"><strong>username</strong></td><td style="width:500px;"><strong>Username</strong></td><td style="width:180px;"><strong>true</strong></td>
</tr>
<tr>
<td style="width:200px;"><strong>password</strong></td><td style="width:500px;"><strong>Hashed password (Default is MD5). If you wish to use any other hashing algorithm, you would need to write a custom authentication adapter See Docs section.</strong></td><td style="width:180px;"><strong>true</strong></td>
</tr>
<tr>
<td style="width:200px;"><i>domain</i></td><td style="width:500px;"><i>path of the domain that the user belongs to. Example: domain=/com/cloud/internal.  If no domain is passed in, the ROOT domain is assumed.</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>domainId</i></td><td style="width:500px;"><i>id of the domain that the user belongs to. If both domain and domainId are passed in, "domainId" parameter takes precendence</i></td><td style="width:180px;"><i>false</i></td>
</tr>
</table>
</div>
<div class="api_tablepanel">
<h2>Response Tags</h2>
<table class="apitable">
<tr class="hed">
<td style="width:200px;"><strong>Response Name</strong></td><td style="width:500px;">Description</td>
</tr>
<tr>
<td style="width:200px;"><strong>username</strong></td><td style="width:500px;">Username</td>
</tr>
<tr>
<td style="width:200px;"><strong>userid</strong></td><td style="width:500px;">User id</td>
</tr>
<tr>
<td style="width:200px;"><strong>password</strong></td><td style="width:500px;">Password</td>
</tr>
<tr>
<td style="width:200px;"><strong>domainid</strong></td><td style="width:500px;">domain ID that the user belongs to</td>
</tr>
<tr>
<td style="width:200px;"><strong>timeout</strong></td><td style="width:500px;">the time period before the session has expired</td>
</tr>
<tr>
<td style="width:200px;"><strong>account</strong></td><td style="width:500px;">the account name the user belongs to</td>
</tr>
<tr>
<td style="width:200px;"><strong>firstname</strong></td><td style="width:500px;">first name of the user</td>
</tr>
<tr>
<td style="width:200px;"><strong>lastname</strong></td><td style="width:500px;">last name of the user</td>
</tr>
<tr>
<td style="width:200px;"><strong>type</strong></td><td style="width:500px;">the account type (admin, domain-admin, read-only-admin, user)</td>
</tr>
<tr>
<td style="width:200px;"><strong>timezone</strong></td><td style="width:500px;">user time zone</td>
</tr>
<tr>
<td style="width:200px;"><strong>timezoneoffset</strong></td><td style="width:500px;">user time zone offset from UTC 00:00</td>
</tr>
<tr>
<td style="width:200px;"><strong>sessionkey</strong></td><td style="width:500px;">Session key that can be passed in subsequent Query command calls</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer_mainmaster">
<p>Copyright &copy; 2012 The Apache Software Foundation, Licensed under the
                   <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0.</a>
<br>
                Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
</div>
</div>
</div>
</div>
</body>
</html>
