<!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>listEgressFirewallRules</h1>
                                        <p>Lists all egress firewall rules for network ID.</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>account</i></td><td style="width:500px;"><i>list resources by account. Must be used with the domainId parameter.</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>list only resources belonging to the domain specified</i></td><td style="width:180px;"><i>false</i></td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><i>fordisplay</i></td><td style="width:500px;"><i>list resources by display flag; only ROOT admin is eligible to pass this parameter</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>Lists rule with the specified ID.</i></td><td style="width:180px;"><i>false</i></td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><i>ipaddressid</i></td><td style="width:500px;"><i>the ID of IP address of the firewall services</i></td><td style="width:180px;"><i>false</i></td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><i>isrecursive</i></td><td style="width:500px;"><i>defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.</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>listall</i></td><td style="width:500px;"><i>If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false</i></td><td style="width:180px;"><i>false</i></td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><i>networkid</i></td><td style="width:500px;"><i>the network ID for the egress firewall services</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>projectid</i></td><td style="width:500px;"><i>list objects by project</i></td><td style="width:180px;"><i>false</i></td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><i>tags</i></td><td style="width:500px;"><i>List resources by tags (key/value pairs)</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 firewall rule</td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><strong>cidrlist</strong></td><td style="width:500px;">the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).</td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><strong>destcidrlist</strong></td><td style="width:500px;">the cidr list to forward traffic to. Multiple entries are separated by a single comma character (,).</td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><strong>endport</strong></td><td style="width:500px;">the ending port of firewall rule's port range</td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><strong>fordisplay</strong></td><td style="width:500px;">is rule for display to the regular user</td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><strong>icmpcode</strong></td><td style="width:500px;">error code for this icmp message</td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><strong>icmptype</strong></td><td style="width:500px;">type of the icmp message being sent</td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><strong>ipaddress</strong></td><td style="width:500px;">the public ip address for the firewall rule</td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><strong>ipaddressid</strong></td><td style="width:500px;">the public ip address id for the firewall rule</td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><strong>networkid</strong></td><td style="width:500px;">the network id of the firewall rule</td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><strong>protocol</strong></td><td style="width:500px;">the protocol of the firewall rule</td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><strong>startport</strong></td><td style="width:500px;">the starting port of firewall rule's port range</td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><strong>state</strong></td><td style="width:500px;">the state of the rule</td>
                                        </tr>
                                        <tr>
                                            <td style="width:200px;"><strong>tags(*)</strong></td><td style="width:500px;">the list of resource tags associated with the rule</td>
                                            <tr>
                                                <td style="width:180px; padding-left:25px;"><strong>account</strong></td><td style="width:500px;">the account associated with the tag</td>
                                            </tr>
                                            <tr>
                                                <td style="width:180px; padding-left:25px;"><strong>customer</strong></td><td style="width:500px;">customer associated with the tag</td>
                                            </tr>
                                            <tr>
                                                <td style="width:180px; padding-left:25px;"><strong>domain</strong></td><td style="width:500px;">the domain associated with the tag</td>
                                            </tr>
                                            <tr>
                                                <td style="width:180px; padding-left:25px;"><strong>domainid</strong></td><td style="width:500px;">the ID of the domain associated with the tag</td>
                                            </tr>
                                            <tr>
                                                <td style="width:180px; padding-left:25px;"><strong>key</strong></td><td style="width:500px;">tag key name</td>
                                            </tr>
                                            <tr>
                                                <td style="width:180px; padding-left:25px;"><strong>project</strong></td><td style="width:500px;">the project name where tag belongs to</td>
                                            </tr>
                                            <tr>
                                                <td style="width:180px; padding-left:25px;"><strong>projectid</strong></td><td style="width:500px;">the project id the tag belongs to</td>
                                            </tr>
                                            <tr>
                                                <td style="width:180px; padding-left:25px;"><strong>resourceid</strong></td><td style="width:500px;">id of the resource</td>
                                            </tr>
                                            <tr>
                                                <td style="width:180px; padding-left:25px;"><strong>resourcetype</strong></td><td style="width:500px;">resource type</td>
                                            </tr>
                                            <tr>
                                                <td style="width:180px; padding-left:25px;"><strong>value</strong></td><td style="width:500px;">tag value</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>
