<!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 4.12.0.0 Root Admin API Reference
					</span>
<p></p>
<h1>updateLoadBalancer</h1>
<p>Updates a load balancer</p>
</div>
<div class="api_titlebox_right">
<a class="api_backbutton" href="../index.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>id</strong></td><td style="width:500px;"><strong>the ID of the load balancer</strong></td><td style="width:180px;"><strong>true</strong></td>
</tr>
<tr>
<td style="width:200px;"><i>customid</i></td><td style="width:500px;"><i>an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>fordisplay</i></td><td style="width:500px;"><i>an optional field, whether to the display the rule to the end user or not</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>id</strong></td><td style="width:500px;">the Load Balancer ID</td>
</tr>
<tr>
<td style="width:200px;"><strong>account</strong></td><td style="width:500px;">the account of the Load Balancer</td>
</tr>
<tr>
<td style="width:200px;"><strong>algorithm</strong></td><td style="width:500px;">the load balancer algorithm (source, roundrobin, leastconn)</td>
</tr>
<tr>
<td style="width:200px;"><strong>description</strong></td><td style="width:500px;">the description of the Load Balancer</td>
</tr>
<tr>
<td style="width:200px;"><strong>domain</strong></td><td style="width:500px;">the domain of the Load Balancer</td>
</tr>
<tr>
<td style="width:200px;"><strong>domainid</strong></td><td style="width:500px;">the domain ID of the Load Balancer</td>
</tr>
<tr>
<td style="width:200px;"><strong>fordisplay</strong></td><td style="width:500px;">is rule for display to the regular user</td>
</tr>
<tr>
<td style="width:200px;"><strong>name</strong></td><td style="width:500px;">the name of the Load Balancer</td>
</tr>
<tr>
<td style="width:200px;"><strong>networkid</strong></td><td style="width:500px;">Load Balancer network id</td>
</tr>
<tr>
<td style="width:200px;"><strong>project</strong></td><td style="width:500px;">the project name of the Load Balancer</td>
</tr>
<tr>
<td style="width:200px;"><strong>projectid</strong></td><td style="width:500px;">the project id of the Load Balancer</td>
</tr>
<tr>
<td style="width:200px;"><strong>sourceipaddress</strong></td><td style="width:500px;">Load Balancer source ip</td>
</tr>
<tr>
<td style="width:200px;"><strong>sourceipaddressnetworkid</strong></td><td style="width:500px;">Load Balancer source ip network id</td>
</tr>
<tr>
<td style="width:200px;"><strong>loadbalancerinstance(*)</strong></td><td style="width:500px;">the list of instances associated with the Load Balancer</td>
<tr>
<td style="width:180px; padding-left:25px;"><strong>id</strong></td><td style="width:500px;">the instance ID</td>
</tr>
<tr>
<td style="width:180px; padding-left:25px;"><strong>ipaddress</strong></td><td style="width:500px;">the ip address of the instance</td>
</tr>
<tr>
<td style="width:180px; padding-left:25px;"><strong>name</strong></td><td style="width:500px;">the name of the instance</td>
</tr>
<tr>
<td style="width:180px; padding-left:25px;"><strong>state</strong></td><td style="width:500px;">the state of the instance</td>
</tr>
</tr>
<tr>
<td style="width:200px;"><strong>loadbalancerrule(*)</strong></td><td style="width:500px;">the list of rules associated with the Load Balancer</td>
<tr>
<td style="width:180px; padding-left:25px;"><strong>instanceport</strong></td><td style="width:500px;">instance port of the load balancer rule</td>
</tr>
<tr>
<td style="width:180px; padding-left:25px;"><strong>sourceport</strong></td><td style="width:500px;">source port of the load balancer rule</td>
</tr>
<tr>
<td style="width:180px; padding-left:25px;"><strong>state</strong></td><td style="width:500px;">the state of the load balancer rule</td>
</tr>
</tr>
<tr>
<td style="width:200px;"><strong>tags(*)</strong></td><td style="width:500px;">the list of resource tags associated with the Load Balancer</td>
<tr>
<td style="width:180px; padding-left:25px;"><strong>account</strong></td><td style="width:500px;">the account associated with the tag</td>
</tr>
<tr>
<td style="width:180px; padding-left:25px;"><strong>customer</strong></td><td style="width:500px;">customer associated with the tag</td>
</tr>
<tr>
<td style="width:180px; padding-left:25px;"><strong>domain</strong></td><td style="width:500px;">the domain associated with the tag</td>
</tr>
<tr>
<td style="width:180px; padding-left:25px;"><strong>domainid</strong></td><td style="width:500px;">the ID of the domain associated with the tag</td>
</tr>
<tr>
<td style="width:180px; padding-left:25px;"><strong>key</strong></td><td style="width:500px;">tag key name</td>
</tr>
<tr>
<td style="width:180px; padding-left:25px;"><strong>project</strong></td><td style="width:500px;">the project name where tag belongs to</td>
</tr>
<tr>
<td style="width:180px; padding-left:25px;"><strong>projectid</strong></td><td style="width:500px;">the project id the tag belongs to</td>
</tr>
<tr>
<td style="width:180px; padding-left:25px;"><strong>resourceid</strong></td><td style="width:500px;">id of the resource</td>
</tr>
<tr>
<td style="width:180px; padding-left:25px;"><strong>resourcetype</strong></td><td style="width:500px;">resource type</td>
</tr>
<tr>
<td style="width:180px; padding-left:25px;"><strong>value</strong></td><td style="width:500px;">tag value</td>
</tr>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="comments_thread">
<script type="text/javascript" src="https://comments.apache.org/show_comments.lua?site=test" async="true"></script>
<noscript>
<iframe width="930" height="500" src="https://comments.apache.org/iframe.lua?site=test&amp;page=4.2.0/rootadmin"></iframe>
</noscript>
</div>
<div id="footer_mainmaster">
<p>Copyright &copy; 2015 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, CloudStack, Apache CloudStack, the Apache CloudStack logo, the CloudMonkey logo  and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
</div>
</div>
</div>
</div>
</body>
</html>
