You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ea...@apache.org on 2018/04/18 13:25:12 UTC

[2/2] qpid-dispatch git commit: DISPATCH-955 Recreated new schema for config and console test utilities

DISPATCH-955 Recreated new schema for config and console test utilities


Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/b821e1cd
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/b821e1cd
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/b821e1cd

Branch: refs/heads/master
Commit: b821e1cda965d0f03354748fdffa193b3ea7ebec
Parents: e6473b4
Author: Ernest Allen <ea...@redhat.com>
Authored: Wed Apr 18 09:24:28 2018 -0400
Committer: Ernest Allen <ea...@redhat.com>
Committed: Wed Apr 18 09:24:28 2018 -0400

----------------------------------------------------------------------
 console/config/schema.json          | 1106 +++++++++----
 console/test/topologies/schema.json | 2498 +++++++++++++++++-------------
 2 files changed, 2199 insertions(+), 1405 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/b821e1cd/console/config/schema.json
----------------------------------------------------------------------
diff --git a/console/config/schema.json b/console/config/schema.json
index cfb3512..c105e16 100644
--- a/console/config/schema.json
+++ b/console/config/schema.json
@@ -1,6 +1,100 @@
 {
   "prefix": "org.apache.qpid.dispatch", 
   "entityTypes": {
+    "address": {
+      "operations": [
+        "CREATE", 
+        "DELETE", 
+        "READ"
+      ], 
+      "attributes": {
+        "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", 
+          "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.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": {
@@ -28,27 +122,28 @@
           "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": {
+        "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"
         }, 
-        "uidFormat": {
+        "ciphers": {
           "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"
+          "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"
         }, 
-        "certDb": {
+        "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": {
+        "uidFormat": {
           "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."
+          "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"
         }, 
-        "keyFile": {
+        "privateKeyFile": {
           "type": "path", 
           "description": "The absolute path to the file containing the PEM-formatted private key for the above certificate."
         }, 
@@ -57,10 +152,17 @@
           "type": "string", 
           "description": "Unique identity generated by the system. Will not change."
         }, 
-        "name": {
-          "unique": true, 
+        "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": "Unique name optionally assigned by user. Can be changed."
+          "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", 
@@ -73,27 +175,37 @@
         "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. 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", 
+            "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"
+          "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. Only one of containerId or connection should be specified for a linkRoute. Specifying both will result in the linkRoute not being created."
         }, 
-        "dir": {
-          "required": true, 
-          "type": [
-            "in", 
-            "out"
-          ], 
-          "description": "The permitted direction of links: 'in' means client senders; 'out' means client receivers"
-        }, 
         "distribution": {
           "default": "linkBalanced", 
           "type": [
@@ -113,7 +225,147 @@
         }
       }, 
       "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."
+      "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": {
+        "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", 
+          "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.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", 
+        "READ"
+      ], 
+      "attributes": {
+        "name": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique name optionally assigned by user. Can be changed."
+        }, 
+        "identity": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique identity generated by the system. Will not change."
+        }
+      }, 
+      "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", 
+          "description": "Unique name optionally assigned by user. Can be changed."
+        }, 
+        "args": {
+          "type": "string", 
+          "description": "Optional args to pass the proxy program for logging, authentication, etc."
+        }, 
+        "listener": {
+          "type": "string", 
+          "description": "The name of the listener to send the proxied tcp traffic to."
+        }, 
+        "proxy": {
+          "required": true, 
+          "type": "string", 
+          "description": "The full path to the proxy program to run."
+        }, 
+        "wsport": {
+          "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", 
+          "description": "Unique identity generated by the system. Will not change."
+        }
+      }
     }, 
     "log": {
       "operations": [
@@ -130,10 +382,6 @@
           "type": "string", 
           "description": "Unique name optionally assigned by user. Can be changed."
         }, 
-        "timestamp": {
-          "type": "boolean", 
-          "description": "Include timestamp in log messages."
-        }, 
         "module": {
           "required": true, 
           "type": [
@@ -155,22 +403,159 @@
           ], 
           "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."
+        "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", 
+          "description": "Unique identity generated by the system. Will not change."
+        }
+      }, 
+      "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"
         }, 
-        "output": {
-          "type": "string", 
-          "description": "Where to send log messages. Can be 'stderr', 'stdout', 'syslog' or a file name."
-        },
         "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", 
-      "description": "Configure logging for a particular module. You can use the `UPDATE` operation to change log settings while the router is running."
+      "fullyQualifiedType": "org.apache.qpid.dispatch.vhostStats", 
+      "description": "Virtual host connection and access statistics."
     }, 
     "connector": {
       "operations": [
@@ -183,11 +568,15 @@
           "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": {
+        "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"
         }, 
+        "saslPassword": {
+          "type": "string", 
+          "description": "The password that the connector is using to connect to a peer."
+        }, 
         "stripAnnotations": {
           "default": "both", 
           "type": [
@@ -197,7 +586,12 @@
             "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", 
           "description": "The user name that the connector is using to connect to a peer."
@@ -236,7 +630,7 @@
           "description": "IP address: ipv4 or ipv6 literal or a host name"
         }, 
         "cost": {
-          "default": 1,
+          "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."
         }, 
@@ -249,18 +643,13 @@
           ], 
           "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."
         }, 
-        "saslPassword": {
-          "type": "string", 
-          "description": "The password that the connector is using to connect to a peer."
-        }, 
         "sslProfile": {
           "type": "string", 
           "description": "Name of the sslProfile."
         }, 
-        "logMessage": {
-          "default": "none", 
+        "failoverUrls": {
           "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"
+          "description": "A read-only, comma-separated list of failover urls. "
         }, 
         "maxSessions": {
           "default": 32768, 
@@ -279,69 +668,54 @@
           "type": "string", 
           "description": "Unique identity generated by the system. Will not change."
         }, 
-        "name": {
-          "unique": true, 
+        "messageLoggingComponents": {
+          "default": "none", 
           "type": "string", 
-          "description": "Unique name optionally assigned by user. Can be changed."
+          "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", 
       "description": "Establishes an outgoing connection from the router."
     }, 
-    "autoLink": {
+    "logStats": {
       "operations": [
-        "CREATE", 
-        "DELETE", 
         "READ"
       ], 
       "attributes": {
-        "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"
+        "debugCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "How many debug-level events have happened on this log."
         }, 
-        "operStatus": {
-          "type": [
-            "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."
+        "criticalCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "How many critical-level events have happened on this log."
         }, 
-        "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"
+        "traceCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "How many trace-level events have happened on this log."
         }, 
-        "dir": {
-          "required": true, 
-          "type": [
-            "in", 
-            "out"
-          ], 
-          "description": "The direction of the link to be created.  In means into the router, out means out of the router."
+        "warningCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "How many warning-level events have happened on this log."
         }, 
-        "phase": {
+        "infoCount": {
+          "graph": true, 
           "type": "integer", 
-          "description": "The address phase for this link.  Defaults to '0' for 'out' links and '1' for 'in' links."
+          "description": "How many info-level events have happened on this log."
         }, 
-        "lastError": {
-          "type": "string", 
-          "description": "The error description from the last attach failure"
+        "noticeCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "How many notice-level events have happened on this log."
         }, 
-        "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."
+        "errorCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "How many error-level events have happened on this log."
         }, 
         "identity": {
           "unique": true, 
@@ -354,31 +728,55 @@
           "description": "Unique name optionally assigned by user. Can be changed."
         }
       }, 
-      "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.)."
+      "fullyQualifiedType": "org.apache.qpid.dispatch.logStats", 
+      "description": "histogram of the different severity-levels of events on the given log."
     }, 
-    "policy": {
+    "allocator": {
       "operations": [
         "READ"
       ], 
       "attributes": {
-        "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."
+        "heldByThreads": {
+          "graph": true, 
+          "type": "integer"
         }, 
-        "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'."
+        "localFreeListMax": {
+          "graph": true, 
+          "type": "integer"
         }, 
-        "enableVhostPolicy": {
-          "type": "boolean", 
-          "description": "Enable vhost policy user groups, connection denial, and resource limit enforcement"
+        "transferBatchSize": {
+          "type": "integer"
         }, 
-        "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."
+        "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", 
+          "description": "Unique identity generated by the system. Will not change."
         }, 
         "name": {
           "unique": true, 
@@ -386,42 +784,43 @@
           "description": "Unique name optionally assigned by user. Can be changed."
         }
       }, 
-      "singleton": true, 
-      "fullyQualifiedType": "org.apache.qpid.dispatch.policy", 
-      "description": "Defines global connection limit"
+      "fullyQualifiedType": "org.apache.qpid.dispatch.allocator", 
+      "description": "Memory allocation pool."
     }, 
-    "logStats": {
+    "policy": {
       "operations": [
         "READ"
       ], 
       "attributes": {
-        "debugCount": {
-          "type": "integer", 
-          "description": "How many debug-level events have happened on this log."
+        "connectionsProcessed": {
+          "graph": true, 
+          "type": "integer"
         }, 
-        "criticalCount": {
-          "type": "integer", 
-          "description": "How many critical-level events have happened on this log."
+        "policyDir": {
+          "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."
         }, 
-        "traceCount": {
-          "type": "integer", 
-          "description": "How many trace-level events have happened on this log."
+        "defaultVhost": {
+          "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."
         }, 
-        "warningCount": {
-          "type": "integer", 
-          "description": "How many warning-level events have happened on this log."
+        "connectionsDenied": {
+          "graph": true, 
+          "type": "integer"
         }, 
-        "infoCount": {
-          "type": "integer", 
-          "description": "How many info-level events have happened on this log."
+        "enableVhostPolicy": {
+          "type": "boolean", 
+          "description": "Enables the router to enforce the connection denials and resource limits defined in the configured vhost policies."
         }, 
-        "noticeCount": {
+        "maxConnections": {
+          "default": 65535, 
           "type": "integer", 
-          "description": "How many notice-level events have happened on this log."
+          "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."
         }, 
-        "errorCount": {
-          "type": "integer", 
-          "description": "How many error-level events have happened on this log."
+        "connectionsCurrent": {
+          "graph": true, 
+          "type": "integer"
         }, 
         "identity": {
           "unique": true, 
@@ -434,63 +833,78 @@
           "description": "Unique name optionally assigned by user. Can be changed."
         }
       }, 
-      "fullyQualifiedType": "org.apache.qpid.dispatch.logStats", 
-      "description": "histogram of the different severity-levels of events on the given log."
+      "singleton": true, 
+      "fullyQualifiedType": "org.apache.qpid.dispatch.policy", 
+      "description": "Defines global connection limit"
     }, 
-    "vhostStats": {
+    "autoLink": {
       "operations": [
+        "CREATE", 
+        "DELETE", 
         "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."
+        "direction": {
+          "required": true, 
+          "type": [
+            "in", 
+            "out"
+          ], 
+          "description": "The direction of the link to be created.  In means into the router, out means out of the router."
         }, 
-        "id": {
+        "addr": {
+          "required": true, 
           "type": "string", 
-          "description": "The vhost name."
+          "description": "The address of the provisioned object"
         }, 
-        "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."
+        "linkRef": {
+          "type": "string", 
+          "description": "Reference to the org.apache.qpid.dispatch.router.link if the link exists"
         }, 
-        "sessionDenied": {
-          "graph": true, 
-          "type": "integer"
+        "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"
         }, 
-        "connectionsApproved": {
-          "graph": true, 
-          "type": "integer"
+        "operStatus": {
+          "type": [
+            "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."
         }, 
-        "receiverDenied": {
-          "graph": true, 
-          "type": "integer"
+        "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"
         }, 
-        "connectionsCurrent": {
-          "graph": true, 
-          "type": "integer"
+        "phase": {
+          "type": "integer", 
+          "description": "The address phase for this link.  Defaults to '0' for 'out' links and '1' for 'in' links."
         }, 
-        "connectionsDenied": {
-          "graph": true, 
-          "type": "integer"
+        "lastError": {
+          "type": "string", 
+          "description": "The error description from the last attach failure"
         }, 
-        "senderDenied": {
-          "graph": true, 
-          "type": "integer"
+        "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", 
           "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.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": [
@@ -513,14 +927,10 @@
           "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": {
           "type": "integer", 
@@ -534,21 +944,15 @@
         "port": {
           "default": "amqp", 
           "type": "string", 
-          "description": "Port number or symbolic service name."
+          "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)."
         }, 
-        "allowNoSasl": {
-          "deprecated": true, 
-          "type": "boolean", 
-          "description": "(DEPRECATED) This attribute is now controlled by the authenticatePeer attribute."
-        }, 
-        "addr": {
-          "deprecated": true, 
-          "type": "string", 
-          "description": "(DEPRECATED)IP address: ipv4 or ipv6 literal or a host name. This attribute has been deprecated. Use host instead"
+        "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", 
@@ -562,15 +966,19 @@
           "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", 
+          "type": [
+            "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."
         }, 
-        "allowUnsecured": {
-          "deprecated": true, 
-          "type": "boolean", 
-          "description": "(DEPRECATED) This attribute is now controlled by the requireEncryption attribute."
+        "identity": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique identity generated by the system. Will not change."
         }, 
         "maxSessions": {
           "default": 32768, 
@@ -585,6 +993,11 @@
           "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)."
@@ -593,37 +1006,11 @@
           "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."
         }, 
-        "logMessage": {
-          "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"
-        }, 
-        "failoverList": {
-          "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]"
-        }, 
-        "role": {
-          "default": "normal", 
-          "type": [
-            "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."
-        }, 
-        "protocolFamily": {
-          "type": [
-            "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."
+        "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."
         }, 
-        "httpRoot": {
+        "httpRootDir": {
           "type": "path", 
           "description": "Serve HTTP files from this directory, defaults to the installed stand-alone console directory"
         }, 
@@ -632,6 +1019,13 @@
           "type": "string", 
           "description": "Unique name optionally assigned by user. Can be changed."
         }, 
+        "socketAddressFamily": {
+          "type": [
+            "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."
+        }, 
         "maxFrameSize": {
           "default": 16384, 
           "type": "integer", 
@@ -640,6 +1034,10 @@
         "sslProfile": {
           "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", 
@@ -664,56 +1062,125 @@
       "fullyQualifiedType": "org.apache.qpid.dispatch.configurationEntity", 
       "description": "Base type for entities containing configuration information."
     }, 
-    "address": {
+    "routerStats": {
       "operations": [
-        "CREATE", 
-        "DELETE", 
         "READ"
       ], 
       "attributes": {
-        "egressPhase": {
+        "linkRouteCount": {
+          "graph": true, 
           "type": "integer", 
-          "description": "Advanced - Override the egress phase for this address"
+          "description": "Number of link routes attached to the router node."
         }, 
-        "pattern": {
+        "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": "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."
+          "description": "Router's unique identity. The router will fail to start without id."
         }, 
-        "prefix": {
+        "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": "The address prefix for the configured settings. Cannot be used with a pattern attribute."
+          "description": "Software Version"
         }, 
-        "ingressPhase": {
+        "linkCount": {
+          "graph": true, 
           "type": "integer", 
-          "description": "Advanced - Override the ingress phase for this address"
+          "description": "Number of links attached to the router node."
         }, 
-        "waypoint": {
-          "type": "boolean", 
-          "description": "Designates this address space as being used for waypoints.  This will cause the proper address-phasing to be used."
+        "connectionCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of open connections to the router node."
         }, 
-        "distribution": {
-          "default": "balanced", 
-          "type": [
-            "multicast", 
-            "closest", 
-            "balanced", 
-            "unavailable"
-          ], 
-          "description": "Treatment of traffic associated with the address"
+        "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", 
           "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", 
           "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."
+      "fullyQualifiedType": "org.apache.qpid.dispatch.routerStats", 
+      "description": "Overall router statistics."
     }, 
     "authServicePlugin": {
       "operations": [
@@ -767,6 +1234,10 @@
           "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", 
           "description": "List of valid origin nodes for messages arriving via the re mote node, used for duplicate elimination in redundant networks."
@@ -858,6 +1329,11 @@
           "type": "integer", 
           "description": "The number of deliveries to this address that exited the router network on this router"
         }, 
+        "deliveriesEgressRouteContainer": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of deliveries that were sent to a route-container address."
+        }, 
         "name": {
           "unique": true, 
           "type": "string", 
@@ -872,6 +1348,11 @@
           "type": "list", 
           "description": "List of numbers of outstanding deliveries across a transit (inter-router) link for this address.  This is for balanced distribution only."
         }, 
+        "deliveriesIngressRouteContainer": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "Number of deliveries that were received from a route-container address."
+        }, 
         "remoteCount": {
           "graph": true, 
           "type": "integer", 
@@ -993,10 +1474,14 @@
           "type": "integer", 
           "description": "The total number of deliveries that have traversed this link."
         }, 
-        "modifiedCount": {
+        "ingressHistogram": {
+          "type": "list", 
+          "description": "For outgoing links on connections with 'normal' role.  This histogram shows the number of settled deliveries on the link that ingressed the network at each interior router node."
+        }, 
+        "droppedPresettledCount": {
           "graph": true, 
           "type": "integer", 
-          "description": "The total number of modified deliveries."
+          "description": "The total number of pre-settled deliveries that were dropped."
         }, 
         "peer": {
           "type": "string", 
@@ -1034,10 +1519,11 @@
           "unique": true, 
           "type": "string", 
           "description": "Unique identity generated by the system. Will not change."
-        },
-        "connectionId": {
-          "type": "integer",
-          "description": "The connection id."
+        }, 
+        "modifiedCount": {
+          "graph": true, 
+          "type": "integer", 
+          "description": "The total number of modified deliveries."
         }
       }, 
       "fullyQualifiedType": "org.apache.qpid.dispatch.router.link", 
@@ -1173,58 +1659,57 @@
         "READ"
       ], 
       "attributes": {
+        "debugDumpFile": {
+          "type": "path", 
+          "description": "The absolute path to the location for the debug dump file. The router writes debug-level information to this file if the logger is not available."
+        }, 
+        "hostName": {
+          "type": "string", 
+          "description": "hostName of machine on which router is running"
+        }, 
         "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.) ."
         }, 
-        "saslConfigName": {
-          "default": "qdrouterd", 
+        "name": {
+          "unique": true, 
           "type": "string", 
-          "description": "Name of the SASL configuration.  This string + '.conf' is the name of the configuration file."
+          "description": "Unique name optionally assigned by user. Can be changed."
         }, 
-        "id": {
+        "raIntervalSeconds": {
+          "default": 30, 
+          "type": "integer", 
+          "description": "Interval in seconds between Router-Advertisements sent to all routers in a stable network."
+        }, 
+        "area": {
           "type": "string", 
-          "description": "Router's unique identity. One of id or routerId is required. The router will fail to start without id or routerId"
+          "description": "Unused placeholder."
         }, 
-        "raIntervalFlux": {
+        "raIntervalFluxSeconds": {
           "default": 4, 
           "type": "integer", 
           "description": "Interval in seconds between Router-Advertisements sent to all routers during topology fluctuations."
         }, 
-        "helloInterval": {
+        "allowResumableLinkRoute": {
+          "default": true, 
+          "type": "boolean", 
+          "description": "Whether links can be routed where timeout is non-zero or expiry-policy is not link-detach"
+        }, 
+        "helloIntervalSeconds": {
           "default": 1, 
           "type": "integer", 
           "description": "Interval in seconds between HELLO messages sent to neighbor routers."
         }, 
-        "helloMaxAge": {
+        "helloMaxAgeSeconds": {
           "default": 3, 
           "type": "integer", 
           "description": "Time in seconds after which a neighbor is declared lost if no HELLO is received."
         }, 
-        "saslConfigPath": {
+        "saslConfigDir": {
           "type": "path", 
           "description": "Absolute path to the SASL configuration file."
         }, 
-        "remoteLsMaxAge": {
-          "default": 60, 
-          "type": "integer", 
-          "description": "Time in seconds after which link state is declared stale if no RA is received."
-        }, 
-        "raInterval": {
-          "default": 30, 
-          "type": "integer", 
-          "description": "Interval in seconds between Router-Advertisements sent to all routers in a stable network."
-        }, 
-        "debugDump": {
-          "type": "path", 
-          "description": "A file to dump debugging information that can't be logged normally."
-        }, 
-        "name": {
-          "unique": true, 
-          "type": "string", 
-          "description": "Unique name optionally assigned by user. Can be changed."
-        }, 
         "defaultDistribution": {
           "default": "balanced", 
           "type": [
@@ -1235,6 +1720,15 @@
           ], 
           "description": "Default forwarding treatment for any address without a specified treatment. multicast - one copy of each message delivered to all subscribers; closest - messages delivered to only the closest subscriber; balanced - messages delivered to one subscriber with load balanced across subscribers; unavailable - this address is unavailable, link attaches to an address of unavilable distribution will be rejected."
         }, 
+        "version": {
+          "type": "string", 
+          "description": "Software Version"
+        }, 
+        "remoteLsMaxAgeSeconds": {
+          "default": 60, 
+          "type": "integer", 
+          "description": "Time in seconds after which link state is declared stale if no RA is received."
+        }, 
         "mode": {
           "default": "standalone", 
           "type": [
@@ -1246,8 +1740,22 @@
         "allowUnsettledMulticast": {
           "type": "boolean", 
           "description": "If true, allow senders to send unsettled deliveries to multicast addresses.  These deliveries shall be settled by the ingress router.  If false, unsettled deliveries to multicast addresses shall be rejected."
+        }, 
+        "saslConfigName": {
+          "default": "qdrouterd", 
+          "type": "string", 
+          "description": "Name of the SASL configuration.  This string + '.conf' is the name of the configuration file."
+        }, 
+        "id": {
+          "type": "string", 
+          "description": "Router's unique identity. The router will fail to start without id."
+        }, 
+        "identity": {
+          "unique": true, 
+          "type": "string", 
+          "description": "Unique identity generated by the system. Will not change."
         }
-      },
+      }, 
       "singleton": true, 
       "fullyQualifiedType": "org.apache.qpid.dispatch.router", 
       "description": "Tracks peer routers and computes routes to destinations. This entity is mandatory. The router will not start without this entity."
@@ -1262,31 +1770,31 @@
       "attributes": {
         "allowUnknownUser": {
           "type": "boolean", 
-          "description": "Unrestricted users, those who are not members of a defined user group, are allowed to connect to this application. Unrestricted users are assigned to the 'default' user group and receive 'default' settings."
+          "description": "Whether unknown users (users who are not members of a defined user group) are allowed to connect to the vhost. Unknown users are assigned to the '$default' user group and receive '$default' settings."
         }, 
         "maxConnectionsPerUser": {
           "default": 65535, 
           "type": "integer", 
-          "description": "Maximum number of concurrent client connections allowed for any single user."
+          "description": "The maximum number of concurrent client connections allowed for any user."
+        }, 
+        "hostname": {
+          "required": true, 
+          "type": "string", 
+          "description": "The hostname of the vhost. This vhost policy will be applied to any client connection that is directed to this hostname."
         }, 
         "groups": {
           "type": "map", 
-          "description": "A map where each key is a user group name and the value is a map of the corresponding settings for that group."
+          "description": "A map where each key is a vhost name and each value is a map of the settings for users of that vhost."
         }, 
         "maxConnections": {
           "default": 65535, 
           "type": "integer", 
-          "description": "Maximum number of concurrent client connections allowed."
+          "description": "The global maximum number of concurrent client connections allowed for this vhost."
         }, 
         "maxConnectionsPerHost": {
           "default": 65535, 
           "type": "integer", 
-          "description": "Maximum number of concurrent client connections allowed for any remote host."
-        }, 
-        "id": {
-          "required": true, 
-          "type": "string", 
-          "description": "The vhost name."
+          "description": "The maximum number of concurrent client connections allowed for any remote host (the host from which the client is connecting)."
         }, 
         "identity": {
           "unique": true, 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org