anchor.diff:  [width="100%",cols="26%,8%,11%,11%,44%",options="header",]
   |=======================================================================
   |Field Name |Type |POST/PUT |Required |Description
  -|uri |URI | | |A GET
  -against this URI refreshes the representation of this resource.
  -
  -|id |UUID |POST |No |A unique identifier of the resource. If this field
  -is omitted in the POST request, a random UUID is generated.
  -
  -|loadBalancerId |UUID |
  -| |Load balancer object to which it is
  -associated with. This is deduced from the pool that it is associated
  -with.
  +|uri |URI | |
  +|A GET against this URI refreshes the representation of this resource.
   
   |loadBalancer |URI | |
  -|A GET against this URI gets the load balancer object.
  -
  -|poolId |UUID |POST |Yes |ID of the pool.
  -
  -|pool |URI | | |A GET
  -against this URI gets the pool object.
  -
  -|address |String |POST |Yes |IP address of the VIP.
  -
  -|protocolPort |Int |POST |Yes |Port of the VIP.
  -
  -|sessionPersistence |String |POST |No |Session persistence of the VIP
  -(Only “SOURCE_IP” allowed). This property can be null.
  -
  -|adminStateUp |Bool |POST/PUT |No |Administrative state of the object.
  -|=======================================================================
  -
  -[[query-parameters-6]]
  -Query Parameters
  -++++++++++++++++
  -
  -Query strings for Tenant may vary based on the Authtentication Service
  -used.
  -
  -*Keystone:*
  -
  -[width="100%",cols="9%,91%",options="header",]
  -|=======================================================================
  -|Name |Description
  -|marker |ID of the last tenant in the previous search. If this is
  -specified, the GET returns a list of Tenants starting the next item
  -after this ID
  -
  -|limit |Number of items to fetch
  -|=======================================================================
  +|A GET against this URI returns the load balancer.
  +
  +|pool |URI | |
  +|A GET against this URI returns the pool.
  +
  +|id |UUID |POST |No
  +|A unique identifier of the resource. If this field is omitted in the POST
  +request, a random UUID is generated.
  +
  +|address |String |POST/PUT |Yes
  +|The IP address of the VIP.
  +
  +|poolId |UUID |POST/PUT |Yes
  +|The identifier of the pool. When using
  +the `/vips` API end-point to create a pool, this field is used to
  +determine the pool to which the VIP belongs. When using the
  +`/pools/:poolId/vips` API end-point, this field is mandatory but its value
  +will be ignored.
  +
  +|protocolPort |Integer |POST/PUT |Yes
  +|The transport protocol port of the VIP. The value must belong to the
  +interval [0, 65535].
  +
  +|adminStateUp |Boolean |POST/PUT |No
  +|The administrative state of the VIP. The default it _true_ (up).
  +
  +|sessionPersistence |String |POST/PUT |No
  +|Indicates the session persistence of the VIP. The allowed values are
  +`SOURCE_IP` or null.
  +
  +|loadBalancerId |UUID | |
  +|The identifier of the load balancer object to which the VIP is
  +associated with.
  +|=======================================================================
  +
   
   [[vtep]]
  -VTEP
  -^^^^
  -
  -_Media Type_: `[application/vnd.org.midonet.VTEP-v1+json]`
  -
  -----------------------------
  +=== VTEP
  +
  +_Media Type_:::
  +  `[application/vnd.org.midonet.VTEP-v2+json]`
  +_Collection Media Type_:::
  +  `[application/vnd.org.midonet.collection.VTEP-v2+json]`
  +
  +----------------------
   GET     /vteps
  -GET     /vteps/:managementIp
  +GET     /vteps/:vtepId
   POST    /vteps
  -----------------------------
  -
  -Midonet representation of a VXLAN Tunnel EndPoint, or VTEP, which allows
  -you to merge a Midonet L2 network with physical L2 network over an IP
  +DELETE  /vteps/:vtepId
  +----------------------
  +
  +It is the representation of a hardware VXLAN Tunnel EndPoint, or VTEP, which
  +allows you to merge a Midonet L2 network with physical L2 network over an IP
   tunnel. Once you create the Midonet VTEP representation of your external
   VTEP, you can bind Neutron networks to the VTEP's ports.
   
   All properties other than those required in POST are obtained from the
  -external VTEP configuration and not controlled by Midonet.
  +external VTEP configuration and not controlled by MidoNet.
   
   [width="100%",cols="22%,13%,11%,11%,43%",options="header",]
   |=======================================================================
   |Field Name |Type |POST/PUT |Required |Description
  -|uri |URI | | |A GET
  -against this URI refreshes the representation of this resource.
  -
  -|managementIp |IP Address |POST |yes |The VTEP's IP address.
  -
  -|managementPort |Integer |POST |yes |The TCP port used for management
  -connections to the VTEP.
  -
  -|tunnelZoneId |UUID |POST |yes |ID of the tunnel zone used by Midonet to
  -send and receive tunneled traffic to and from the VTEP.
  -
  -|connectionState |String |
  -| |Indicates whether Midonet could successfully
  -connect to the VTEP. Possible values are CONNECTED and ERROR.
  +|uri |URI | |
  +|A GET against this URI refreshes the representation of this resource.
  +
  +|bindings |URI | |
  +|A GET against this URI returns the list of VTEP bindings to Neutron
  +networks. See
  +xref:vtep-binding[].
  +
  +|ports |URI | |
  +|A GET against this URI returns a list of VTEP ports. See
  +xref:vtep-port[].
  +
  +|vtepBindingTemplate |String | |
  +|Template for the URI to the VTEP individual bindings.
  +
  +|id |UUID |POST |No
  +|A unique identifier of the resource. If this field is omitted in the POST
  +request, a random UUID is generated.
  +
  +|managementIp |IP Address |POST |Yes
  +|The VTEP management IP address.
  +
  +|managementPort |Integer |POST |Yes
  +|The VTEP management TCP port. The value must belong to the interval
  +[1, 65535].
  +
  +|tunnelZoneId |UUID |POST |Yes
  +|The identifier of the tunnel zone of type `vtep` used by Midonet to send and
  +receive tunneled traffic to and from the VTEP.
  +
  +|connectionState |String | |
  +|Indicates whether Midonet could successfully connect to the VTEP. The allowed
  +values are `disconnected`, `connected` and `error`.
   
   |name |String | |
  -|VTEP's name.
  -
  -|description |String |
  -| |VTEP's description.
  -
  -|tunnelIpAddrs |List (IP Address) |
  -| |List of IP addresses available to Midonet to
  -tunnel to the VTEP.
  -
  -|bindings |URI | | |A
  -GET on this URI retrieves a list of the VTEP's bindings to Neutron
  -networks.
  -
  -|bindingTemplate |String |
  -| |Template for the URI to the VTEP's
  -individual bindings.
  -
  -|ports |URI | | |A GET
  -on this URI retrieves a list of the VTEP's ports.
  -|=======================================================================
  +|The VTEP name as configured in the OVSDB database.
  +
  +|description |String | |
  +|The VTEP description as configured in the OVSDB database.
  +
  +|tunnelIpAddrs |Array | |
  +|The list of IP addresses used as end-points for the VXLAN tunnels, as
  +configured in the OVSDB database.
  +|=======================================================================
  +
   
   [[vtep-binding]]
  -VTEP Binding
  -^^^^^^^^^^^^
  -
  -_Media Type_: `[application/vnd.org.midonet.VTEPBinding-v1+json`
  -
  --------------------------------------------------------
  -GET     /vteps/:managementIp/bindings
  -GET     /vteps/:managementIp/bindings/:portName/:vlanId
  -GET     /ports/:vxLanPortId/bindings
  -GET     /ports/:vxLanPortId/bindings/:portName/:vlanId
  -POST    /vteps/:managementIp/bindings
  -DELETE  /vteps/:ManagementIp/bindings/:portName/:vlanId
  --------------------------------------------------------
  -
  -Bindings between a VTEP port/vlanId and a Neutron network. Creating a
  +=== VTEP Binding
  +
  +_Media Type_:::
  +  `[application/vnd.org.midonet.VTEPBinding-v2+json]`
  +_Collection Media Type_:::
  +  `[application/vnd.org.midonet.collection.VTEPBinding-v2+json]`
  +
  +-------------------------------------------------
  +GET     /vteps/:vtepId/bindings
  +GET     /vteps/:vtepId/bindings/:portName/:vlanId
  +POST    /vteps/:vtepId/bindings
  +DELETE  /vteps/:vtepId/bindings/:portName/:vlanId
  +-------------------------------------------------
  +
  +Bindings between a VTEP port/VLAN and a Neutron network. Creating a
   binding creates an IP tunnel through which L2 traffic can pass between
   the VTEP and Neutron network.
   
   [width="100%",cols="22%,13%,11%,11%,43%",options="header",]
   |=======================================================================
   |Field Name |Type |POST/PUT |Required |Description
  -|uri |URI | | |A GET
  -against this URI refreshes the representation of this resource.
  -
  -|portName |String |POST |Yes |The name of the VTEP port to be bound to
  -the Neutron network.
  -
  -|vlanId |Short |POST |Yes |The VLAN ID with which traffic from the VTEP
  -to Midonet will be tagged. Must be between 0 and 4095 inclusive. If 0,
  -then traffic will not be tagged with a VLAN ID.
  -
  -|networkId |UUID |POST |Yes |
  -|=======================================================================
  +|uri |URI | |
  +|A GET against this URI refreshes the representation of this resource.
  +
  +|portName |String |POST |Yes
  +|The name of the VTEP port to be bound to the Neutron network.
  +
  +|networkId |UUID |POST |Yes
  +|The identifier of the Neutron network.
  +
  +|vlanId |Integer |POST |Yes
  +|The VLAN ID with which traffic from the VTEP to Midonet will be tagged. The
  +value must belong to the interval [0, 4095]. If 0, then traffic will not be
  +tagged with a VLAN ID.
  +
  +|vtepId |UUID |POST |No
  +|The identifier of the VTEP.
  +|=======================================================================
  +
   
   [[vtep-port]]
  -VTEP Port
  -^^^^^^^^^
  -
  -_Media Type_:
  -`[application/vnd.org.midonet.collection.VTEPPort-v1+json]`
  -
  -----------------------------------
  -GET     /vteps/:managementIp/ports
  -----------------------------------
  +=== VTEP Port
  +
  +_Media Type_:::
  +  `[application/vnd.org.midonet.VTEPPort-v1+json]`
  +_Collection Media Type_:::
  +  `[application/vnd.org.midonet.collection.VTEPPort-v1+json]`
  +
  +--------------------------------------
  +GET     /vteps/:vtepId/ports
  +GET     /vteps/:vtepId/ports/:portName
  +--------------------------------------
   
   Gets the name and description of all ports on the specified VTEP.
   
   [width="100%",cols="22%,13%,11%,11%,43%",options="header",]
   |=======================================================================
   |Field Name |Type |POST/PUT |Required |Description
  -|name |String | | |The
  -port's name.
  -
  -|description |String |
  -| |The port's description
  -|=======================================================================
  -
  -[[system-state---v2]]
  -System State - v2
  -^^^^^^^^^^^^^^^^^
  -
  -_Media Type_: `[application/vnd.org.midonet.SystemState-v2+json]`
  -
  ----------------------
  -GET     /system_state
  -PUT     /system_state
  ----------------------
  -
  -System State specifies parameters for the various states the deployment
  -might be in. You may modify the system state to make limited changes to
  -the behavior of midonet. For example, changing the "state" field to
  -"UPGRADE" will cause the spawning of new midolman agents to abort.
  -
  -[width="100%",cols="20%,8%,11%,11%,50%",options="header",]
  -|=======================================================================
  -|Field Name |Type |POST/PUT |Required |Description
  -|state |String |PUT |yes |Setting the state field to "UPGRADE" will put
  -the midolman into 'upgrade mode', which will cause all new midolman
  -agents starting up in the deployment to abort the start up process. This
  -is used during deployment wide upgrades to prevent unexpected startups
  -of any midolman agent that might have the wrong version. This state can
  -be reversed by setting the upgrade field to "ACTIVE". The deployment is
  -not in upgrade state by default.
  -
  -|availability |String |PUT |yes |Setting the availability to "READONLY"
  -will cause most API requests to be rejected. The exceptions are only
  -administrative APIs that don't affect the topology: system_state and
  -write_version. This is meant to let the operator stop REST API requests
  -while performing maintenance or upgrades. Setting the availability to
  -"READWRITE" (the default value) allows both GETs and PUT/POST API
  -requests
  -
  -|write_version |string |PUT |yes |The version field determines the
  -version of the topology data that the midolman agents will be writing.
  -This matters during upgrade operations where we will change the write
  -version only after all midolman agents are upgraded. The format of the
  -version field is 'major.minor', where 'major' is the Major version, and
  -'minor' is the minor version. For example, '1.2'.
  -|=======================================================================
  -
  -[[systemstate---v1---deprecated]]
  -SystemState - v1, Deprecated
  -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  -
  -_Media Type_: `[application/vnd.org.midonet.SystemState-v1+json]`
  -
  ----------------------
  -GET     /system_state
  -PUT     /system_state
  ----------------------
  -
  -System State specifies parameters for the various states the deployment
  -might be in. You may modify the system state to make limited changes to
  -the behavior of midonet. For example, changing the "state" field to
  -"UPGRADE" will cause the spawning of new midolman agents to abort.
  -
  -[width="100%",cols="19%,8%,11%,11%,51%",options="header",]
  -|=======================================================================
  -|Field Name |Type |POST/PUT |Required |Description
  -|state |String |PUT |yes |Setting the state field to "UPGRADE" will put
  -the midolman into 'upgrade mode', which will cause all new midolman
  -agents starting up in the deployment to abort the start up process. This
  -is used during deployment wide upgrades to prevent unexpected startups
  -of any midolman agent that might have the wrong version. This state can
  -be reversed by setting the upgrade field to "ACTIVE". The deployment is
  -not in upgrade state by default
  -
  -|availability |String |PUT |yes |Setting the availability to "READONLY"
  -will cause most API requests to be rejected. The exceptions are only
  -administrative APIs that don't affect the topology: system_state and
  -write_version. This is meant to let the operator stop REST API requests
  -while performing maintenance or upgrades. Setting the availability to
  -"READWRITE" (the default value) allows both GETs and PUT/POST API
  -requests
  -|=======================================================================
  -
  -[[write-version]]
  -Write Version
  -^^^^^^^^^^^^^
  -
  -_Media Type_: `[application/vnd.org.midonet.WriteVersion-v1+json]`
  -
  -----------------------
  -GET     /write_version
  -PUT     /write_version
  -----------------------
  -
  -Write Version specifies the version information that is relevant to the
  -midonet deployment as a whole. For example, the "version" field
  -specifies the version of the topology information that all midolman
  -agents must write to, regardless of that midolman agent's version.
  -
  -[width="100%",cols="16%,8%,11%,11%,54%",options="header",]
  -|=======================================================================
  -|Field Name |Type |POST/PUT |Required |Description
  -|version |string |PUT |yes |The version field determines the version of
  -the topology data that the midolman agents will be writing. This matters
  -during upgrade operations where we will change the write version only
  -after all midolman agents are upgraded. The format of the version field
  -is '[major].[minor]', where 'major' is the Major version, and 'minor' is
  -the minor version. For example '1.2'
  -|=======================================================================
  -
  -[[token]]
  -Token
  -^^^^^
  -
  -_Media Type_: `[application/vnd.org.midonet.Token-v1+json]`
  -
  -A token represents the info required for the 'token authentication'
  -method. It can NOT be retrieved through a GET request, but instead must
  -be retrieved in the body or the header of a login request.
  -
  -[width="100%",cols="16%,8%,11%,11%,54%",options="header",]
  -|=======================================================================
  -|Field Name |Type |POST/PUT |Required |Description
  -|key |string | | |The
  -authentication token
  -
  -|expires |string | |
  -|The expiration date for the authentication token
  -|=======================================================================
  -
  -[[host-version]]
  -Host Version
  -^^^^^^^^^^^^
  -
  -_Media Type_: `[application/vnd.org.midonet.HostVersion-v1+json]`
  -
  ------------------
  -GET     /versions
  ------------------
  -
  -The Host Version specifies version information for each host running in
  -the Midonet deployment.
  -
  -[width="100%",cols="16%,8%,11%,11%,54%",options="header",]
  -|=======================================================================
  -|Field Name |Type |POST/PUT |Required |Description
  -|version |string | |yes |the version of
  -Midolman agent running on the host
  -
  -|hostId |string | |yes |The the UUID of the
  -host that the Midolman agent is running on
  -
  -|host |string | |yes |The URI of the host that
  -the Midolman agent is running on
  -|=======================================================================
  +|uri |URI | |
  +|A GET against this URI refreshes the representation of this resource.
  +
  +|vtep |URI | |
  +|A GET against this URI returns the VTEP corresponding to this port.
  +
  +|name |String | |
  +|The port name as configured in the OVSDB database.
  +
  +|description |String | |
  +|The port description as configured in the OVSDB database.
  +|=======================================================================
  +
   
   [[resource-collection]]
  -Resource Collection
  -~~~~~~~~~~~~~~~~~~~
  +== Resource Collection
   
   A collection of a resource is represented by inserting 'collection'
   right before the resource name in the media type. For example, to get a
  
positive.code: [width="100%",cols="19%,8%,11%,21%,41%",options="header",]
  |=======================================================================
  |Field Name |Type |POST/PUT |Required |Description
  |uri |URI | | |A GET
  against this URI refreshes the representation of this resource
  
  |id |UUID | | |A
  unique identifier of the resource
  
  |tunnelZoneId |UUID |
  | |ID of the tunnel zone that the host is a
  member of
  
  |tunnelZone |URI | |
  |A GET against this URI retrieves the tunnel zone
  
  |hostId |UUID |POST |Yes |ID of the host that you want to add to a
  tunnel zone
  
  |host |URI | | |A GET
  against this URI retrieves the host
  
  |ipAddress |String |POST/PUT |Yes for GRE tunnel zone type |IP address
  to use for the GRE tunnels from this host
  |=======================================================================
  
  [[tenant]]
  Tenant
  ^^^^^^
  
  _Media Type_: `[application/vnd.org.midonet.Tenant-v1+json]`
  
  --------------------------
  GET     /tenants
  GET     /tenants/:tenantId
  --------------------------
  
  Represents a tenant, or a group of users, in the identity services.
  
  [width="100%",cols="17%,8%,11%,11%,53%",options="header",]
  |=======================================================================
  |Field Name |Type |POST/PUT |Required |Description
  |id |String | | |ID of
  the tenant unique in the identity system
  
  |name |String | |
  |Name of the tenant in the identity system
  
  |uri |URI | | |A GET
  against this URI refreshes the representation of this resource
  
  |bridges |URI | | |A
  GET against this URI retrieves tenant's bridges
  
  |chains |URI | | |A
  GET against this URI retrieves tenant's chains
  
  |port_groups |URI | |
  |A GET against this URI retrieves tenant's port groups
  
  |routers |URI | | |A
  GET against this URI retrieves tenant's routers
  |=======================================================================
  
  [[vip]]
  VIP
  ^^^
  
  _Media Type_: `[application/vnd.org.midonet.VIP-v1+json]`
  
  --------------------------------------------
  GET     /load_balancers/:loadBalancerId/vips
  POST    /load_balancers/:loadBalancerId/vips
  GET     /vips/:vipId
  PUT     /vips/:vipId
  DELETE  /vips/:vipId
  --------------------------------------------
  
negative.code: DELETE  /port_groups/:portGroupId
  ----------------------------------------
  
  A port group is a group of ports. Port groups are owned by tenants. A port
  could belong to multiple port groups as long as they belong to the same
  tenant. A port group can be specified in the chain rule to filter the
  traffic coming from all the ports belonging to that the specified group.
  