<!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.8.0 Domain Admin API Reference
								</span>
<p></p>
<h1>getUploadParamsForTemplate</h1>
<p>upload an existing template into the CloudStack cloud. </p>
</div>
<div class="api_titlebox_right">
<a class="api_backbutton" href="../TOC_Domain_Admin.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>displaytext</strong></td><td style="width:500px;"><strong>the display text of the template. This is usually used for display purposes.</strong></td><td style="width:180px;"><strong>true</strong></td>
</tr>
<tr>
<td style="width:200px;"><strong>format</strong></td><td style="width:500px;"><strong>the format for the volume/template. Possible values include QCOW2, OVA, and VHD.</strong></td><td style="width:180px;"><strong>true</strong></td>
</tr>
<tr>
<td style="width:200px;"><strong>hypervisor</strong></td><td style="width:500px;"><strong>the target hypervisor for the template</strong></td><td style="width:180px;"><strong>true</strong></td>
</tr>
<tr>
<td style="width:200px;"><strong>name</strong></td><td style="width:500px;"><strong>the name of the volume/template</strong></td><td style="width:180px;"><strong>true</strong></td>
</tr>
<tr>
<td style="width:200px;"><strong>ostypeid</strong></td><td style="width:500px;"><strong>the ID of the OS Type that best represents the OS of this template.</strong></td><td style="width:180px;"><strong>true</strong></td>
</tr>
<tr>
<td style="width:200px;"><strong>zoneid</strong></td><td style="width:500px;"><strong>the ID of the zone the volume/template is to be hosted on</strong></td><td style="width:180px;"><strong>true</strong></td>
</tr>
<tr>
<td style="width:200px;"><i>account</i></td><td style="width:500px;"><i>an optional accountName. Must be used with domainId.</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>bits</i></td><td style="width:500px;"><i>32 or 64 bits support. 64 by default</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>checksum</i></td><td style="width:500px;"><i>the MD5 checksum value of this volume/template</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>details</i></td><td style="width:500px;"><i>Template details in key/value pairs.</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>an optional domainId. If the account parameter is used, domainId must also be used.</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>isdynamicallyscalable</i></td><td style="width:500px;"><i>true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>isextractable</i></td><td style="width:500px;"><i>true if the template or its derivatives are extractable; default is false</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>isfeatured</i></td><td style="width:500px;"><i>true if this template is a featured template, false otherwise</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>ispublic</i></td><td style="width:500px;"><i>true if the template is available to all accounts; default is true</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>isrouting</i></td><td style="width:500px;"><i>true if the template type is routing i.e., if template is used to deploy router</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>passwordenabled</i></td><td style="width:500px;"><i>true if the template supports the password reset feature; default is false</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>projectid</i></td><td style="width:500px;"><i>Upload volume/template for the project</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>requireshvm</i></td><td style="width:500px;"><i>true if this template requires HVM</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>sshkeyenabled</i></td><td style="width:500px;"><i>true if the template supports the sshkey upload feature; default is false</i></td><td style="width:180px;"><i>false</i></td>
</tr>
<tr>
<td style="width:200px;"><i>templatetag</i></td><td style="width:500px;"><i>the tag for this template.</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 template/volume ID</td>
</tr>
<tr>
<td style="width:200px;"><strong>expires</strong></td><td style="width:500px;">the timestamp after which the signature expires</td>
</tr>
<tr>
<td style="width:200px;"><strong>metadata</strong></td><td style="width:500px;">encrypted data to be sent in the POST request.</td>
</tr>
<tr>
<td style="width:200px;"><strong>postURL</strong></td><td style="width:500px;">POST url to upload the file to</td>
</tr>
<tr>
<td style="width:200px;"><strong>signature</strong></td><td style="width:500px;">signature to be sent in the POST request.</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer_mainmaster">
<p>Copyright &copy; 2016 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>
