<!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.2.0 User API Reference
								</span>
<p></p>
<h1>listServiceOfferings</h1>
<p>Lists all available service offerings.</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;"><i>domainid</i></td><td style="width:500px;"><i>the ID of the domain associated with the service offering</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>id</i></td><td style="width:500px;"><i>ID of the service offering</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>issystem</i></td><td style="width:500px;"><i>is this a system vm offering</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>keyword</i></td><td style="width:500px;"><i>List by keyword</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>name of the service offering</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>page</i></td><td style="width:500px;"><i></i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>pagesize</i></td><td style="width:500px;"><i></i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>systemvmtype</i></td><td style="width:500px;"><i>the system VM type. Possible types are "consoleproxy", "secondarystoragevm" or "domainrouter".</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>virtualmachineid</i></td><td style="width:500px;"><i>the ID of the virtual machine. Pass this in if you want to see the available service offering that a virtual machine can be changed to.</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 id of the service offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>cpunumber</strong></td><td style="width:500px;">the number of CPU</td>
</tr>
<tr>
<td style="width:200px;"><strong>cpuspeed</strong></td><td style="width:500px;">the clock rate CPU speed in Mhz</td>
</tr>
<tr>
<td style="width:200px;"><strong>created</strong></td><td style="width:500px;">the date this service offering was created</td>
</tr>
<tr>
<td style="width:200px;"><strong>defaultuse</strong></td><td style="width:500px;">is this a  default system vm offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>deploymentplanner</strong></td><td style="width:500px;">deployment strategy used to deploy VM.</td>
</tr>
<tr>
<td style="width:200px;"><strong>diskBytesReadRate</strong></td><td style="width:500px;">bytes read rate of the service offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>diskBytesWriteRate</strong></td><td style="width:500px;">bytes write rate of the service offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>diskIopsReadRate</strong></td><td style="width:500px;">io requests read rate of the service offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>diskIopsWriteRate</strong></td><td style="width:500px;">io requests write rate of the service offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>displaytext</strong></td><td style="width:500px;">an alternate display text of the service offering.</td>
</tr>
<tr>
<td style="width:200px;"><strong>domain</strong></td><td style="width:500px;">Domain name for the offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>domainid</strong></td><td style="width:500px;">the domain id of the service offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>hosttags</strong></td><td style="width:500px;">the host tag for the service offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>issystem</strong></td><td style="width:500px;">is this a system vm offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>isvolatile</strong></td><td style="width:500px;">true if the vm needs to be volatile, i.e., on every reboot of vm from API root disk is discarded and creates a new root disk</td>
</tr>
<tr>
<td style="width:200px;"><strong>limitcpuuse</strong></td><td style="width:500px;">restrict the CPU usage to committed service offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>memory</strong></td><td style="width:500px;">the memory in MB</td>
</tr>
<tr>
<td style="width:200px;"><strong>name</strong></td><td style="width:500px;">the name of the service offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>networkrate</strong></td><td style="width:500px;">data transfer rate in megabits per second allowed.</td>
</tr>
<tr>
<td style="width:200px;"><strong>offerha</strong></td><td style="width:500px;">the ha support in the service offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>serviceofferingdetails</strong></td><td style="width:500px;">additional key/value details tied with this service offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>storagetype</strong></td><td style="width:500px;">the storage type for this service offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>systemvmtype</strong></td><td style="width:500px;">is this a the systemvm type for system vm offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>tags</strong></td><td style="width:500px;">the tags for the service offering</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer_mainmaster">
<p>Copyright &copy; 2013 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>
