diff --git a/api-ref/source/v2/extraroute.inc b/api-ref/source/v2/extraroute.inc
deleted file mode 100644
index e3f60c460..000000000
--- a/api-ref/source/v2/extraroute.inc
+++ /dev/null
@@ -1,83 +0,0 @@
-.. -*- rst -*-
-.. needs:method_verification
-.. needs:parameter_verification
-.. needs:example_verification
-.. needs:body_verification
-
-======================
-Extra routes (routers)
-======================
-
-Adds extra routes to the ``router`` resource.
-
-You can update a router to add a set of next hop IPs and
-destination CIDRs.
-
-The next hop IP must be part of a subnet to which the router
-interfaces are connected. You can configure the ``routes``
-attribute on only update operations.
-
-Update extra routes
-===================
-
-.. rest_method::  PUT /v2.0/routers/{router_id}
-
-Updates extra routes on a router.
-
-The next hop IP address must be a part of one of the subnets to
-which the router interfaces are connected. Otherwise, the server
-responds with the ``Bad Request (400)`` error code.
-
-When a validation error is detected, such as a format error of IP
-address or CIDR, the server responds with the ``Bad Request (400)``
-response code.
-
-When Networking receives a request to delete the router interface
-for subnets that are used by one or more routes, it responds with a
-``Conflict (409)`` response code.
-
-Normal response codes: 200
-
-Error response codes: 404,409,401,400
-
-Request
--------
-
-.. rest_parameters:: parameters.yaml
-
-   - external_gateway_info: external_gateway_info
-   - destination: destination
-   - nexthop: nexthop
-   - routes: routes
-   - router: router
-   - external_fixed_ips: external_fixed_ips
-   - router_id: router_id
-
-Request Example
----------------
-
-.. literalinclude:: samples/routers/router-update-request.json
-   :language: javascript
-
-Response Parameters
--------------------
-
-.. rest_parameters:: parameters.yaml
-
-   - external_gateway_info: external_gateway_info
-   - status: status
-   - enable_snat: enable_snat
-   - name: name
-   - admin_state_up: admin_state_up
-   - tenant_id: tenant_id
-   - routes: routes
-   - router: router
-   - id: id
-   - external_fixed_ips: external_fixed_ips
-
-Response Example
-----------------
-
-.. literalinclude:: samples/routers/router-update-response.json
-   :language: javascript
-
diff --git a/api-ref/source/v2/index.rst b/api-ref/source/v2/index.rst
index 64dbf1b8b..31d42b19a 100644
--- a/api-ref/source/v2/index.rst
+++ b/api-ref/source/v2/index.rst
@@ -18,7 +18,6 @@ Networking API v2.0
 .. include:: subnetpools.inc
 .. include:: routers.inc
 .. include:: floatingips.inc
-.. include:: extraroute.inc
 .. include:: security-groups.inc
 .. include:: security-group-rules.inc
 .. include:: quotas.inc
diff --git a/api-ref/source/v2/parameters.yaml b/api-ref/source/v2/parameters.yaml
index 9650e7891..c42643f61 100644
--- a/api-ref/source/v2/parameters.yaml
+++ b/api-ref/source/v2/parameters.yaml
@@ -129,9 +129,9 @@ resource_type:
   type: string
 router_id:
   description: |
-    The UUID of the router.
+    The ID of the router.
   in: path
-  required: false
+  required: true
   type: string
 rule_id:
   description: |
@@ -186,6 +186,12 @@ vip_id_1:
 fields:
   description: |
     The fields that you want the server to return.
+    If no ``fields`` query parameter is specified,
+    the networking API returns all attributes allowed by the policy settings.
+    By using ``fields`` parameter, the API returns only the requested set of
+    attributes. ``fields`` parameter can be specified multiple times.
+    For example, if you specify ``fields=id&fields=name`` in the request URL,
+    only ``id`` and ``name`` attributes will be returned.
   in: query
   required: false
   type: string
@@ -263,9 +269,17 @@ address_scope_id_1:
   type: string
 admin_state_up:
   description: |
-    The administrative state of the network, which is
+    The administrative state of the resource, which is
     up (``true``) or down (``false``).
   in: body
+  required: true
+  type: boolean
+admin_state_up-request:
+  description: |
+    The administrative state of the resource, which is
+    up (``true``) or down (``false``).
+    Default is ``true``.
+  in: body
   required: false
   type: boolean
 admin_state_up_1:
@@ -727,8 +741,13 @@ delay_2:
   type: integer
 description:
   description: |
-    The human-readable description for the firewall
-    policy.
+    The human-readable description for the resource.
+  in: body
+  required: true
+  type: string
+description-request:
+  description: |
+    The human-readable description for the resource.
   in: body
   required: false
   type: string
@@ -952,12 +971,6 @@ description_9:
   in: body
   required: false
   type: string
-destination:
-  description: |
-    The destination CIDR.
-  in: body
-  required: false
-  type: string
 destination_ip_address:
   description: |
     The destination IPv4 or IPv6 address or CIDR. No
@@ -1041,12 +1054,6 @@ direction_2:
   in: body
   required: true
   type: string
-distributed:
-  description: |
-    If ``true``, indicates a distributed router.
-  in: body
-  required: true
-  type: boolean
 dpd:
   description: |
     A dictionary with dead peer detection (DPD)
@@ -1099,23 +1106,6 @@ dscp_marking_rules:
   in: body
   required: true
   type: array
-enable_snat:
-  description: |
-    Enable Source NAT (SNAT) attribute. Default is
-    ``true``. To persist this attribute value, set the
-    ``enable_snat_by_default`` option in the ``neutron.conf`` file.
-  in: body
-  required: false
-  type: boolean
-enable_snat_1:
-  description: |
-    Enable Source NAT (SNAT) attribute, a part of
-    ext-gw-mode extension. When a gateway is attached to a router
-    using an L3 extension, Network Address Translation (NAT) is
-    enabled for traffic generated by subnets attached to the router.
-  in: body
-  required: true
-  type: boolean
 enabled:
   description: |
     Set to ``false`` to disable this rule in the
@@ -1270,34 +1260,6 @@ extension:
   in: body
   required: true
   type: object
-external_fixed_ips:
-  description: |
-    The IP address parameters.
-  in: body
-  required: false
-  type: array
-external_fixed_ips_1:
-  description: |
-    The IP address parameters.
-  in: body
-  required: true
-  type: array
-external_gateway_info:
-  description: |
-    The external gateway parameters, which include
-    the ``network_id``, ``enable_snat`` and ``external_fixed_ips``
-    parameters.
-  in: body
-  required: false
-  type: object
-external_gateway_info_1:
-  description: |
-    The external gateway parameters, which include
-    the ``network_id``, ``enable_snat`` and ``external_fixed_ips``
-    parameters.
-  in: body
-  required: true
-  type: object
 external_v4_ip:
   description: |
     Read-only external (public) IPv4 address that is
@@ -1515,12 +1477,6 @@ floatingips:
   in: body
   required: true
   type: array
-ha:
-  description: |
-    If ``true``, indicates a highly-available router.
-  in: body
-  required: true
-  type: boolean
 health_monitor:
   description: |
     A ``health_monitor`` object.
@@ -1692,12 +1648,6 @@ id_26:
   in: body
   required: true
   type: string
-id_27:
-  description: |
-    The UUID of the router.
-  in: body
-  required: true
-  type: string
 id_28:
   description: |
     The UUID of the service profile.
@@ -2191,7 +2141,14 @@ mtu_3:
   type: integer
 name:
   description: |
-    The network name.
+    Human-readable name of the resource.
+  in: body
+  required: true
+  type: string
+name-request:
+  description: |
+    Human-readable name of the resource.
+    Default is an empty string.
   in: body
   required: false
   type: string
@@ -2219,12 +2176,6 @@ name_12:
   in: body
   required: false
   type: string
-name_13:
-  description: |
-    The router name.
-  in: body
-  required: false
-  type: string
 name_14:
   description: |
     A symbolic name for the security group. Does not
@@ -2537,12 +2488,6 @@ networks:
   in: body
   required: true
   type: array
-nexthop:
-  description: |
-    The IP address of the next hop.
-  in: body
-  required: false
-  type: string
 operating_status:
   description: |
     The operating status of the load balancer.  This
@@ -3108,6 +3053,204 @@ router:
   in: body
   required: true
   type: object
+router-availability_zone_hints:
+  description: |
+    The availability zone candidates for the router.
+    It is available when ``router_availability_zone`` extension is enabled.
+  in: body
+  required: true
+  type: array
+router-availability_zone_hints-request:
+  description: |
+    The availability zone candidates for the router.
+    It is available when ``router_availability_zone`` extension is enabled.
+  in: body
+  required: false
+  type: array
+router-availability_zones:
+  description: |
+    The availability zone(s) for the router.
+    It is available when ``router_availability_zone`` extension is enabled.
+  in: body
+  required: true
+  type: array
+router-destination:
+  description: |
+    The destination CIDR.
+  in: body
+  required: true
+  type: string
+router-distributed:
+  description: |
+    ``true`` indicates a distributed router.
+    It is available when ``dvr`` extension is enabled.
+  in: body
+  required: true
+  type: boolean
+router-distributed-request:
+  description: |
+    ``true`` indicates a distributed router.
+    It is available when ``dvr`` extension is enabled.
+  in: body
+  required: false
+  type: boolean
+router-enable_snat:
+  description: |
+    Enable Source NAT (SNAT) attribute.
+    ``true`` means Network Address Translation (NAT) is enabled
+    for traffic generated by subnets attached to the router
+    when the traffic is sent to/received from the external network.
+    ``false`` means no NAT is applied for traffic from/to the external network.
+    It is available when ``ext-gw-mode`` extension is enabled.
+  in: body
+  required: true
+  type: boolean
+router-enable_snat-request:
+  description: |
+    Enable Source NAT (SNAT) attribute. Default is
+    ``true``. To persist this attribute value, set the
+    ``enable_snat_by_default`` option in the ``neutron.conf`` file.
+    It is available when ``ext-gw-mode`` extension is enabled.
+  in: body
+  required: false
+  type: boolean
+router-external_fixed_ips:
+  description: |
+    IP address(es) of the external gateway of the router.
+    It is a list of IP addresses. Each element of the list
+    is a dictionary of ``ip_address`` and ``subnet_id``.
+  in: body
+  required: true
+  type: array
+router-external_fixed_ips-request:
+  description: |
+    IP address(es) of the external gateway interface of the router.
+    It is a list of IP addresses you would like to assign to the
+    external gateway interface. Each element of ths list is
+    a dictionary of ``ip_address`` and ``subnet_id``.
+  in: body
+  required: false
+  type: array
+router-external_gateway_info:
+  description: |
+    The external gateway information of the router.
+    If the router has an external gateway, this would be a dict with
+    ``network_id``, ``enable_snat`` and ``external_fixed_ips``.
+    Otherwise, this would be ``null``.
+  in: body
+  required: true
+  type: dict
+router-external_gateway_info-request:
+  description: |
+    The external gateway information of the router.
+    If the router has an external gateway, this would be a dict with
+    ``network_id``, ``enable_snat`` and ``external_fixed_ips``.
+    Otherwise, this would be ``null``.
+  in: body
+  required: false
+  type: dict
+router-ha:
+  description: |
+    ``true`` indicates a highly-available router.
+    It is available when ``l3-ha`` extension is enabled.
+  in: body
+  required: true
+  type: boolean
+router-ha-request:
+  description: |
+    ``true`` indicates a highly-available router.
+    It is available when ``l3-ha`` extension is enabled.
+  in: body
+  required: false
+  type: boolean
+router-id-body:
+  description: |
+    The ID of the router.
+  in: body
+  required: true
+  type: string
+router-name-request:
+  description: |
+    The router name.
+  in: body
+  required: false
+  type: string
+router-network_id:
+  description: |
+    Network ID which the router gateway is connected to.
+  in: body
+  required: true
+  type: string
+router-network_id-interface:
+  description: |
+    Network ID which the router interface is connected to.
+  in: body
+  required: true
+  type: string
+router-nexthop:
+  description: |
+    The IP address of the next hop for the corresponding destination.
+    The next hop IP address must be a part of one of the subnets to
+    which the router interfaces are connected.
+  in: body
+  required: true
+  type: string
+router-port_id:
+  description: |
+    The ID of the port which represents the router interface.
+  in: body
+  required: true
+  type: string
+router-port_id-request:
+  description: |
+    The ID of the port.
+    One of ``subnet_id`` or ``port_id`` must be specified.
+  in: body
+  required: false
+  type: string
+router-routes:
+  description: |
+    The extra routes configuration for L3 router.
+    A list of dictionaries with ``destination`` and ``nexthop`` parameters.
+    It is available when ``extraroute`` extension is enabled.
+  in: body
+  required: true
+  type: array
+router-routes-request:
+  description: |
+    The extra routes configuration for L3 router.
+    A list of dictionaries with ``destination`` and ``nexthop`` parameters.
+    It is available when ``extraroute`` extension is enabled.
+    Default is an empty list (``[]``).
+  in: body
+  required: false
+  type: array
+router-subnet_id:
+  description: |
+    The ID of the subnet which the router interface belongs to.
+  in: body
+  required: true
+  type: string
+router-subnet_id-request:
+  description: |
+    The ID of the subnet.
+    One of ``subnet_id`` or ``port_id`` must be specified.
+  in: body
+  required: false
+  type: string
+router-subnet_ids:
+  description: |
+    A list of the ID of the subnet which the router interface belongs to.
+    The list contains only one member.
+  in: body
+  required: true
+  type: array
+router-tenant_id-interface:
+  description: |
+    The ID of the tenant who owns the router interface.
+  in: body
+  required: true
+  type: string
 router:external:
   description: |
     Indicates whether this network is externally
@@ -3168,33 +3311,18 @@ router_ids_1:
   in: body
   required: true
   type: array
+router_status:
+  description: |
+    The router status.
+  in: body
+  required: true
+  type: string
 routers:
   description: |
     A list of ``router`` objects.
   in: body
   required: true
   type: array
-routes:
-  description: |
-    The extra routes configuration for L3 router.
-  in: body
-  required: true
-  type: array
-routes_1:
-  description: |
-    A list of dictionary pairs in this format:
-
-    ::
-
-       [
-         {
-           "nexthop":"IPADDRESS",
-           "destination":"CIDR"
-         }
-       ]
-  in: body
-  required: false
-  type: object
 security_group:
   description: |
     A ``security_group`` object.
@@ -3621,12 +3749,6 @@ subnet_id_4:
   in: body
   required: true
   type: string
-subnet_id_5:
-  description: |
-    The UUID of the subnet.
-  in: body
-  required: true
-  type: string
 subnet_id_6:
   description: |
     If you omit this parameter, LBaaS uses the
@@ -3701,9 +3823,15 @@ tags:
   type: array
 tenant_id:
   description: |
-    The UUID of the tenant who owns the network. Only
-    administrative users can specify a tenant UUID other than their
-    own. You cannot change this value through authorization policies.
+    The ID of the tenant who owns the resource.
+  in: body
+  required: true
+  type: string
+tenant_id-request:
+  description: |
+    The ID of the tenant who owns the resource.
+    Only administrative users can specify a tenant UUID other than their own.
+    You cannot change this value through authorization policies.
   in: body
   required: false
   type: string
diff --git a/api-ref/source/v2/routers.inc b/api-ref/source/v2/routers.inc
index 29c9ebeba..9346dcad3 100644
--- a/api-ref/source/v2/routers.inc
+++ b/api-ref/source/v2/routers.inc
@@ -1,350 +1,26 @@
 .. -*- rst -*-
-.. needs:method_verification
-.. needs:parameter_verification
-.. needs:example_verification
-.. needs:body_verification
 
 =================
 Routers (routers)
 =================
 
-Routes packets between subnets, forwards packets from internal
-networks to external ones, and accesses instances from external
-networks through floating IPs.
+A ``router`` is a logical entity for forwarding packets across
+internal subnets and NATting them on external networks through an
+appropriate external gateway.
 
-This extension introduces these resources:
-
-- **router**. A logical entity for forwarding packets across
-  internal subnets and NATting them on external networks through an
-  appropriate external gateway.
-
-- **floatingip**. An external IP address that you map to a port in
-  an internal network.
-
-Add interface to router
-=======================
-
-.. rest_method::  PUT /v2.0/routers/{router_id}/add_router_interface
-
-Adds an internal interface to a logical router.
-
-Attaches a subnet to an internal router interface.
-
-Specify the UUID of a subnet or port in the request body:
-
-- Subnet UUID. The gateway IP address for the subnet is used to
-  create the router interface.
-
-- Port UUID. The IP address associated with the port is used to
-  create the router interface.
-
-When you specify an IPv6 subnet, this operation adds the subnet to
-an existing internal port with same network UUID, on the router. If
-a port with the same network UUID does not exist, this operation
-creates a port on the router for that subnet.
-
-The limitation of one IPv4 subnet per router port remains, though a
-port can contain any number of IPv6 subnets that belong to the same
-network UUID.
-
-When you use the ``port-create`` command to add a port and then
-call ``router-interface-add`` with this port UUID, this operation
-adds the port to the router if the following conditions are met:
-
-- The port has no more than one IPv4 subnet.
-
-  The IPv6 subnets, if any, on the port do not have same network
-  UUID as the network UUID of IPv6 subnets on any other ports.
-
-If you specify both UUIDs, this operation returns the ``Bad Request
-(400)`` response code.
-
-If the port is already in use, this operation returns the
-``Conflict (409)`` response code.
-
-This operation returns a port UUID that is either:
-
-- The same UUID that is passed in the request body.
-
-- The UUID of a port that this operation creates to attach the
-  subnet to the router.
-
-After you run this operation, the operation sets:
-
-- The device UUID of this port to the router UUID.
-
-- The ``device_owner`` attribute to ``network:router_interface``.
-
-Normal response codes: 200
-
-Error response codes: 404,409,401,400
-
-Request
--------
-
-.. rest_parameters:: parameters.yaml
-
-   - subnet_id: subnet_id
-   - port_id: port_id
-   - router_id: router_id
-
-Request Example
----------------
-
-.. literalinclude:: samples/routers/router-add-interface-request.json
-   :language: javascript
-
-Response Parameters
--------------------
-
-.. rest_parameters:: parameters.yaml
-
-   - subnet_id: subnet_id
-   - tenant_id: tenant_id
-   - port_id: port_id
-   - id: id
-
-Response Example
-----------------
-
-.. literalinclude:: samples/routers/router-add-interface-response.json
-   :language: javascript
-
-Delete interface from router
-============================
-
-.. rest_method::  PUT /v2.0/routers/{router_id}/remove_router_interface
-
-Deletes an internal interface from a logical router.
-
-This operation deletes an internal router interface, which detaches
-a subnet from the router. If this subnet UUID is the last subnet on
-the port, this operation deletes the port itself. You must specify
-either a subnet UUID or port UUID in the request body; the
-operation uses this value to identify which router interface to
-deletes.
-
-You can also specify both a subnet UUID and port UUID. If you
-specify both UUIDs, the subnet UUID must correspond to the subnet
-UUID of the first IP address on the port. Otherwise, this operation
-returns the ``Conflict (409)`` response code with information about
-the affected router and interface.
-
-If the router or the subnet and port do not exist or are not
-visible to you, this operation returns the ``Not Found (404)``
-response code. As a consequence of this operation, the operation
-removes the port connecting the router with the subnet from the
-subnet for the network.
-
-This example deletes an interface from a router:
-
-::
-
-   PUT /v2.0/routers/{router_id}/remove_router_interface Accept: application/json
-
-Normal response codes: 200
-
-Error response codes: 404,409,401,400
-
-Request
--------
-
-.. rest_parameters:: parameters.yaml
-
-   - subnet_id: subnet_id
-   - port_id: port_id
-   - router_id: router_id
-
-Request Example
----------------
-
-.. literalinclude:: samples/routers/router-remove-interface-request.json
-   :language: javascript
-
-Response Parameters
--------------------
-
-.. rest_parameters:: parameters.yaml
-
-   - subnet_id: subnet_id
-   - tenant_id: tenant_id
-   - port_id: port_id
-   - id: id
-
-Response Example
-----------------
-
-.. literalinclude:: samples/routers/router-remove-interface-response.json
-   :language: javascript
-
-Show router details
-===================
-
-.. rest_method::  GET /v2.0/routers/{router_id}
-
-Shows details for a router.
-
-This example request shows details for a router in JSON format:
-
-::
-
-   GET /v2.0/routers/{router_id} Accept: application/json
-
-Use the ``fields`` query parameter to control which fields are
-returned in the response body. For information, see `Filtering and
-Column Selection <http://specs.openstack.org/openstack/neutron-
-specs/specs/api/networking_general_api_information.html#filtering-
-and-column-selection>`__.
-
-Normal response codes: 200
-
-Error response codes: 404,403,401
-
-Request
--------
-
-.. rest_parameters:: parameters.yaml
-
-   - router_id: router_id
-
-Response Parameters
--------------------
-
-.. rest_parameters:: parameters.yaml
-
-   - external_gateway_info: external_gateway_info
-   - status: status
-   - availability_zone_hints: availability_zone_hints
-   - availability_zones: availability_zones
-   - name: name
-   - admin_state_up: admin_state_up
-   - tenant_id: tenant_id
-   - distributed: distributed
-   - enable_snat: enable_snat
-   - routes: routes
-   - router: router
-   - ha: ha
-   - id: id
-   - external_fixed_ips: external_fixed_ips
-
-Response Example
-----------------
-
-.. literalinclude:: samples/routers/router-show-response.json
-   :language: javascript
-
-Update router
-=============
-
-.. rest_method::  PUT /v2.0/routers/{router_id}
-
-Updates a logical router.
-
-You can update the name, administrative state, and the external
-gateway. For more information about how to set the external gateway
-for a router, see the create router operation. This operation does
-not enable the update of router interfaces. To update a router, use
-the add router interface and remove router interface operations.
-
-This example updates the external gateway information for a router:
-
-::
-
-   PUT /v2.0/routers/{router_id} Accept: application/json
-
-Normal response codes: 200
-
-Error response codes: 404,401,400
-
-Request
--------
-
-.. rest_parameters:: parameters.yaml
-
-   - external_gateway_info: external_gateway_info
-   - enable_snat: enable_snat
-   - name: name
-   - admin_state_up: admin_state_up
-   - router: router
-   - external_fixed_ips: external_fixed_ips
-   - router_id: router_id
-
-Request Example
----------------
-
-.. literalinclude:: samples/routers/router-update-request.json
-   :language: javascript
-
-Response Parameters
--------------------
-
-.. rest_parameters:: parameters.yaml
-
-   - external_gateway_info: external_gateway_info
-   - status: status
-   - availability_zone_hints: availability_zone_hints
-   - availability_zones: availability_zones
-   - name: name
-   - admin_state_up: admin_state_up
-   - tenant_id: tenant_id
-   - distributed: distributed
-   - enable_snat: enable_snat
-   - routes: routes
-   - router: router
-   - ha: ha
-   - id: id
-   - external_fixed_ips: external_fixed_ips
-
-Response Example
-----------------
-
-.. literalinclude:: samples/routers/router-update-response.json
-   :language: javascript
-
-Delete router
-=============
-
-.. rest_method::  DELETE /v2.0/routers/{router_id}
-
-Deletes a logical router and, if present, its external gateway interface.
-
-This operation fails if the router has attached interfaces.
-
-Use the remove router interface operation to remove all router
-interfaces before you delete the router.
-
-This example deletes a router:
-
-::
-
-   DELETE /v2.0/routers/{router_id} Accept: application/json
-
-Error response codes: 409,404,204,401
-
-Request
--------
-
-.. rest_parameters:: parameters.yaml
-
-   - router_id: router_id
+This resource is provided when ``router`` extension is enabled.
 
 List routers
 ============
 
 .. rest_method::  GET /v2.0/routers
 
-Lists logical routers that the tenant who submits the request can access.
+Lists logical routers that the project who submits the request can access.
 
-Default policy settings return only those routers that the tenant
+Default policy settings return only those routers that the project
 who submits the request owns, unless an administrative user submits
 the request.
 
-This example request lists routers in JSON format:
-
-::
-
-   GET /v2.0/routers Accept: application/json
-
 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
@@ -358,25 +34,33 @@ Error response codes: 401
 Request
 -------
 
+.. rest_parameters:: parameters.yaml
+
+   - fields: fields
+
 Response Parameters
 -------------------
 
 .. rest_parameters:: parameters.yaml
 
-   - external_gateway_info: external_gateway_info
-   - status: status
-   - availability_zone_hints: availability_zone_hints
-   - availability_zones: availability_zones
-   - name: name
-   - admin_state_up: admin_state_up
    - routers: routers
-   - distributed: distributed
-   - enable_snat: enable_snat
+   - id: router-id-body
    - tenant_id: tenant_id
-   - routes: routes
-   - ha: ha
-   - id: id
-   - external_fixed_ips: external_fixed_ips
+   - name: name
+   - description: description
+   - admin_state_up: admin_state_up
+   - status: router_status
+   - external_gateway_info: router-external_gateway_info
+   - network_id: router-network_id
+   - enable_snat: router-enable_snat
+   - external_fixed_ips: router-external_fixed_ips
+   - routes: router-routes
+   - destination: router-destination
+   - nexthop: router-nexthop
+   - distributed: router-distributed
+   - ha: router-ha
+   - availability_zone_hints: router-availability_zone_hints
+   - availability_zones: router-availability_zones
 
 Response Example
 ----------------
@@ -397,33 +81,31 @@ subnet. You can optionally specify an external gateway for a router
 at create time. The external gateway for the router must be plugged
 into an external network. An external network has its
 ``router:external`` extended field set to ``true``. To specify an
-external gateway, the UUID of the external network must be passed
-in the ``external_gateway_info`` attribute in the request body, as
-follows:
+external gateway, the ID of the external network must be passed
+in the ``network_id`` parameter of the ``external_gateway_info``
+attribute in the request body.
 
-.. code-block:: json
+Normal response codes: 201
 
-   {
-      "router": {
-         "external_gateway_info": {
-            "network_id": "8ca37218-28ff-41cb-9b10-039601ea7e6b"
-         }
-      }
-   }
-
-Error response codes: 201,401,400
+Error response codes: 400, 401
 
 Request
 -------
 
 .. rest_parameters:: parameters.yaml
 
-   - external_gateway_info: external_gateway_info
-   - enable_snat: enable_snat
-   - name: name
-   - admin_state_up: admin_state_up
    - router: router
-   - external_fixed_ips: external_fixed_ips
+   - tenant_id: tenant_id-request
+   - name: name-request
+   - description: description-request
+   - admin_state_up: admin_state_up-request
+   - external_gateway_info: router-external_gateway_info-request
+   - network_id: router-network_id
+   - enable_snat: router-enable_snat-request
+   - external_fixed_ips: router-external_fixed_ips-request
+   - distributed: router-distributed-request
+   - ha: router-ha-request
+   - availability_zone_hints: router-availability_zone_hints-request
 
 Request Example
 ---------------
@@ -436,18 +118,341 @@ Response Parameters
 
 .. rest_parameters:: parameters.yaml
 
-   - external_gateway_info: external_gateway_info
-   - status: status
-   - availability_zone_hints: availability_zone_hints
-   - availability_zones: availability_zones
+   - router: router
+   - id: router-id-body
+   - tenant_id: tenant_id
+   - name: name
+   - description: description
+   - admin_state_up: admin_state_up
+   - status: router_status
+   - external_gateway_info: router-external_gateway_info
+   - network_id: router-network_id
+   - enable_snat: router-enable_snat
+   - external_fixed_ips: router-external_fixed_ips
+   - routes: router-routes
+   - destination: router-destination
+   - nexthop: router-nexthop
+   - distributed: router-distributed
+   - ha: router-ha
+   - availability_zone_hints: router-availability_zone_hints
+   - availability_zones: router-availability_zones
+
+Response Example
+----------------
+
+.. literalinclude:: samples/routers/router-create-response.json
+   :language: javascript
+
+Show router details
+===================
+
+.. rest_method::  GET /v2.0/routers/{router_id}
+
+Shows details for a router.
+
+Use the ``fields`` query parameter to control which fields are
+returned in the response body. For information, see `Filtering and
+Column Selection <http://specs.openstack.org/openstack/neutron-
+specs/specs/api/networking_general_api_information.html#filtering-
+and-column-selection>`__.
+
+Normal response codes: 200
+
+Error response codes: 401, 403, 404
+
+Request
+-------
+
+.. rest_parameters:: parameters.yaml
+
+   - router_id: router_id
+   - fields: fields
+
+Response Parameters
+-------------------
+
+.. rest_parameters:: parameters.yaml
+
+   - router: router
+   - id: router-id-body
+   - tenant_id: tenant_id
+   - name: name
+   - description: description
+   - admin_state_up: admin_state_up
+   - status: router_status
+   - external_gateway_info: router-external_gateway_info
+   - network_id: router-network_id
+   - enable_snat: router-enable_snat
+   - external_fixed_ips: router-external_fixed_ips
+   - routes: router-routes
+   - destination: router-destination
+   - nexthop: router-nexthop
+   - distributed: router-distributed
+   - ha: router-ha
+   - availability_zone_hints: router-availability_zone_hints
+   - availability_zones: router-availability_zones
+
+Response Example
+----------------
+
+.. literalinclude:: samples/routers/router-show-response.json
+   :language: javascript
+
+Update router
+=============
+
+.. rest_method::  PUT /v2.0/routers/{router_id}
+
+Updates a logical router.
+
+This operation does not enable the update of router interfaces.
+To update a router intreface, use the add router interface and
+remove router interface operations.
+
+Normal response codes: 200
+
+Error response codes: 400, 401, 404
+
+Request
+-------
+
+.. rest_parameters:: parameters.yaml
+
+   - router: router
+   - external_gateway_info: router-external_gateway_info
+   - enable_snat: router-enable_snat
    - name: name
    - admin_state_up: admin_state_up
-   - tenant_id: tenant_id
-   - distributed: distributed
-   - enable_snat: enable_snat
-   - routes: routes
-   - router: router
-   - ha: ha
-   - id: id
-   - external_fixed_ips: external_fixed_ips
+   - external_fixed_ips: router-external_fixed_ips
+   - router_id: router_id
+
+Request Example
+---------------
+
+.. literalinclude:: samples/routers/router-update-request.json
+   :language: javascript
+
+Response Parameters
+-------------------
+
+.. rest_parameters:: parameters.yaml
+
+   - router: router
+   - id: router-id-body
+   - tenant_id: tenant_id
+   - name: name
+   - description: description
+   - admin_state_up: admin_state_up
+   - status: router_status
+   - external_gateway_info: router-external_gateway_info
+   - network_id: router-network_id
+   - enable_snat: router-enable_snat
+   - external_fixed_ips: router-external_fixed_ips
+   - routes: router-routes
+   - destination: router-destination
+   - nexthop: router-nexthop
+   - distributed: router-distributed
+   - ha: router-ha
+   - availability_zone_hints: router-availability_zone_hints
+   - availability_zones: router-availability_zones
+
+Response Example
+----------------
+
+.. literalinclude:: samples/routers/router-update-response.json
+   :language: javascript
+
+Delete router
+=============
+
+.. rest_method::  DELETE /v2.0/routers/{router_id}
+
+Deletes a logical router and, if present, its external gateway interface.
+
+This operation fails if the router has attached interfaces.
+Use the remove router interface operation to remove all router
+interfaces before you delete the router.
+
+Normal response codes: 204
+
+Error response codes: 401, 404, 409
+
+Request
+-------
+
+.. rest_parameters:: parameters.yaml
+
+   - router_id: router_id
+
+Response
+--------
+
+There is no body content for the response of a successful DELETE request.
+
+Add interface to router
+=======================
+
+.. rest_method::  PUT /v2.0/routers/{router_id}/add_router_interface
+
+Adds an internal interface to a logical router.
+This means a specified subnet is attached to a router
+as an internal router interface.
+
+Specify the ID of a subnet or port in the request body:
+
+- Subnet ID. The gateway IP address for the subnet is used as
+  an IP address of the created router interface.
+
+- Port ID. The IP address associated with the port is used as
+  an IP address of the created router interface.
+
+When you specify an IPv6 subnet, this operation adds the subnet to
+an existing internal port with same network ID, on the router. If
+a port with the same network ID does not exist, this operation
+creates a port on the router for that subnet.
+
+The limitation of one IPv4 subnet per router port remains, though a
+port can contain any number of IPv6 subnets that belong to the same
+network ID.
+
+When you use the ``port-create`` command to add a port and then
+call ``router-interface-add`` with this port ID, this operation
+adds the port to the router if the following conditions are met:
+
+- The port has no more than one IPv4 subnet.
+- The IPv6 subnets, if any, on the port do not have same network
+  ID as the network ID of IPv6 subnets on any other ports.
+
+If you specify both subnet ID and port ID,
+this operation returns the ``Bad Request (400)`` response code.
+
+If the port is already in use, this operation returns the
+``Conflict (409)`` response code.
+
+This operation returns a port ID that is either:
+
+- The same ID that is passed in the request body
+  when a port is specified.
+- The ID of a port that this operation creates to attach the
+  subnet to the router.
+
+After you run this operation, the operation sets:
+
+- The ``device_id`` attribute of this port to the router ID
+- The ``device_owner`` attribute to ``network:router_interface``
+
+Normal response codes: 200
+
+Error response codes: 400, 401, 404, 409
+
+Request
+-------
+
+.. rest_parameters:: parameters.yaml
+
+   - router_id: router_id
+   - subnet_id: router-subnet_id-request
+   - port_id: router-port_id-request
+
+Request Example
+---------------
+
+.. literalinclude:: samples/routers/router-add-interface-request.json
+   :language: javascript
+
+or
+
+.. literalinclude:: samples/routers/router-add-interface-request-with-port.json
+   :language: javascript
+
+Response Parameters
+-------------------
+
+.. rest_parameters:: parameters.yaml
+
+   - id: router-id-body
+   - subnet_id: router-subnet_id
+   - subnet_ids: router-subnet_ids
+   - tenant_id: router-tenant_id-interface
+   - port_id: router-port_id
+   - network_id: router-network_id-interface
+
+Response Example
+----------------
+
+.. literalinclude:: samples/routers/router-add-interface-response.json
+   :language: javascript
+
+Remove interface from router
+============================
+
+.. rest_method::  PUT /v2.0/routers/{router_id}/remove_router_interface
+
+Deletes an internal interface from a logical router.
+
+This operation deletes an internal router interface, which detaches
+a subnet from the router. If this subnet ID is the last subnet on
+the port, this operation deletes the port itself. You must specify
+either a subnet ID or port ID in the request body; the
+operation uses this value to identify which router interface to
+deletes.
+
+You can also specify both a subnet ID and port ID. If you
+specify both IDs, the subnet ID must correspond to the subnet
+ID of the first IP address on the port. Otherwise, this operation
+returns the ``Conflict (409)`` response code with information about
+the affected router and interface.
+
+If you try to delete the router interface for subnets that are used
+by one or more ``routes``, this operation returns the ``Conflict (409)``
+response. In this case, you first need to delete such routes from
+the router.
+
+If the router or the subnet and port do not exist or are not
+visible to you, this operation returns the ``Not Found (404)``
+response code. As a consequence of this operation, the operation
+removes the port connecting the router with the subnet from the
+subnet for the network.
+
+Normal response codes: 200
+
+Error response codes: 400, 401, 404, 409
+
+Request
+-------
+
+.. rest_parameters:: parameters.yaml
+
+   - router_id: router_id
+   - subnet_id: router-subnet_id-request
+   - port_id: router-port_id-request
+
+Request Example
+---------------
+
+.. literalinclude:: samples/routers/router-remove-interface-request.json
+   :language: javascript
+
+or
+
+.. literalinclude:: samples/routers/router-remove-interface-request-with-port.json
+   :language: javascript
+
+Response Parameters
+-------------------
+
+.. rest_parameters:: parameters.yaml
+
+   - id: router-id-body
+   - subnet_id: router-subnet_id
+   - subnet_ids: router-subnet_ids
+   - tenant_id: router-tenant_id-interface
+   - port_id: router-port_id
+   - network_id: router-network_id-interface
+
+Response Example
+----------------
+
+.. literalinclude:: samples/routers/router-remove-interface-response.json
+   :language: javascript
 
diff --git a/api-ref/source/v2/samples/routers/router-add-interface-request-with-port.json b/api-ref/source/v2/samples/routers/router-add-interface-request-with-port.json
new file mode 100644
index 000000000..4270a8cd8
--- /dev/null
+++ b/api-ref/source/v2/samples/routers/router-add-interface-request-with-port.json
@@ -0,0 +1,3 @@
+{
+    "port_id": "2dc46bcc-d1f2-4077-b99e-91ee28afaff0"
+}
diff --git a/api-ref/source/v2/samples/routers/router-add-interface-response.json b/api-ref/source/v2/samples/routers/router-add-interface-response.json
index 7d235eff2..5aab42aac 100644
--- a/api-ref/source/v2/samples/routers/router-add-interface-response.json
+++ b/api-ref/source/v2/samples/routers/router-add-interface-response.json
@@ -1,9 +1,10 @@
 {
+    "id": "915a14a6-867b-4af7-83d1-70efceb146f9",
+    "network_id": "91c013e2-d65a-474e-9177-c3e1799ca726",
+    "port_id": "2dc46bcc-d1f2-4077-b99e-91ee28afaff0",
     "subnet_id": "a2f1f29d-571b-4533-907f-5803ab96ead1",
-    "tenant_id": "6ba032e4730d42e2ad928f430f5da33e",
     "subnet_ids": [
         "a2f1f29d-571b-4533-907f-5803ab96ead1"
     ],
-    "port_id": "3a44f4e5-1694-493a-a1fb-393881c673a4",
-    "id": "b0294d7e-7da4-4202-9882-2ab1de9dabc0"
+    "tenant_id": "0bd18306d801447bb457a46252d82d13"
 }
diff --git a/api-ref/source/v2/samples/routers/router-create-request.json b/api-ref/source/v2/samples/routers/router-create-request.json
index 296bdb36c..e9e332f3c 100644
--- a/api-ref/source/v2/samples/routers/router-create-request.json
+++ b/api-ref/source/v2/samples/routers/router-create-request.json
@@ -1,13 +1,13 @@
 {
     "router": {
-        "name": "another_router",
+        "name": "router1",
         "external_gateway_info": {
-            "network_id": "8ca37218-28ff-41cb-9b10-039601ea7e6b",
+            "network_id": "ae34051f-aa6c-4c75-abf5-50dc9ac99ef3",
             "enable_snat": true,
             "external_fixed_ips": [
                 {
-                    "subnet_id": "255.255.255.0",
-                    "ip": "192.168.10.1"
+                    "ip_address": "172.24.4.6",
+                    "subnet_id": "b930d7f6-ceb7-40a0-8b81-a425dd994ccf"
                 }
             ]
         },
diff --git a/api-ref/source/v2/samples/routers/router-create-response.json b/api-ref/source/v2/samples/routers/router-create-response.json
index 69b398769..d08e30fa9 100644
--- a/api-ref/source/v2/samples/routers/router-create-response.json
+++ b/api-ref/source/v2/samples/routers/router-create-response.json
@@ -1,22 +1,27 @@
 {
     "router": {
-        "status": "ACTIVE",
+        "admin_state_up": true,
+        "availability_zone_hints": [],
+        "availability_zones": [
+            "nova"
+        ],
+        "description": "",
+        "distributed": false,
         "external_gateway_info": {
-            "network_id": "8ca37218-28ff-41cb-9b10-039601ea7e6b",
             "enable_snat": true,
             "external_fixed_ips": [
                 {
-                    "subnet_id": "255.255.255.0",
-                    "ip": "192.168.10.2"
+                    "ip_address": "172.24.4.6",
+                    "subnet_id": "b930d7f6-ceb7-40a0-8b81-a425dd994ccf"
                 }
-            ]
+            ],
+            "network_id": "ae34051f-aa6c-4c75-abf5-50dc9ac99ef3"
         },
-        "name": "another_router",
-        "admin_state_up": true,
-        "tenant_id": "6b96ff0cb17a4b859e1e575d221683d3",
-        "distributed": false,
-        "routes": [],
         "ha": false,
-        "id": "8604a0de-7f6b-409a-a47c-a1cc7bc77b2e"
+        "id": "f8a44de0-fc8e-45df-93c7-f79bf3b01c95",
+        "name": "router1",
+        "routes": [],
+        "status": "ACTIVE",
+        "tenant_id": "0bd18306d801447bb457a46252d82d13"
     }
 }
diff --git a/api-ref/source/v2/samples/routers/router-remove-interface-request-with-port.json b/api-ref/source/v2/samples/routers/router-remove-interface-request-with-port.json
new file mode 100644
index 000000000..4270a8cd8
--- /dev/null
+++ b/api-ref/source/v2/samples/routers/router-remove-interface-request-with-port.json
@@ -0,0 +1,3 @@
+{
+    "port_id": "2dc46bcc-d1f2-4077-b99e-91ee28afaff0"
+}
diff --git a/api-ref/source/v2/samples/routers/router-remove-interface-response.json b/api-ref/source/v2/samples/routers/router-remove-interface-response.json
index 572ff22d4..3acc16e3a 100644
--- a/api-ref/source/v2/samples/routers/router-remove-interface-response.json
+++ b/api-ref/source/v2/samples/routers/router-remove-interface-response.json
@@ -1,6 +1,10 @@
 {
-    "id": "8604a0de-7f6b-409a-a47c-a1cc7bc77b2e",
-    "tenant_id": "2f245a7b-796b-4f26-9cf9-9e82d248fda7",
-    "port_id": "3a44f4e5-1694-493a-a1fb-393881c673a4",
-    "subnet_id": "a2f1f29d-571b-4533-907f-5803ab96ead1"
+    "id": "915a14a6-867b-4af7-83d1-70efceb146f9",
+    "network_id": "91c013e2-d65a-474e-9177-c3e1799ca726",
+    "port_id": "a5b7d209-dc02-4c46-a51f-805eadd3de64",
+    "subnet_id": "4e5fe97c-82bc-432e-87d8-06d7e157dffa",
+    "subnet_ids": [
+        "4e5fe97c-82bc-432e-87d8-06d7e157dffa"
+    ],
+    "tenant_id": "0bd18306d801447bb457a46252d82d13"
 }
diff --git a/api-ref/source/v2/samples/routers/router-show-response.json b/api-ref/source/v2/samples/routers/router-show-response.json
index f113fb764..47db89a30 100644
--- a/api-ref/source/v2/samples/routers/router-show-response.json
+++ b/api-ref/source/v2/samples/routers/router-show-response.json
@@ -1,20 +1,31 @@
 {
     "router": {
-        "status": "ACTIVE",
+        "admin_state_up": true,
+        "availability_zone_hints": [],
+        "availability_zones": [
+            "nova"
+        ],
+        "description": "",
+        "distributed": false,
         "external_gateway_info": {
-            "network_id": "85d76829-6415-48ff-9c63-5c5ca8c61ac6",
             "enable_snat": true,
             "external_fixed_ips": [
                 {
-                    "subnet_id": "255.255.255.0",
-                    "ip": "192.168.10.2"
+                    "ip_address": "172.24.4.6",
+                    "subnet_id": "b930d7f6-ceb7-40a0-8b81-a425dd994ccf"
+                },
+                {
+                    "ip_address": "2001:db8::9",
+                    "subnet_id": "0c56df5d-ace5-46c8-8f4c-45fa4e334d18"
                 }
-            ]
+            ],
+            "network_id": "ae34051f-aa6c-4c75-abf5-50dc9ac99ef3"
         },
+        "ha": false,
+        "id": "f8a44de0-fc8e-45df-93c7-f79bf3b01c95",
         "name": "router1",
-        "admin_state_up": true,
-        "tenant_id": "d6554fe62e2f41efbb6e026fad5c1542",
         "routes": [],
-        "id": "a07eea83-7710-4860-931b-5fe220fae533"
+        "status": "ACTIVE",
+        "tenant_id": "0bd18306d801447bb457a46252d82d13"
     }
 }
diff --git a/api-ref/source/v2/samples/routers/router-update-request.json b/api-ref/source/v2/samples/routers/router-update-request.json
index b6c842232..93e2705e9 100644
--- a/api-ref/source/v2/samples/routers/router-update-request.json
+++ b/api-ref/source/v2/samples/routers/router-update-request.json
@@ -1,12 +1,12 @@
 {
     "router": {
         "external_gateway_info": {
-            "network_id": "8ca37218-28ff-41cb-9b10-039601ea7e6b",
+            "network_id": "ae34051f-aa6c-4c75-abf5-50dc9ac99ef3",
             "enable_snat": true,
             "external_fixed_ips": [
                 {
-                    "subnet_id": "255.255.255.0",
-                    "ip": "192.168.10.1"
+                    "ip_address": "172.24.4.6",
+                    "subnet_id": "b930d7f6-ceb7-40a0-8b81-a425dd994ccf"
                 }
             ]
         }
diff --git a/api-ref/source/v2/samples/routers/router-update-response.json b/api-ref/source/v2/samples/routers/router-update-response.json
index 69b398769..d08e30fa9 100644
--- a/api-ref/source/v2/samples/routers/router-update-response.json
+++ b/api-ref/source/v2/samples/routers/router-update-response.json
@@ -1,22 +1,27 @@
 {
     "router": {
-        "status": "ACTIVE",
+        "admin_state_up": true,
+        "availability_zone_hints": [],
+        "availability_zones": [
+            "nova"
+        ],
+        "description": "",
+        "distributed": false,
         "external_gateway_info": {
-            "network_id": "8ca37218-28ff-41cb-9b10-039601ea7e6b",
             "enable_snat": true,
             "external_fixed_ips": [
                 {
-                    "subnet_id": "255.255.255.0",
-                    "ip": "192.168.10.2"
+                    "ip_address": "172.24.4.6",
+                    "subnet_id": "b930d7f6-ceb7-40a0-8b81-a425dd994ccf"
                 }
-            ]
+            ],
+            "network_id": "ae34051f-aa6c-4c75-abf5-50dc9ac99ef3"
         },
-        "name": "another_router",
-        "admin_state_up": true,
-        "tenant_id": "6b96ff0cb17a4b859e1e575d221683d3",
-        "distributed": false,
-        "routes": [],
         "ha": false,
-        "id": "8604a0de-7f6b-409a-a47c-a1cc7bc77b2e"
+        "id": "f8a44de0-fc8e-45df-93c7-f79bf3b01c95",
+        "name": "router1",
+        "routes": [],
+        "status": "ACTIVE",
+        "tenant_id": "0bd18306d801447bb457a46252d82d13"
     }
 }
diff --git a/api-ref/source/v2/samples/routers/routers-list-response.json b/api-ref/source/v2/samples/routers/routers-list-response.json
index 7e473fff2..a9d70f355 100644
--- a/api-ref/source/v2/samples/routers/routers-list-response.json
+++ b/api-ref/source/v2/samples/routers/routers-list-response.json
@@ -1,31 +1,62 @@
 {
     "routers": [
         {
-            "status": "ACTIVE",
-            "external_gateway_info": null,
-            "name": "second_routers",
             "admin_state_up": true,
-            "tenant_id": "6b96ff0cb17a4b859e1e575d221683d3",
-            "routes": [],
-            "id": "7177abc4-5ae9-4bb7-b0d4-89e94a4abf3b"
-        },
-        {
-            "status": "ACTIVE",
+            "availability_zone_hints": [],
+            "availability_zones": [
+                "nova"
+            ],
+            "description": "",
+            "distributed": false,
             "external_gateway_info": {
-                "network_id": "3c5bcddd-6af9-4e6b-9c3e-c153e521cab8",
                 "enable_snat": true,
                 "external_fixed_ips": [
                     {
-                        "subnet_id": "255.255.255.0",
-                        "ip": "192.168.10.2"
+                        "ip_address": "172.24.4.3",
+                        "subnet_id": "b930d7f6-ceb7-40a0-8b81-a425dd994ccf"
+                    },
+                    {
+                        "ip_address": "2001:db8::c",
+                        "subnet_id": "0c56df5d-ace5-46c8-8f4c-45fa4e334d18"
                     }
-                ]
+                ],
+                "network_id": "ae34051f-aa6c-4c75-abf5-50dc9ac99ef3"
             },
-            "name": "router1",
-            "admin_state_up": true,
-            "tenant_id": "33a40233088643acb66ff6eb0ebea679",
+            "ha": false,
+            "id": "915a14a6-867b-4af7-83d1-70efceb146f9",
+            "name": "router2",
             "routes": [],
-            "id": "a9254bdb-2613-4a13-ac4c-adc581fba50d"
+            "status": "ACTIVE",
+            "tenant_id": "0bd18306d801447bb457a46252d82d13"
+        },
+        {
+            "admin_state_up": true,
+            "availability_zone_hints": [],
+            "availability_zones": [
+                "nova"
+            ],
+            "description": "",
+            "distributed": false,
+            "external_gateway_info": {
+                "enable_snat": true,
+                "external_fixed_ips": [
+                    {
+                        "ip_address": "172.24.4.6",
+                        "subnet_id": "b930d7f6-ceb7-40a0-8b81-a425dd994ccf"
+                    },
+                    {
+                        "ip_address": "2001:db8::9",
+                        "subnet_id": "0c56df5d-ace5-46c8-8f4c-45fa4e334d18"
+                    }
+                ],
+                "network_id": "ae34051f-aa6c-4c75-abf5-50dc9ac99ef3"
+            },
+            "ha": false,
+            "id": "f8a44de0-fc8e-45df-93c7-f79bf3b01c95",
+            "name": "router1",
+            "routes": [],
+            "status": "ACTIVE",
+            "tenant_id": "0bd18306d801447bb457a46252d82d13"
         }
     ]
 }