<!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_controller">
                    <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.17.0.0 Root Admin API Reference
					</span>
                                        <p></p>
                                        <h1>listVirtualMachinesUsageHistory</h1>
                                        <p>Lists VM stats</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;"><i>enddate</i></td><td style="width:500px;"><i>end date to filter VM stats.Use format "yyyy-MM-dd hh:mm:ss")</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>the ID of the virtual machine.</i></td><td style="width:180px;"><i>false</i></td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><i>ids</i></td><td style="width:500px;"><i>the IDs of the virtual machines, mutually exclusive with id.</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 virtual machine (a substring match is made against the parameter value returning the data for all matching VMs).</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>startdate</i></td><td style="width:500px;"><i>start date to filter VM stats.Use format "yyyy-MM-dd hh:mm:ss")</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 virtual machine</td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><strong>displayname</strong></td><td style="width:500px;">user generated name. The name of the virtual machine is returned if no displayname exists.</td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><strong>name</strong></td><td style="width:500px;">the name of the virtual machine</td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><strong>stats</strong></td><td style="width:500px;">the list of VM stats</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_maincontroller">
                        <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>
