{% extends "response.xml" %}
{% block response_content %}
    <securityGroupInfo>
        {% for securitygroup in response.securitygroup %}
        <item>
            <ownerId>{{ securitygroup.account }}</ownerId>
            <groupId>{{ securitygroup.id }}</groupId>
            <groupName>{{ securitygroup.name }}</groupName>
            <groupDescription>{{ securitygroup.description }}</groupDescription>
            <ipPermissions>
                {% for rule in securitygroup.ingressrule %}
                <item>
                    <ipProtocol>{{ rule.protocol }}</ipProtocol>
                    {% if rule.startport %}
                    <fromPort>{{ rule.startport }}</fromPort>
                    {% elif 'icmptype' in rule %}
                    <fromPort>{{ rule.icmptype }}</fromPort>
                    {% endif %}

                    {% if 'endport' in rule %}
                    <toPort>{{ rule.endport }}</toPort>
                    {% elif 'icmpcode' in rule %}
                    <toPort>{{ rule.icmpcode }}</toPort>
                    {% endif %}
                    <ipRanges>
                        <item>
                            <cidrIp>{{ rule.cidr }}</cidrIp>
                        </item>
                    </ipRanges>
                </item>
                {% endfor %}
            </ipPermissions>
            <ipPermissionsEgress>
                {% for rule in securitygroup.egressrule %}
                <item>
                    <ipProtocol>{{ rule.protocol }}</ipProtocol>
                    {% if rule.startport %}
                    <fromPort>{{ rule.startport }}</fromPort>
                    {% elif 'icmptype' in rule %}
                    <fromPort>{{ rule.icmptype }}</fromPort>
                    {% endif %}

                    {% if 'endport' in rule %}
                    <toPort>{{ rule.endport }}</toPort>
                    {% elif 'icmpcode' in rule %}
                    <toPort>{{ rule.icmpcode }}</toPort>
                    {% endif %}
                    <ipRanges>
                        <item>
                            <cidrIp>{{ rule.cidr }}</cidrIp>
                        </item>
                    </ipRanges>
                </item>
                {% endfor %}
            </ipPermissionsEgress>
        </item>
        {% endfor %}
    </securityGroupInfo>
{% endblock %}
