<!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.15.0.0 Root 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="../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>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>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 checksum value of this volume/template The parameter containing the checksum will be considered a MD5sum if it is not prefixed
 and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to
 use another algorithm the hexadecimal string is to be prefixed with a string of the form,
 "{&lt;algorithm&gt;}", not including the double quotes. In this &lt;algorithm&gt; is the exact string
 representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not
 contain an algorithm called SHA256 or one called sha-256, only SHA-256.</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>ostypeid</i></td><td style="width:500px;"><i>the ID of the OS Type that best represents the OS of this template. Not required for VMware as the guest OS is obtained from the OVF file.</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="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>
