Repository: qpid-dispatch
Updated Branches:
  refs/heads/master e6473b4ce -> b821e1cda


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/b821e1cd/console/test/topologies/schema.json
----------------------------------------------------------------------
diff --git a/console/test/topologies/schema.json 
b/console/test/topologies/schema.json
index 477a1d3..c105e16 100644
--- a/console/test/topologies/schema.json
+++ b/console/test/topologies/schema.json
@@ -1,1528 +1,1814 @@
 {
-  "prefix": "org.apache.qpid.dispatch",
+  "prefix": "org.apache.qpid.dispatch", 
   "entityTypes": {
-    "dummy": {
+    "address": {
       "operations": [
-        "CREATE",
-        "READ",
-        "UPDATE",
-        "DELETE",
-        "CALLME"
-      ],
+        "CREATE", 
+        "DELETE", 
+        "READ"
+      ], 
       "attributes": {
-        "num1": {
-          "type": "integer"
-        },
-        "num2": {
-          "type": "integer"
-        },
-        "arg1": {
-          "type": "string"
-        },
-        "arg2": {
-          "type": "string"
-        },
+        "egressPhase": {
+          "type": "integer", 
+          "description": "Advanced - Override the egress phase for this 
address"
+        }, 
+        "pattern": {
+          "type": "string", 
+          "description": "A wildcarded pattern for address matching. Incoming 
addresses are matched against this pattern. Matching addresses use the 
configured settings. The pattern consists of one or more tokens separated by a 
forward slash '/'. A token can be one of the following: a * character, a # 
character, or a sequence of characters that do not include /, *, or #.  The * 
token matches any single token.  The # token matches zero or more tokens. * has 
higher precedence than #, and exact match has the highest precedence. Cannot be 
used with a prefix attribute."
+        }, 
+        "prefix": {
+          "type": "string", 
+          "description": "The address prefix for the configured settings. 
Cannot be used with a pattern attribute."
+        }, 
+        "ingressPhase": {
+          "type": "integer", 
+          "description": "Advanced - Override the ingress phase for this 
address"
+        }, 
+        "waypoint": {
+          "type": "boolean", 
+          "description": "Designates this address space as being used for 
waypoints.  This will cause the proper address-phasing to be used."
+        }, 
+        "distribution": {
+          "default": "balanced", 
+          "type": [
+            "multicast", 
+            "closest", 
+            "balanced", 
+            "unavailable"
+          ], 
+          "description": "Treatment of traffic associated with the address"
+        }, 
         "identity": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique identity generated by the system. Will not 
change."
-        },
+        }, 
         "name": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique name optionally assigned by user. Can be 
changed."
         }
-      },
-      "fullyQualifiedType": "org.apache.qpid.dispatch.dummy",
-      "description": "Dummy entity for test purposes."
-    },
+      }, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.router.config.address", 
+      "description": "Entity type for address configuration.  This is used to 
configure the treatment of message-routed deliveries within a particular 
address-space.  The configuration controls distribution and address phasing."
+    }, 
+    "binding": {
+      "operations": [
+        "CREATE", 
+        "DELETE", 
+        "READ"
+      ], 
+      "attributes": {
+        "matchedCount": {
+          "type": "integer", 
+          "description": "Total number of deliveries that matched this 
binding."
+        }, 
+        "bindingKey": {
+          "type": "string", 
+          "description": "Pattern to compare against incoming message's 
subject.  The key is a string of zero or more tokens and wildcards. The format 
depends on the matchMethod configured for the exchange. For AMQP each token is 
delimited by the '.' character and wild-card tokens '*' matches a single token 
and '#' matches zero or more tokens. For MQTT each token is delimited by the 
'/' character and wildcard tokens '+' matches a single token and '#' matches 
zero or more tokens at the end of the topic. If a key is not provided the 
binding will match all messages arriving at the exchange (fanout behavior)."
+        }, 
+        "name": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique name optionally assigned by user. Can be 
changed."
+        }, 
+        "nextHopAddress": {
+          "required": true, 
+          "type": "string", 
+          "description": "The address to forward the message to when the 
message's topic string matches the binding key pattern.  This address is used 
by message consumers as the source of incoming messages."
+        }, 
+        "exchangeName": {
+          "required": true, 
+          "type": "string", 
+          "description": "The name of the exchange to bind."
+        }, 
+        "identity": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique identity generated by the system. Will not 
change."
+        }, 
+        "nextHopPhase": {
+          "type": "integer", 
+          "description": "The address phase used when forwarding messages that 
match this binding."
+        }
+      }, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.router.config.binding", 
+      "description": "[EXPERIMENTAL] Defines a keyed next hop binding for a 
topic exchange. The subject field of the messages arriving at the exchange is 
compared against the binding's key value using the exchange's matchMethod.  If 
the subject matches the key the message is forwarded to the nextHopAddress. The 
nextHopAddress overrides the message's original destination."
+    }, 
     "entity": {
       "attributes": {
         "name": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique name optionally assigned by user. Can be 
changed."
-        },
+        }, 
         "identity": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique identity generated by the system. Will not 
change."
         }
-      },
-      "fullyQualifiedType": "org.apache.qpid.dispatch.entity",
+      }, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.entity", 
       "description": "Base entity type for all entities."
-    },
+    }, 
     "sslProfile": {
       "operations": [
-        "CREATE",
-        "DELETE",
+        "CREATE", 
+        "DELETE", 
         "READ"
-      ],
+      ], 
       "attributes": {
         "certFile": {
-          "type": "path",
+          "type": "path", 
           "description": "The absolute path to the file containing the 
PEM-formatted public certificate to be used on the local end of any connections 
using this profile."
-        },
-        "displayNameFile": {
-          "type": "string",
-          "description": "The absolute path to the file containing the unique 
id to dispay name mapping"
-        },
-        "uidFormat": {
-          "type": "string",
-          "description": "A list of x509 client certificate fields that will 
be used to build a string that will uniquely identify the client certificate 
owner. For e.g. a value of 'cou' indicates that the uid will consist of c - 
common name concatenated with o - organization-company name concatenated with u 
- organization unit; or a value of 'o2' indicates that the uid will consist of 
o (organization name) concatenated with 2 (the sha256 fingerprint of the entire 
certificate) . Allowed values can be any combination of 'c'( ISO3166 two 
character country code), 's'(state or province), 'l'(Locality; generally - 
city), 'o'(Organization - Company Name), 'u'(Organization Unit - typically 
certificate type or brand), 'n'(CommonName - typically a user name for client 
certificates) and '1'(sha1 certificate fingerprint, as displayed in the 
fingerprints section when looking at a certificate with say a web browser is 
the hash of the entire certificate) and 2 (sha256 certificate fingerprint) and
  5 (sha512 certificate fingerprint). "
-        },
-        "certDb": {
-          "type": "path",
+        }, 
+        "name": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique name optionally assigned by user. Can be 
changed."
+        }, 
+        "uidNameMappingFile": {
+          "type": "string", 
+          "description": "The absolute path to the file containing the unique 
id to display name mapping"
+        }, 
+        "ciphers": {
+          "type": "string", 
+          "description": "Specifies the enabled ciphers so the SSL Ciphers can 
be hardened. In other words, use this field to disable weak ciphers. The 
ciphers are specified in the format understood by the OpenSSL library. For 
example, ciphers can be set to 
ALL:!aNULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; -- The full list 
of allowed ciphers can be viewed using the openssl ciphers command"
+        }, 
+        "caCertFile": {
+          "type": "path", 
           "description": "The absolute path to the database that contains the 
public certificates of trusted certificate authorities (CA)."
-        },
-        "passwordFile": {
-          "type": "path",
-          "description": "If the above private key is password protected, this 
is the absolute path to a file containing the password that unlocks the 
certificate key."
-        },
-        "password": {
-          "type": "string",
-          "description": "An alternative to storing the password in a file 
referenced by passwordFile is to supply the password right here in the 
configuration file.  This option can be used by supplying the password in the 
'password' option.  Don't use both password and passwordFile in the same 
profile."
-        },
-        "keyFile": {
-          "type": "path",
+        }, 
+        "uidFormat": {
+          "type": "string", 
+          "description": "A list of x509 client certificate fields that will 
be used to build a string that will uniquely identify the client certificate 
owner. For e.g. a value of 'cou' indicates that the uid will consist of c - 
common name concatenated with o - organization-company name concatenated with u 
- organization unit; or a value of 'o2' indicates that the uid will consist of 
o (organization name) concatenated with 2 (the sha256 fingerprint of the entire 
certificate) . Allowed values can be any combination of 'c'( ISO3166 two 
character country code), 's'(state or province), 'l'(Locality; generally - 
city), 'o'(Organization - Company Name), 'u'(Organization Unit - typically 
certificate type or brand), 'n'(CommonName - typically a user name for client 
certificates) and '1'(sha1 certificate fingerprint, as displayed in the 
fingerprints section when looking at a certificate with say a web browser is 
the hash of the entire certificate) and 2 (sha256 certificate fingerprint) and
  5 (sha512 certificate fingerprint). The user identifier (uid) that is 
generated based on the uidFormat is a string which has a semi-colon as a 
separator between the components"
+        }, 
+        "privateKeyFile": {
+          "type": "path", 
           "description": "The absolute path to the file containing the 
PEM-formatted private key for the above certificate."
-        },
+        }, 
         "identity": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique identity generated by the system. Will not 
change."
-        },
-        "name": {
-          "unique": true,
-          "type": "string",
-          "description": "Unique name optionally assigned by user. Can be 
changed."
+        }, 
+        "passwordFile": {
+          "type": "path", 
+          "description": "If the above private key is password protected, this 
is the absolute path to a file containing the password that unlocks the 
certificate key."
+        }, 
+        "password": {
+          "type": "string", 
+          "description": "An alternative to storing the password in a file 
referenced by passwordFile is to supply the password right here in the 
configuration file.  This takes precedence over the passwordFile if both are 
specified."
+        }, 
+        "protocols": {
+          "type": "string", 
+          "description": "The TLS protocols that this sslProfile can use. You 
can specify a list of one or more of TLSv1, TLSv1.1, or TLSv1.2. To specify 
multiple protocols, separate the protocols with a space. For example, to permit 
the sslProfile to use TLS v1.1 and TLS v1.2 only, you would set the value to 
TLSv1.1 TLSv1.2. If you do not specify a value, the sslProfile uses the TLS 
protocol specified by the system-wide configuration."
         }
-      },
-      "fullyQualifiedType": "org.apache.qpid.dispatch.sslProfile",
+      }, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.sslProfile", 
       "description": "Attributes for setting TLS/SSL configuration for 
connections."
-    },
+    }, 
     "linkRoute": {
       "operations": [
-        "CREATE",
-        "DELETE",
+        "CREATE", 
+        "DELETE", 
         "READ"
-      ],
+      ], 
       "attributes": {
+        "direction": {
+          "required": true, 
+          "type": [
+            "in", 
+            "out"
+          ], 
+          "description": "The permitted direction of links: 'in' means client 
senders; 'out' means client receivers"
+        }, 
         "containerId": {
-          "type": "string",
-          "description": "ContainerID for the target container"
-        },
+          "type": "string", 
+          "description": "ContainerID for the target container. Only one of 
containerId or connection should be specified for a linkRoute. Specifying both 
will result in the linkRoute not being created."
+        }, 
         "operStatus": {
           "type": [
-            "inactive",
+            "inactive", 
             "active"
-          ],
+          ], 
           "description": "The operational status of this linkRoute: inactive - 
The remote container is not connected; active - the remote container is 
connected and ready to accept link routed attachments."
-        },
+        }, 
+        "pattern": {
+          "type": "string", 
+          "description": "A wildcarded pattern for address matching. Link 
addresses are matched against this pattern. Matching addresses use the 
configured settings. The pattern consists of one or more tokens separated by a 
forward slash '/'. A token can be one of the following: a * character, a # 
character, or a sequence of characters that do not include /, *, or #.  The * 
token matches any single token.  The # token matches zero or more tokens. * has 
higher precedence than #, and exact match has the highest precedence. Cannot be 
used with the prefix attribute."
+        }, 
         "prefix": {
-          "required": true,
-          "type": "string",
-          "description": "The address prefix for the configured settings"
-        },
+          "type": "string", 
+          "description": "The address prefix for the configured settings. 
Cannot be used with the pattern attribute."
+        }, 
         "connection": {
-          "type": "string",
-          "description": "The name from a connector or listener"
-        },
-        "identity": {
-          "unique": true,
-          "type": "string",
-          "description": "Unique identity generated by the system. Will not 
change."
-        },
+          "type": "string", 
+          "description": "The name from a connector or listener. Only one of 
containerId or connection should be specified for a linkRoute. Specifying both 
will result in the linkRoute not being created."
+        }, 
         "distribution": {
-          "default": "linkBalanced",
+          "default": "linkBalanced", 
           "type": [
             "linkBalanced"
-          ],
+          ], 
           "description": "Treatment of traffic associated with the address"
-        },
-        "dir": {
-          "required": true,
-          "type": [
-            "in",
-            "out"
-          ],
-          "description": "The permitted direction of links: 'in' means client 
senders; 'out' means client receivers"
-        },
+        }, 
+        "identity": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique identity generated by the system. Will not 
change."
+        }, 
         "name": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique name optionally assigned by user. Can be 
changed."
         }
-      },
-      "fullyQualifiedType": "org.apache.qpid.dispatch.router.config.linkRoute",
-      "description": "Entity type for link-route configuration.  This is used 
to identify remote containers that shall be destinations for routed 
link-attaches.  The link-routing configuration applies to an addressing space 
defined by a prefix."
-    },
-    "allocator": {
+      }, 
+      "fullyQualifiedType": 
"org.apache.qpid.dispatch.router.config.linkRoute", 
+      "description": "Entity type for link-route configuration.  This is used 
to identify remote containers that shall be destinations for routed 
link-attaches.  The link-routing configuration applies to an addressing space 
defined by a prefix or a pattern."
+    }, 
+    "exchange": {
       "operations": [
+        "CREATE", 
+        "DELETE", 
         "READ"
-      ],
+      ], 
       "attributes": {
-        "heldByThreads": {
-          "graph": true,
-          "type": "integer"
-        },
-        "typeSize": {
-          "type": "integer"
-        },
-        "transferBatchSize": {
-          "type": "integer"
-        },
-        "globalFreeListMax": {
-          "graph": true,
-          "type": "integer"
-        },
-        "batchesRebalancedToGlobal": {
-          "graph": true,
-          "type": "integer"
-        },
-        "typeName": {
-          "type": "string"
-        },
-        "batchesRebalancedToThreads": {
-          "graph": true,
-          "type": "integer"
-        },
-        "totalFreeToHeap": {
-          "graph": true,
-          "type": "integer"
-        },
-        "totalAllocFromHeap": {
-          "graph": true,
-          "type": "integer"
-        },
-        "localFreeListMax": {
-          "graph": true,
-          "type": "integer"
-        },
-        "identity": {
-          "unique": true,
-          "type": "string",
-          "description": "Unique identity generated by the system. Will not 
change."
-        },
+        "divertedCount": {
+          "type": "integer", 
+          "description": "A count of those deliveries that were forwarded via 
the alternateAddress only.  This is a subset of the forwardedCount."
+        }, 
         "name": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique name optionally assigned by user. Can be 
changed."
+        }, 
+        "matchMethod": {
+          "default": "amqp", 
+          "type": [
+            "amqp", 
+            "mqtt"
+          ], 
+          "description": "Key matching algorithm used. 'amqp' uses the legacy 
AMQP topic exchange wildcard match method as described in the pre-1.0 drafts. 
'mqtt' uses the MQTT topic filter wildcard match method."
+        }, 
+        "forwardedCount": {
+          "type": "integer", 
+          "description": "The total number of deliveries forwarded via matched 
bindings or to the alternateAddress"
+        }, 
+        "alternatePhase": {
+          "type": "integer", 
+          "description": "The address phase for the alternateAddress.  
Defaults to '0'."
+        }, 
+        "receivedCount": {
+          "type": "integer", 
+          "description": "The total number of deliveries received by this 
exchange."
+        }, 
+        "bindingCount": {
+          "type": "integer", 
+          "description": "The number of bindings associated with this 
exchange."
+        }, 
+        "address": {
+          "required": true, 
+          "type": "string", 
+          "description": "The address of the exchange. Used by the message 
publisher as the target for sending messages."
+        }, 
+        "phase": {
+          "type": "integer", 
+          "description": "The address phase for the exchange.  Defaults to 
'0'."
+        }, 
+        "alternateAddress": {
+          "type": "string", 
+          "description": "The address to forward the message to if no bindings 
are matched."
+        }, 
+        "droppedCount": {
+          "type": "integer", 
+          "description": "The total number of deliveries dropped due to the 
lack of an outgoing subscription."
+        }, 
+        "identity": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique identity generated by the system. Will not 
change."
         }
-      },
-      "fullyQualifiedType": "org.apache.qpid.dispatch.allocator",
-      "description": "Memory allocation pool."
-    },
+      }, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.router.config.exchange", 
+      "description": "[EXPERIMENTAL] Defines a topic exchange."
+    }, 
     "management": {
       "operations": [
-        "GET-SCHEMA",
-        "GET-JSON-SCHEMA",
-        "GET-LOG",
-        "PROFILE",
-        "QUERY",
-        "GET-TYPES",
-        "GET-ANNOTATIONS",
-        "GET-OPERATIONS",
-        "GET-ATTRIBUTES",
-        "GET-MGMT-NODES",
+        "GET-SCHEMA", 
+        "GET-JSON-SCHEMA", 
+        "GET-LOG", 
+        "PROFILE", 
+        "QUERY", 
+        "GET-TYPES", 
+        "GET-ANNOTATIONS", 
+        "GET-OPERATIONS", 
+        "GET-ATTRIBUTES", 
+        "GET-MGMT-NODES", 
         "READ"
-      ],
+      ], 
       "attributes": {
         "name": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique name optionally assigned by user. Can be 
changed."
-        },
+        }, 
         "identity": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique identity generated by the system. Will not 
change."
         }
-      },
-      "singleton": true,
-      "fullyQualifiedType": "org.apache.qpid.dispatch.management",
+      }, 
+      "singleton": true, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.management", 
       "description": "Qpid dispatch router extensions to the standard 
org.amqp.management interface."
-    },
+    }, 
     "console": {
       "operations": [
         "READ"
-      ],
+      ], 
+      "singleton": true, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.console", 
+      "description": "(DEPRECATED) Start a websocket/tcp proxy and http file 
server to serve the web console", 
+      "deprecated": true, 
       "attributes": {
         "name": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique name optionally assigned by user. Can be 
changed."
-        },
+        }, 
         "args": {
-          "type": "string",
+          "type": "string", 
           "description": "Optional args to pass the proxy program for logging, 
authentication, etc."
-        },
+        }, 
         "listener": {
-          "type": "string",
+          "type": "string", 
           "description": "The name of the listener to send the proxied tcp 
traffic to."
-        },
+        }, 
         "proxy": {
-          "type": "string",
+          "required": true, 
+          "type": "string", 
           "description": "The full path to the proxy program to run."
-        },
-        "home": {
-          "type": "string",
-          "description": "The full path to the html/css/js files for the 
console."
-        },
+        }, 
         "wsport": {
-          "default": 5673,
-          "type": "integer",
+          "default": 5673, 
+          "type": "integer", 
           "description": "port on which to listen for websocket traffic"
-        },
+        }, 
+        "home": {
+          "required": true, 
+          "type": "string", 
+          "description": "The full path to the html/css/js files for the 
console."
+        }, 
         "identity": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique identity generated by the system. Will not 
change."
         }
-      },
-      "singleton": true,
-      "fullyQualifiedType": "org.apache.qpid.dispatch.console",
-      "description": "Start a websocket/tcp proxy and http file server to 
serve the web console"
-    },
+      }
+    }, 
     "log": {
       "operations": [
-        "UPDATE",
+        "UPDATE", 
         "READ"
-      ],
+      ], 
       "attributes": {
         "enable": {
-          "type": "string",
+          "type": "string", 
           "description": "Levels are: trace, debug, info, notice, warning, 
error, critical. The enable string is a comma-separated list of levels. A level 
may have a trailing '\\+' to enable that level and above. For example 
'trace,debug,warning+' means enable trace, debug, warning, error and critical. 
The value 'none' means disable logging for the module."
-        },
+        }, 
         "name": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique name optionally assigned by user. Can be 
changed."
-        },
-        "timestamp": {
-          "type": "boolean",
-          "description": "Include timestamp in log messages."
-        },
+        }, 
         "module": {
-          "required": true,
+          "required": true, 
           "type": [
-            "ROUTER",
-            "ROUTER_CORE",
-            "ROUTER_HELLO",
-            "ROUTER_LS",
-            "ROUTER_MA",
-            "MESSAGE",
-            "SERVER",
-            "AGENT",
-            "CONTAINER",
-            "ERROR",
-            "POLICY",
+            "ROUTER", 
+            "ROUTER_CORE", 
+            "ROUTER_HELLO", 
+            "ROUTER_LS", 
+            "ROUTER_MA", 
+            "MESSAGE", 
+            "SERVER", 
+            "AGENT", 
+            "CONTAINER", 
+            "ERROR", 
+            "POLICY", 
+            "HTTP", 
+            "CONN_MGR", 
+            "PYTHON", 
             "DEFAULT"
-          ],
+          ], 
           "description": "Module to configure. The special module 'DEFAULT' 
specifies defaults for all modules."
-        },
-        "source": {
-          "type": "boolean",
-          "description": "Include source file and line number in log messages."
-        },
-        "output": {
-          "type": "string",
+        }, 
+        "outputFile": {
+          "type": "string", 
           "description": "Where to send log messages. Can be 'stderr', 
'stdout', 'syslog' or a file name."
-        },
+        }, 
+        "includeSource": {
+          "type": "boolean", 
+          "description": "Include source file and line number in log messages."
+        }, 
+        "includeTimestamp": {
+          "type": "boolean", 
+          "description": "Include timestamp in log messages."
+        }, 
         "identity": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique identity generated by the system. Will not 
change."
         }
-      },
-      "fullyQualifiedType": "org.apache.qpid.dispatch.log",
+      }, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.log", 
       "description": "Configure logging for a particular module. You can use 
the `UPDATE` operation to change log settings while the router is running."
-    },
+    }, 
+    "vhostUserGroupSettings": {
+      "operations": [
+        "READ"
+      ], 
+      "attributes": {
+        "allowAnonymousSender": {
+          "type": "boolean", 
+          "description": "Whether this connection is allowed to create sending 
links if the sender does not provide a target address. By prohibiting anonymous 
senders, the router only needs to verify once, when the link is created, that 
the sender is permitted to send messages to the target address. The router does 
not need to verify each message that is sent on the link. A value of 'true' 
means that users may send messages to any address. Allowing anonymous senders 
can also decrease performance: if the sender does not specify a target address, 
then the router must parse each message to determine how to route it."
+        }, 
+        "maxReceivers": {
+          "default": 2147483647, 
+          "type": "integer", 
+          "description": "The maximum number of receiving links that may be 
created on this connection. A value of '0' disables all receiver links."
+        }, 
+        "users": {
+          "required": true, 
+          "type": "string", 
+          "description": "A list of authenticated users for this user group. 
Use commas to separate multiple users. A user may belong to only one vhost user 
group."
+        }, 
+        "maxSessions": {
+          "default": 32768, 
+          "type": "integer", 
+          "description": "The maximum number of sessions that may be created 
on this connection. Non-zero policy values overwrite values specified for a 
listener object (AMQP Open, channel-max)."
+        }, 
+        "maxSessionWindow": {
+          "default": 1638400, 
+          "type": "integer", 
+          "description": "The incoming capacity for new AMQP sessions, 
measured in octets. Non-zero policy values overwrite values specified for a 
listener object (AMQP Begin, incoming-window)."
+        }, 
+        "allowDynamicSource": {
+          "type": "boolean", 
+          "description": "Whether this connection is allowed to create dynamic 
receiving links (links to resources that do not exist on the peer). A value of 
'true' means that users are able to automatically create resources on the peer 
system."
+        }, 
+        "maxFrameSize": {
+          "default": 16384, 
+          "type": "integer", 
+          "description": "The largest frame, in bytes, that may be sent on 
this connection. Non-zero policy values overwrite values specified for a 
listener object (AMQP Open, max-frame-size)."
+        }, 
+        "sources": {
+          "type": "string", 
+          "description": "A list of source addresses from which users in this 
group may receive messages. To specify multiple addresses, separate the 
addresses with either a comma or a space. If you do not specify any addresses, 
users in this group are not allowed to receive messages from any addresses. You 
can use the substitution token '{user}' to specify an address that contains a 
user's authenticated user name. You can use an asterisk ('*') wildcard to match 
one or more characters in an address. However, this wildcard is only recognized 
if it is the last character in the address name."
+        }, 
+        "allowUserIdProxy": {
+          "type": "boolean", 
+          "description": "Whether this connection is allowed to send messages 
with a user ID that is different than the connection's authenticated user name."
+        }, 
+        "remoteHosts": {
+          "required": true, 
+          "type": "string", 
+          "description": "A list of remote hosts from which the users may 
connect. A host can be a hostname, IP address, or IP address range. Use commas 
to separate multiple hosts. To allow access from all remote hosts, specify a 
wildcard '*'. To deny access from all remote hosts, leave this attribute blank."
+        }, 
+        "maxSenders": {
+          "default": 2147483647, 
+          "type": "integer", 
+          "description": "The maximum number of sending links that may be 
created on this connection. A value of '0' disables all sender links."
+        }, 
+        "targets": {
+          "type": "string", 
+          "description": "A list of target addresses from which users in this 
group may send messages. To specify multiple addresses, separate the addresses 
with either a comma or a space. If you do not specify any addresses, users in 
this group are not allowed to send messages from any addresses. You can use the 
substitution token '{user}' to specify an address that contains a user's 
authenticated user name. You can use an asterisk ('*') wildcard to match one or 
more characters in an address. However, this wildcard is only recognized if it 
is the last character in the address name."
+        }, 
+        "identity": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique identity generated by the system. Will not 
change."
+        }, 
+        "name": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique name optionally assigned by user. Can be 
changed."
+        }
+      }, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.vhostUserGroupSettings", 
+      "description": "Policy settings for users connecting to a vhost. 
Configuration files including this section must use .json format."
+    }, 
+    "vhostStats": {
+      "operations": [
+        "READ"
+      ], 
+      "attributes": {
+        "name": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique name optionally assigned by user. Can be 
changed."
+        }, 
+        "perHostState": {
+          "type": "map", 
+          "description": "A map where the key is the host name and the value 
is a list of the host's connections."
+        }, 
+        "hostname": {
+          "type": "string", 
+          "description": "The vhost name."
+        }, 
+        "id": {
+          "type": "string", 
+          "description": "The vhost name. DEPRECATED - use 'hostname' instead."
+        }, 
+        "perUserState": {
+          "type": "map", 
+          "description": "A map where the key is the authenticated user name 
and the value is a list of the user's connections."
+        }, 
+        "sessionDenied": {
+          "graph": true, 
+          "type": "integer"
+        }, 
+        "connectionsApproved": {
+          "graph": true, 
+          "type": "integer"
+        }, 
+        "receiverDenied": {
+          "graph": true, 
+          "type": "integer"
+        }, 
+        "connectionsCurrent": {
+          "graph": true, 
+          "type": "integer"
+        }, 
+        "connectionsDenied": {
+          "graph": true, 
+          "type": "integer"
+        }, 
+        "senderDenied": {
+          "graph": true, 
+          "type": "integer"
+        }, 
+        "identity": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique identity generated by the system. Will not 
change."
+        }
+      }, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.vhostStats", 
+      "description": "Virtual host connection and access statistics."
+    }, 
     "connector": {
       "operations": [
-        "CREATE",
-        "DELETE",
+        "CREATE", 
+        "DELETE", 
         "READ"
-      ],
+      ], 
       "attributes": {
-        "linkCapacity": {
-          "type": "integer",
-          "description": "The capacity of links within this connection, in 
terms of message deliveries.  The capacity is the number of messages that can 
be in-flight concurrently for each link."
-        },
-        "verifyHostName": {
-          "default": true,
-          "type": "boolean",
+        "maxSessionFrames": {
+          "type": "integer", 
+          "description": "Session incoming window measured in transfer frames 
for sessions created on this connection. This is the number of transfer frames 
that may simultaneously be in flight for all links in the session. Setting this 
value to zero selects the default session window size. Policy settings will not 
overwrite this value. The numerical product of maxFrameSize and 
maxSessionFrames may not exceed 2^31-1. If (maxFrameSize x maxSessionFrames) 
exceeds 2^31-1 then maxSessionFrames is reduced to (2^31-1 / maxFrameSize). 
maxSessionFrames has a minimum value of 1.  Defaults to 0 (unlimited window)."
+        }, 
+        "verifyHostname": {
+          "default": true, 
+          "type": "boolean", 
           "description": "yes: Ensures that when initiating a connection (as a 
client) the host name in the URL to which this connector connects to matches 
the host name in the digital certificate that the peer sends back as part of 
the SSL connection; no: Does not perform host name verification"
-        },
-        "cost": {
-          "default": "1",
-          "type": "integer",
-          "description": "For the 'inter-router' role only.  This value 
assigns a cost metric to the inter-router connection.  The default (and 
minimum) value is one.  Higher values represent higher costs.  The cost is used 
to influence the routing algorithm as it attempts to use the path with the 
lowest total cost from ingress to egress."
-        },
-        "addr": {
-          "default": "127.0.0.1",
-          "deprecated": true,
-          "type": "string",
-          "description": "(DEPRECATED)IP address: ipv4 or ipv6 literal or a 
host name. This attribute has been deprecated. Use host instead"
-        },
-        "maxSessions": {
-          "default": 32768,
-          "type": "integer",
-          "description": "The maximum number of sessions that can be 
simultaneously active on the connection. Setting this value to zero selects the 
default number of sessions. Policy settings will not overwrite this value. 
Defaults to 32768."
-        },
+        }, 
+        "saslPassword": {
+          "type": "string", 
+          "description": "The password that the connector is using to connect 
to a peer."
+        }, 
+        "stripAnnotations": {
+          "default": "both", 
+          "type": [
+            "in", 
+            "out", 
+            "both", 
+            "no"
+          ], 
+          "description": "['in', 'out', 'both', 'no'] in: Strip the dispatch 
router specific annotations only on ingress; out: Strip the dispatch router 
specific annotations only on egress; both: Strip the dispatch router specific 
annotations on both ingress and egress; no - do not strip dispatch router 
specific annotations"
+        }, 
+        "name": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique name optionally assigned by user. Can be 
changed."
+        }, 
         "saslUsername": {
-          "type": "string",
+          "type": "string", 
           "description": "The user name that the connector is using to connect 
to a peer."
-        },
+        }, 
         "allowRedirect": {
-          "default": true,
-          "type": "boolean",
+          "default": true, 
+          "type": "boolean", 
           "description": "Allow the peer to redirect this connection to 
another address."
-        },
+        }, 
         "idleTimeoutSeconds": {
-          "default": 16,
-          "type": "integer",
+          "default": 16, 
+          "type": "integer", 
           "description": "The idle timeout, in seconds, for connections 
through this connector.  If no frames are received on the connection for this 
time interval, the connection shall be closed."
-        },
+        }, 
         "saslMechanisms": {
-          "type": "string",
+          "type": "string", 
           "description": "Space separated list of accepted SASL authentication 
mechanisms."
-        },
+        }, 
         "maxFrameSize": {
-          "default": 16384,
-          "type": "integer",
+          "default": 16384, 
+          "type": "integer", 
           "description": "The maximum frame size in octets that will be used 
in the connection-open negotiation with a connected peer.  The frame size is 
the largest contiguous set of uninterrupted data that can be sent for a message 
delivery over the connection. Interleaving of messages on different links is 
done at frame granularity. Policy settings will not overwrite this value. 
Defaults to 16384."
-        },
-        "maxSessionFrames": {
-          "default": 100,
-          "type": "integer",
-          "description": "Session incoming window measured in transfer frames 
for sessions created on this connection. This is the number of transfer frames 
that may simultaneously be in flight for all links in the session. Setting this 
value to zero selects the default session window size. Policy settings will not 
overwrite this value. The numerical product of maxFrameSize and 
maxSessionFrames may not exceed 2^31-1. If (maxFrameSize x maxSessionFrames) 
exceeds 2^31-1 then maxSessionFrames is reduced to (2^31-1 / maxFrameSize). 
maxSessionFrames has a minimum value of 1. Defaults to 100."
-        },
+        }, 
+        "port": {
+          "default": "amqp", 
+          "type": "string", 
+          "description": "Port number or symbolic service name."
+        }, 
+        "linkCapacity": {
+          "type": "integer", 
+          "description": "The capacity of links within this connection, in 
terms of message deliveries.  The capacity is the number of messages that can 
be in-flight concurrently for each link."
+        }, 
         "host": {
-          "default": "127.0.0.1",
-          "type": "string",
+          "default": "127.0.0.1", 
+          "type": "string", 
           "description": "IP address: ipv4 or ipv6 literal or a host name"
-        },
-        "sslProfile": {
-          "type": "string",
-          "description": "Name of the sslProfile."
-        },
+        }, 
+        "cost": {
+          "default": 1, 
+          "type": "integer", 
+          "description": "For the 'inter-router' role only.  This value 
assigns a cost metric to the inter-router connection.  The default (and 
minimum) value is one.  Higher values represent higher costs.  The cost is used 
to influence the routing algorithm as it attempts to use the path with the 
lowest total cost from ingress to egress."
+        }, 
         "role": {
-          "default": "normal",
-          "type": [
-            "normal",
-            "inter-router",
-            "route-container",
-            "on-demand"
-          ],
-          "description": "The role of an established connection. In the normal 
role, the connection is assumed to be used for AMQP clients that are doing 
normal message delivery over the connection.  In the inter-router role, the 
connection is assumed to be to another router in the network.  Inter-router 
discovery and routing protocols can only be used over inter-router connections. 
route-container role can be used for router-container connections, for example, 
a router-broker connection. on-demand role has been deprecated."
-        },
-        "saslPassword": {
-          "type": "string",
-          "description": "The password that the connector is using to connect 
to a peer."
-        },
-        "stripAnnotations": {
-          "default": "both",
+          "default": "normal", 
           "type": [
-            "in",
-            "out",
-            "both",
-            "no"
-          ],
-          "description": "['in', 'out', 'both', 'no'] in: Strip the dispatch 
router specific annotations only on ingress; out: Strip the dispatch router 
specific annotations only on egress; both: Strip the dispatch router specific 
annotations on both ingress and egress; no - do not strip dispatch router 
specific annotations"
-        },
+            "normal", 
+            "inter-router", 
+            "route-container"
+          ], 
+          "description": "The role of an established connection. In the normal 
role, the connection is assumed to be used for AMQP clients that are doing 
normal message delivery over the connection.  In the inter-router role, the 
connection is assumed to be to another router in the network.  Inter-router 
discovery and routing protocols can only be used over inter-router connections. 
route-container role can be used for router-container connections, for example, 
a router-broker connection."
+        }, 
+        "sslProfile": {
+          "type": "string", 
+          "description": "Name of the sslProfile."
+        }, 
+        "failoverUrls": {
+          "type": "string", 
+          "description": "A read-only, comma-separated list of failover urls. "
+        }, 
+        "maxSessions": {
+          "default": 32768, 
+          "type": "integer", 
+          "description": "The maximum number of sessions that can be 
simultaneously active on the connection. Setting this value to zero selects the 
default number of sessions. Policy settings will not overwrite this value. 
Defaults to 32768."
+        }, 
         "protocolFamily": {
           "type": [
-            "IPv4",
+            "IPv4", 
             "IPv6"
-          ],
+          ], 
           "description": "['IPv4', 'IPv6'] IPv4: Internet Protocol version 4; 
IPv6: Internet Protocol version 6.  If not specified, the protocol family will 
be automatically determined from the address."
-        },
-        "port": {
-          "default": "amqp",
-          "type": "string",
-          "description": "Port number or symbolic service name."
-        },
+        }, 
         "identity": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique identity generated by the system. Will not 
change."
-        },
-        "name": {
-          "unique": true,
-          "type": "string",
-          "description": "Unique name optionally assigned by user. Can be 
changed."
+        }, 
+        "messageLoggingComponents": {
+          "default": "none", 
+          "type": "string", 
+          "description": "A comma separated list that indicates which 
components of the message should be logged (no spaces allowed between list 
components). Defaults to 'none' (log nothing). If you want all properties and 
application properties of the message logged use 'all'. Specific components of 
the message can be logged by indicating the components via a comma separated 
list. The components are message-id, user-id, to, subject, reply-to, 
correlation-id, content-type, content-encoding, absolute-expiry-time, 
creation-time, group-id, group-sequence, reply-to-group-id, app-properties. The 
application-data part of the bare message will not be logged. This log message 
is written to the MESSAGE logging module. In the 'log' entity, set 'module' 
property to MESSAGE or DEFAULT and 'enable' to trace+ to see this log message"
         }
-      },
-      "fullyQualifiedType": "org.apache.qpid.dispatch.connector",
+      }, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.connector", 
       "description": "Establishes an outgoing connection from the router."
-    },
-    "waypoint": {
+    }, 
+    "logStats": {
       "operations": [
-        "CREATE",
-        "DELETE",
         "READ"
-      ],
+      ], 
       "attributes": {
+        "debugCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "How many debug-level events have happened on this 
log."
+        }, 
+        "criticalCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "How many critical-level events have happened on this 
log."
+        }, 
+        "traceCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "How many trace-level events have happened on this 
log."
+        }, 
+        "warningCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "How many warning-level events have happened on this 
log."
+        }, 
+        "infoCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "How many info-level events have happened on this 
log."
+        }, 
+        "noticeCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "How many notice-level events have happened on this 
log."
+        }, 
+        "errorCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "How many error-level events have happened on this 
log."
+        }, 
+        "identity": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique identity generated by the system. Will not 
change."
+        }, 
         "name": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique name optionally assigned by user. Can be 
changed."
-        },
-        "inPhase": {
-          "default": -1,
-          "type": "integer",
-          "description": "The phase of the address as it is routed _to_ the 
waypoint."
-        },
-        "connector": {
-          "required": true,
-          "type": "string",
-          "description": "The name of the on-demand connector used to reach 
the waypoint's container."
-        },
-        "outPhase": {
-          "default": -1,
-          "type": "integer",
-          "description": "The phase of the address as it is routed _from_ the 
waypoint."
-        },
-        "address": {
-          "required": true,
-          "type": "string",
-          "description": "The AMQP address of the waypoint."
-        },
+        }
+      }, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.logStats", 
+      "description": "histogram of the different severity-levels of events on 
the given log."
+    }, 
+    "allocator": {
+      "operations": [
+        "READ"
+      ], 
+      "attributes": {
+        "heldByThreads": {
+          "graph": true, 
+          "type": "integer"
+        }, 
+        "localFreeListMax": {
+          "graph": true, 
+          "type": "integer"
+        }, 
+        "transferBatchSize": {
+          "type": "integer"
+        }, 
+        "globalFreeListMax": {
+          "graph": true, 
+          "type": "integer"
+        }, 
+        "batchesRebalancedToGlobal": {
+          "graph": true, 
+          "type": "integer"
+        }, 
+        "typeName": {
+          "type": "string"
+        }, 
+        "batchesRebalancedToThreads": {
+          "graph": true, 
+          "type": "integer"
+        }, 
+        "totalFreeToHeap": {
+          "graph": true, 
+          "type": "integer"
+        }, 
+        "totalAllocFromHeap": {
+          "graph": true, 
+          "type": "integer"
+        }, 
+        "typeSize": {
+          "type": "integer"
+        }, 
         "identity": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique identity generated by the system. Will not 
change."
+        }, 
+        "name": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique name optionally assigned by user. Can be 
changed."
         }
-      },
-      "fullyQualifiedType": "org.apache.qpid.dispatch.waypoint",
-      "description": "(DEPRECATED) A remote node that messages for an address 
pass through. This entity has been deprecated. Use autoLink instead",
-      "deprecated": true
-    },
+      }, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.allocator", 
+      "description": "Memory allocation pool."
+    }, 
     "policy": {
       "operations": [
         "READ"
-      ],
+      ], 
       "attributes": {
         "connectionsProcessed": {
-          "graph": true,
+          "graph": true, 
           "type": "integer"
-        },
+        }, 
         "policyDir": {
-          "type": "path",
-          "description": "Absolute path to a directory that holds vhost 
definition .json files. All vhost definitions in all .json files in this 
directory are processed."
-        },
+          "type": "path", 
+          "description": "The absolute path to a directory that holds vhost 
policy definition files in JSON format (*.json). The router processes all of 
the vhost policies in each JSON file that is in this directory."
+        }, 
         "defaultVhost": {
-          "default": "$default",
-          "type": "string",
-          "description": "Vhost rule set name to use for connections with a 
vhost that is otherwise not defined. Default vhost processing may be disabled 
either by erasing the definition of defaultVhost or by not defining a vhost 
object named '$default'."
-        },
+          "default": "$default", 
+          "type": "string", 
+          "description": "The name of the default vhost policy, which is 
applied to any connection for which a vhost policy has not been configured. If 
'defaultVhost' is not defined, then default vhost processing is disabled."
+        }, 
         "connectionsDenied": {
-          "graph": true,
+          "graph": true, 
           "type": "integer"
-        },
+        }, 
         "enableVhostPolicy": {
-          "type": "boolean",
-          "description": "Enable vhost policy user groups, connection denial, 
and resource limit enforcement"
-        },
+          "type": "boolean", 
+          "description": "Enables the router to enforce the connection denials 
and resource limits defined in the configured vhost policies."
+        }, 
         "maxConnections": {
-          "default": 65535,
-          "type": "integer",
-          "description": "Global maximum number of concurrent client 
connections allowed. This limit is always enforced even if no other policy 
settings have been defined."
-        },
+          "default": 65535, 
+          "type": "integer", 
+          "description": "The maximum number of concurrent client connections 
allowed for this router. This limit is always enforced, even if no other policy 
settings have been defined. The limit is applied to all incoming connections 
regardless of remote host, authenticated user, or targeted vhost."
+        }, 
         "connectionsCurrent": {
-          "graph": true,
+          "graph": true, 
           "type": "integer"
-        },
+        }, 
         "identity": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique identity generated by the system. Will not 
change."
-        },
+        }, 
         "name": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique name optionally assigned by user. Can be 
changed."
         }
-      },
-      "singleton": true,
-      "fullyQualifiedType": "org.apache.qpid.dispatch.policy",
+      }, 
+      "singleton": true, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.policy", 
       "description": "Defines global connection limit"
-    },
-    "fixedAddress": {
+    }, 
+    "autoLink": {
       "operations": [
-        "CREATE",
+        "CREATE", 
+        "DELETE", 
         "READ"
-      ],
+      ], 
       "attributes": {
-        "name": {
-          "unique": true,
-          "type": "string",
-          "description": "Unique name optionally assigned by user. Can be 
changed."
-        },
-        "bias": {
-          "default": "closest",
+        "direction": {
+          "required": true, 
           "type": [
-            "closest",
-            "spread"
-          ],
-          "description": "Only if fanout is single.  One of 'closest' or 
'spread'.  Closest bias means that messages to an address will always be 
delivered to the closest (lowest cost) subscribed consumer. Spread bias will 
distribute the messages across subscribers in an approximately even manner."
-        },
-        "prefix": {
-          "required": true,
-          "type": "string",
-          "description": "The address prefix (always starting with '/')."
-        },
-        "fanout": {
-          "default": "multiple",
+            "in", 
+            "out"
+          ], 
+          "description": "The direction of the link to be created.  In means 
into the router, out means out of the router."
+        }, 
+        "addr": {
+          "required": true, 
+          "type": "string", 
+          "description": "The address of the provisioned object"
+        }, 
+        "linkRef": {
+          "type": "string", 
+          "description": "Reference to the 
org.apache.qpid.dispatch.router.link if the link exists"
+        }, 
+        "containerId": {
+          "type": "string", 
+          "description": "ContainerID for the target container. Only one of 
containerId or connection should be specified for an autoLink. Specifying both 
will result in the autoLink not being created"
+        }, 
+        "operStatus": {
           "type": [
-            "multiple",
-            "single"
-          ],
-          "description": "One of 'multiple' or 'single'.  Multiple fanout is a 
non-competing pattern.  If there are multiple consumers using the same address, 
each consumer will receive its own copy of every message sent to the address.  
Single fanout is a competing pattern where each message is sent to only one 
consumer."
-        },
+            "inactive", 
+            "attaching", 
+            "failed", 
+            "active", 
+            "quiescing", 
+            "idle"
+          ], 
+          "description": "The operational status of this autoLink: inactive - 
The remote container is not connected; attaching - the link is attaching to the 
remote node; failed - the link attach failed; active - the link is attached and 
operational; quiescing - the link is transitioning to idle state; idle - the 
link is attached but there are no deliveries flowing and no unsettled 
deliveries."
+        }, 
+        "connection": {
+          "type": "string", 
+          "description": "The name from a connector or listener. Only one of 
containerId or connection should be specified for an autoLink. Specifying both 
will result in the autoLink not being created"
+        }, 
         "phase": {
-          "type": "integer",
-          "description": "The phase of a multi-hop address passing through one 
or more waypoints."
-        },
-        "identity": {
-          "unique": true,
-          "type": "string",
-          "description": "Unique identity generated by the system. Will not 
change."
-        }
-      },
-      "fullyQualifiedType": "org.apache.qpid.dispatch.fixedAddress",
-      "description": "(DEPRECATED) Establishes treatment for addresses 
starting with a prefix. This entity has been deprecated. Use address instead",
-      "deprecated": true
-    },
-    "linkRoutePattern": {
-      "operations": [
-        "CREATE",
-        "READ"
-      ],
-      "attributes": {
-        "connector": {
-          "type": "string",
-          "description": "The name of the on-demand connector used to reach 
the target node's container.  If this value is not provided, it means that the 
target container is expected to be connected to a different router in the 
network.  This prevents links to a link-routable address from being 
misinterpreted as message-routing links when there is no route to a valid 
destination available."
-        },
-        "prefix": {
-          "required": true,
-          "type": "string",
-          "description": "An address prefix to match against target and source 
addresses.  This pattern must be of the form '<text>.<text1>.<textN>' or 
'<text>' or '<text>.' and matches any address that contains that prefix.  For 
example, if the prefix is set to org.apache (or org.apache.), any address that 
has the prefix 'org.apache'  (like org.apache.dev) will match. Note that a 
prefix must not start with a (.), can end in a (.) and can contain zero or more 
dots (.).  Any characters between the dots are simply treated as part of the 
address"
-        },
+          "type": "integer", 
+          "description": "The address phase for this link.  Defaults to '0' 
for 'out' links and '1' for 'in' links."
+        }, 
+        "lastError": {
+          "type": "string", 
+          "description": "The error description from the last attach failure"
+        }, 
+        "externalAddr": {
+          "type": "string", 
+          "description": "If present, an alternate address of the node on the 
remote container.  This is used if the node has a different address than the 
address used internally by the router to route deliveries."
+        }, 
         "identity": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique identity generated by the system. Will not 
change."
-        },
+        }, 
         "name": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique name optionally assigned by user. Can be 
changed."
-        },
-        "dir": {
-          "default": "both",
-          "type": [
-            "in",
-            "out",
-            "both"
-          ],
-          "description": "Link direction for match: 'in' matches only links 
inbound to the client; 'out' matches only links outbound from the client; 
'both' matches any link."
-        }
-      },
-      "fullyQualifiedType": "org.apache.qpid.dispatch.linkRoutePattern",
-      "description": "(DEPRECATED) An address pattern to match against link 
sources and targets to cause the router to link-route the attach across the 
network to a remote node. This entity has been deprecated. Use linkRoute 
instead",
-      "deprecated": true
-    },
-    "vhostStats": {
-      "operations": [
-        "READ"
-      ],
-      "attributes": {
-        "name": {
-          "unique": true,
-          "type": "string",
-          "description": "Unique name optionally assigned by user. Can be 
changed."
-        },
-        "perHostState": {
-          "type": "map",
-          "description": "A map where the key is the host name and the value 
is a list of the host's connections."
-        },
-        "perUserState": {
-          "type": "map",
-          "description": "A map where the key is the authenticated user name 
and the value is a list of the user's connections."
-        },
-        "sessionDenied": {
-          "graph": true,
-          "type": "integer"
-        },
-        "connectionsApproved": {
-          "graph": true,
-          "type": "integer"
-        },
-        "receiverDenied": {
-          "graph": true,
-          "type": "integer"
-        },
-        "connectionsCurrent": {
-          "graph": true,
-          "type": "integer"
-        },
-        "senderDenied": {
-          "graph": true,
-          "type": "integer"
-        },
-        "connectionsDenied": {
-          "graph": true,
-          "type": "integer"
-        },
-        "id": {
-          "type": "string",
-          "description": "The vhost name."
-        },
-        "identity": {
-          "unique": true,
-          "type": "string",
-          "description": "Unique identity generated by the system. Will not 
change."
         }
-      },
-      "fullyQualifiedType": "org.apache.qpid.dispatch.vhostStats",
-      "description": "Virtual host connection and access statistics."
-    },
+      }, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.router.config.autoLink", 
+      "description": "Entity type for configuring auto-links.  Auto-links are 
links whose lifecycle is managed by the router.  These are typically used to 
attach to waypoints on remote containers (brokers, etc.)."
+    }, 
     "listener": {
       "operations": [
-        "CREATE",
-        "DELETE",
+        "CREATE", 
+        "DELETE", 
         "READ"
-      ],
+      ], 
       "attributes": {
         "stripAnnotations": {
-          "default": "both",
+          "default": "both", 
           "type": [
-            "in",
-            "out",
-            "both",
+            "in", 
+            "out", 
+            "both", 
             "no"
-          ],
+          ], 
           "description": "['in', 'out', 'both', 'no'] in: Strip the dispatch 
router specific annotations only on ingress; out: Strip the dispatch router 
specific annotations only on egress; both: Strip the dispatch router specific 
annotations on both ingress and egress; no - do not strip dispatch router 
specific annotations"
-        },
+        }, 
         "requireSsl": {
-          "type": "boolean",
+          "type": "boolean", 
           "description": "yes: Require the use of SSL or TLS on the 
connection; no: Allow clients to connect without SSL or TLS."
-        },
-        "idleTimeoutSeconds": {
-          "default": 16,
-          "type": "integer",
-          "description": "The idle timeout, in seconds, for connections 
through this listener.  If no frames are received on the connection for this 
time interval, the connection shall be closed."
-        },
-        "trustedCerts": {
-          "type": "path",
-          "description": "This optional setting can be used to reduce the set 
of available CAs for client authentication.  If used, this setting must provide 
the absolute path to a PEM file that contains the trusted certificates."
-        },
+        }, 
+        "messageLoggingComponents": {
+          "default": "none", 
+          "type": "string", 
+          "description": "A comma separated list that indicates which 
components of the message should be logged. Defaults to 'none' (log nothing). 
If you want all properties and application properties of the message logged use 
'all'. Specific components of the message can be logged by indicating the 
components via a comma separated list. The components are message-id, user-id, 
to, subject, reply-to, correlation-id, content-type, content-encoding, 
absolute-expiry-time, creation-time, group-id, group-sequence, 
reply-to-group-id, app-properties. The application-data part of the bare 
message will not be logged. No spaces are allowed"
+        }, 
         "maxSessionFrames": {
-          "default": 100,
-          "type": "integer",
-          "description": "Session incoming window measured in transfer frames 
for sessions created on this connection. This is the number of transfer frames 
that may simultaneously be in flight for all links in the session. Setting this 
value to zero selects the default session window size. Policy settings, if 
specified, will overwrite this value. The numerical product of maxFrameSize and 
maxSessionFrames may not exceed 2^31-1. If (maxFrameSize x maxSessionFrames) 
exceeds 2^31-1 then maxSessionFrames is reduced to (2^31-1 / maxFrameSize). 
maxSessionFrames has a minimum value of 1. Defaults to 100."
-        },
+          "type": "integer", 
+          "description": "Session incoming window measured in transfer frames 
for sessions created on this connection. This is the number of transfer frames 
that may simultaneously be in flight for all links in the session. Setting this 
value to zero selects the default session window size. Policy settings, if 
specified, will overwrite this value. The numerical product of maxFrameSize and 
maxSessionFrames may not exceed 2^31-1. If (maxFrameSize x maxSessionFrames) 
exceeds 2^31-1 then maxSessionFrames is reduced to (2^31-1 / maxFrameSize). 
maxSessionFrames has a minimum value of 1. Defaults to 0 (unlimited window)."
+        }, 
         "cost": {
-          "default": "1",
-          "type": "integer",
+          "default": 1, 
+          "type": "integer", 
           "description": "For the 'inter-router' role only.  This value 
assigns a cost metric to the inter-router connection.  The default (and 
minimum) value is one.  Higher values represent higher costs.  The cost is used 
to influence the routing algorithm as it attempts to use the path with the 
lowest total cost from ingress to egress."
-        },
+        }, 
         "port": {
-          "default": "amqp",
-          "type": "string",
-          "description": "Port number or symbolic service name."
-        },
-        "allowNoSasl": {
-          "deprecated": true,
-          "type": "boolean",
-          "description": "(DEPRECATED) This attribute is now controlled by the 
authenticatePeer attribute."
-        },
-        "addr": {
-          "default": "127.0.0.1",
-          "deprecated": true,
-          "type": "string",
-          "description": "(DEPRECATED)IP address: ipv4 or ipv6 literal or a 
host name. This attribute has been deprecated. Use host instead"
-        },
+          "default": "amqp", 
+          "type": "string", 
+          "description": "Port number or symbolic service name.  If '0', the 
router shall assign an ephemeral port to the listener and log the port number 
with a log of the form 'SERVER (notice) Listening on <host>:<assigned-port> 
(<listener-name>)'"
+        }, 
+        "saslPlugin": {
+          "type": "string", 
+          "description": "EXPERIMENTAL. Name of the a sasl plugin 
configuration section to use for this listener (e.g. authServicePlugin)."
+        }, 
+        "trustedCertsFile": {
+          "type": "path", 
+          "description": "This optional setting can be used to reduce the set 
of available CAs for client authentication.  If used, this setting must provide 
the absolute path to a PEM file that contains the trusted certificates."
+        }, 
         "saslMechanisms": {
-          "type": "string",
+          "type": "string", 
           "description": "Space separated list of accepted SASL authentication 
mechanisms."
-        },
+        }, 
         "requireEncryption": {
-          "type": "boolean",
+          "type": "boolean", 
           "description": "yes: Require the connection to the peer to be 
encrypted; no: Permit non-encrypted communication with the peer"
-        },
+        }, 
         "linkCapacity": {
-          "type": "integer",
+          "type": "integer", 
           "description": "The capacity of links within this connection, in 
terms of message deliveries.  The capacity is the number of messages that can 
be in-flight concurrently for each link."
-        },
-        "requirePeerAuth": {
-          "deprecated": true,
-          "type": "boolean",
-          "description": "(DEPRECATED) This attribute is now controlled by the 
authenticatePeer attribute."
-        },
+        }, 
         "role": {
-          "default": "normal",
+          "default": "normal", 
           "type": [
-            "normal",
-            "inter-router",
-            "route-container",
-            "on-demand"
-          ],
-          "description": "The role of an established connection. In the normal 
role, the connection is assumed to be used for AMQP clients that are doing 
normal message delivery over the connection.  In the inter-router role, the 
connection is assumed to be to another router in the network.  Inter-router 
discovery and routing protocols can only be used over inter-router connections. 
route-container role can be used for router-container connections, for example, 
a router-broker connection. on-demand role has been deprecated."
-        },
+            "normal", 
+            "inter-router", 
+            "route-container"
+          ], 
+          "description": "The role of an established connection. In the normal 
role, the connection is assumed to be used for AMQP clients that are doing 
normal message delivery over the connection.  In the inter-router role, the 
connection is assumed to be to another router in the network.  Inter-router 
discovery and routing protocols can only be used over inter-router connections. 
route-container role can be used for router-container connections, for example, 
a router-broker connection."
+        }, 
+        "identity": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique identity generated by the system. Will not 
change."
+        }, 
         "maxSessions": {
-          "default": 32768,
-          "type": "integer",
+          "default": 32768, 
+          "type": "integer", 
           "description": "The maximum number of sessions that can be 
simultaneously active on the connection. Setting this value to zero selects the 
default number of sessions. Policy settings, if specified, will overwrite this 
value. Defaults to 32768."
-        },
+        }, 
         "authenticatePeer": {
-          "type": "boolean",
+          "type": "boolean", 
           "description": "yes: Require the peer's identity to be 
authenticated; no: Do not require any authentication."
-        },
+        }, 
+        "http": {
+          "type": "boolean", 
+          "description": "Accept HTTP connections that can upgrade to AMQP 
over WebSocket. Plain AMQP connections are not accepted on this listener."
+        }, 
+        "idleTimeoutSeconds": {
+          "default": 16, 
+          "type": "integer", 
+          "description": "The idle timeout, in seconds, for connections 
through this listener.  If no frames are received on the connection for this 
time interval, the connection shall be closed."
+        }, 
+        "multiTenant": {
+          "type": "boolean", 
+          "description": "If true, apply multi-tenancy to endpoints connected 
at this listener.  The address space is defined by the virtual host (hostname 
field in the Open)."
+        }, 
         "host": {
-          "default": "127.0.0.1",
-          "type": "string",
-          "description": "IP address: ipv4 or ipv6 literal or a host name"
-        },
-        "allowUnsecured": {
-          "deprecated": true,
-          "type": "boolean",
-          "description": "(DEPRECATED) This attribute is now controlled by the 
requireEncryption attribute."
-        },
-        "protocolFamily": {
+          "type": "string", 
+          "description": "A host name, IPV4 or IPV6 literal, or the empty 
string. The empty string listens on all local addresses. A host name listens on 
all addresses associated with the name. An IPV6 literal address (or wildcard 
'[::]') listens only for IPV6. An IPV4 literal address (or wildcard '0.0.0.0') 
listens only for IPV4."
+        }, 
+        "initialHandshakeTimeoutSeconds": {
+          "type": "integer", 
+          "description": "The timeout, in seconds, for the initial handshake 
for connections coming in through listeners.  If the time interval expires 
before the peer sends the AMQP OPEN frame, the connection shall be closed.  A 
value of zero (the default) disables this timeout."
+        }, 
+        "httpRootDir": {
+          "type": "path", 
+          "description": "Serve HTTP files from this directory, defaults to 
the installed stand-alone console directory"
+        }, 
+        "name": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique name optionally assigned by user. Can be 
changed."
+        }, 
+        "socketAddressFamily": {
           "type": [
-            "IPv4",
+            "IPv4", 
             "IPv6"
-          ],
+          ], 
           "description": "['IPv4', 'IPv6'] IPv4: Internet Protocol version 4; 
IPv6: Internet Protocol version 6.  If not specified, the protocol family will 
be automatically determined from the address."
-        },
-        "identity": {
-          "unique": true,
-          "type": "string",
-          "description": "Unique identity generated by the system. Will not 
change."
-        },
-        "name": {
-          "unique": true,
-          "type": "string",
-          "description": "Unique name optionally assigned by user. Can be 
changed."
-        },
+        }, 
         "maxFrameSize": {
-          "default": 16384,
-          "type": "integer",
+          "default": 16384, 
+          "type": "integer", 
           "description": "The maximum frame size in octets that will be used 
in the connection-open negotiation with a connected peer.  The frame size is 
the largest contiguous set of uninterrupted data that can be sent for a message 
delivery over the connection. Interleaving of messages on different links is 
done at frame granularity. Policy settings, if specified, will overwrite this 
value. Defaults to 16384."
-        },
+        }, 
         "sslProfile": {
-          "type": "string",
+          "type": "string", 
           "description": "Name of the sslProfile."
+        }, 
+        "failoverUrls": {
+          "type": "string", 
+          "description": "A comma-separated list of failover urls to be 
supplied to connected clients.  Form: [(amqp|amqps|ws|wss)://]host_or_ip[:port]"
         }
-      },
-      "fullyQualifiedType": "org.apache.qpid.dispatch.listener",
+      }, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.listener", 
       "description": "Listens for incoming connections to the router."
-    },
+    }, 
     "configurationEntity": {
       "operations": [
         "READ"
-      ],
+      ], 
       "attributes": {
         "name": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique name optionally assigned by user. Can be 
changed."
-        },
+        }, 
         "identity": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique identity generated by the system. Will not 
change."
         }
-      },
-      "fullyQualifiedType": "org.apache.qpid.dispatch.configurationEntity",
+      }, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.configurationEntity", 
       "description": "Base type for entities containing configuration 
information."
-    },
-    "address": {
+    }, 
+    "routerStats": {
       "operations": [
-        "CREATE",
-        "DELETE",
         "READ"
-      ],
+      ], 
       "attributes": {
-        "egressPhase": {
-          "type": "integer",
-          "description": "Advanced - Override the egress phase for this 
address"
-        },
-        "ingressPhase": {
-          "type": "integer",
-          "description": "Advanced - Override the ingress phase for this 
address"
-        },
-        "prefix": {
-          "required": true,
-          "type": "string",
-          "description": "The address prefix for the configured settings"
-        },
-        "waypoint": {
-          "type": "boolean",
-          "description": "Designates this address space as being used for 
waypoints.  This will cause the proper address-phasing to be used."
-        },
-        "distribution": {
-          "default": "balanced",
-          "type": [
-            "multicast",
-            "closest",
-            "balanced"
-          ],
-          "description": "Treatment of traffic associated with the address"
-        },
+        "linkRouteCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of link routes attached to the router node."
+        }, 
+        "droppedPresettledDeliveries": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of presettled deliveries that were dropped by 
the router."
+        }, 
+        "rejectedDeliveries": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of deliveries whose delivery state was set to 
REJECTED by the router. These deliveries were Invalid and unprocessable."
+        }, 
+        "autoLinkCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of auto links attached to the router node."
+        }, 
+        "id": {
+          "type": "string", 
+          "description": "Router's unique identity. The router will fail to 
start without id."
+        }, 
+        "presettledDeliveries": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of presettled deliveries handled by the 
router."
+        }, 
+        "deliveriesIngress": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of deliveries that were sent to it by a 
sender that is directly attached to the router."
+        }, 
+        "deliveriesIngressRouteContainer": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of deliveries that were received from router 
container connections."
+        }, 
+        "acceptedDeliveries": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of deliveries whose delivery state was set to 
ACCEPTED by the router. These deliveries were successfully processed by the 
router."
+        }, 
+        "version": {
+          "type": "string", 
+          "description": "Software Version"
+        }, 
+        "linkCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of links attached to the router node."
+        }, 
+        "connectionCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of open connections to the router node."
+        }, 
+        "addrCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of addresses known to the router."
+        }, 
+        "releasedDeliveries": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of deliveries whose delivery state was set to 
RELEASED by the router. These deliveries was not (and will not be) processed"
+        }, 
+        "nodeCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of known peer router nodes."
+        }, 
+        "modifiedDeliveries": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of deliveries whose delivery state was set to 
MODIFIED by the router. These deliveries were modified but not processed."
+        }, 
         "identity": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique identity generated by the system. Will not 
change."
-        },
+        }, 
+        "deliveriesEgress": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of deliveries that were sent by the router to 
a receiver that is directly attached to the router."
+        }, 
+        "deliveriesEgressRouteContainer": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of deliveries that were sent to route 
container connections."
+        }, 
         "name": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique name optionally assigned by user. Can be 
changed."
+        }, 
+        "deliveriesTransit": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of deliveries that were sent to another 
router in the network."
+        }, 
+        "mode": {
+          "default": "standalone", 
+          "type": [
+            "standalone", 
+            "interior"
+          ], 
+          "description": "In standalone mode, the router operates as a single 
component.  It does not participate in the routing protocol and therefore will 
not cooperate with other routers. In interior mode, the router operates in 
cooperation with other interior routers in an interconnected network."
         }
-      },
-      "fullyQualifiedType": "org.apache.qpid.dispatch.router.config.address",
-      "description": "Entity type for address configuration.  This is used to 
configure the treatment of message-routed deliveries within a particular 
address-space.  The configuration controls distribution and address phasing."
-    },
-    "container": {
+      }, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.routerStats", 
+      "description": "Overall router statistics."
+    }, 
+    "authServicePlugin": {
       "operations": [
+        "CREATE", 
+        "DELETE", 
         "READ"
-      ],
-      "singleton": true,
-      "fullyQualifiedType": "org.apache.qpid.dispatch.container",
-      "description": "(DEPRECATED)Attributes related to the AMQP container. 
This entity has been deprecated. Use the router entity instead.",
-      "deprecated": true,
+      ], 
       "attributes": {
-        "containerName": {
-          "type": "string",
-          "description": "The  name of the AMQP container.  If not specified, 
the container name will be set to a value of the container's choosing.  The 
automatically assigned container name is not guaranteed to be persistent across 
restarts of the container."
-        },
-        "debugDump": {
-          "type": "path",
-          "description": "A file to dump debugging information that can't be 
logged normally."
-        },
-        "workerThreads": {
-          "default": 4,
-          "type": "integer",
-          "description": "The number of threads that will be created to 
process message traffic and other application work (timers, non-amqp file 
descriptors, etc.) ."
-        },
+        "saslInitHostname": {
+          "type": "string", 
+          "description": "Value to set for hostname field on sasl-init"
+        }, 
+        "authSslProfile": {
+          "type": "string", 
+          "description": "Name of the sslProfile to use for the authentication 
service."
+        }, 
+        "authService": {
+          "required": true, 
+          "type": "string", 
+          "description": "Address of a service to delegate authentication to."
+        }, 
         "name": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique name optionally assigned by user. Can be 
changed."
-        },
-        "saslConfigName": {
-          "type": "string",
-          "description": "Name of the SASL configuration.  This string + 
'.conf' is the name of the configuration file."
-        },
-        "saslConfigPath": {
-          "type": "path",
-          "description": "Absolute path to the SASL configuration file."
-        },
+        }, 
         "identity": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique identity generated by the system. Will not 
change."
         }
-      }
-    },
+      }, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.authServicePlugin", 
+      "description": "EXPERIMENTAL. Attributes for setting SASL plugin."
+    }, 
     "router.node": {
       "operations": [
         "READ"
-      ],
+      ], 
       "attributes": {
         "routerLink": {
-          "type": "entityId",
+          "type": "entityId", 
           "description": "Local link to remote node"
-        },
+        }, 
         "nextHop": {
-          "type": "string",
+          "type": "string", 
           "description": "Neighbour ID of next hop to remote node from here."
-        },
+        }, 
         "name": {
-          "unique": true,
-          "type": "string",
+          "unique": true, 
+          "type": "string", 
           "description": "Unique name optionally assigned by user. Can be 
changed."
-        },
+        }, 
+        "index": {
+          "type": "integer", 
+          "description": "Index number used in statistics histograms for this 
router node.  This index is specific to this router."
+        }, 
         "validOrigins": {
-          "type": "list",
+          "type": "list", 
           "description": "List of valid origin nodes for messages arriving via 
the re mote node, used for duplicate elimination in redundant networks."
-        },
+        }, 
         "linkState": {
-          "type": "list",
+          "type": "list", 
           "description": "List of remote node's neighbours."
-        },
+        }, 
         "instance": {
-          "type": "integer",
+          "type": "integer", 
           "description": "Remote node boot number."
-        },
+        }, 
         "cost": {
-          "type": "integer",
+          "type": "integer", 
           "description": "Reachability cost"
-        },
+        }, 
+        "protocolVersion": {
+          "type": "integer", 
+          "description": "Router-protocol version supported by the node."
+        }, 
         "address": {
-          "type": "string",
+          "type": "string", 
           "description": "Address of the remote node"
-        },
+        }, 
+        "lastTopoChange": {
+          "type": "integer", 
+          "description": "Timestamp showing the most recent change to this 
node's neighborhood."
+        }, 
         "id": {
-          "type": "string",
+          "type": "string", 
           "description": "Remote node identifie

<TRUNCATED>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to