<!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>updateVPCOffering</h1>
<p>Updates VPC 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>the id of the VPC offering</strong></td><td style="width:180px;"><strong>true</strong></td>
</tr>
<tr>
<td style="width:200px;"><i>displaytext</i></td><td style="width:500px;"><i>the display text of the VPC offering</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>the name of the VPC offering</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>state</i></td><td style="width:500px;"><i>update state for the VPC offering; supported states - Enabled/Disabled</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 vpc offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>created</strong></td><td style="width:500px;">the date this vpc offering was created</td>
</tr>
<tr>
<td style="width:200px;"><strong>displaytext</strong></td><td style="width:500px;">an alternate display text of the vpc offering.</td>
</tr>
<tr>
<td style="width:200px;"><strong>distributedvpcrouter</strong></td><td style="width:500px;"> indicates if the vpc offering supports distributed router for one-hop forwarding</td>
</tr>
<tr>
<td style="width:200px;"><strong>isdefault</strong></td><td style="width:500px;">true if vpc offering is default, false otherwise</td>
</tr>
<tr>
<td style="width:200px;"><strong>name</strong></td><td style="width:500px;">the name of the vpc offering</td>
</tr>
<tr>
<td style="width:200px;"><strong>state</strong></td><td style="width:500px;">state of the vpc offering. Can be Disabled/Enabled</td>
</tr>
<tr>
<td style="width:200px;"><strong>supportsregionLevelvpc</strong></td><td style="width:500px;"> indicated if the offering can support region level vpc</td>
</tr>
<tr>
<td style="width:200px;"><strong>service(*)</strong></td><td style="width:500px;">the list of supported services</td>
<tr>
<td style="width:180px; padding-left:25px;"><strong>name</strong></td><td style="width:500px;">the service name</td>
</tr>
<tr>
<td style="width:180px; padding-left:25px;"><strong>capability(*)</strong></td><td style="width:500px;">the list of capabilities</td>
</tr>
<tr>
<td style="width:165px; padding-left:40px;">canchooseservicecapability</td><td style="width:500px;">can this service capability value can be choosable while creatine network offerings</td>
</tr>
<tr>
<td style="width:165px; padding-left:40px;">name</td><td style="width:500px;">the capability name</td>
</tr>
<tr>
<td style="width:165px; padding-left:40px;">value</td><td style="width:500px;">the capability value</td>
</tr>
<tr>
<td style="width:180px; padding-left:25px;"><strong>provider(*)</strong></td><td style="width:500px;">the service provider name</td>
</tr>
<tr>
<td style="width:165px; padding-left:40px;">id</td><td style="width:500px;">uuid of the network provider</td>
</tr>
<tr>
<td style="width:165px; padding-left:40px;">canenableindividualservice</td><td style="width:500px;">true if individual services can be enabled/disabled</td>
</tr>
<tr>
<td style="width:165px; padding-left:40px;">destinationphysicalnetworkid</td><td style="width:500px;">the destination physical network</td>
</tr>
<tr>
<td style="width:165px; padding-left:40px;">name</td><td style="width:500px;">the provider name</td>
</tr>
<tr>
<td style="width:165px; padding-left:40px;">physicalnetworkid</td><td style="width:500px;">the physical network this belongs to</td>
</tr>
<tr>
<td style="width:165px; padding-left:40px;">servicelist</td><td style="width:500px;">services for this provider</td>
</tr>
<tr>
<td style="width:165px; padding-left:40px;">state</td><td style="width:500px;">state of the network provider</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>
