You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by ri...@apache.org on 2016/04/12 23:09:51 UTC

svn commit: r1738867 [3/4] - in /brooklyn/site: ./ community/ developers/ developers/code/ developers/committers/ developers/committers/release-process/ documentation/ download/ learnmore/ learnmore/catalog/ learnmore/features/ meta/ style/css/ style/i...

Modified: brooklyn/site/style/js/catalog/items.js
URL: http://svn.apache.org/viewvc/brooklyn/site/style/js/catalog/items.js?rev=1738867&r1=1738866&r2=1738867&view=diff
==============================================================================
--- brooklyn/site/style/js/catalog/items.js (original)
+++ brooklyn/site/style/js/catalog/items.js Tue Apr 12 21:09:51 2016
@@ -8,51 +8,39 @@ var items = {
     "config" : [ {
       "name" : "activemq.brokerName",
       "type" : "java.lang.String",
-      "defaultValue" : "localhost",
       "description" : "ActiveMQ Broker Name",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "localhost",
+      "reconfigurable" : false
     }, {
       "name" : "activemq.install.mirror.url",
       "type" : "java.lang.String",
-      "defaultValue" : "http://www.mirrorservice.org/sites/ftp.apache.org/activemq",
       "description" : "URL of mirror",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "http://www.mirrorservice.org/sites/ftp.apache.org/activemq",
+      "reconfigurable" : false
     }, {
       "name" : "activemq.jetty.port",
       "type" : "org.apache.brooklyn.api.location.PortRange",
-      "defaultValue" : "8161-65535",
       "description" : "jetty port",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "8161-65535",
+      "reconfigurable" : false
     }, {
       "name" : "activemq.templateConfigurationUrl",
       "type" : "java.lang.String",
-      "defaultValue" : "classpath://org/apache/brooklyn/entity/messaging/activemq/activemq.xml",
       "description" : "Template file (in freemarker format) for the conf/activemq.xml file",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "classpath://org/apache/brooklyn/entity/messaging/activemq/activemq.xml",
+      "reconfigurable" : false
+    }, {
+      "name" : "archive.nameFormat",
+      "type" : "java.lang.String",
+      "description" : "The format for the directory created when the installation archive is extracted, if required. The version string will be passed in as the first argument, replacing the %s format specifier",
+      "defaultValue" : "apache-activemq-%s",
+      "reconfigurable" : false
     }, {
       "name" : "children.startable.mode",
       "type" : "java.lang.Enum",
-      "defaultValue" : "NONE",
       "description" : "Controls behaviour when starting Startable children as part of this entity's lifecycle.",
+      "defaultValue" : "NONE",
       "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
       "possibleValues" : [ {
         "value" : "NONE",
         "description" : "NONE"
@@ -68,236 +56,133 @@ var items = {
       }, {
         "value" : "BACKGROUND_LATE",
         "description" : "BACKGROUND_LATE"
-      } ],
-      "links" : null
+      } ]
     }, {
       "name" : "customize.latch",
       "type" : "java.lang.Boolean",
-      "defaultValue" : null,
       "description" : "Latch for blocking customize until ready",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "dontRequireTtyForSudo",
       "type" : "java.lang.Boolean",
-      "defaultValue" : false,
       "description" : "Whether to explicitly set /etc/sudoers, so don't need tty (will leave unchanged if 'false'); some machines require a tty for sudo; brooklyn by default does not use a tty (so that it can get separate error+stdout streams); you can enable a tty as an option to every ssh command, or you can do it once and modify the machine so that a tty is not subsequently required.",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : false,
+      "reconfigurable" : false
     }, {
       "name" : "download.addon.urls",
       "type" : "java.util.Map",
-      "defaultValue" : null,
       "description" : "URL patterns for downloading named add-ons (will substitute things like ${version} automatically)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "download.url",
       "type" : "java.lang.String",
-      "defaultValue" : "${driver.mirrorUrl}/${version}/apache-activemq-${version}-bin.tar.gz",
       "description" : "URL pattern for downloading the installer (will substitute things like ${version} automatically)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "${driver.mirrorUrl}/${version}/apache-activemq-${version}-bin.tar.gz",
+      "reconfigurable" : false
     }, {
       "name" : "entity.running",
       "type" : "java.lang.Boolean",
-      "defaultValue" : null,
       "description" : "Skip the startup process entirely, if service already running",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "entity.started",
       "type" : "java.lang.Boolean",
-      "defaultValue" : null,
       "description" : "Skip the startup process entirely, for running services",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "expandedinstall.dir",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "Directory for installed artifacts (e.g. expanded dir after unpacking .tgz)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "files.install",
       "type" : "java.util.Map",
-      "defaultValue" : null,
       "description" : "Mapping of files, to be copied before install, to destination name relative to installDir",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "files.preinstall",
       "type" : "java.util.Map",
-      "defaultValue" : null,
       "description" : "Mapping of files, to be copied before install, to destination name relative to installDir",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "files.runtime",
       "type" : "java.util.Map",
-      "defaultValue" : null,
       "description" : "Mapping of files, to be copied before customisation, to destination name relative to runDir",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "inboundPorts.autoInfer",
       "type" : "java.lang.Boolean",
-      "defaultValue" : true,
       "description" : "If set to false turns off the opening of ports based on naming convention, and also those that are of type PortRange in Java entities",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : true,
+      "reconfigurable" : false
     }, {
       "name" : "inboundPorts.configRegex",
       "type" : "java.lang.String",
-      "defaultValue" : ".*\\.port",
       "description" : "Regex governing the opening of ports based on config names",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : ".*\\.port",
+      "reconfigurable" : false
     }, {
       "name" : "install.dir",
       "type" : "java.lang.String",
-      "defaultValue" : "${config['onbox.base.dir']!config['brooklyn.datadir']!'/<ERROR>-ONBOX_BASE_DIR-not-set'}/installs/${(config['install.unique_label']??)?string(config['install.unique_label']!'X',(entity.entityType.simpleName)+((config['install.version']??)?string('_'+(config['install.version']!'X'),'')))}",
       "description" : "Directory for this software to be installed in",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "${config['onbox.base.dir']!config['brooklyn.datadir']!'/<ERROR>-ONBOX_BASE_DIR-not-set'}/installs/${(config['install.unique_label']??)?string(config['install.unique_label']!'X',(entity.entityType.simpleName)+((config['install.version']??)?string('_'+(config['install.version']!'X'),'')))}",
+      "reconfigurable" : false
     }, {
       "name" : "install.latch",
       "type" : "java.lang.Boolean",
-      "defaultValue" : null,
       "description" : "Latch for blocking install until ready",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "install.skip",
       "type" : "java.lang.Boolean",
-      "defaultValue" : null,
       "description" : "Skip the driver install commands entirely, for pre-installed software",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "install.unique_label",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "Provides a label which uniquely identifies an installation, used in the computation of the install dir; this should include something readable, and must include a hash of all data which differentiates an installation (e.g. version, plugins, etc), but should be the same where install dirs can be shared to allow for re-use",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "install.version",
       "type" : "java.lang.String",
-      "defaultValue" : "5.10.2",
       "description" : "Suggested version",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "5.10.2",
+      "reconfigurable" : false
     }, {
       "name" : "java.check.hostname.bug",
       "type" : "java.lang.Boolean",
-      "defaultValue" : true,
       "description" : "Check whether hostname is too long and will likely crash Javadue to bug 7089443",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : true,
+      "reconfigurable" : false
     }, {
       "name" : "java.opts",
       "type" : "java.util.Set",
-      "defaultValue" : [ ],
       "description" : "Java command line options",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : [ ],
+      "reconfigurable" : false
     }, {
       "name" : "java.sysprops",
       "type" : "java.util.Map",
-      "defaultValue" : { },
       "description" : "Java command line system properties",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : { },
+      "reconfigurable" : false
     }, {
       "name" : "java.version.required",
       "type" : "java.lang.String",
-      "defaultValue" : "1.7",
       "description" : "Java version required",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "1.7",
+      "reconfigurable" : false
     }, {
       "name" : "jmx.agent.local.path",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "Path to JMX driver on the local machine",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "jmx.agent.mode",
       "type" : "java.lang.Enum",
-      "defaultValue" : "AUTODETECT",
       "description" : "What type of JMX agent to use; defaults to null (autodetect) which means JMXMP_AND_RMI allowing firewall access through a single port as well as local access supporting jconsole (unless JMX_SSL_ENABLED is set, in which case it is JMXMP only)",
+      "defaultValue" : "AUTODETECT",
       "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
       "possibleValues" : [ {
         "value" : "AUTODETECT",
         "description" : "AUTODETECT"
@@ -316,360 +201,670 @@ var items = {
       }, {
         "value" : "NONE",
         "description" : "NONE"
-      } ],
-      "links" : null
+      } ]
     }, {
       "name" : "jmx.context",
       "type" : "java.lang.String",
-      "defaultValue" : "jmxrmi",
       "description" : "JMX context path",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "jmxrmi",
+      "reconfigurable" : false
     }, {
       "name" : "jmx.direct.port",
       "type" : "org.apache.brooklyn.api.location.PortRange",
-      "defaultValue" : "31001-65535",
       "description" : "JMX direct/private port (e.g. JMX RMI server port, or JMXMP port, but not RMI registry port)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "31001-65535",
+      "reconfigurable" : false
     }, {
       "name" : "jmx.direct.port.legacy.NOT_USED",
       "type" : "org.apache.brooklyn.api.location.PortRange",
-      "defaultValue" : null,
       "description" : "Legacy definition JMX direct/private port (e.g. JMX RMI server port, or JMXMP port, but not RMI registry port)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "jmx.enabled",
       "type" : "java.lang.Boolean",
-      "defaultValue" : true,
       "description" : "JMX enabled",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : true,
+      "reconfigurable" : false
     }, {
       "name" : "jmx.password",
       "type" : "java.lang.String",
-      "defaultValue" : "admin",
       "description" : "JMX password",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "admin",
+      "reconfigurable" : false
     }, {
       "name" : "jmx.ssl.access.cert",
       "type" : "java.security.cert.Certificate",
-      "defaultValue" : null,
       "description" : "certificate of key used to access a JMX agent",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "jmx.ssl.access.key",
       "type" : "java.security.PrivateKey",
-      "defaultValue" : null,
       "description" : "key used to access a JMX agent (typically per entity, embedded in the managed JVM)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "jmx.ssl.enabled",
       "type" : "java.lang.Boolean",
-      "defaultValue" : false,
       "description" : "JMX over JMXMP enabled with SSL/TLS",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : false,
+      "reconfigurable" : false
     }, {
       "name" : "jmx.user",
       "type" : "java.lang.String",
-      "defaultValue" : "admin",
       "description" : "JMX username",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "admin",
+      "reconfigurable" : false
     }, {
       "name" : "launch.latch",
       "type" : "java.lang.Boolean",
-      "defaultValue" : null,
       "description" : "Latch for blocking launch until ready",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "metrics.usage.retrieve",
       "type" : "java.lang.Boolean",
-      "defaultValue" : true,
       "description" : "Whether to retrieve the usage (e.g. performance) metrics",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : true,
+      "reconfigurable" : false
     }, {
       "name" : "openIptables",
       "type" : "java.lang.Boolean",
-      "defaultValue" : false,
       "description" : "Whether to open the INBOUND_PORTS via iptables rules; if true then ssh in to run iptables commands, as part of machine provisioning",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : false,
+      "reconfigurable" : false
     }, {
       "name" : "openwire.port",
       "type" : "org.apache.brooklyn.api.location.PortRange",
-      "defaultValue" : "61616-65535",
       "description" : "OpenWire port",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "61616-65535",
+      "reconfigurable" : false
+    }, {
+      "name" : "post.customize.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run after the customize method being called on the driver",
+      "reconfigurable" : false
     }, {
       "name" : "post.install.command",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "Command to be run after the install method being called on the driver",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "post.launch.command",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "Command to be run after the launch method being called on the driver",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
+    }, {
+      "name" : "pre.customize.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run prior to the customize method being called on the driver",
+      "reconfigurable" : false
     }, {
       "name" : "pre.install.command",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "Command to be run prior to the install method being called on the driver",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "pre.launch.command",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "Command to be run prior to the launch method being called on the driver",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "provisioning.properties",
       "type" : "java.util.Map",
-      "defaultValue" : { },
       "description" : "Custom properties to be passed in when provisioning a new machine",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : { },
+      "reconfigurable" : false
     }, {
       "name" : "requiredOpenLoginPorts",
       "type" : "java.util.Collection",
-      "defaultValue" : [ 22 ],
       "description" : "The port(s) to be opened, to allow login",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : [ 22 ],
+      "reconfigurable" : false
     }, {
       "name" : "resources.install.latch",
       "type" : "java.lang.Boolean",
-      "defaultValue" : null,
       "description" : "Latch for blocking install resources until ready",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "resources.runtime.latch",
       "type" : "java.lang.Boolean",
-      "defaultValue" : null,
       "description" : "Latch for blocking runtime resources until ready",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "rmi.registry.port",
       "type" : "org.apache.brooklyn.api.location.PortRange",
+      "description" : "RMI registry port, used for discovering JMX (private) port",
       "defaultValue" : "1099,19099-65535",
+      "reconfigurable" : false
+    }, {
+      "name" : "run.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory for this software to be run from",
+      "defaultValue" : "${config['onbox.base.dir']!config['brooklyn.datadir']!'/<ERROR>-ONBOX_BASE_DIR-not-set'}/apps/${entity.applicationId}/entities/${entity.entityType.simpleName}_${entity.id}",
+      "reconfigurable" : false
+    }, {
+      "name" : "setup.latch",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking setup until ready",
+      "reconfigurable" : false
+    }, {
+      "name" : "shell.env",
+      "type" : "java.util.Map",
+      "description" : "Map of environment variables to pass to the runtime shell",
+      "defaultValue" : { },
+      "reconfigurable" : false
+    }, {
+      "name" : "softwareProcess.lifecycleTasks",
+      "type" : "org.apache.brooklyn.entity.software.base.SoftwareProcessDriverLifecycleEffectorTasks",
+      "description" : "An object that handles lifecycle of an entity's associated machine.",
+      "defaultValue" : "org.apache.brooklyn.entity.software.base.SoftwareProcessDriverLifecycleEffectorTasks@6ee1d8de",
+      "reconfigurable" : false
+    }, {
+      "name" : "softwareProcess.maxSensorRebindDelay",
+      "type" : "org.apache.brooklyn.util.time.Duration",
+      "description" : "The maximum delay to apply when reconnecting sensors when rebinding to this entity. Brooklyn will wait a random amount of time, up to the value of this config key, to avoid a thundering herd problem when the entity shares its machine with several others. Set to null or to 0 to disable any delay.",
+      "defaultValue" : "10s",
+      "reconfigurable" : false
+    }, {
+      "name" : "start.latch",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking start until ready",
+      "reconfigurable" : false
+    }, {
+      "name" : "start.timeout",
+      "type" : "org.apache.brooklyn.util.time.Duration",
+      "description" : "Time to wait for process and for SERVICE_UP before failing (in seconds, default 2m)",
+      "defaultValue" : "2m",
+      "reconfigurable" : false
+    }, {
+      "name" : "stopIptables",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to stop iptables entirely; if true then ssh in to stop the iptables service, as part of machine provisioning",
+      "defaultValue" : false,
+      "reconfigurable" : false
+    }, {
+      "name" : "templates.install",
+      "type" : "java.util.Map",
+      "description" : "Mapping of templates, to be filled in and copied before install, to destination name relative to installDir",
+      "reconfigurable" : false
+    }, {
+      "name" : "templates.preinstall",
+      "type" : "java.util.Map",
+      "description" : "Mapping of templates, to be filled in and copied before pre-install, to destination name relative to installDir",
+      "reconfigurable" : false
+    }, {
+      "name" : "templates.runtime",
+      "type" : "java.util.Map",
+      "description" : "Mapping of templates, to be filled in and copied before customisation, to destination name relative to runDir",
+      "reconfigurable" : false
+    } ],
+    "sensors" : [ {
+      "name" : "activemq.brokerName",
+      "type" : "java.lang.String",
+      "description" : "ActiveMQ Broker Name",
+      "links" : { }
+    }, {
+      "name" : "activemq.jetty.port",
+      "type" : "java.lang.Integer",
+      "description" : "jetty port",
+      "links" : { }
+    }, {
+      "name" : "activemq.templateConfigurationUrl",
+      "type" : "java.lang.String",
+      "description" : "Template file (in freemarker format) for the conf/activemq.xml file",
+      "links" : { }
+    }, {
+      "name" : "broker.url",
+      "type" : "java.lang.String",
+      "description" : "Broker Connection URL",
+      "links" : { }
+    }, {
+      "name" : "download.addon.urls",
+      "type" : "java.util.Map",
+      "description" : "URL patterns for downloading named add-ons (will substitute things like ${version} automatically)",
+      "links" : { }
+    }, {
+      "name" : "download.url",
+      "type" : "java.lang.String",
+      "description" : "URL pattern for downloading the installer (will substitute things like ${version} automatically)",
+      "links" : { }
+    }, {
+      "name" : "expandedinstall.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory for installed artifacts (e.g. expanded dir after unpacking .tgz)",
+      "links" : { }
+    }, {
+      "name" : "host.address",
+      "type" : "java.lang.String",
+      "description" : "Host IP address",
+      "links" : { }
+    }, {
+      "name" : "host.name",
+      "type" : "java.lang.String",
+      "description" : "Host name",
+      "links" : { }
+    }, {
+      "name" : "host.subnet.address",
+      "type" : "java.lang.String",
+      "description" : "Host address as known internally in the subnet where it is running (if different to host.name)",
+      "links" : { }
+    }, {
+      "name" : "host.subnet.hostname",
+      "type" : "java.lang.String",
+      "description" : "Host name as known internally in the subnet where it is running (if different to host.name)",
+      "links" : { }
+    }, {
+      "name" : "install.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory for this software to be installed in",
+      "links" : { }
+    }, {
+      "name" : "jmx.agent.local.path",
+      "type" : "java.lang.String",
+      "description" : "Path to JMX driver on the local machine",
+      "links" : { }
+    }, {
+      "name" : "jmx.context",
+      "type" : "java.lang.String",
+      "description" : "JMX context path",
+      "links" : { }
+    }, {
+      "name" : "jmx.direct.port",
+      "type" : "java.lang.Integer",
+      "description" : "JMX direct/private port (e.g. JMX RMI server port, or JMXMP port, but not RMI registry port)",
+      "links" : { }
+    }, {
+      "name" : "jmx.direct.port.legacy.NOT_USED",
+      "type" : "java.lang.Integer",
+      "description" : "Legacy definition JMX direct/private port (e.g. JMX RMI server port, or JMXMP port, but not RMI registry port)",
+      "links" : { }
+    }, {
+      "name" : "jmx.password",
+      "type" : "java.lang.String",
+      "description" : "JMX password",
+      "links" : { }
+    }, {
+      "name" : "jmx.service.url",
+      "type" : "java.lang.String",
+      "description" : "The URL for connecting to the MBean Server",
+      "links" : { }
+    }, {
+      "name" : "jmx.user",
+      "type" : "java.lang.String",
+      "description" : "JMX username",
+      "links" : { }
+    }, {
+      "name" : "openwire.port",
+      "type" : "java.lang.Integer",
+      "description" : "OpenWire port",
+      "links" : { }
+    }, {
+      "name" : "rmi.registry.port",
+      "type" : "java.lang.Integer",
       "description" : "RMI registry port, used for discovering JMX (private) port",
+      "links" : { }
+    }, {
+      "name" : "run.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory for this software to be run from",
+      "links" : { }
+    }, {
+      "name" : "service.isUp",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether the service is active and availability (confirmed and monitored)",
+      "links" : { }
+    }, {
+      "name" : "service.process.isRunning",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether the process for the service is confirmed as running",
+      "links" : { }
+    }, {
+      "name" : "service.state",
+      "type" : "org.apache.brooklyn.core.entity.lifecycle.Lifecycle",
+      "description" : "Actual lifecycle state of the service",
+      "links" : { }
+    }, {
+      "name" : "service.state.expected",
+      "type" : "org.apache.brooklyn.core.entity.lifecycle.Lifecycle$Transition",
+      "description" : "Last controlled change to service state, indicating what the expected state should be",
+      "links" : { }
+    }, {
+      "name" : "softwareprocess.pid.file",
+      "type" : "java.lang.String",
+      "description" : "PID file",
+      "links" : { }
+    }, {
+      "name" : "softwareservice.provisioningLocation",
+      "type" : "org.apache.brooklyn.api.location.MachineProvisioningLocation",
+      "description" : "Location used to provision a machine where this is running",
+      "links" : { }
+    } ],
+    "effectors" : [ {
+      "name" : "populateServiceNotUpDiagnostics",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Populates the attribute service.notUp.diagnostics, with any available health indicators"
+    }, {
+      "name" : "restart",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Restart the process/service represented by an entity"
+    }, {
+      "name" : "start",
+      "returnType" : "void",
+      "parameters" : [ {
+        "name" : "locations",
+        "type" : "java.lang.Object",
+        "description" : "The location or locations to start in, as a string, a location object, a list of strings, or a list of location objects",
+        "defaultValue" : null
+      } ],
+      "description" : "Start the process/service represented by an entity"
+    }, {
+      "name" : "stop",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Stop the process/service represented by an entity"
+    } ]
+  }, {
+    "type" : "org.apache.brooklyn.entity.cm.ansible.AnsibleEntity",
+    "defaultVersion" : null,
+    "name" : "AnsibleEntity",
+    "description" : "Software managed by Ansible CM",
+    "iconUrl" : "",
+    "config" : [ {
+      "name" : "ansible.service.check.host",
+      "type" : "java.lang.String",
+      "description" : "IP to be checked. Default: All IPs ",
+      "defaultValue" : "0.0.0.0",
+      "reconfigurable" : false
+    }, {
+      "name" : "ansible.service.check.port",
+      "type" : "java.lang.Integer",
+      "description" : "ansible.service.check.port",
+      "reconfigurable" : false
+    }, {
+      "name" : "ansible.service.start",
+      "type" : "java.lang.String",
+      "description" : "Default start command used with conjunction with the Ansible's service module",
+      "defaultValue" : "ansible localhost -c local -m service -a \"name=%s state=started\"",
+      "reconfigurable" : false
+    }, {
+      "name" : "ansible.service.stop",
+      "type" : "java.lang.String",
+      "description" : "Default stop command used with conjunction with the Ansible's service module",
+      "defaultValue" : "ansible localhost -c local -m service -a \"name=%s state=stopped\"",
+      "reconfigurable" : false
+    }, {
+      "name" : "archive.nameFormat",
+      "type" : "java.lang.String",
+      "description" : "The format for the directory created when the installation archive is extracted, if required. The version string will be passed in as the first argument, replacing the %s format specifier",
+      "reconfigurable" : false
+    }, {
+      "name" : "brooklyn.ansible.playbook",
+      "type" : "java.lang.String",
+      "description" : "Playbook to be execute by Ansible",
+      "reconfigurable" : false
+    }, {
+      "name" : "brooklyn.ansible.playbookUrl",
+      "type" : "java.lang.String",
+      "description" : "brooklyn.ansible.playbookUrl",
+      "reconfigurable" : false
+    }, {
+      "name" : "brooklyn.ansible.playbookYaml",
+      "type" : "java.lang.String",
+      "description" : "Playbook to be execute by Ansible",
+      "reconfigurable" : false
+    }, {
+      "name" : "brooklyn.ansible.serviceName",
+      "type" : "java.lang.String",
+      "description" : "Name of OS service this will run as, for use in checking running and stopping",
+      "reconfigurable" : false
+    }, {
+      "name" : "brooklyn.ansible.vars",
+      "type" : "java.lang.Object",
+      "description" : "Ansible 'extra-vars' variable configuration values",
+      "reconfigurable" : false
+    }, {
+      "name" : "children.startable.mode",
+      "type" : "java.lang.Enum",
+      "description" : "Controls behaviour when starting Startable children as part of this entity's lifecycle.",
+      "defaultValue" : "NONE",
       "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "possibleValues" : [ {
+        "value" : "NONE",
+        "description" : "NONE"
+      }, {
+        "value" : "FOREGROUND",
+        "description" : "FOREGROUND"
+      }, {
+        "value" : "FOREGROUND_LATE",
+        "description" : "FOREGROUND_LATE"
+      }, {
+        "value" : "BACKGROUND",
+        "description" : "BACKGROUND"
+      }, {
+        "value" : "BACKGROUND_LATE",
+        "description" : "BACKGROUND_LATE"
+      } ]
+    }, {
+      "name" : "customize.latch",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking customize until ready",
+      "reconfigurable" : false
+    }, {
+      "name" : "dontRequireTtyForSudo",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to explicitly set /etc/sudoers, so don't need tty (will leave unchanged if 'false'); some machines require a tty for sudo; brooklyn by default does not use a tty (so that it can get separate error+stdout streams); you can enable a tty as an option to every ssh command, or you can do it once and modify the machine so that a tty is not subsequently required.",
+      "defaultValue" : false,
+      "reconfigurable" : false
+    }, {
+      "name" : "download.addon.urls",
+      "type" : "java.util.Map",
+      "description" : "URL patterns for downloading named add-ons (will substitute things like ${version} automatically)",
+      "reconfigurable" : false
+    }, {
+      "name" : "download.url",
+      "type" : "java.lang.String",
+      "description" : "URL pattern for downloading the installer (will substitute things like ${version} automatically)",
+      "reconfigurable" : false
+    }, {
+      "name" : "entity.running",
+      "type" : "java.lang.Boolean",
+      "description" : "Skip the startup process entirely, if service already running",
+      "reconfigurable" : false
+    }, {
+      "name" : "entity.started",
+      "type" : "java.lang.Boolean",
+      "description" : "Skip the startup process entirely, for running services",
+      "reconfigurable" : false
+    }, {
+      "name" : "expandedinstall.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory for installed artifacts (e.g. expanded dir after unpacking .tgz)",
+      "reconfigurable" : false
+    }, {
+      "name" : "files.install",
+      "type" : "java.util.Map",
+      "description" : "Mapping of files, to be copied before install, to destination name relative to installDir",
+      "reconfigurable" : false
+    }, {
+      "name" : "files.preinstall",
+      "type" : "java.util.Map",
+      "description" : "Mapping of files, to be copied before install, to destination name relative to installDir",
+      "reconfigurable" : false
+    }, {
+      "name" : "files.runtime",
+      "type" : "java.util.Map",
+      "description" : "Mapping of files, to be copied before customisation, to destination name relative to runDir",
+      "reconfigurable" : false
+    }, {
+      "name" : "inboundPorts.autoInfer",
+      "type" : "java.lang.Boolean",
+      "description" : "If set to false turns off the opening of ports based on naming convention, and also those that are of type PortRange in Java entities",
+      "defaultValue" : true,
+      "reconfigurable" : false
+    }, {
+      "name" : "inboundPorts.configRegex",
+      "type" : "java.lang.String",
+      "description" : "Regex governing the opening of ports based on config names",
+      "defaultValue" : ".*\\.port",
+      "reconfigurable" : false
+    }, {
+      "name" : "install.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory for this software to be installed in",
+      "defaultValue" : "${config['onbox.base.dir']!config['brooklyn.datadir']!'/<ERROR>-ONBOX_BASE_DIR-not-set'}/installs/${(config['install.unique_label']??)?string(config['install.unique_label']!'X',(entity.entityType.simpleName)+((config['install.version']??)?string('_'+(config['install.version']!'X'),'')))}",
+      "reconfigurable" : false
+    }, {
+      "name" : "install.latch",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking install until ready",
+      "reconfigurable" : false
+    }, {
+      "name" : "install.skip",
+      "type" : "java.lang.Boolean",
+      "description" : "Skip the driver install commands entirely, for pre-installed software",
+      "reconfigurable" : false
+    }, {
+      "name" : "install.unique_label",
+      "type" : "java.lang.String",
+      "description" : "Provides a label which uniquely identifies an installation, used in the computation of the install dir; this should include something readable, and must include a hash of all data which differentiates an installation (e.g. version, plugins, etc), but should be the same where install dirs can be shared to allow for re-use",
+      "reconfigurable" : false
+    }, {
+      "name" : "install.version",
+      "type" : "java.lang.String",
+      "description" : "Suggested version",
+      "reconfigurable" : false
+    }, {
+      "name" : "launch.latch",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking launch until ready",
+      "reconfigurable" : false
+    }, {
+      "name" : "metrics.usage.retrieve",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to retrieve the usage (e.g. performance) metrics",
+      "defaultValue" : true,
+      "reconfigurable" : false
+    }, {
+      "name" : "openIptables",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to open the INBOUND_PORTS via iptables rules; if true then ssh in to run iptables commands, as part of machine provisioning",
+      "defaultValue" : false,
+      "reconfigurable" : false
+    }, {
+      "name" : "post.customize.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run after the customize method being called on the driver",
+      "reconfigurable" : false
+    }, {
+      "name" : "post.install.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run after the install method being called on the driver",
+      "reconfigurable" : false
+    }, {
+      "name" : "post.launch.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run after the launch method being called on the driver",
+      "reconfigurable" : false
+    }, {
+      "name" : "pre.customize.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run prior to the customize method being called on the driver",
+      "reconfigurable" : false
+    }, {
+      "name" : "pre.install.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run prior to the install method being called on the driver",
+      "reconfigurable" : false
+    }, {
+      "name" : "pre.launch.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run prior to the launch method being called on the driver",
+      "reconfigurable" : false
+    }, {
+      "name" : "provisioning.properties",
+      "type" : "java.util.Map",
+      "description" : "Custom properties to be passed in when provisioning a new machine",
+      "defaultValue" : { },
+      "reconfigurable" : false
+    }, {
+      "name" : "requiredOpenLoginPorts",
+      "type" : "java.util.Collection",
+      "description" : "The port(s) to be opened, to allow login",
+      "defaultValue" : [ 22 ],
+      "reconfigurable" : false
+    }, {
+      "name" : "resources.install.latch",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking install resources until ready",
+      "reconfigurable" : false
+    }, {
+      "name" : "resources.runtime.latch",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking runtime resources until ready",
+      "reconfigurable" : false
     }, {
       "name" : "run.dir",
       "type" : "java.lang.String",
-      "defaultValue" : "${config['onbox.base.dir']!config['brooklyn.datadir']!'/<ERROR>-ONBOX_BASE_DIR-not-set'}/apps/${entity.applicationId}/entities/${entity.entityType.simpleName}_${entity.id}",
       "description" : "Directory for this software to be run from",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "${config['onbox.base.dir']!config['brooklyn.datadir']!'/<ERROR>-ONBOX_BASE_DIR-not-set'}/apps/${entity.applicationId}/entities/${entity.entityType.simpleName}_${entity.id}",
+      "reconfigurable" : false
     }, {
       "name" : "setup.latch",
       "type" : "java.lang.Boolean",
-      "defaultValue" : null,
       "description" : "Latch for blocking setup until ready",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "shell.env",
       "type" : "java.util.Map",
-      "defaultValue" : { },
       "description" : "Map of environment variables to pass to the runtime shell",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : { },
+      "reconfigurable" : false
     }, {
       "name" : "softwareProcess.lifecycleTasks",
       "type" : "org.apache.brooklyn.entity.software.base.SoftwareProcessDriverLifecycleEffectorTasks",
-      "defaultValue" : "org.apache.brooklyn.entity.software.base.SoftwareProcessDriverLifecycleEffectorTasks@40f5ea2f",
       "description" : "An object that handles lifecycle of an entity's associated machine.",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "org.apache.brooklyn.entity.software.base.SoftwareProcessDriverLifecycleEffectorTasks@6ee1d8de",
+      "reconfigurable" : false
     }, {
       "name" : "softwareProcess.maxSensorRebindDelay",
       "type" : "org.apache.brooklyn.util.time.Duration",
-      "defaultValue" : "10s",
       "description" : "The maximum delay to apply when reconnecting sensors when rebinding to this entity. Brooklyn will wait a random amount of time, up to the value of this config key, to avoid a thundering herd problem when the entity shares its machine with several others. Set to null or to 0 to disable any delay.",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "10s",
+      "reconfigurable" : false
     }, {
       "name" : "start.latch",
       "type" : "java.lang.Boolean",
-      "defaultValue" : null,
       "description" : "Latch for blocking start until ready",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "start.timeout",
       "type" : "org.apache.brooklyn.util.time.Duration",
-      "defaultValue" : "2m",
       "description" : "Time to wait for process and for SERVICE_UP before failing (in seconds, default 2m)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "2m",
+      "reconfigurable" : false
     }, {
       "name" : "stopIptables",
       "type" : "java.lang.Boolean",
-      "defaultValue" : false,
       "description" : "Whether to stop iptables entirely; if true then ssh in to stop the iptables service, as part of machine provisioning",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : false,
+      "reconfigurable" : false
     }, {
       "name" : "templates.install",
       "type" : "java.util.Map",
-      "defaultValue" : null,
       "description" : "Mapping of templates, to be filled in and copied before install, to destination name relative to installDir",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "templates.preinstall",
       "type" : "java.util.Map",
-      "defaultValue" : null,
       "description" : "Mapping of templates, to be filled in and copied before pre-install, to destination name relative to installDir",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "templates.runtime",
       "type" : "java.util.Map",
-      "defaultValue" : null,
       "description" : "Mapping of templates, to be filled in and copied before customisation, to destination name relative to runDir",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     } ],
     "sensors" : [ {
-      "name" : "activemq.brokerName",
-      "type" : "java.lang.String",
-      "description" : "ActiveMQ Broker Name",
-      "links" : { }
-    }, {
-      "name" : "activemq.jetty.port",
-      "type" : "java.lang.Integer",
-      "description" : "jetty port",
-      "links" : { }
-    }, {
-      "name" : "activemq.templateConfigurationUrl",
-      "type" : "java.lang.String",
-      "description" : "Template file (in freemarker format) for the conf/activemq.xml file",
-      "links" : { }
-    }, {
-      "name" : "broker.url",
-      "type" : "java.lang.String",
-      "description" : "Broker Connection URL",
-      "links" : { }
-    }, {
       "name" : "download.addon.urls",
       "type" : "java.util.Map",
       "description" : "URL patterns for downloading named add-ons (will substitute things like ${version} automatically)",
@@ -710,51 +905,6 @@ var items = {
       "description" : "Directory for this software to be installed in",
       "links" : { }
     }, {
-      "name" : "jmx.agent.local.path",
-      "type" : "java.lang.String",
-      "description" : "Path to JMX driver on the local machine",
-      "links" : { }
-    }, {
-      "name" : "jmx.context",
-      "type" : "java.lang.String",
-      "description" : "JMX context path",
-      "links" : { }
-    }, {
-      "name" : "jmx.direct.port",
-      "type" : "java.lang.Integer",
-      "description" : "JMX direct/private port (e.g. JMX RMI server port, or JMXMP port, but not RMI registry port)",
-      "links" : { }
-    }, {
-      "name" : "jmx.direct.port.legacy.NOT_USED",
-      "type" : "java.lang.Integer",
-      "description" : "Legacy definition JMX direct/private port (e.g. JMX RMI server port, or JMXMP port, but not RMI registry port)",
-      "links" : { }
-    }, {
-      "name" : "jmx.password",
-      "type" : "java.lang.String",
-      "description" : "JMX password",
-      "links" : { }
-    }, {
-      "name" : "jmx.service.url",
-      "type" : "java.lang.String",
-      "description" : "The URL for connecting to the MBean Server",
-      "links" : { }
-    }, {
-      "name" : "jmx.user",
-      "type" : "java.lang.String",
-      "description" : "JMX username",
-      "links" : { }
-    }, {
-      "name" : "openwire.port",
-      "type" : "java.lang.Integer",
-      "description" : "OpenWire port",
-      "links" : { }
-    }, {
-      "name" : "rmi.registry.port",
-      "type" : "java.lang.Integer",
-      "description" : "RMI registry port, used for discovering JMX (private) port",
-      "links" : { }
-    }, {
       "name" : "run.dir",
       "type" : "java.lang.String",
       "description" : "Directory for this software to be run from",
@@ -791,17 +941,30 @@ var items = {
       "links" : { }
     } ],
     "effectors" : [ {
+      "name" : "ansibleCommand",
+      "returnType" : "java.lang.String",
+      "parameters" : [ {
+        "name" : "module",
+        "type" : "java.lang.String",
+        "description" : "Name of the Ansible module to invoke",
+        "defaultValue" : "command"
+      }, {
+        "name" : "args",
+        "type" : "java.lang.String",
+        "description" : "Arguments for the ansible command",
+        "defaultValue" : null
+      } ],
+      "description" : "Invoke an arbitrary Ansible command, optionally specifying the module (default is 'command')"
+    }, {
       "name" : "populateServiceNotUpDiagnostics",
       "returnType" : "void",
       "parameters" : [ ],
-      "description" : "Populates the attribute service.notUp.diagnostics, with any available health indicators",
-      "links" : null
+      "description" : "Populates the attribute service.notUp.diagnostics, with any available health indicators"
     }, {
       "name" : "restart",
       "returnType" : "void",
       "parameters" : [ ],
-      "description" : "Restart the process/service represented by an entity",
-      "links" : null
+      "description" : "Restart the process/service represented by an entity"
     }, {
       "name" : "start",
       "returnType" : "void",
@@ -811,14 +974,12 @@ var items = {
         "description" : "The location or locations to start in, as a string, a location object, a list of strings, or a list of location objects",
         "defaultValue" : null
       } ],
-      "description" : "Start the process/service represented by an entity",
-      "links" : null
+      "description" : "Start the process/service represented by an entity"
     }, {
       "name" : "stop",
       "returnType" : "void",
       "parameters" : [ ],
-      "description" : "Stop the process/service represented by an entity",
-      "links" : null
+      "description" : "Stop the process/service represented by an entity"
     } ]
   }, {
     "type" : "org.apache.brooklyn.entity.nosql.cassandra.CassandraFabric",
@@ -828,113 +989,64 @@ var items = {
     "config" : [ {
       "name" : "cassandra.fabric.datacenter.namer",
       "type" : "com.google.common.base.Function",
-      "defaultValue" : null,
       "description" : "Function used to provide the cassandra.replication.datacenterName for a given location",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "dynamiccfabric.memberspec",
       "type" : "org.apache.brooklyn.api.entity.EntitySpec",
-      "defaultValue" : null,
       "description" : "entity spec for creating new cluster members",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "dynamicfabric.customChildFlags",
       "type" : "java.util.Map",
-      "defaultValue" : { },
       "description" : "Additional flags to be passed to children when they are being created",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : { },
+      "reconfigurable" : false
     }, {
       "name" : "dynamicfabric.displayNamePrefix",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "Display name prefix, for created children",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "dynamicfabric.displayNameSuffix",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "Display name suffix, for created children",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "dynamicfabric.factory",
       "type" : "org.apache.brooklyn.core.entity.factory.EntityFactory",
-      "defaultValue" : null,
       "description" : "factory for creating new cluster members",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "enricher.service_state.children_and_members.quorum.running",
       "type" : "org.apache.brooklyn.util.collections.QuorumCheck",
-      "defaultValue" : "QuorumCheck[all;require=0,100.0%]",
       "description" : "Problems check from children actual states (lifecycle), applied by default to members and children, not checking upness, but requiring by default that none are on-fire",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "QuorumCheck[all;require=0,100.0%]",
+      "reconfigurable" : false
     }, {
       "name" : "enricher.service_state.children_and_members.quorum.up",
       "type" : "org.apache.brooklyn.util.collections.QuorumCheck",
-      "defaultValue" : "QuorumCheck[atLeastOne;require=1,0.0%]",
       "description" : "Up check, applied by default to members, requiring at least one present and up",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "QuorumCheck[atLeastOne;require=1,0.0%]",
+      "reconfigurable" : false
     }, {
       "name" : "fabric.initial.quorumSize",
       "type" : "java.lang.Integer",
-      "defaultValue" : -1,
       "description" : "Initial fabric quorum size - number of initial nodes that must have been successfully started to report success (if less than 0, then use a value based on INITIAL_SIZE of clusters)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : -1,
+      "reconfigurable" : false
     }, {
       "name" : "group.members.delegate",
       "type" : "java.lang.Boolean",
-      "defaultValue" : false,
       "description" : "Deprecated: Add delegate child entities for members of the group",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : false,
+      "reconfigurable" : false
     }, {
       "name" : "group.members.delegate.nameFormat",
       "type" : "java.lang.String",
-      "defaultValue" : "%s",
       "description" : "Delegate members name format string (Use %s for the original entity display name)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "%s",
+      "reconfigurable" : false
     } ],
     "sensors" : [ {
       "name" : "cassandra.cluster.datacenterUsages",
@@ -1016,8 +1128,7 @@ var items = {
       "name" : "restart",
       "returnType" : "void",
       "parameters" : [ ],
-      "description" : "Restart the process/service represented by an entity",
-      "links" : null
+      "description" : "Restart the process/service represented by an entity"
     }, {
       "name" : "start",
       "returnType" : "void",
@@ -1027,20 +1138,17 @@ var items = {
         "description" : "The location or locations to start in, as a string, a location object, a list of strings, or a list of location objects",
         "defaultValue" : null
       } ],
-      "description" : "Start the process/service represented by an entity",
-      "links" : null
+      "description" : "Start the process/service represented by an entity"
     }, {
       "name" : "stop",
       "returnType" : "void",
       "parameters" : [ ],
-      "description" : "Stop the process/service represented by an entity",
-      "links" : null
+      "description" : "Stop the process/service represented by an entity"
     }, {
       "name" : "update",
       "returnType" : "void",
       "parameters" : [ ],
-      "description" : "Updates the cluster members",
-      "links" : null
+      "description" : "Updates the cluster members"
     } ]
   }, {
     "type" : "org.apache.brooklyn.entity.nosql.cassandra.CassandraDatacenter",
@@ -1050,293 +1158,165 @@ var items = {
     "config" : [ {
       "name" : "cassandra.cluster.delayBeforeAdvertisingCluster",
       "type" : "org.apache.brooklyn.util.time.Duration",
-      "defaultValue" : "10s",
       "description" : "Delay after cluster is started before checking and advertising its availability",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "10s",
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.cluster.name",
       "type" : "java.lang.String",
-      "defaultValue" : "BrooklynCluster",
       "description" : "Name of the Cassandra cluster",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "BrooklynCluster",
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.cluster.seedSupplier",
       "type" : "com.google.common.base.Supplier",
-      "defaultValue" : null,
       "description" : "For determining the seed nodes",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.cluster.snitchName",
       "type" : "java.lang.String",
-      "defaultValue" : "SimpleSnitch",
       "description" : "Type of the Cassandra snitch",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "SimpleSnitch",
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.cluster.tokenGenerator.class",
       "type" : "java.lang.Class",
-      "defaultValue" : "class org.apache.brooklyn.entity.nosql.cassandra.TokenGenerators$PosNeg63TokenGenerator",
       "description" : "For determining the tokens of nodes",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "class org.apache.brooklyn.entity.nosql.cassandra.TokenGenerators$PosNeg63TokenGenerator",
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.cluster.tokenShift",
       "type" : "java.math.BigInteger",
-      "defaultValue" : null,
       "description" : "Delta applied to all tokens generated for this Cassandra datacenter, useful when configuring multiple datacenters which should be shifted; if not set, a random shift is applied. (Pass 0 to prevent any shift.)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.cluster.useVnodes",
       "type" : "java.lang.Boolean",
-      "defaultValue" : false,
       "description" : "Determines whether to use vnodes; if doing so, tokens will not be explicitly assigned to nodes in the cluster",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : false,
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.numTokensPerNode",
       "type" : "java.lang.Integer",
-      "defaultValue" : 256,
       "description" : "Number of tokens per node; if using vnodes, should set this to a value like 256; will be overridden to 1 if USE_VNODES==false",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : 256,
+      "reconfigurable" : false
     }, {
       "name" : "cluster.initial.quorumSize",
       "type" : "java.lang.Integer",
-      "defaultValue" : -1,
       "description" : "Initial cluster quorum size - number of initial nodes that must have been successfully started to report success (if < 0, then use value of INITIAL_SIZE)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : -1,
+      "reconfigurable" : false
     }, {
       "name" : "cluster.initial.size",
       "type" : "java.lang.Integer",
-      "defaultValue" : 1,
       "description" : "Initial cluster size",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : 1,
+      "reconfigurable" : false
     }, {
       "name" : "cluster.member.id",
       "type" : "java.lang.Integer",
-      "defaultValue" : null,
       "description" : "The unique ID number (sequential) of a member of a cluster",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "commands",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "commands",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "dynamiccluster.availabilityZones",
       "type" : "java.util.Collection",
-      "defaultValue" : null,
       "description" : "availability zones to use (if non-null, overrides other configuration)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "dynamiccluster.customChildFlags",
       "type" : "java.util.Map",
-      "defaultValue" : { },
       "description" : "Additional flags to be passed to children when they are being created",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : { },
+      "reconfigurable" : false
     }, {
       "name" : "dynamiccluster.factory",
       "type" : "org.apache.brooklyn.core.entity.factory.EntityFactory",
-      "defaultValue" : null,
       "description" : "factory for creating new cluster members",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "dynamiccluster.firstmemberspec",
       "type" : "org.apache.brooklyn.api.entity.EntitySpec",
-      "defaultValue" : null,
       "description" : "entity spec for creating new cluster members, used for the very first member if different",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "dynamiccluster.memberspec",
       "type" : "org.apache.brooklyn.api.entity.EntitySpec",
-      "defaultValue" : null,
       "description" : "entity spec for creating new cluster members",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "dynamiccluster.numAvailabilityZones",
       "type" : "java.lang.Integer",
-      "defaultValue" : null,
       "description" : "number of availability zones to use (will attempt to auto-discover this number)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "dynamiccluster.quarantineFailedEntities",
       "type" : "java.lang.Boolean",
-      "defaultValue" : true,
       "description" : "If true, will quarantine entities that fail to start; if false, will get rid of them (i.e. delete them)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : true,
+      "reconfigurable" : false
     }, {
       "name" : "dynamiccluster.quarantineFilter",
       "type" : "com.google.common.base.Predicate",
-      "defaultValue" : null,
       "description" : "Quarantine the failed nodes that pass this filter (given the exception thrown by the node). Default is those that did not fail with NoMachinesAvailableException (Config ignored if quarantineFailedEntities is false)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "dynamiccluster.removalstrategy",
       "type" : "com.google.common.base.Function",
-      "defaultValue" : null,
       "description" : "strategy for deciding what to remove when down-sizing",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "dynamiccluster.restartMode",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "How this cluster should handle restarts; by default it is disallowed, but this key can specify a different mode. Modes supported by dynamic cluster are 'off', 'sequqential', or 'parallel'. However subclasses can define their own modes or may ignore this.",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "dynamiccluster.zone.enable",
       "type" : "java.lang.Boolean",
-      "defaultValue" : false,
       "description" : "Whether to use availability zones, or just deploy everything into the generic location",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : false,
+      "reconfigurable" : false
     }, {
       "name" : "dynamiccluster.zone.failureDetector",
       "type" : "org.apache.brooklyn.entity.group.DynamicCluster$ZoneFailureDetector",
-      "defaultValue" : "org.apache.brooklyn.entity.group.zoneaware.ProportionalZoneFailureDetector@6c17a6fd",
       "description" : "Zone failure detector",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "org.apache.brooklyn.entity.group.zoneaware.ProportionalZoneFailureDetector@689817c4",
+      "reconfigurable" : false
     }, {
       "name" : "dynamiccluster.zone.placementStrategy",
       "type" : "org.apache.brooklyn.entity.group.DynamicCluster$NodePlacementStrategy",
-      "defaultValue" : "org.apache.brooklyn.entity.group.zoneaware.BalancingNodePlacementStrategy@5295f3d3",
       "description" : "Node placement strategy",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "org.apache.brooklyn.entity.group.zoneaware.BalancingNodePlacementStrategy@b75e00a",
+      "reconfigurable" : false
     }, {
       "name" : "enricher.service_state.children_and_members.quorum.running",
       "type" : "org.apache.brooklyn.util.collections.QuorumCheck",
-      "defaultValue" : "QuorumCheck[all;require=0,100.0%]",
       "description" : "Problems check from children actual states (lifecycle), applied by default to members and children, not checking upness, but requiring by default that none are on-fire",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "QuorumCheck[all;require=0,100.0%]",
+      "reconfigurable" : false
     }, {
       "name" : "enricher.service_state.children_and_members.quorum.up",
       "type" : "org.apache.brooklyn.util.collections.QuorumCheck",
-      "defaultValue" : "QuorumCheck[atLeastOne;require=1,0.0%]",
       "description" : "Up check, applied by default to members, requiring at least one present and up",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "QuorumCheck[atLeastOne;require=1,0.0%]",
+      "reconfigurable" : false
     }, {
       "name" : "group.members.delegate",
       "type" : "java.lang.Boolean",
-      "defaultValue" : false,
       "description" : "Deprecated: Add delegate child entities for members of the group",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : false,
+      "reconfigurable" : false
     }, {
       "name" : "group.members.delegate.nameFormat",
       "type" : "java.lang.String",
-      "defaultValue" : "%s",
       "description" : "Delegate members name format string (Use %s for the original entity display name)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "%s",
+      "reconfigurable" : false
     } ],
     "sensors" : [ {
       "name" : "cassandra.cluster.datacenterUsages",
@@ -1543,8 +1523,7 @@ var items = {
         "description" : "commands",
         "defaultValue" : null
       } ],
-      "description" : "executes the given script contents using cassandra-cli",
-      "links" : null
+      "description" : "executes the given script contents using cassandra-cli"
     }, {
       "name" : "replaceMember",
       "returnType" : "java.lang.String",
@@ -1554,8 +1533,7 @@ var items = {
         "description" : "The entity id of a member to be replaced",
         "defaultValue" : null
       } ],
-      "description" : "Replaces the entity with the given ID, if it is a member; first adds a new member, then removes this one. Returns id of the new entity; or throws exception if couldn't be replaced.",
-      "links" : null
+      "description" : "Replaces the entity with the given ID, if it is a member; first adds a new member, then removes this one. Returns id of the new entity; or throws exception if couldn't be replaced."
     }, {
       "name" : "resize",
       "returnType" : "java.lang.Integer",
@@ -1565,8 +1543,7 @@ var items = {
         "description" : "The new size of the cluster",
         "defaultValue" : null
       } ],
-      "description" : "Changes the size of the entity (e.g. the number of nodes in a cluster)",
-      "links" : null
+      "description" : "Changes the size of the entity (e.g. the number of nodes in a cluster)"
     }, {
       "name" : "resizeByDelta",
       "returnType" : "java.util.Collection",
@@ -1576,14 +1553,12 @@ var items = {
         "description" : "The change in number of nodes",
         "defaultValue" : null
       } ],
-      "description" : "Changes the size of the cluster.",
-      "links" : null
+      "description" : "Changes the size of the cluster."
     }, {
       "name" : "restart",
       "returnType" : "void",
       "parameters" : [ ],
-      "description" : "Restart the process/service represented by an entity",
-      "links" : null
+      "description" : "Restart the process/service represented by an entity"
     }, {
       "name" : "start",
       "returnType" : "void",
@@ -1593,20 +1568,17 @@ var items = {
         "description" : "The location or locations to start in, as a string, a location object, a list of strings, or a list of location objects",
         "defaultValue" : null
       } ],
-      "description" : "Start the process/service represented by an entity",
-      "links" : null
+      "description" : "Start the process/service represented by an entity"
     }, {
       "name" : "stop",
       "returnType" : "void",
       "parameters" : [ ],
-      "description" : "Stop the process/service represented by an entity",
-      "links" : null
+      "description" : "Stop the process/service represented by an entity"
     }, {
       "name" : "update",
       "returnType" : "void",
       "parameters" : [ ],
-      "description" : "Updates the cluster members",
-      "links" : null
+      "description" : "Updates the cluster members"
     } ]
   }, {
     "type" : "org.apache.brooklyn.entity.nosql.cassandra.CassandraNode",
@@ -1615,223 +1587,134 @@ var items = {
     "description" : "Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store which provides a ColumnFamily-based data model richer than typical key/value systems",
     "iconUrl" : "classpath:///cassandra-logo.jpeg",
     "config" : [ {
+      "name" : "archive.nameFormat",
+      "type" : "java.lang.String",
+      "description" : "The format for the directory created when the installation archive is extracted, if required. The version string will be passed in as the first argument, replacing the %s format specifier",
+      "defaultValue" : "apache-cassandra-%s",
+      "reconfigurable" : false
+    }, {
       "name" : "cassandra.broadcastAddressSensor",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "sensor name from which to take the broadcast address; default (null) is a smart lookup",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.cluster.name",
       "type" : "java.lang.String",
-      "defaultValue" : "BrooklynCluster",
       "description" : "Name of the Cassandra cluster",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "BrooklynCluster",
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.cluster.seeds.initial",
       "type" : "java.util.Set",
-      "defaultValue" : null,
       "description" : "List of cluster nodes to seed this node",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.cluster.snitchName",
       "type" : "java.lang.String",
-      "defaultValue" : "SimpleSnitch",
       "description" : "Type of the Cassandra snitch",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "SimpleSnitch",
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.config.customSnitchUrl",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "URL for a jar file to be uploaded (e.g. \"classpath://org/apache/brooklyn/entity/nosql/cassandra/cassandra-multicloud-snitch.jar\"); defaults to null which means nothing to upload",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.config.fileName",
       "type" : "java.lang.String",
-      "defaultValue" : "cassandra.yaml",
       "description" : "Name for the copied config file",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "cassandra.yaml",
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.config.rackdc.fileName",
       "type" : "java.lang.String",
-      "defaultValue" : "cassandra-rackdc.properties",
       "description" : "Name for the copied rackdc config file (used for configuring replication, when a suitable snitch is used)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "cassandra-rackdc.properties",
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.config.rackdc.templateUrl",
       "type" : "java.lang.String",
-      "defaultValue" : "classpath://org/apache/brooklyn/entity/nosql/cassandra/cassandra-rackdc.properties",
       "description" : "Template file (in freemarker format) for the cassandra-rackdc.properties config file",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "classpath://org/apache/brooklyn/entity/nosql/cassandra/cassandra-rackdc.properties",
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.config.templateUrl",
       "type" : "java.lang.String",
-      "defaultValue" : "classpath://org/apache/brooklyn/entity/nosql/cassandra/cassandra-${entity.majorMinorVersion}.yaml",
       "description" : "A URL (in freemarker format) for a cassandra.yaml config file (in freemarker format)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "classpath://org/apache/brooklyn/entity/nosql/cassandra/cassandra-${entity.majorMinorVersion}.yaml",
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.gossip.port",
       "type" : "org.apache.brooklyn.api.location.PortRange",
-      "defaultValue" : "7000-65535",
       "description" : "Cassandra Gossip communications port",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "7000-65535",
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.install.mirror.url",
       "type" : "java.lang.String",
-      "defaultValue" : "http://www.mirrorservice.org/sites/ftp.apache.org/cassandra",
       "description" : "URL of mirror",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "http://www.mirrorservice.org/sites/ftp.apache.org/cassandra",
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.install.tgzUrl",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "URL of TGZ download file",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.listenAddressSensor",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "sensor name from which to take the listen address; default (null) is a smart lookup",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.native.port",
       "type" : "org.apache.brooklyn.api.location.PortRange",
-      "defaultValue" : "9042-65535",
       "description" : "Cassandra Native Transport port",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "9042-65535",
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.numTokensPerNode",
       "type" : "java.lang.Integer",
-      "defaultValue" : 1,
       "description" : "Number of tokens per node; if using vnodes, should set this to a value like 256",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : 1,
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.replication.datacenterName",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "Datacenter name (used for configuring replication, when a suitable snitch is used)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.replication.rackName",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "Rack name (used for configuring replication, when a suitable snitch is used)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.rpcAddressSensor",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "sensor name from which to take the RPC address; default (null) is 0.0.0.0",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.ssl-gossip.port",
       "type" : "org.apache.brooklyn.api.location.PortRange",
-      "defaultValue" : "7001-65535",
       "description" : "Cassandra Gossip SSL communications port",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "7001-65535",
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.thrift.port",
       "type" : "org.apache.brooklyn.api.location.PortRange",
-      "defaultValue" : "9160-65535",
       "description" : "Cassandra Thrift RPC port",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "9160-65535",
+      "reconfigurable" : false
     }, {
       "name" : "cassandra.tokens",
       "type" : "java.util.Set",
-      "defaultValue" : null,
       "description" : "Cassandra Tokens",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "children.startable.mode",
       "type" : "java.lang.Enum",
-      "defaultValue" : "NONE",
       "description" : "Controls behaviour when starting Startable children as part of this entity's lifecycle.",
+      "defaultValue" : "NONE",
       "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
       "possibleValues" : [ {
         "value" : "NONE",
         "description" : "NONE"
@@ -1847,276 +1730,162 @@ var items = {
       }, {
         "value" : "BACKGROUND_LATE",
         "description" : "BACKGROUND_LATE"
-      } ],
-      "links" : null
+      } ]
     }, {
       "name" : "commands",
       "type" : "java.lang.String",
-      "defaultValue" : null,
       "description" : "commands",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "customize.latch",
       "type" : "java.lang.Boolean",
-      "defaultValue" : null,
       "description" : "Latch for blocking customize until ready",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "datastore.creation.script.contents",
       "type" : "java.lang.String",
-      "defaultValue" : "",
       "description" : "Contents of creation script to initialize the datastore",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "",
+      "reconfigurable" : false
     }, {
-      "name" : "datastore.creation.script.url",
+      "name" : "datastore.creation.script.template.url",
       "type" : "java.lang.String",
+      "description" : "URL of creation script Freemarker template used to initialize the datastore (ignored if datastore.creation.script.contents or datastore.creation.script.url is specified)",
       "defaultValue" : "",
+      "reconfigurable" : false
+    }, {
+      "name" : "datastore.creation.script.url",
+      "type" : "java.lang.String",
       "description" : "URL of creation script to use to initialize the datastore (ignored if creationScriptContents is specified)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "",
+      "reconfigurable" : false
     }, {
       "name" : "dontRequireTtyForSudo",
       "type" : "java.lang.Boolean",
-      "defaultValue" : false,
       "description" : "Whether to explicitly set /etc/sudoers, so don't need tty (will leave unchanged if 'false'); some machines require a tty for sudo; brooklyn by default does not use a tty (so that it can get separate error+stdout streams); you can enable a tty as an option to every ssh command, or you can do it once and modify the machine so that a tty is not subsequently required.",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : false,
+      "reconfigurable" : false
     }, {
       "name" : "download.addon.urls",
       "type" : "java.util.Map",
-      "defaultValue" : null,
       "description" : "URL patterns for downloading named add-ons (will substitute things like ${version} automatically)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "download.url",
       "type" : "java.lang.String",
-      "defaultValue" : "${driver.mirrorUrl}/${version}/apache-cassandra-${version}-bin.tar.gz",
       "description" : "URL pattern for downloading the installer (will substitute things like ${version} automatically)",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "defaultValue" : "${driver.mirrorUrl}/${version}/apache-cassandra-${version}-bin.tar.gz",
+      "reconfigurable" : false
     }, {
       "name" : "entity.running",
       "type" : "java.lang.Boolean",
-      "defaultValue" : null,
       "description" : "Skip the startup process entirely, if service already running",
-      "reconfigurable" : false,
-      "label" : null,
-      "priority" : null,
-      "possibleValues" : null,
-      "links" : null
+      "reconfigurable" : false
     }, {
       "name" : "entity.started",
       "type" : "java.lang.Boolean",

[... 32019 lines stripped ...]