<!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.13.1.0-SNAPSHOT Root Admin API Reference
					</span>
<p></p>
<h1>updateDiskOffering</h1>
<p>Updates a disk offering.</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>ID of the disk offering</strong></td><td style="width:180px;"><strong>true</strong></td>
</tr>
<tr>
<td style="width:200px;"><i>displayoffering</i></td><td style="width:500px;"><i>an optional field, whether to display the offering to the end user or not.</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>displaytext</i></td><td style="width:500px;"><i>updates alternate display text of the disk offering with this value</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>the ID of the containing domain(s) as comma separated string, public for public offerings</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>name</i></td><td style="width:500px;"><i>updates name of the disk offering with this value</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>sortkey</i></td><td style="width:500px;"><i>sort key of the disk offering, integer</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>zoneid</i></td><td style="width:500px;"><i>the ID of the containing zone(s) as comma separated string, all for all zones offerings</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;">unique ID of the disk offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>cacheMode</strong></td><td style="width:500px;">the cache mode to use for this disk offering. none, writeback or writethrough</td>
</tr>
<tr>
<td style="width:200px;"><strong>created</strong></td><td style="width:500px;">the date this disk offering was created</td>
</tr>
<tr>
<td style="width:200px;"><strong>diskBytesReadRate</strong></td><td style="width:500px;">bytes read rate of the disk offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>diskBytesReadRateMax</strong></td><td style="width:500px;">burst bytes read rate of the disk offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>diskBytesReadRateMaxLength</strong></td><td style="width:500px;">length (in seconds) of the burst</td>
</tr>
<tr>
<td style="width:200px;"><strong>diskBytesWriteRate</strong></td><td style="width:500px;">bytes write rate of the disk offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>diskBytesWriteRateMax</strong></td><td style="width:500px;">burst bytes write rate of the disk offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>diskBytesWriteRateMaxLength</strong></td><td style="width:500px;">length (in seconds) of the burst</td>
</tr>
<tr>
<td style="width:200px;"><strong>diskIopsReadRate</strong></td><td style="width:500px;">io requests read rate of the disk offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>diskIopsReadRateMax</strong></td><td style="width:500px;">burst io requests read rate of the disk offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>diskIopsReadRateMaxLength</strong></td><td style="width:500px;">length (in second) of the burst</td>
</tr>
<tr>
<td style="width:200px;"><strong>diskIopsWriteRate</strong></td><td style="width:500px;">io requests write rate of the disk offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>diskIopsWriteRateMax</strong></td><td style="width:500px;">burst io requests write rate of the disk offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>diskIopsWriteRateMaxLength</strong></td><td style="width:500px;">length (in seconds) of the burst</td>
</tr>
<tr>
<td style="width:200px;"><strong>disksize</strong></td><td style="width:500px;">the size of the disk offering in GB</td>
</tr>
<tr>
<td style="width:200px;"><strong>displayoffering</strong></td><td style="width:500px;">whether to display the offering to the end user or not.</td>
</tr>
<tr>
<td style="width:200px;"><strong>displaytext</strong></td><td style="width:500px;">an alternate display text of the disk offering.</td>
</tr>
<tr>
<td style="width:200px;"><strong>domain</strong></td><td style="width:500px;">the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.</td>
</tr>
<tr>
<td style="width:200px;"><strong>domainid</strong></td><td style="width:500px;">the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.</td>
</tr>
<tr>
<td style="width:200px;"><strong>hypervisorsnapshotreserve</strong></td><td style="width:500px;">Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)</td>
</tr>
<tr>
<td style="width:200px;"><strong>iscustomized</strong></td><td style="width:500px;">true if disk offering uses custom size, false otherwise</td>
</tr>
<tr>
<td style="width:200px;"><strong>iscustomizediops</strong></td><td style="width:500px;">true if disk offering uses custom iops, false otherwise</td>
</tr>
<tr>
<td style="width:200px;"><strong>maxiops</strong></td><td style="width:500px;">the max iops of the disk offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>miniops</strong></td><td style="width:500px;">the min iops of the disk offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>name</strong></td><td style="width:500px;">the name of the disk offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>provisioningtype</strong></td><td style="width:500px;">provisioning type used to create volumes. Valid values are thin, sparse, fat.</td>
</tr>
<tr>
<td style="width:200px;"><strong>storagetype</strong></td><td style="width:500px;">the storage type for this disk offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>tags</strong></td><td style="width:500px;">the tags for the disk offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>zone</strong></td><td style="width:500px;">the zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.</td>
</tr>
<tr>
<td style="width:200px;"><strong>zoneid</strong></td><td style="width:500px;">the zone ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.</td>
</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>
