GET /api/devices/configurations/?format=api
HTTP 200 OK
Allow: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 1,
            "display": "Core Groups and IXPs",
            "name": "Core Groups and IXPs",
            "description": "",
            "template": "protocols {\r\n    bgp {\r\n{% for ixp in internet_exchange_points %}\r\n  {% for family in (6, 4) %}\r\n        replace: group ipv{{ family }}-{{ ixp.slug }} {\r\n            type external;\r\n            multipath;\r\n            advertise-inactive;\r\n    {% if ixp | iter_import_policies %}\r\n            import [ {{ ixp | iter_import_policies('slug') | join(' ') }} ];\r\n    {% endif %}\r\n            family inet{% if family == 6 %}6{% endif %} {\r\n                unicast;\r\n            }\r\n    {% if ixp | iter_export_policies %}\r\n            export [ {{ ixp | iter_export_policies('slug') | join(' ') }} ];\r\n    {% endif %}\r\n    {% for session in router | ixp_sessions(family=family, ixp=ixp) %}\r\n            neighbor {{ session | ip }} {\r\n      {% if not session.enabled %}\r\n                shutdown;\r\n      {% endif %}\r\n                description \"Peering: AS{{ session.autonomous_system.asn }} - {{ session.autonomous_system.name }}\";\r\n      {% if family == 6 and session.autonomous_system.ipv6_max_prefixes > 0 %}\r\n                family inet6 {\r\n                    unicast {\r\n                        prefix-limit {\r\n                            maximum {{ session.autonomous_system.ipv6_max_prefixes }};\r\n                        }\r\n                    }\r\n                }\r\n      {% endif %}\r\n      {% if family == 4 and session.autonomous_system.ipv4_max_prefixes > 0 %}\r\n                family inet {\r\n                    unicast {\r\n                        prefix-limit {\r\n                            maximum {{ session.autonomous_system.ipv4_max_prefixes }};\r\n                        }\r\n                    }\r\n                }\r\n      {% endif %}\r\n      {% if session | iter_import_policies %}\r\n                import [ {{ session | iter_import_policies('slug') | join(' ') }} ];\r\n      {% endif %}\r\n      {% if session | iter_export_policies %}\r\n                export [ {{ session | iter_export_policies('slug') | join(' ') }} ];\r\n      {% endif %}\r\n      {% if session.encrypted_password %}\r\n                authentication-key \"{{ session.encrypted_password }}\";\r\n      {% elif session.password %}\r\n                authentication-key \"{{ session.password }}\";\r\n      {% endif %}\r\n                peer-as {{ session.autonomous_system.asn }};\r\n            }\r\n    {% endfor %}\r\n        }\r\n  {% endfor %}\r\n{% endfor %}\r\n\r\n{% for group in bgp_groups %}\r\n  {% for family in (6, 4) %}\r\n        replace: group ipv{{ family }}-{{ group.slug }} {\r\n            type external;\r\n            multipath;\r\n            advertise-inactive;\r\n    {% if group | iter_import_policies %}\r\n            import [ {{ group | iter_import_policies('slug') | join(' ') }} ];\r\n    {% endif %}\r\n            family inet{% if family == 6 %}6{% endif %} {\r\n                unicast;\r\n            }\r\n    {% if group | iter_export_policies %}\r\n            export [ {{ group | iter_export_policies('slug') | join(' ') }} ];\r\n    {% endif %}\r\n    {% for session in router | direct_sessions(family=family, group=group)  %}\r\n            neighbor {{ session | ip }} {\r\n      {% if not session.enabled %}\r\n                shutdown;\r\n      {% endif %}\r\n                description \"Peering: AS{{ session.autonomous_system.asn }} - {{ session.autonomous_system.name }}\";\r\n      {% if family == 6 and session.autonomous_system.ipv6_max_prefixes > 0 %}\r\n                family inet6 {\r\n                    unicast {\r\n                        prefix-limit {\r\n                            maximum {{ session.autonomous_system.ipv6_max_prefixes }};\r\n                        }\r\n                    }\r\n                }\r\n      {% endif %}\r\n      {% if family == 4 and session.autonomous_system.ipv4_max_prefixes > 0 %}\r\n                family inet {\r\n                    unicast {\r\n                        prefix-limit {\r\n                            maximum {{ session.autonomous_system.ipv4_max_prefixes }};\r\n                        }\r\n                    }\r\n                }\r\n      {% endif %}\r\n      {% if session | iter_import_policies %}\r\n                import [ {{ session | iter_import_policies('slug') | join(' ') }} ];\r\n      {% endif %}\r\n      {% if session | iter_export_policies %}\r\n                export [ {{ session | iter_export_policies('slug') | join(' ') }} ];\r\n      {% endif %}\r\n      {% if session.encrypted_password %}\r\n                authentication-key \"{{ session.encrypted_password }}\";\r\n      {% elif session.password %}\r\n                authentication-key \"{{ session.password }}\";\r\n      {% endif %}\r\n                peer-as {{ session.autonomous_system.asn }};\r\n            }\r\n    {% endfor %}\r\n        }\r\n  {% endfor %}\r\n{% endfor %}\r\n    }\r\n}\r\npolicy-options {\r\n{% for c in communities %}\r\n    community {{ c.slug }} members {{ c.value }};\r\n{% endfor %}\r\n}",
            "jinja2_trim": true,
            "jinja2_lstrip": true,
            "comments": "",
            "tags": [],
            "created": "2022-03-04T22:30:38.640000Z",
            "updated": "2022-03-05T10:07:37.778000Z"
        }
    ]
}