neutron-lib/api-ref/source/v2/bgpvpn-router_associations.inc
Thomas Morin 8ba7edb18d Revert "Withdraw doc for bgpvpn-routes-control API extension"
This reverts commit 5732e95f5d.

There is one thing changed: addition of a note saying that
the feature is in development in the Queens cycle (as discussed
during the PTG in Denver).

Change-Id: I70e3bcd39527ba39a3c957956705148f77f7530a
2017-09-19 17:32:57 +02:00

225 lines
5.7 KiB
ReStructuredText

.. -*- rst -*-
===================
Router Associations
===================
Associating a BGPVPN to a Router can be done only for BGPVPN of type L3. The
semantic is that all Subnets bound to the Router will be interconnected with
the BGPVPN.
A said Router can be associated with multiple BGPVPNs.
Associating or disassociating a BGPVPN to a Router is done by manipulating a
Router association API resource as a sub-resource of the BGPVPN resource:
Advertising router extra routes to a BGPVPN
===========================================
The ``bgpvpn-routes-control`` API extension allows to control the
re-advertisement of a router extra routes in a BGPVPN ("extra routes" are
routes defined in the ``routes`` attribute of a router when the ``extraroute``
extension is available).
The ``advertise_extra_routes`` attribute can in this case be set on a
router_association:
- ``true``: the extra routes defined in the ``routes`` attribute of
the router will be advertised to the BGPVPN (default value)
- ``false``: the extra routes defined in the ``routes`` attribute of
the router will **not** be advertised to the BGPVPN
List Router Associations
=========================
.. rest_method:: GET /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations
Lists router associations for a given BGP VPN.
Use the ``fields`` query parameter to control which fields are
returned in the response body. Additionally, you can filter results
by using query string parameters. For information, see `Filtering
and Column Selection <https://wiki.openstack.org/wiki/Neutron/APIv2
-specification#Filtering_and_Column_Selection>`__.
Normal response codes: 200
Error response codes: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- bgpvpn_id: bgpvpn-id-path
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- router_associations: bgpvpn-router_associations
- id: bgpvpn-router_association_id
- router_id: bgpvpn-router_id
- tenant_id: project_id
- project_id: project_id
Response Example
----------------
.. literalinclude:: samples/bgpvpn/router_associations/router_association-list-response.json
:language: javascript
Create Router Association
==========================
.. rest_method:: POST /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations
Creates a router association for a given BGP VPN
Normal response codes: 201
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- bgpvpn_id: bgpvpn-id-path
- router_association: bgpvpn-router_association
- router_id: bgpvpn-router_id
Request Example
---------------
.. literalinclude:: samples/bgpvpn/router_associations/router_association-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- router_association: bgpvpn-router_association
- id: bgpvpn-router_association_id
- router_id: bgpvpn-router_id
- tenant_id: project_id
- project_id: project_id
Response Example
----------------
.. literalinclude:: samples/bgpvpn/router_associations/router_association-create-response.json
:language: javascript
Show Router Association details
================================
.. rest_method:: GET /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations/{router_association_id}
Shows details for a router association.
Normal response codes: 200
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- bgpvpn_id: bgpvpn-id-path
- router_association_id: bgpvpn-router_association_id-path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- router_association: bgpvpn-router_association
- id: bgpvpn-router_association_id
- router_id: bgpvpn-router_id
- tenant_id: project_id
- project_id: project_id
Response Example
----------------
.. literalinclude:: samples/bgpvpn/router_associations/router_association-show-response.json
:language: javascript
Update a Router Association ('bgpvpn-routes-control' extension)
===============================================================
.. note:: This operation is only available when the ``bgpvpn-routes-control``
API extension is enabled.
.. rest_method:: PUT /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations/{router_association_id}
Updates a router association.
Normal response codes: 201
Error response codes: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- bgpvpn_id: bgpvpn-id-path
- router_association_id: bgpvpn-router_association_id-path
- router_association: bgpvpn-router_association
- advertise_extra_routes: bgpvpn-advertise_extra_routes-request
Request Example
---------------
.. literalinclude:: samples/bgpvpn/router_associations/router_association-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- router_association: bgpvpn-router_association
- id: bgpvpn-router_association_id
- router_id: bgpvpn-router_id
- project_id: project_id
- advertise_extra_routes: bgpvpn-advertise_extra_routes
Response Example
----------------
.. literalinclude:: samples/bgpvpn/router_associations/router_association-update-response.json
:language: javascript
Delete Router Association
==========================
.. rest_method:: DELETE /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations/{router_association_id}
Deletes a router association.
Normal response codes: 204
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- bgpvpn_id: bgpvpn-id-path
- router_association_id: bgpvpn-router_association_id-path
Response
--------
There is no body content for the response of a successful DELETE request.