]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
revamped api doc generation
authorMichal Nowikowski <godfryd@isc.org>
Thu, 18 Jul 2019 12:37:52 +0000 (14:37 +0200)
committerMichal Nowikowski <godfryd@isc.org>
Tue, 30 Jul 2019 08:45:13 +0000 (10:45 +0200)
87 files changed:
doc/sphinx/.gitignore
doc/sphinx/Makefile.am
doc/sphinx/api/build-report.json
doc/sphinx/api/cache-get-by-id.json
doc/sphinx/api/cache-get.json
doc/sphinx/api/cache-insert.json
doc/sphinx/api/cache-load.json
doc/sphinx/api/cache-remove.json
doc/sphinx/api/cache-size.json
doc/sphinx/api/cache-write.json
doc/sphinx/api/class-add.json
doc/sphinx/api/class-del.json
doc/sphinx/api/class-get.json
doc/sphinx/api/class-list.json
doc/sphinx/api/class-update.json
doc/sphinx/api/config-get.json
doc/sphinx/api/config-reload.json
doc/sphinx/api/config-set.json
doc/sphinx/api/config-test.json
doc/sphinx/api/config-write.json
doc/sphinx/api/dhcp-disable.json
doc/sphinx/api/dhcp-enable.json
doc/sphinx/api/ha-heartbeat.json
doc/sphinx/api/ha-scopes.json
doc/sphinx/api/ha-sync.json
doc/sphinx/api/lease4-add.json
doc/sphinx/api/lease4-del.json
doc/sphinx/api/lease4-get-all.json
doc/sphinx/api/lease4-get.json
doc/sphinx/api/lease4-update.json
doc/sphinx/api/lease4-wipe.json
doc/sphinx/api/lease6-add.json
doc/sphinx/api/lease6-del.json
doc/sphinx/api/lease6-get-all.json
doc/sphinx/api/lease6-get.json
doc/sphinx/api/lease6-update.json
doc/sphinx/api/lease6-wipe.json
doc/sphinx/api/leases-reclaim.json
doc/sphinx/api/libreload.json
doc/sphinx/api/list-commands.json
doc/sphinx/api/network4-add.json
doc/sphinx/api/network4-del.json
doc/sphinx/api/network4-get.json
doc/sphinx/api/network4-list.json
doc/sphinx/api/network4-subnet-add.json
doc/sphinx/api/network4-subnet-del.json
doc/sphinx/api/network6-add.json
doc/sphinx/api/network6-del.json
doc/sphinx/api/network6-get.json
doc/sphinx/api/network6-list.json
doc/sphinx/api/network6-subnet-add.json
doc/sphinx/api/network6-subnet-del.json
doc/sphinx/api/reservation-add.json
doc/sphinx/api/reservation-del.json
doc/sphinx/api/reservation-get-all.json
doc/sphinx/api/reservation-get-page.json
doc/sphinx/api/reservation-get.json
doc/sphinx/api/shutdown.json
doc/sphinx/api/stat-lease4-get.json
doc/sphinx/api/stat-lease6-get.json
doc/sphinx/api/statistic-get-all.json
doc/sphinx/api/statistic-get.json
doc/sphinx/api/statistic-remove-all.json
doc/sphinx/api/statistic-remove.json
doc/sphinx/api/statistic-reset-all.json
doc/sphinx/api/statistic-reset.json
doc/sphinx/api/subnet4-add.json
doc/sphinx/api/subnet4-del.json
doc/sphinx/api/subnet4-get.json
doc/sphinx/api/subnet4-list.json
doc/sphinx/api/subnet4-update.json
doc/sphinx/api/subnet6-add.json
doc/sphinx/api/subnet6-del.json
doc/sphinx/api/subnet6-get.json
doc/sphinx/api/subnet6-list.json
doc/sphinx/api/subnet6-update.json
doc/sphinx/api/version-get.json
doc/sphinx/api2doc.py [new file with mode: 0755]
doc/sphinx/arm/api.rst [deleted file]
doc/sphinx/arm/hooks-cb-cmds.rst
doc/sphinx/arm/hooks-ha.rst
doc/sphinx/arm/hooks-lease-cmds.rst
doc/sphinx/arm/hooks-stat-cmds.rst
doc/sphinx/arm/hooks.rst
doc/sphinx/conf.py
doc/sphinx/index.rst [moved from doc/sphinx/arm/index.rst with 69% similarity]
doc/sphinx/mes2doc.py [moved from doc/sphinx/system_messages.py with 97% similarity]

index 183ae1dd8b141c77267bd0f989a83afe694291d8..ce7f2dce0e4bf989843d2de4eae5805e46dcc58f 100644 (file)
@@ -1,3 +1,4 @@
 /_build
+/api.rst
 /kea-messages.rst
 
index 6fd6f8874e6778c1cc42af6fc4829955ce0fac05..92b7ed14036449d25f3f8f5eaed2d463c64bc27d 100644 (file)
@@ -23,7 +23,6 @@ static_sources+=static/kea.css
 rst_arm_sources=
 rst_arm_sources+=arm/admin.rst
 rst_arm_sources+=arm/agent.rst
-rst_arm_sources+=arm/api.rst
 rst_arm_sources+=arm/classify.rst
 rst_arm_sources+=arm/config-backend.rst
 rst_arm_sources+=arm/config.rst
@@ -42,7 +41,7 @@ rst_arm_sources+=arm/hooks-radius.rst
 rst_arm_sources+=arm/hooks.rst
 rst_arm_sources+=arm/hooks-stat-cmds.rst
 rst_arm_sources+=arm/install.rst
-rst_arm_sources+=arm/index.rst
+rst_arm_sources+=index.rst
 rst_arm_sources+=arm/intro.rst
 rst_arm_sources+=arm/keactrl.rst
 rst_arm_sources+=arm/lease-expiration.rst
@@ -74,10 +73,10 @@ endif
 man_sources=$(rst_man_sources) conf.py
 man8s=$(foreach rst,$(rst_man_sources), $(sphinxbuilddir)/$(basename $(rst)))
 
-EXTRA_DIST += $(main_sources) $(man_sources) system_messages.py
+EXTRA_DIST += $(main_sources) $(man_sources) mes2doc.py
 
 
-# list of messages files that are used to generate kea-messages.pdf
+# list of messages files that are used to generate kea-messages.rst and then kea-messages.pdf
 mes_files=
 mes_files+=$(top_srcdir)/src/hooks/dhcp/mysql_cb/mysql_cb_messages.mes
 mes_files+=$(top_srcdir)/src/hooks/dhcp/lease_cmds/lease_cmds_messages.mes
@@ -107,17 +106,147 @@ if HAVE_SYSREPO
 mes_files+=$(top_srcdir)/src/bin/netconf/netconf_messages.mes
 endif
 
+# list of api files that are used to generate api.rst
+api_files=
+api_files+=api/build-report.json
+api_files+=api/cache-clear.json
+api_files+=api/cache-get.json
+api_files+=api/cache-get-by-id.json
+api_files+=api/cache-insert.json
+api_files+=api/cache-load.json
+api_files+=api/cache-remove.json
+api_files+=api/cache-size.json
+api_files+=api/cache-write.json
+api_files+=api/class-add.json
+api_files+=api/class-del.json
+api_files+=api/class-get.json
+api_files+=api/class-list.json
+api_files+=api/class-update.json
+api_files+=api/config-get.json
+api_files+=api/config-reload.json
+api_files+=api/config-set.json
+api_files+=api/config-test.json
+api_files+=api/config-write.json
+api_files+=api/dhcp-disable.json
+api_files+=api/dhcp-enable.json
+api_files+=api/ha-continue.json
+api_files+=api/ha-heartbeat.json
+api_files+=api/ha-scopes.json
+api_files+=api/ha-sync.json
+api_files+=api/lease4-add.json
+api_files+=api/lease4-del.json
+api_files+=api/lease4-get-all.json
+api_files+=api/lease4-get.json
+api_files+=api/lease4-update.json
+api_files+=api/lease4-wipe.json
+api_files+=api/lease6-add.json
+api_files+=api/lease6-del.json
+api_files+=api/lease6-get-all.json
+api_files+=api/lease6-get.json
+api_files+=api/lease6-update.json
+api_files+=api/lease6-wipe.json
+api_files+=api/leases-reclaim.json
+api_files+=api/libreload.json
+api_files+=api/list-commands.json
+api_files+=api/network4-add.json
+api_files+=api/network4-del.json
+api_files+=api/network4-get.json
+api_files+=api/network4-list.json
+api_files+=api/network4-subnet-add.json
+api_files+=api/network4-subnet-del.json
+api_files+=api/network6-add.json
+api_files+=api/network6-del.json
+api_files+=api/network6-get.json
+api_files+=api/network6-list.json
+api_files+=api/network6-subnet-add.json
+api_files+=api/network6-subnet-del.json
+api_files+=api/remote-global-parameter4-del.json
+api_files+=api/remote-global-parameter4-get-all.json
+api_files+=api/remote-global-parameter4-get.json
+api_files+=api/remote-global-parameter4-set.json
+api_files+=api/remote-global-parameter6-del.json
+api_files+=api/remote-global-parameter6-get-all.json
+api_files+=api/remote-global-parameter6-get.json
+api_files+=api/remote-global-parameter6-set.json
+api_files+=api/remote-network4-del.json
+api_files+=api/remote-network4-get.json
+api_files+=api/remote-network4-list.json
+api_files+=api/remote-network4-set.json
+api_files+=api/remote-network6-del.json
+api_files+=api/remote-network6-get.json
+api_files+=api/remote-network6-list.json
+api_files+=api/remote-network6-set.json
+api_files+=api/remote-option-def4-del.json
+api_files+=api/remote-option-def4-get-all.json
+api_files+=api/remote-option-def4-get.json
+api_files+=api/remote-option-def4-set.json
+api_files+=api/remote-option-def6-del.json
+api_files+=api/remote-option-def6-get-all.json
+api_files+=api/remote-option-def6-get.json
+api_files+=api/remote-option-def6-set.json
+api_files+=api/remote-option4-global-del.json
+api_files+=api/remote-option4-global-get-all.json
+api_files+=api/remote-option4-global-get.json
+api_files+=api/remote-option4-global-set.json
+api_files+=api/remote-option6-global-del.json
+api_files+=api/remote-option6-global-get-all.json
+api_files+=api/remote-option6-global-get.json
+api_files+=api/remote-option6-global-set.json
+api_files+=api/remote-subnet4-del-by-id.json
+api_files+=api/remote-subnet4-del-by-prefix.json
+api_files+=api/remote-subnet4-get-by-id.json
+api_files+=api/remote-subnet4-get-by-prefix.json
+api_files+=api/remote-subnet4-list.json
+api_files+=api/remote-subnet4-set.json
+api_files+=api/remote-subnet6-del-by-id.json
+api_files+=api/remote-subnet6-del-by-prefix.json
+api_files+=api/remote-subnet6-get-by-id.json
+api_files+=api/remote-subnet6-get-by-prefix.json
+api_files+=api/remote-subnet6-list.json
+api_files+=api/remote-subnet6-set.json
+api_files+=api/reservation-add.json
+api_files+=api/reservation-del.json
+api_files+=api/reservation-get.json
+api_files+=api/reservation-get-all.json
+api_files+=api/reservation-get-page.json
+api_files+=api/shutdown.json
+api_files+=api/statistic-get-all.json
+api_files+=api/statistic-get.json
+api_files+=api/statistic-remove-all.json
+api_files+=api/statistic-remove.json
+api_files+=api/statistic-reset-all.json
+api_files+=api/statistic-reset.json
+api_files+=api/stat-lease4-get.json
+api_files+=api/stat-lease6-get.json
+api_files+=api/subnet4-add.json
+api_files+=api/subnet4-del.json
+api_files+=api/subnet4-get.json
+api_files+=api/subnet4-list.json
+api_files+=api/subnet4-update.json
+api_files+=api/subnet6-add.json
+api_files+=api/subnet6-del.json
+api_files+=api/subnet6-get.json
+api_files+=api/subnet6-list.json
+api_files+=api/subnet6-update.json
+api_files+=api/version-get.json
+
+EXTRA_DIST += $(api_files)
+
 
 all: html mans pdf
 
-kea-messages.rst: $(mes_files) system_messages.py
-       $(srcdir)/system_messages.py -o $@ $(mes_files)
+kea-messages.rst: $(mes_files) mes2doc.py
+       $(srcdir)/mes2doc.py -o $@ $(mes_files)
+
 
+api.rst: $(api_files) api2doc.py
+       $(srcdir)/api2doc.py -o $@ $(api_files)
 
-pdf: $(main_sources) kea-messages.rst
+
+pdf: $(main_sources) api.rst kea-messages.rst
        $(SPHINXBUILD) -M latexpdf $(srcdir) $(sphinxbuilddir) $(sphinxopts)
 
-html: $(main_sources) kea-messages.rst
+html: $(main_sources) api.rst kea-messages.rst
        $(SPHINXBUILD) -M html $(srcdir) $(sphinxbuilddir) $(sphinxopts)
 
 $(man8s): mans
@@ -138,7 +267,7 @@ uninstall-local:
 
 clean-local:
        rm -rf $(sphinxbuilddir)
-       rm -f kea-messages.rst
+       rm -f api.rst kea-messages.rst
 
 .PHONY: all pdf html mans
 
@@ -182,93 +311,3 @@ api: docgen
 # This convenience target makes sure the docgen tool is built properly
 docgen:
        $(MAKE) -C docgen
-
-
-# These are files that document our APIs. They're not really needed as the
-# content is included in the api.xml, but may be useful for people who
-# want to document the API.
-EXTRA_DIST += api/build-report.json
-EXTRA_DIST += api/cache-clear.json api/cache-get.json
-EXTRA_DIST += api/cache-get-by-id.json api/cache-insert.json
-EXTRA_DIST += api/cache-load.json api/cache-remove.json
-EXTRA_DIST += api/cache-size.json  api/cache-write.json
-EXTRA_DIST += api/class-add.json api/class-del.json
-EXTRA_DIST += api/class-get.json api/class-list.json
-EXTRA_DIST += api/class-update.json
-EXTRA_DIST += api/config-get.json api/config-reload.json
-EXTRA_DIST += api/config-set.json api/config-test.json
-EXTRA_DIST += api/config-write.json api/dhcp-disable.json
-EXTRA_DIST += api/dhcp-enable.json api/ha-continue.json
-EXTRA_DIST += api/ha-heartbeat.json api/ha-scopes.json
-EXTRA_DIST += api/ha-sync.json api/lease4-add.json
-EXTRA_DIST += api/lease4-del.json api/lease4-get-all.json
-EXTRA_DIST += api/lease4-get.json api/lease4-update.json
-EXTRA_DIST += api/lease4-wipe.json api/lease6-add.json
-EXTRA_DIST += api/lease6-del.json api/lease6-get-all.json
-EXTRA_DIST += api/lease6-get.json api/lease6-update.json
-EXTRA_DIST += api/lease6-wipe.json api/leases-reclaim.json
-EXTRA_DIST += api/libreload.json api/list-commands.json
-EXTRA_DIST += api/network4-add.json api/network4-del.json
-EXTRA_DIST += api/network4-get.json api/network4-list.json
-EXTRA_DIST += api/network4-subnet-add.json api/network4-subnet-del.json
-EXTRA_DIST += api/network6-add.json api/network6-del.json
-EXTRA_DIST += api/network6-get.json api/network6-list.json
-EXTRA_DIST += api/network6-subnet-add.json api/network6-subnet-del.json
-EXTRA_DIST += api/remote-global-parameter4-del.json
-EXTRA_DIST += api/remote-global-parameter4-get-all.json
-EXTRA_DIST += api/remote-global-parameter4-get.json
-EXTRA_DIST += api/remote-global-parameter4-set.json
-EXTRA_DIST += api/remote-global-parameter6-del.json
-EXTRA_DIST += api/remote-global-parameter6-get-all.json
-EXTRA_DIST += api/remote-global-parameter6-get.json
-EXTRA_DIST += api/remote-global-parameter6-set.json
-EXTRA_DIST += api/remote-network4-del.json
-EXTRA_DIST += api/remote-network4-get.json
-EXTRA_DIST += api/remote-network4-list.json
-EXTRA_DIST += api/remote-network4-set.json
-EXTRA_DIST += api/remote-network6-del.json
-EXTRA_DIST += api/remote-network6-get.json
-EXTRA_DIST += api/remote-network6-list.json
-EXTRA_DIST += api/remote-network6-set.json
-EXTRA_DIST += api/remote-option-def4-del.json
-EXTRA_DIST += api/remote-option-def4-get-all.json
-EXTRA_DIST += api/remote-option-def4-get.json
-EXTRA_DIST += api/remote-option-def4-set.json
-EXTRA_DIST += api/remote-option-def6-del.json
-EXTRA_DIST += api/remote-option-def6-get-all.json
-EXTRA_DIST += api/remote-option-def6-get.json
-EXTRA_DIST += api/remote-option-def6-set.json
-EXTRA_DIST += api/remote-option4-global-del.json
-EXTRA_DIST += api/remote-option4-global-get-all.json
-EXTRA_DIST += api/remote-option4-global-get.json
-EXTRA_DIST += api/remote-option4-global-set.json
-EXTRA_DIST += api/remote-option6-global-del.json
-EXTRA_DIST += api/remote-option6-global-get-all.json
-EXTRA_DIST += api/remote-option6-global-get.json
-EXTRA_DIST += api/remote-option6-global-set.json
-EXTRA_DIST += api/remote-subnet4-del-by-id.json
-EXTRA_DIST += api/remote-subnet4-del-by-prefix.json
-EXTRA_DIST += api/remote-subnet4-get-by-id.json
-EXTRA_DIST += api/remote-subnet4-get-by-prefix.json
-EXTRA_DIST += api/remote-subnet4-list.json
-EXTRA_DIST += api/remote-subnet4-set.json
-EXTRA_DIST += api/remote-subnet6-del-by-id.json
-EXTRA_DIST += api/remote-subnet6-del-by-prefix.json
-EXTRA_DIST += api/remote-subnet6-get-by-id.json
-EXTRA_DIST += api/remote-subnet6-get-by-prefix.json
-EXTRA_DIST += api/remote-subnet6-list.json
-EXTRA_DIST += api/remote-subnet6-set.json
-EXTRA_DIST += api/reservation-add.json api/reservation-del.json
-EXTRA_DIST += api/reservation-get.json api/reservation-get-all.json
-EXTRA_DIST += api/reservation-get-page.json api/shutdown.json
-EXTRA_DIST += api/statistic-get-all.json api/statistic-get.json
-EXTRA_DIST += api/statistic-remove-all.json api/statistic-remove.json
-EXTRA_DIST += api/statistic-reset-all.json api/statistic-reset.json
-EXTRA_DIST += api/stat-lease4-get.json api/stat-lease6-get.json
-EXTRA_DIST += api/subnet4-add.json api/subnet4-del.json
-EXTRA_DIST += api/subnet4-get.json api/subnet4-list.json
-EXTRA_DIST += api/subnet4-update.json
-EXTRA_DIST += api/subnet6-add.json api/subnet6-del.json
-EXTRA_DIST += api/subnet6-get.json api/subnet6-list.json
-EXTRA_DIST += api/subnet6-update.json
-EXTRA_DIST += api/_template.json api/version-get.json
index 10b62fb61064ca65c59f192ee7c28308d865672d..8a48890dc1ab29317b1cb8c8f711c686462e22cb 100644 (file)
@@ -3,14 +3,8 @@
     "brief": "Returns a list of compilation options that this particular binary was built with",
     "support": [ "kea-dhcp4", "kea-dhcp6", "kea-dhcp-ddns", "kea-ctrl-agent" ],
     "avail": "1.2.0",
-
-    "cmd-syntax": "{
-    \"command\": \"build-report\"
-}",
-
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": <string with build details>
-}",
-    "resp-comment": ""
+    "resp-syntax": {
+        "result": 0,
+        "text": "<string with build details>"
+    }
 }
index ec7fd558264fa76cdce8ac356d4731ad8a0d11c8..dbabce36ef35da381322b18b21766aa1b4e55e46 100644 (file)
@@ -4,14 +4,15 @@
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.6.0",
     "hook": "host_cache",
-    "cmd-syntax": "{
-    \"command\": \"cache-get-by-id\",
-    \"arguments\": {
-        \"hw-address\": \"01:02:03:04:05:06\"
-    }",
-    "resp-syntax": "{
-    \"result\": 0
-    \"text\": \"2 entries returned.\"
-    \"arguments\": <list of host reservations>
-}"
+    "cmd-syntax": {
+        "command": "cache-get-by-id",
+        "arguments": {
+            "hw-address": "01:02:03:04:05:06"
+        }
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "2 entries returned.",
+        "arguments": "<list of host reservations>"
+    }
 }
index 7c72ff1b7fcad88c4d5389986b1211ae3cdfa83b..98458d09b1730981d8efeb093f121cc15a36bf22 100644 (file)
@@ -5,9 +5,9 @@
     "avail": "1.4.0",
     "hook": "host_cache",
 
-    "resp-syntax": "{
-    \"result\": 0
-    \"text\": \"123 entries returned.\"
-    \"arguments\": <list of host reservations>
-}"
+    "resp-syntax": {
+        "result": 0,
+        "text": "123 entries returned.",
+        "arguments": "<list of host reservations>"
+    }
 }
index e872c9ae045c1df6121e415129585727edfcae96..d4fa0f9b101c2b13b47df151e678af14091e5b0e 100644 (file)
@@ -5,41 +5,40 @@
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.4.0",
     "hook": "host_cache",
-    "cmd-syntax": "{
-    \"command\": \"cache-insert\",
-    \"arguments\": {
-        \"hw-address\": \"01:02:03:04:05:06\",
-        \"subnet-id4\": 4,
-        \"subnet-id6\": 0,
-        \"ip-address\": \"192.0.2.100\",
-        \"hostname\": \"somehost.example.org\",
-        \"client-classes4\": [ ],
-        \"client-classes6\": [ ],
-        \"option-data4\": [ ],
-        \"option-data6\": [ ],
-        \"next-server\": \"192.0.0.2\",
-        \"server-hostname\": \"server-hostname.example.org\",
-        \"boot-file-name\": \"bootfile.efi\",
-        \"host-id\": 0
-    }
-},
-{
-    \"command\": \"cache-insert\",
-    \"arguments\": {
-        \"hw-address\": \"01:02:03:04:05:06\",
-        \"subnet-id4\": 0,
-        \"subnet-id6\": 6,
-        \"ip-addresses\": [ \"2001:db8::cafe:babe\" ],
-        \"prefixes\": [ \"2001:db8:dead:beef::/64\" ],
-        \"hostname\": \"\",
-        \"client-classes4\": [ ],
-        \"client-classes6\": [ ],
-        \"option-data4\": [ ],
-        \"option-data6\": [ ],
-        \"next-server\": \"0.0.0.0\",
-        \"server-hostname\": \"\",
-        \"boot-file-name\": \"\",
-        \"host-id\": 0
-    }
-}"
+    "cmd-syntax": [{
+        "command": "cache-insert",
+        "arguments": {
+            "hw-address": "01:02:03:04:05:06",
+            "subnet-id4": 4,
+            "subnet-id6": 0,
+            "ip-address": "192.0.2.100",
+            "hostname": "somehost.example.org",
+            "client-classes4": [ ],
+            "client-classes6": [ ],
+            "option-data4": [ ],
+            "option-data6": [ ],
+            "next-server": "192.0.0.2",
+            "server-hostname": "server-hostname.example.org",
+            "boot-file-name": "bootfile.efi",
+            "host-id": 0
+        }
+    }, {
+        "command": "cache-insert",
+        "arguments": {
+            "hw-address": "01:02:03:04:05:06",
+            "subnet-id4": 0,
+            "subnet-id6": 6,
+            "ip-addresses": [ "2001:db8::cafe:babe" ],
+            "prefixes": [ "2001:db8:dead:beef::/64" ],
+            "hostname": "",
+            "client-classes4": [ ],
+            "client-classes6": [ ],
+            "option-data4": [ ],
+            "option-data6": [ ],
+            "next-server": "0.0.0.0",
+            "server-hostname": "",
+            "boot-file-name": "",
+            "host-id": 0
+        }
+    }]
 }
index 582dc11b8682e67cdc579e4901197dfa7f29f533..c49c2bad42a40cf5d865eb25616aa646b3ef0dc6 100644 (file)
@@ -5,8 +5,8 @@
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.4.0",
     "hook": "host_cache",
-    "cmd-syntax": "{
-    \"command\": \"cache-load\",
-    \"arguments\": \"/tmp/kea-host-cache.json\"
-}"
+    "cmd-syntax": {
+        "command": "cache-load",
+        "arguments": "/tmp/kea-host-cache.json"
+    }
 }
index 564a28ec566228d1a6f11c11550d5a03b277037b..ac933b4fb3a437eea7d26a061a045315d1272fa6 100644 (file)
@@ -5,20 +5,18 @@
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.4.0",
     "hook": "host_cache",
-    "cmd-syntax": "{
-    \"command\": \"cache-remove\",
-    \"arguments\": {
-        \"ip-address\": \"192.0.2.1\",
-        \"subnet-id\": 123
-    }
-}
-
-Another example that removes IPv6 host identifier by DUID and specific subnet-id is:
-{
-    \"command\": \"cache-remove\",
-    \"arguments\": {
-        \"duid\": \"00:01:ab:cd:f0:a1:c2:d3:e4\",
-        \"subnet-id\": 123
-    }
-}"
+    "cmd-syntax": [{
+        "command": "cache-remove",
+        "arguments": {
+            "ip-address": "192.0.2.1",
+            "subnet-id": 123
+        }
+    }, {
+        "command": "cache-remove",
+        "arguments": {
+            "duid": "00:01:ab:cd:f0:a1:c2:d3:e4",
+            "subnet-id": 123
+        },
+        "comment": "Another example that removes IPv6 host identifier by DUID and specific subnet-id is:"
+    }]
 }
index d30f9daa38b4d464ec75cb0b1a858389fa846252..d197c979a934ea073a39bf997f565905039ce226 100644 (file)
@@ -5,9 +5,9 @@
     "avail": "1.6.0",
     "hook": "host_cache",
 
-    "resp-syntax": "{
-    \"result\": 0
-    \"text\": \"123 entries.\"
-    \"arguments\": { \"size\": 123 }
-}"
+    "resp-syntax": {
+        "result": 0,
+        "text": "123 entries.",
+        "arguments": { "size": 123 }
+    }
 }
index 635fe666e7e89f1a5a34237d57dad689e1b448c7..a223adafe726cc593e9b0ae3569b9bb6e49b843f 100644 (file)
@@ -5,9 +5,9 @@
     "avail": "1.4.0",
     "hook": "host_cache",
 
-    "cmd-syntax": "{
-    \"command\": \"cache-write\",
-    \"arguments\": \"/path/to/the/file.json\"
-}",
+    "cmd-syntax": {
+        "command": "cache-write",
+        "arguments": "/path/to/the/file.json"
+    },
     "cmd-comment": "The command takes one mandatory argument that specifies a filename path of a file to be written."
 }
index 69e9a47900a2e04ea70ad56a3a3df8ce12a499ff..c9e19d3c0c9326ff4ae904f8c89332ef1b93e9ba 100644 (file)
@@ -1,33 +1,28 @@
 {
     "name": "class-add",
-    "brief": "This command is used to create and add a new class to the existing
-              server configuration.",
+    "brief": "This command is used to create and add a new class to the existing server configuration.",
     "description": "See <xref linkend=\"command-class-add\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.5.0",
     "hook": "class_cmds",
-    "cmd-syntax": "{
-    \"command\": \"class-add\",
-    \"arguments\": {
-        \"client-classes\": [ {
-           \"name\": <name of the class>,
-           \"test\": <test expression to be evaluated on incoming packets>,
-           \"option-data\": [ <option values here> ],
-           \"option-def\": [ <option defintions here> ],
-           \"next-server\": <ipv4 address>,
-           \"server-hostname\": <string>,
-           \"boot-file-name\": <name of the boot file>
-        } ]
-    }
-}",
-    "cmd-comment": "The <command>next-server</command>,
-                    <command>server-hostname</command> and
-                    <command>boot-file-name</command> are DHCPv4 specific. Only
-                    one client class can be added with a single command. ",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"Class '<class-name>' added.\",
-}",
-    "resp-comment": "The command will be successful (result 0), unless the
-                     class name is a duplicate or another error occurs (result 1)."
+    "cmd-syntax": {
+        "command": "class-add",
+        "arguments": {
+            "client-classes": [ {
+                "name": "<name of the class>",
+                "test": "<test expression to be evaluated on incoming packets>",
+                "option-data": [ "<option values here>" ],
+                "option-def": [ "<option defintions here>" ],
+                "next-server": "<ipv4 address>",
+                "server-hostname": "<string>",
+                "boot-file-name": "<name of the boot file>"
+            } ]
+        }
+    },
+    "cmd-comment": "The <command>next-server</command>, <command>server-hostname</command> and <command>boot-file-name</command> are DHCPv4 specific. Only one client class can be added with a single command. ",
+    "resp-syntax": {
+        "result": 0,
+        "text": "Class '<class-name>' added."
+    },
+    "resp-comment": "The command will be successful (result 0), unless the class name is a duplicate or another error occurs (result 1)."
 }
index cd86213295ea5f0e9db2549090476464ee698a27..ee444b5157f0da675587059551f5215be3c4c3f7 100644 (file)
@@ -5,19 +5,16 @@
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.5.0",
     "hook": "class_cmds",
-    "cmd-syntax": "{
-    \"command\": \"class-del\",
-    \"arguments\": {
-        \"name\": <name of the class>
-    }
-}",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"Class '<class-name>' deleted.\"
-}",
-    "resp-comment": "The command will return a result of 3 (empty) if the client
-                    class doesn't exist. If the client class exists, the retured
-                    result is 0 if the deletion was successful and the result is 1
-                    if the deletion is unsuccessful."
+    "cmd-syntax": {
+        "command": "class-del",
+        "arguments": {
+            "name": "<name of the class>"
+        }
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "Class '<class-name>' deleted."
+    },
+    "resp-comment": "The command will return a result of 3 (empty) if the client class doesn't exist. If the client class exists, the retured result is 0 if the deletion was successful and the result is 1 if the deletion is unsuccessful."
 
 }
index 7330af0e2a156a6543bfcd1083b467c5e90d00ab..7d637bdcb98869483bbf1f39a47c061b535883a5 100644 (file)
@@ -1,40 +1,33 @@
 {
     "name": "class-get",
-    "brief": "This command is used to return detailed information about an
-              existing client class.",
+    "brief": "This command is used to return detailed information about an existing client class.",
     "description": "See <xref linkend=\"command-class-get\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.5.0",
     "hook": "class_cmds",
-    "cmd-syntax": "{
-    \"command\": \"class-get\",
-    \"arguments\": {
-        \"name\": <name of the class>
-    }
-}",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"Class '<class-name>' definition returned\",
-    \"arguments\": {
-        \"client-classes\": [
-            {
-                \"name\": <name of the class>,
-                \"only-if-required\": <only if required boolean value>,
-                \"test\": <test expression to be evaluated on incoming packets>,
-                \"option-data\": [ <option values here> ],
-                \"option-def\": [ <option defintions here> ],
-                \"next-server\": <ipv4 address>,
-                \"server-hostname\": <string>,
-                \"boot-file-name\": <name of the boot file>
-            }
-        ]
-    }
-}",
-    "resp-comment": "The returned information depends on the DHCP server type,
-                     i.e. some parameters are specific to DHCPv4 server. Also,
-                     some parameters may not be returned if they are not set for
-                     the client class. If the class with specified name doesn't
-                     exist a result of 3 (empty) is returned. If the client class
-                     is found, the result of 0 is returned. If there is an error
-                     while processing the command, the result of 1 is returned."
+    "cmd-syntax": {
+        "command": "class-get",
+        "arguments": {
+            "name": "<name of the class>"
+        }
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "Class '<class-name>' definition returned",
+        "arguments": {
+            "client-classes": [
+                {
+                    "name": "<name of the class>",
+                    "only-if-required": "<only if required boolean value>",
+                    "test": "<test expression to be evaluated on incoming packets>",
+                    "option-data": [ "<option values here>" ],
+                    "option-def": [ "<option defintions here>" ],
+                    "next-server": "<ipv4 address>",
+                    "server-hostname": "<string>",
+                    "boot-file-name": "<name of the boot file>"
+                }
+            ]
+        }
+    },
+    "resp-comment": "The returned information depends on the DHCP server type, i.e. some parameters are specific to DHCPv4 server. Also, some parameters may not be returned if they are not set for the client class. If the class with specified name doesn't exist a result of 3 (empty) is returned. If the client class is found, the result of 0 is returned. If there is an error while processing the command, the result of 1 is returned."
 }
index 98c067fa3c96ce149ec783d52481b62ccaf8babe..e8d08259fd7efc3994caeb6bed4126d22d9f0bde 100644 (file)
@@ -1,35 +1,24 @@
 {
     "name": "class-list",
-    "brief": "This command is used to retrieve a list of all client
-              classes from the server configuration.",
+    "brief": "This command is used to retrieve a list of all client classes from the server configuration.",
     "description": "See <xref linkend=\"command-class-list\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.5.0",
     "hook": "class_cmds",
-    "cmd-syntax": "{
-    \"command\": \"class-list\"
-}",
     "cmd-comment": "This command includes no arguments.",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"<number of> classes found\",
-    \"arguments\": {
-        \"client-classes\": [
-            {
-                \"name\": <first class name>
-            },
-            {
-                \"name\": <second class name>
-            }
-        ]
-    }
-}",
-    "resp-comment": "The returned list of classes merely contains their names.
-                     In order to retrieve full information about one of these
-                     classes use <xref linkend=\"command-class-get\"/>.
-                     The returned result is 3 (empty) if no classes are found.
-                     If the command is processed successfully and the list of
-                     client classes is not empty, the result of 0 is returned.
-                     If there is an error while processing the command, the
-                     result of 1 is returned."
+    "resp-syntax": {
+        "result": 0,
+        "text": "<number of> classes found",
+        "arguments": {
+            "client-classes": [
+                {
+                    "name": "<first class name>"
+                },
+                {
+                    "name": "<second class name>"
+                }
+            ]
+        }
+    },
+    "resp-comment": "The returned list of classes merely contains their names. In order to retrieve full information about one of these classes use <xref linkend=\"command-class-get\"/>. The returned result is 3 (empty) if no classes are found. If the command is processed successfully and the list of client classes is not empty, the result of 0 is returned. If there is an error while processing the command, the result of 1 is returned."
 }
index 436da47c7307f901394b32d2c2c4675aa1d566af..e300b3214767c3359c6b71d4646d813626c2714c 100644 (file)
@@ -1,35 +1,28 @@
 {
     "name": "class-update",
-    "brief": "This command is used to update an existing client class in
-              the server configuration.",
+    "brief": "This command is used to update an existing client class in the server configuration.",
     "description": "See <xref linkend=\"command-class-update\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.5.0",
     "hook": "class_cmds",
-    "cmd-syntax": "{
-    \"command\": \"class-update\",
-    \"arguments\": {
-        \"client-classes\": [ {
-           \"name\": <name of the class>,
-           \"test\": <test expression to be evaluated on incoming packets>,
-           \"option-data\": [ <option values here> ],
-           \"option-def\": [ <option defintions here> ],
-           \"next-server\": <ipv4 address>,
-           \"server-hostname\": <string>,
-           \"boot-file-name\": <name of the boot file>
-        } ]
-    }
-}",
-    "cmd-comment": "The <command>next-server</command>,
-                    <command>server-hostname</command> and
-                    <command>boot-file-name</command> are DHCPv4 specific. Only
-                    one client class can be updated with a single command. ",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"Class '<class-name>' updated.\",
-}",
-    "resp-comment": "The command will return the result of 3 (empty) if the client
-                    class doesn't exist. If the client class exists, the retured
-                    result is 0 if the update was successful and the result is 1
-                    if the update is unsuccessful."
+    "cmd-syntax": {
+        "command": "class-update",
+        "arguments": {
+            "client-classes": [ {
+                "name": "<name of the class>",
+                "test": "<test expression to be evaluated on incoming packets>",
+           "option-data": [ "<option values here>" ],
+           "option-def": [ "<option defintions here>" ],
+           "next-server": "<ipv4 address>",
+           "server-hostname": "<string>",
+           "boot-file-name": "<name of the boot file>"
+            } ]
+        }
+    },
+    "cmd-comment": "The <command>next-server</command>, <command>server-hostname</command> and <command>boot-file-name</command> are DHCPv4 specific. Only one client class can be updated with a single command. ",
+    "resp-syntax": {
+        "result": 0,
+        "text": "Class '<class-name>' updated."
+    },
+    "resp-comment": "The command will return the result of 3 (empty) if the client class doesn't exist. If the client class exists, the retured result is 0 if the update was successful and the result is 1 if the update is unsuccessful."
 }
index 70109bb16f39a6d5db5caab953b341abf0c311b8..856b1f6b5a2e6d531b1b500cbeb24ed506634839 100644 (file)
@@ -1,20 +1,12 @@
 {
     "name": "config-get",
-    "brief": "Retrieves the current configuration used by the server. The configuration
-              is roughtly equal to the configuration file, but includes additional
-              changes made by other commands and due to parameters inheritance.",
+    "brief": "Retrieves the current configuration used by the server. The configuration is roughtly equal to the configuration file, but includes additional changes made by other commands and due to parameters inheritance.",
     "support": [ "kea-dhcp4", "kea-dhcp6", "kea-dhcp-ddns", "kea-ctrl-agent" ],
     "avail": "1.2.0",
-
-    "cmd-syntax": "{
-    \"command\": \"config-get\"
-}",
     "cmd-comment": "This command takes no parameters.",
 
-    "resp-syntax": "{
-    \"result\": <integer>,
-    \"arguments\": {
-        <JSON configuration here, starting with Dhcp4, Dhcp6, or Control-agent object>
+    "resp-syntax": {
+        "result": "<integer>",
+        "arguments": "<JSON configuration here, starting with Dhcp4, Dhcp6, or Control-agent object>"
     }
-}"
 }
index 400559b5a8ce5a97abfd9bb8c5a53710420b4ac7..1f3f38d87f7e3fdb8448f305426b10c792dda869 100644 (file)
@@ -3,8 +3,5 @@
     "brief": "The config-reload command instructs Kea to load again the configuration file that was used previously.",
     "description": "See <xref linkend=\"command-config-reload\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6", "kea-dhcp-ddns", "kea-ctrl-agent" ],
-    "avail": "1.2.0",
-    "cmd-syntax": "{
-    \"command\": \"config-reload\"
-}"
+    "avail": "1.2.0"
 }
index ce0cb4b9ee7fdbcde9a6a2b46dd681dd5f27b154..a2058aab69760af62369e9896a8cbbedefa6ff78 100644 (file)
@@ -4,17 +4,17 @@
     "description": "See <xref linkend=\"command-config-set\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6", "kea-dhcp-ddns", "kea-ctrl-agent" ],
     "avail": "1.2.0",
-    "cmd-syntax": "{
-    \"command\": \"config-set\",
-    \"arguments\":  {
-        \"<server>\": {
+    "cmd-syntax": {
+        "command": "config-set",
+        "arguments":  {
+            "<server>": {
+            }
         }
-     }
-}",
-    "cmd-comment": "where &lt;server&gt; is the configuration element name for a given server such as \"Dhcp4\" or \"Dhcp6\"",
-    "resp-syntax": "    {\"result\": 0, \"text\": \"Configuration successful.\" }
-
-    or
-
-    {\"result\": 1, \"text\": \"unsupported parameter: BOGUS (<string>:16:26)\" }"
+    },
+    "cmd-comment": "where <server> is the configuration element name for a given server such as 'Dhcp4' or 'Dhcp6'",
+    "resp-syntax": [{
+        "result": 0, "text": "Configuration successful."
+    },  {
+        "result": 1, "text": "unsupported parameter: BOGUS (<string>:16:26)"
+    }]
 }
index ea9f12f267f9c32f23b5bfedfb5ebdbe34629a0f..6482de958ba3813f05cc5e89bc64a250e12eed76 100644 (file)
@@ -4,17 +4,17 @@
     "description": "See <xref linkend=\"command-config-test\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6", "kea-dhcp-ddns", "kea-ctrl-agent" ],
     "avail": "1.2.0",
-    "cmd-syntax": "{
-    \"command\": \"config-test\",
-    \"arguments\":  {
-        \"<server>\": {
+    "cmd-syntax": {
+        "command": "config-test",
+        "arguments":  {
+            "<server>": {
+            }
         }
-     }
-}",
-    "cmd-comment": "where &gt;server&lt; is the configuration element name for a given server such as \"Dhcp4\" or \"Dhcp6\"",
-    "resp-syntax": "{\"result\": 0, \"text\": \"Configuration seems sane...\" }
-
-    or
-
-    {\"result\": 1, \"text\": \"unsupported parameter: BOGUS (<string>:16:26)\" }"
+    },
+    "cmd-comment": "where <server> is the configuration element name for a given server such as 'Dhcp4' or 'Dhcp6'",
+    "resp-syntax": [{
+        "result": 0, "text": "Configuration seems sane..."
+    }, {
+        "result": 1, "text": "unsupported parameter: BOGUS (<string>:16:26)"
+    }]
 }
index 098f7e1c71ae052304b35a577ff55fd52dfd74f5..2d08f74fdaa5e5fc8d7540b42c1e181a3aa37b02 100644 (file)
@@ -1,14 +1,13 @@
 {
     "name": "config-write",
-    "brief": "The config-write command instructs the Kea server to write its
-              current configuration to a file on disk.",
+    "brief": "The config-write command instructs the Kea server to write its current configuration to a file on disk.",
     "description": "See <xref linkend=\"command-config-write\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6", "kea-dhcp-ddns", "kea-ctrl-agent" ],
     "avail": "1.2.0",
-    "cmd-syntax": "{
-    \"command\": \"config-write\",
-    \"arguments\": {
-        \"filename\": \"config-modified-2017-03-15.json\"
+    "cmd-syntax": {
+        "command": "config-write",
+        "arguments": {
+            "filename": "config-modified-2017-03-15.json"
+        }
     }
-}"
 }
index 80baa6b2b97722a0cde9a93980e253c14eb0d3b8..15a219d779e2a7e77befda4aa809f1a79d05abef 100644 (file)
@@ -4,10 +4,10 @@
     "description": "See <xref linkend=\"command-dhcp-disable\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.4.0",
-    "cmd-syntax": "{
-    \"command\": \"dhcp-disable\",
-    \"arguments\": {
-        \"max-period\": 20
+    "cmd-syntax": {
+        "command": "dhcp-disable",
+        "arguments": {
+            "max-period": 20
+        }
     }
-}"
 }
index a945b931f4523639ec4ca800ec7504807df24b0f..bb956ec12facf0a16332d6cfbd9c4334fb815884 100644 (file)
@@ -3,8 +3,5 @@
     "brief": "The dhcp-enable command globally enables the DHCP service.",
     "description": "See <xref linkend=\"command-dhcp-enable\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
-    "avail": "1.4.0",
-    "cmd-syntax": "{
-    \"command\": \"dhcp-enable\"
-}"
+    "avail": "1.4.0"
 }
index 0ed6464e19c61b8502ea0ee69907e4a4847125e8..b5cfde2268be11008b2102220eda3dd5838bd502 100644 (file)
@@ -1,13 +1,9 @@
 {
     "name": "ha-heartbeat",
-    "brief": "This command is sent internally by Kea partner when operating
-              in High Availability (HA) mode. It will retrieve the server HA state and clock value.",
+    "brief": "This command is sent internally by Kea partner when operating in High Availability (HA) mode. It will retrieve the server HA state and clock value.",
     "description": "See <xref linkend=\"ha-server-states\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.4.0",
     "hook": "high_availability",
-    "cmd-syntax": "{
-    \"command\": \"ha-heartbeat\",
-    }",
     "resp-comment": "The response to this command is different from the typical command response. The response will include server state (see <xref linkend=\"ha-server-states\"/> plus the current clock value."
 }
index 28b48eeb92d70717cf72e85d1a1c81fd3e5b037c..499c96c23b67bcfe229db45c7d04685031825935 100644 (file)
@@ -5,11 +5,12 @@
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.4.0",
     "hook": "high_availability",
-    "cmd-syntax": "{
-    \"command\": \"ha-scopes\",
-    \"service\": [ <service, typically \"dhcp4\" or \"dhcp6\"> ],
-    \"arguments\": {
-        \"scopes\": [ \"HA_server1\", \"HA_server2\" ]
-    }",
+    "cmd-syntax": {
+        "command": "ha-scopes",
+        "service": [ "<service, typically 'dhcp4' or 'dhcp6'>" ],
+        "arguments": {
+            "scopes": [ "HA_server1", "HA_server2" ]
+        }
+    },
     "cmd-comment": "In the example given, the arguments configure the server to handle traffic from both HA_server1 and HA_server2 scopes."
 }
index 282ca606d837ecc3ee831499d0cdd879a62eaeb7..74872e0852236d61d36c1a848ab6a183c6e0804f 100644 (file)
@@ -1,17 +1,16 @@
 {
     "name": "ha-sync",
-    "brief": "The command is issued to instruct the server running in HA mode to 
-              synchronize its local lease database with the selected peer.",
+    "brief": "The command is issued to instruct the server running in HA mode to synchronize its local lease database with the selected peer.",
     "description": "See <xref linkend=\"command-ha-sync\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.4.0",
     "hook": "high_availability",
-    "cmd-syntax": "{
-    \"command\": \"ha-sync\",
-    \"service\": [ <service affected: \"dhcp4\" or \"dhcp6\" ],
-    \"arguments\": {
-        \"server-name\": <name of the partner server>,
-        \"max-period\": <integer, in seconds>
+    "cmd-syntax": {
+        "command": "ha-sync",
+        "service": [ "<service affected: 'dhcp4' or 'dhcp6'" ],
+        "arguments": {
+            "server-name": "<name of the partner server>",
+        "max-period": "<integer, in seconds>"
+        }
     }
-}"
 }
index 7e95990ce1fc6e48f2a1b6714168b47cd22f4cf4..b099613fbc15d67eddc5e3b374704b24d8e9d353 100644 (file)
@@ -5,12 +5,12 @@
     "support": [ "kea-dhcp4"],
     "avail": "1.3.0",
     "hook": "lease_cmds",
-    "cmd-syntax": "{
-    \"command\": \"lease4-add\",
-    \"arguments\": {
-        \"ip-address\": \"192.0.2.202\",
-        \"hw-address\": \"1a:1b:1c:1d:1e:1f\"
-    }
-}",
+    "cmd-syntax": {
+        "command": "lease4-add",
+        "arguments": {
+            "ip-address": "192.0.2.202",
+            "hw-address": "1a:1b:1c:1d:1e:1f"
+        }
+    },
     "cmd-comment": "Note that Kea 1.4 requires an additional argument, subnet-ID, which is optional as of Kea 1.5. A number of other more detailed optional arguments are also supported."
 }
index 37ccc6bb9afdd62bfd501e8325e16b59f457fc13..bf5052bf2c85ef2de5a58b6be5542028ec8af04f 100644 (file)
@@ -5,11 +5,11 @@
     "support": [ "kea-dhcp4"],
     "avail": "1.3.0",
     "hook": "lease_cmds",
-    "cmd-syntax": "{
-    \"command\": \"lease4-del\",
-    \"arguments\": {
-        \"ip-address\": \"192.0.2.202\"
-    }
-}",
+    "cmd-syntax": {
+        "command": "lease4-del",
+        "arguments": {
+            "ip-address": "192.0.2.202"
+        }
+    },
     "cmd-comment": "Specify the lease to be deleted either by IP address, or by identifier-type and identifier value. Currently supported identifiers are \"hw-address\" and \"client-id\"."
-}
\ No newline at end of file
+}
index 1b03e3abfe7f0f8ba9a654605ae6dfee829f2dc0..e36cf358ed1ec11ea84932ec910d9536fa9db9f8 100644 (file)
@@ -5,9 +5,9 @@
     "support": [ "kea-dhcp4"],
     "avail": "1.4.0",
     "hook": "lease_cmds",
-    "cmd-syntax": "{
-    \"command\": \"lease4-get-all\"
-    \"arguments\": \"subnets\"
-}",
+    "cmd-syntax": {
+        "command": "lease4-get-all",
+        "arguments": "subnets"
+    },
     "cmd-comment": "The lease4-get-all command may result in very large responses."
 }
index 2fea7c8b4967bebce76618d1edbd9a790175280a..0558036656f8fd0cfff917483f1e020c7f277bde 100644 (file)
@@ -5,27 +5,27 @@
     "support": [ "kea-dhcp4"],
     "avail": "1.3.0",
     "hook": "lease_cmds",
-    "cmd-syntax": "{
-    \"command\": \"lease4-get\",
-    \"arguments\": {
-        \"ip-address\": \"192.0.2.1\"
-    }
-}",
-    "resp-syntax": "{
-  \"arguments\": {
-    \"client-id\": \"42:42:42:42:42:42:42:42\",
-    \"cltt\": 12345678,
-    \"fqdn-fwd\": false,
-    \"fqdn-rev\": true,
-    \"hostname\": \"myhost.example.com.\",
-    \"hw-address\": \"08:08:08:08:08:08\",
-    \"ip-address\": \"192.0.2.1\",
-    \"state\": 0,
-    \"subnet-id\": 44,
-    \"valid-lft\": 3600
-  },
-  \"result\": 0,
-  \"text\": \"IPv4 lease found.\"
-}",
+    "cmd-syntax": {
+        "command": "lease4-get",
+        "arguments": {
+            "ip-address": "192.0.2.1"
+        }
+    },
+    "resp-syntax": {
+        "arguments": {
+            "client-id": "42:42:42:42:42:42:42:42",
+            "cltt": 12345678,
+            "fqdn-fwd": false,
+            "fqdn-rev": true,
+            "hostname": "myhost.example.com.",
+            "hw-address": "08:08:08:08:08:08",
+            "ip-address": "192.0.2.1",
+            "state": 0,
+            "subnet-id": 44,
+            "valid-lft": 3600
+        },
+        "result": 0,
+        "text": "IPv4 lease found."
+    },
     "resp-comment": "lease4-get returns a result that indicates a result of the operation and lease details, if found. It has one of the following values: 0 (success), 1 (error) or 2 (empty)."
 }
index 8ae92c23867aae4f9d1451a97a1e156ed4928e76..379ebbd4497e16a2dd1831d275b3501898c06d02 100644 (file)
@@ -5,14 +5,14 @@
     "support": [ "kea-dhcp4"],
     "avail": "1.3.0",
     "hook": "lease_cmds",
-    "cmd-syntax": "{
-  \"command\": \"lease4-update\",
-  \"arguments\": {
-    \"ip-address\": \"192.0.2.1\",
-    \"hostname\": \"newhostname.example.org\",
-    \"hw-address\": \"1a:1b:1c:1d:1e:1f\",
-    \"subnet-id\": 44,
-    \"force-create\": true
-  }
-}"
+    "cmd-syntax": {
+        "command": "lease4-update",
+        "arguments": {
+            "ip-address": "192.0.2.1",
+            "hostname": "newhostname.example.org",
+            "hw-address": "1a:1b:1c:1d:1e:1f",
+            "subnet-id": 44,
+            "force-create": true
+        }
+    }
 }
index 1b6d745dcbb3b807cc8e6fc4377684aa044f6710..101b0ae3af00bc075d2563c8c8be678eeedbd0f7 100644 (file)
@@ -5,10 +5,10 @@
     "support": [ "kea-dhcp4"],
     "avail": "1.3.0",
     "hook": "lease_cmds",
-    "cmd-syntax": "{
-  \"command\": \"lease4-wipe\",
-  \"arguments\": {
-    \"subnet-id\": 44
-  }
-}"
+    "cmd-syntax": {
+        "command": "lease4-wipe",
+        "arguments": {
+            "subnet-id": 44
+        }
+    }
 }
index 039b11203ad7ad26b5dfa6ef1e8cbdb5f6b9abd2..78d050214e77733a1c2fc5707118443cb2fc644d 100644 (file)
@@ -5,16 +5,19 @@
     "support": [ "kea-dhcp6" ],
     "avail": "1.3.0",
     "hook": "lease_cmds",
-    "cmd-syntax": "{
-    \"command\": \"lease6-add\",
-    \"arguments\": {
-        \"subnet-id\": 66,
-        \"ip-address\": \"2001:db8::3\",
-        \"duid\": \"1a:1b:1c:1d:1e:1f:20:21:22:23:24\",
-        \"iaid\": 1234
-    }
-}",
+    "cmd-syntax": {
+        "command": "lease6-add",
+        "arguments": {
+            "subnet-id": 66,
+            "ip-address": "2001:db8::3",
+            "duid": "1a:1b:1c:1d:1e:1f:20:21:22:23:24",
+            "iaid": 1234
+        }
+    },
     "cmd-comment": "lease6-add can be also used to add leases for IPv6 prefixes..",
-    "resp-syntax": "{ \"result\": 0, \"text\": \"Lease added.\" }
-    { \"result\": 1, \"text\": \"missing parameter 'ip-address' (<string>:3:19)\" }"
+    "resp-syntax": [{
+        "result": 0, "text": "Lease added."
+    }, {
+        "result": 1, "text": "missing parameter 'ip-address' (<string>:3:19)"
+    }]
 }
index c81bb27b83fd34949201b4f1e05d54d2f69aac9b..2330b9cbe2aa36024a116307bb5db1085a87fea4 100644 (file)
@@ -5,11 +5,11 @@
     "support": [ "kea-dhcp6" ],
     "avail": "1.3.0",
     "hook": "lease_cmds",
-    "cmd-syntax": "{
-    \"command\": \"lease6-del\",
-    \"arguments\": {
-        \"ip-address\": \"192.0.2.202\"
-    }
-}",
+    "cmd-syntax": {
+        "command": "lease6-del",
+        "arguments": {
+            "ip-address": "192.0.2.202"
+        }
+    },
     "cmd-comment": "lease6-del returns a result that indicates a outcome of the operation. It has one of the following values: 0 (success), 1 (error) or 3 (empty)."
 }
index e60bc812b9b6b837bc9cd792c159278fd714f459..1f02eb5dfb8219f6865c13c4aea1f4b994481c95 100644 (file)
@@ -5,49 +5,49 @@
     "support": [ "kea-dhcp6" ],
     "avail": "1.3.0",
     "hook": "lease_cmds",
-    "cmd-syntax": "{
-    \"command\": \"lease6-get-all\",
-    \"arguments\": {
-        \"subnets\": [ 1, 2, 3, 4 ]
-    }
-}",
-    "resp-syntax": "{
-    \"arguments\": {
-        \"leases\": [
-            {
-                \"cltt\": 12345678,
-                \"duid\": \"42:42:42:42:42:42:42:42\",
-                \"fqdn-fwd\": false,
-                \"fqdn-rev\": true,
-                \"hostname\": \"myhost.example.com.\",
-                \"hw-address\": \"08:08:08:08:08:08\",
-                \"iaid\": 1,
-                \"ip-address\": \"2001:db8:2::1\",
-                \"preferred-lft\": 500,
-                \"state\": 0,
-                \"subnet-id\": 44,
-                \"type\": \"IA_NA\",
-                \"valid-lft\": 3600
-            },
-            {
-                \"cltt\": 12345678,
-                \"duid\": \"21:21:21:21:21:21:21:21\",
-                \"fqdn-fwd\": false,
-                \"fqdn-rev\": true,
-                \"hostname\": \"\",
-                \"iaid\": 1,
-                \"ip-address\": \"2001:db8:0:0:2::\",
-                \"preferred-lft\": 500,
-                \"prefix-len\": 80,
-                \"state\": 0,
-                \"subnet-id\": 44,
-                \"type\": \"IA_PD\",
-                \"valid-lft\": 3600
-            }
-        ]
+    "cmd-syntax": {
+        "command": "lease6-get-all",
+        "arguments": {
+            "subnets": [ 1, 2, 3, 4 ]
+        }
+    },
+    "resp-syntax": {
+        "arguments": {
+            "leases": [
+                {
+                    "cltt": 12345678,
+                    "duid": "42:42:42:42:42:42:42:42",
+                    "fqdn-fwd": false,
+                    "fqdn-rev": true,
+                    "hostname": "myhost.example.com.",
+                    "hw-address": "08:08:08:08:08:08",
+                    "iaid": 1,
+                    "ip-address": "2001:db8:2::1",
+                    "preferred-lft": 500,
+                    "state": 0,
+                    "subnet-id": 44,
+                    "type": "IA_NA",
+                    "valid-lft": 3600
+                },
+                {
+                    "cltt": 12345678,
+                    "duid": "21:21:21:21:21:21:21:21",
+                    "fqdn-fwd": false,
+                    "fqdn-rev": true,
+                    "hostname": "",
+                    "iaid": 1,
+                    "ip-address": "2001:db8:0:0:2::",
+                    "preferred-lft": 500,
+                    "prefix-len": 80,
+                    "state": 0,
+                    "subnet-id": 44,
+                    "type": "IA_PD",
+                    "valid-lft": 3600
+                }
+            ]
+        },
+        "result": 0,
+        "text": "2 IPv6 lease(s) found."
     },
-    \"result\": 0,
-    \"text\": \"2 IPv6 lease(s) found.\"
-}",
     "resp-comment": "The lease6-get-all command may result in very large responses."
-}
\ No newline at end of file
+}
index 646c7eafbc5be8ba238c62816e0b26d9279d865f..91f628c9909216d18a1be31f0a032b8c53e65801 100644 (file)
@@ -5,12 +5,12 @@
     "support": [ "kea-dhcp6" ],
     "avail": "1.3.0",
     "hook": "lease_cmds",
-    "cmd-syntax": "{
-  \"command\": \"lease6-get\",
-  \"arguments\": {
-    \"ip-address\": \"2001:db8:1234:ab::\",
-    \"type\": \"IA_PD\"
-  }
-}",
+    "cmd-syntax": {
+        "command": "lease6-get",
+        "arguments": {
+            "ip-address": "2001:db8:1234:ab::",
+            "type": "IA_PD"
+        }
+    },
     "cmd-comment": "lease6-get returns a result that indicates a result of the operation and lease details, if found. It has one of the following values: 0 (success), 1 (error) or 2 (empty)."
-}
\ No newline at end of file
+}
index 26a7bb694d7a7c16ab01b6e7a749867cc0a1c330..4ec68aa3eb562a21a49ab81575b36efe239fc8dd 100644 (file)
@@ -5,16 +5,15 @@
     "support": [ "kea-dhcp6" ],
     "avail": "1.3.0",
     "hook": "lease_cmds",
-    "cmd-syntax": "{
-  \"command\": \"lease6-update\",
-  \"arguments\": {
-    \"ip-address\": \"2001:db8::1\",
-    \"duid\": \"88:88:88:88:88:88:88:88\",
-    \"iaid\": 7654321,
-    \"hostname\": \"newhostname.example.org\",
-    \"subnet-id\": 66,
-    \"force-create\": false
-  }
-}
-"
+    "cmd-syntax": {
+        "command": "lease6-update",
+        "arguments": {
+            "ip-address": "2001:db8::1",
+            "duid": "88:88:88:88:88:88:88:88",
+            "iaid": 7654321,
+            "hostname": "newhostname.example.org",
+            "subnet-id": 66,
+            "force-create": false
+        }
+    }
 }
index ace82847b791b95d2a03437ee30060a304e8297d..23c5dac64856c42004ec4997676f7c50e7a30705 100644 (file)
@@ -5,11 +5,11 @@
     "support": [ "kea-dhcp6" ],
     "avail": "1.3.0",
     "hook": "lease_cmds",
-    "cmd-syntax": "{
-  \"command\": \"lease6-wipe\",
-  \"arguments\": {
-    \"subnet-id\": 66
-  }
-}",
+    "cmd-syntax": {
+        "command": "lease6-wipe",
+        "arguments": {
+            "subnet-id": 66
+        }
+    },
     "cmd-comment": "Note: not all backends support this command."
 }
index c6d9b8f2bcb8fb269a8e8d21345746cabc606616..6354aab41bee69af1432a057ef3e85603961e5bc 100644 (file)
@@ -4,10 +4,10 @@
     "description": "See <xref linkend=\"command-leases-reclaim\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.0.0",
-    "cmd-syntax": "{
-    \"command\": \"leases-reclaim\",
-    \"arguments\": {
-        \"remove\": true
+    "cmd-syntax": {
+        "command": "leases-reclaim",
+        "arguments": {
+            "remove": true
+        }
     }
-}"
 }
index 3b881a990a61f57c5b514343629c564cd7bbc506..66535c3727ea0805659673f3ddd8b83f72a6decb 100644 (file)
@@ -4,9 +4,9 @@
     "description": "See <xref linkend=\"command-libreload\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.2.0",
-    "cmd-syntax": "{
-    \"command\": \"libreload\",
-    \"arguments\": { }
-}",
+    "cmd-syntax": {
+        "command": "libreload",
+        "arguments": { }
+    },
     "cmd-comment": "The server will respond with a result of 0 indicating success, or 1 indicating a failure."
 }
index f0318c6f9d3ba7216bf1d16daeb63d6b4fde1129..a0fae1e17dd648e1a5a82f309dad19dc3aeea90b 100644 (file)
@@ -4,9 +4,9 @@
     "description": "See <xref linkend=\"command-list-commands\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6", "kea-dhcp-ddns", "kea-ctrl-agent" ],
     "avail": "1.0.0",
-    "cmd-syntax": "{
-    \"command\": \"list-commands\",
-    \"arguments\": { }
-}",
+    "cmd-syntax": {
+        "command": "list-commands",
+        "arguments": { }
+    },
     "cmd-comment": "The server will respond with a list of all supported commands."
 }
index c6fc25b814bde66948d77ac49693943f6172aaa0..c12cf96ca092b885a1b2ad40930a7f6f2541c770 100644 (file)
@@ -5,42 +5,42 @@
     "support": [ "kea-dhcp4"],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"network4-add\",
-    \"arguments\": {
-        \"shared-networks\": [ {
-            \"name\": \"floor13\",
-            \"subnet4\": [
-            {
-                \"id\": 100,
-                \"pools\": [ { \"pool\": \"192.0.2.2-192.0.2.99\" } ],
-                \"subnet\": \"192.0.2.0/24\",
-                \"option-data\": [
+    "cmd-syntax": {
+        "command": "network4-add",
+        "arguments": {
+            "shared-networks": [ {
+                "name": "floor13",
+                "subnet4": [
                     {
-                        \"name\": \"routers\",
-                        \"data\": \"192.0.2.1\"
-                    }
-                ]
-            },
-            {
-                \"id\": 101,
-                \"pools\": [ { \"pool\": \"192.0.3.2-192.0.3.99\" } ],
-                \"subnet\": \"192.0.3.0/24\",
-                \"option-data\": [
+                        "id": 100,
+                        "pools": [ { "pool": "192.0.2.2-192.0.2.99" } ],
+                        "subnet": "192.0.2.0/24",
+                        "option-data": [
+                            {
+                                "name": "routers",
+                                "data": "192.0.2.1"
+                            }
+                        ]
+                    },
                     {
-                        \"name\": \"routers\",
-                        \"data\": \"192.0.3.1\"
-                    }
-                ]
+                        "id": 101,
+                        "pools": [ { "pool": "192.0.3.2-192.0.3.99" } ],
+                        "subnet": "192.0.3.0/24",
+                        "option-data": [
+                            {
+                                "name": "routers",
+                                "data": "192.0.3.1"
+                            }
+                        ]
+                    } ]
             } ]
-        } ]
-    }
-}",
-    "resp-syntax": "{
-    \"arguments\": {
-        \"shared-networks\": [ { \"name\": \"floor13\" } ]
+        }
     },
-    \"result\": 0,
-    \"text\": \"A new IPv4 shared network 'floor13' added\"
-}"
+    "resp-syntax": {
+        "arguments": {
+            "shared-networks": [ { "name": "floor13" } ]
+        },
+        "result": 0,
+        "text": "A new IPv4 shared network 'floor13' added"
+    }
 }
index df747a05da415cdda5d66779136f89da54f251b5..b9b389aa3d53b31ae10d0140dc159ddd03ff2051 100644 (file)
@@ -5,21 +5,21 @@
     "support": [ "kea-dhcp4"],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"network4-del\",
-    \"arguments\": {
-        \"name\": \"floor13\"
-    }
-}",
-    "resp-syntax": "{
-    \"arguments\": {
-        \"shared-networks\": [
-            {
-                \"name\": \"floor13\"
-            }
-        ]
+    "cmd-syntax": {
+        "command": "network4-del",
+        "arguments": {
+            "name": "floor13"
+        }
     },
-    \"result\": 0,
-    \"text\": \"IPv4 shared network 'floor13' deleted\"
-}"
+    "resp-syntax": {
+        "arguments": {
+            "shared-networks": [
+                {
+                    "name": "floor13"
+                }
+            ]
+        },
+        "result": 0,
+        "text": "IPv4 shared network 'floor13' deleted"
+    }
 }
index 83c91dd0581d934bf4b553175f659604a47ee754..ba25c8ae93419009da4caa0d7c6e7b9aac794377 100644 (file)
@@ -5,43 +5,41 @@
     "support": [ "kea-dhcp4"],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"network4-get\",
-    \"arguments\": {
-        \"name\": \"floor13\"
-    }
-}",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"Info about IPv4 shared network 'floor13' returned\",
-    \"arguments\": {
-        \"shared-networks\": [
-        {
-            \"match-client-id\": true,
-            \"name\": \"floor13\",
-            \"option-data\": [ ],
-            \"rebind-timer\": 90,
-            \"relay\": {
-                \"ip-address\": \"0.0.0.0\"
-            },
-            \"renew-timer\": 60,
-            \"reservation-mode\": \"all\",
-            \"subnet4\": [
-                {
-                    \"subnet\": \"192.0.2.0/24\",
-                    \"id\": 5,
-                    // many other subnet specific details here
-                },
+    "cmd-syntax": {
+        "command": "network4-get",
+        "arguments": {
+            "name": "floor13"
+        }
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "Info about IPv4 shared network 'floor13' returned",
+        "arguments": {
+            "shared-networks": [
                 {
-                    \"id\": 6,
-                    \"subnet\": \"192.0.3.0/31\",
-                    // many other subnet specific details here
+                    "match-client-id": true,
+                    "name": "floor13",
+                    "option-data": [ ],
+                    "rebind-timer": 90,
+                    "relay": {
+                        "ip-address": "0.0.0.0"
+                    },
+                    "renew-timer": 60,
+                    "reservation-mode": "all",
+                    "subnet4": [
+                        {
+                            "subnet": "192.0.2.0/24",
+                            "id": 5
+                        },
+                        {
+                            "id": 6,
+                            "subnet": "192.0.3.0/31"
+                        }
+                    ],
+                    "valid-lifetime": 120
                 }
-            ],
-            \"valid-lifetime\": 120
+            ]
         }
-        ]
-    }
-}",
+    },
     "resp-comment": "Note that the actual response contains many additional fields that are omitted here for clarity."
 }
index 77e8da9412aa04b28119872b70870793baae2d65..eed2fe8a917cdbb0c320d86875df26e69a51423c 100644 (file)
@@ -5,17 +5,14 @@
     "support": [ "kea-dhcp4"],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"network4-list\"
-}",
-    "resp-syntax": "{
-    \"arguments\": {
-        \"shared-networks\": [
-            { \"name\": \"floor1\" },
-            { \"name\": \"office\" }
-        ]
-    },
-    \"result\": 0,
-    \"text\": \"2 IPv4 network(s) found\"
-}"
+    "resp-syntax": {
+        "arguments": {
+            "shared-networks": [
+                { "name": "floor1" },
+                { "name": "office" }
+            ]
+        },
+        "result": 0,
+        "text": "2 IPv4 network(s) found"
+    }
 }
index f1e326516728c763a7ecdf5cff9524fa2747e718..c16c2b5c0fd50ce804dda6b9e56552dc923b8518 100644 (file)
@@ -5,15 +5,15 @@
     "support": [ "kea-dhcp4"],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"network4-subnet-add\",
-    \"arguments\": {
-        \"name\": \"floor13\",
-        \"id\": 5
+    "cmd-syntax": {
+        "command": "network4-subnet-add",
+        "arguments": {
+            "name": "floor13",
+            "id": 5
+        }
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "IPv4 subnet 10.0.0.0/8 (id 5) is now part of shared network 'floor1'"
     }
-}",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"IPv4 subnet 10.0.0.0/8 (id 5) is now part of shared network 'floor1'\"
-}"
 }
index d417f4f66333b65a4c66ee6e4b7e6e9ff1af1f0f..5c454aae8bbd3803b3d983ef43c27e1e7d45742c 100644 (file)
@@ -5,15 +5,15 @@
     "support": [ "kea-dhcp4"],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"network4-subnet-del\",
-    \"arguments\": {
-        \"name\": \"floor13\",
-        \"id\": 5
+    "cmd-syntax": {
+        "command": "network4-subnet-del",
+        "arguments": {
+            "name": "floor13",
+            "id": 5
+        }
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "IPv4 subnet 10.0.0.0/8 (id 5) is now removed from shared network 'floor13'"
     }
- }",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"IPv4 subnet 10.0.0.0/8 (id 5) is now removed from shared network 'floor13'\"
-}"
 }
index b3ddab8e90e4a8dc23d14e5c6e8ffa2861ab267a..96c57421003c1ad74d12783516b8bf501b9ba5c4 100644 (file)
@@ -1,47 +1,47 @@
 {
-     "name": "network6-add",
+    "name": "network6-add",
     "brief": "The network6-add command is used to add a new shared network.",
     "description": "See <xref linkend=\"idp75\"/>",
     "support": [ "kea-dhcp6" ],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"network4-add\",
-    \"arguments\": {
-        \"shared-networks\": [ {
-            \"name\": \"floor13\",
-            \"subnet4\": [
-            {
-                \"id\": 100,
-                \"pools\": [ { \"pool\": \"192.0.2.2-192.0.2.99\" } ],
-                \"subnet\": \"192.0.2.0/24\",
-                \"option-data\": [
+    "cmd-syntax": {
+        "command": "network4-add",
+        "arguments": {
+            "shared-networks": [ {
+                "name": "floor13",
+                "subnet4": [
                     {
-                        \"name\": \"routers\",
-                        \"data\": \"192.0.2.1\"
-                    }
-                ]
-            },
-            {
-                \"id\": 101,
-                \"pools\": [ { \"pool\": \"192.0.3.2-192.0.3.99\" } ],
-                \"subnet\": \"192.0.3.0/24\",
-                \"option-data\": [
+                        "id": 100,
+                        "pools": [ { "pool": "192.0.2.2-192.0.2.99" } ],
+                        "subnet": "192.0.2.0/24",
+                        "option-data": [
+                            {
+                                "name": "routers",
+                                "data": "192.0.2.1"
+                            }
+                        ]
+                    },
                     {
-                        \"name\": \"routers\",
-                        \"data\": \"192.0.3.1\"
-                    }
-                ]
+                        "id": 101,
+                        "pools": [ { "pool": "192.0.3.2-192.0.3.99" } ],
+                        "subnet": "192.0.3.0/24",
+                        "option-data": [
+                            {
+                                "name": "routers",
+                                "data": "192.0.3.1"
+                            }
+                        ]
+                    } ]
             } ]
-        } ]
-    }
-}",
-    "cmd-comment": "The network6-add uses the same syntax for both the query and the response. However, there are some parameters that are IPv4-only (e.g. match-client-id) and some are IPv6-only (e.g. interface-id).",
-    "resp-syntax": "{
-    \"arguments\": {
-        \"shared-networks\": [ { \"name\": \"floor13\" } ]
+        }
     },
-    \"result\": 0,
-    \"text\": \"A new IPv4 shared network 'floor13' added\"
-}"
+    "cmd-comment": "The network6-add uses the same syntax for both the query and the response. However, there are some parameters that are IPv4-only (e.g. match-client-id) and some are IPv6-only (e.g. interface-id).",
+    "resp-syntax": {
+        "arguments": {
+            "shared-networks": [ { "name": "floor13" } ]
+        },
+        "result": 0,
+        "text": "A new IPv4 shared network 'floor13' added"
+    }
 }
index 7217336f840e5265eb2f7977daa2a0985871eec4..e0f707bc5975e68d5e9109f02627cce853c67bbf 100644 (file)
@@ -5,19 +5,18 @@
     "support": [ "kea-dhcp6" ],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"network4-del\",
-    \"arguments\": {
-        \"name\": \"floor13\"
+    "cmd-syntax": {
+        "command": "network4-del",
+        "arguments": {
+            "name": "floor13"
+        }
+    },
+    "cmd-comment": "The network6-del command uses exactly the same syntax for both the command and the response.",
+    "resp-syntax": {
+        "command": "network4-del",
+        "arguments": {
+            "name": "floor13",
+            "subnets-action": "delete"
+        }
     }
-}",
-    "cmd-comment": "The network6-del command uses exactly the same syntax for
-                    both the command and the response.",
-    "resp-syntax": "{
-    \"command\": \"network4-del\",
-    \"arguments\": {
-        \"name\": \"floor13\",
-        \"subnets-action\": \"delete\"
-    }
-}"
 }
index 99807eaadc16dccba923e5c6fcd06a2fd723fd32..f113d76edabc835ef05bba943ae224728b17bce9 100644 (file)
@@ -5,43 +5,41 @@
     "support": [ "kea-dhcp6" ],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"network4-get\",
-    \"arguments\": {
-        \"name\": \"floor13\"
-    }
-}",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"Info about IPv4 shared network 'floor13' returned\",
-    \"arguments\": {
-        \"shared-networks\": [
-        {
-            \"match-client-id\": true,
-            \"name\": \"floor13\",
-            \"option-data\": [ ],
-            \"rebind-timer\": 90,
-            \"relay\": {
-                \"ip-address\": \"0.0.0.0\"
-            },
-            \"renew-timer\": 60,
-            \"reservation-mode\": \"all\",
-            \"subnet4\": [
-                {
-                    \"subnet\": \"192.0.2.0/24\",
-                    \"id\": 5,
-                    // many other subnet specific details here
-                },
+    "cmd-syntax": {
+        "command": "network4-get",
+        "arguments": {
+            "name": "floor13"
+        }
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "Info about IPv4 shared network 'floor13' returned",
+        "arguments": {
+            "shared-networks": [
                 {
-                    \"id\": 6,
-                    \"subnet\": \"192.0.3.0/31\",
-                    // many other subnet specific details here
+                    "match-client-id": true,
+                    "name": "floor13",
+                    "option-data": [ ],
+                    "rebind-timer": 90,
+                    "relay": {
+                        "ip-address": "0.0.0.0"
+                    },
+                    "renew-timer": 60,
+                    "reservation-mode": "all",
+                    "subnet4": [
+                        {
+                            "subnet": "192.0.2.0/24",
+                            "id": 5
+                        },
+                        {
+                            "id": 6,
+                            "subnet": "192.0.3.0/31"
+                        }
+                    ],
+                    "valid-lifetime": 120
                 }
-            ],
-            \"valid-lifetime\": 120
+            ]
         }
-        ]
-    }
-}",
+    },
     "resp-comment": "Note that the actual response contains many additional fields that are omitted here for clarity."
 }
index 4febd2ce3a9c53292becbc2a73f1bd634e25e4b8..fa6d0d43d2ba249a23436e20193016e061a36834 100644 (file)
@@ -5,18 +5,15 @@
     "support": [ "kea-dhcp6" ],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"network4-list\"
-}",
     "cmd-comment": "network6-list follows exactly the same syntax for both the query and the response.",
-    "resp-syntax": "{
-    \"arguments\": {
-        \"shared-networks\": [
-            { \"name\": \"floor1\" },
-            { \"name\": \"office\" }
-        ]
-    },
-    \"result\": 0,
-    \"text\": \"2 IPv4 network(s) found\"
-}"
+    "resp-syntax": {
+        "arguments": {
+            "shared-networks": [
+                { "name": "floor1" },
+                { "name": "office" }
+            ]
+        },
+        "result": 0,
+        "text": "2 IPv4 network(s) found"
+    }
 }
index a23a45e6c27dddbaa594f92abfdd05731287f9ae..008eb96a696e001160933ec1ba5ca6a860d8d5e3 100644 (file)
@@ -5,16 +5,16 @@
     "support": [ "kea-dhcp6" ],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"network4-subnet-add\",
-    \"arguments\": {
-        \"name\": \"floor13\",
-        \"id\": 5
-    }
-}",
+    "cmd-syntax": {
+        "command": "network4-subnet-add",
+        "arguments": {
+            "name": "floor13",
+            "id": 5
+        }
+    },
     "cmd-comment": "The network6-subnet-add command uses exactly the same syntax for both the command and the response.",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"IPv4 subnet 10.0.0.0/8 (id 5) is now part of shared network 'floor1'\"
-}"
+    "resp-syntax": {
+        "result": 0,
+        "text": "IPv4 subnet 10.0.0.0/8 (id 5) is now part of shared network 'floor1'"
+    }
 }
index 4b43e7fce2f374213c381a36e978ae04b26adc0d..356490e7cd31cfd2c5e80a9bff73dadf2b9f0f3a 100644 (file)
@@ -5,16 +5,16 @@
     "support": [ "kea-dhcp6" ],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"network4-subnet-del\",
-    \"arguments\": {
-        \"name\": \"floor13\",
-        \"id\": 5
-    }
}",
+    "cmd-syntax": {
+        "command": "network4-subnet-del",
+        "arguments": {
+            "name": "floor13",
+            "id": 5
+        }
   },
     "cmd-comment": "The network6-subnet-del command uses exactly the same syntax for both the command and the response.",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"IPv4 subnet 10.0.0.0/8 (id 5) is now removed from shared network 'floor13'\"
-}"
+    "resp-syntax": {
+        "result": 0,
+        "text": "IPv4 subnet 10.0.0.0/8 (id 5) is now removed from shared network 'floor13'"
+    }
 }
index 17818261ec1b655e2e6d6cc78fc32cd0dcfe4035..b11a0db6fffa6d670373ce4a6648f412769ef8bb 100644 (file)
@@ -1,54 +1,34 @@
 {
     "name": "reservation-add",
-    "brief": "adds a new host reservation. The reservation may include IPv4 address,
-        IPv6 addresses, IPv6 prefixes, various identifiers, a class
-        the client will be assigned to, DHCPv4 and DHCPv6 options and
-        more.",
+    "brief": "adds a new host reservation. The reservation may include IPv4 address, IPv6 addresses, IPv6 prefixes, various identifiers, a class the client will be assigned to, DHCPv4 and DHCPv6 options and more.",
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "hook": "host_cmds",
     "avail": "1.2.0",
     "description": "See <xref linkend=\"cmd-reservation-add\"/>",
 
-    "cmd-syntax": "{
-    \"command\": \"reservation-add\",
-    \"arguments\": {
-        \"reservation\": {
-            \"boot-file-name\": <string>,
-            \"comment\": <string>
-            \"client-id\": <string>,
-            \"circuit-id\": <string>,
-            \"duid\": <string>,
-            \"flex-id\": <string>,
-            \"ip-address\": <string (IPv4 address)>,
-            \"ip-addresses\": [ <comma separated strings> ],
-            \"hw-address\": <string>,
-            \"hostname\": <string>,
-            \"next-server\": <string (IPv4 address)>,
-            \"option-data-list\": [ <comma separated structures defining options> ],
-            \"prefixes\": [ <comma separated IPv6 prefixes> ],
-            \"reservation-client-classes\": [ <comma separated strings> ],
-            \"server-hostname\": <string>,
-            \"subnet-id\": <integer>,
-            \"user-context\": <any valid JSON>,
+    "cmd-syntax": {
+        "command": "reservation-add",
+        "arguments": {
+            "reservation": {
+                "boot-file-name": "<string>",
+                "comment": "<string>",
+                "client-id": "<string>",
+                "circuit-id": "<string>",
+                "duid": "<string>",
+                "flex-id": "<string>",
+                "ip-address": "<string (IPv4 address)>",
+                "ip-addresses": [ "<comma separated strings>" ],
+                "hw-address": "<string>",
+                "hostname": "<string>",
+                "next-server": "<string (IPv4 address)>",
+                "option-data-list": [ "<comma separated structures defining options>" ],
+                "prefixes": [ "<comma separated IPv6 prefixes>" ],
+                "reservation-client-classes": [ "<comma separated strings>" ],
+                "server-hostname": "<string>",
+                "subnet-id": "<integer>",
+                "user-context": "<any valid JSON>"
+            }
         }
-    }
-}",
-    "cmd-comment": "Note the ip-address, client-id, next-server, server-hostname and
-boot-file-name are IPv4 specific. duid, ip-addresses and prefixes are
-IPv6 specific.",
-
-    "resp-syntax": "
-{
-    \"result\": <integer>,
-    \"text\": <string>
-}",
-    "resp-comment": "Result is an integer representation of the status. Currently supported statuses are:
-<itemizedlist>
-  <listitem><para>0 - success</para></listitem>
-  <listitem><para>1 - error</para></listitem>
-  <listitem><para>2 - unsupported</para></listitem>
-  <listitem><para>3 - empty (command was completed successfully, but no data was affected or returned)
-  </para></listitem>
-</itemizedlist>"
+    },
+    "cmd-comment": "Note the ip-address, client-id, next-server, server-hostname and boot-file-name are IPv4 specific. duid, ip-addresses and prefixes are IPv6 specific."
 }
-
index 48d5938bc1cc146b8b433892516f602b5a8932b1..46c8fc71640625fd91f52e850989d1b1c4fdaf3d 100644 (file)
@@ -5,14 +5,14 @@
     "hook": "host_cmds",
     "avail": "1.2.0",
 
-    "cmd-syntax": "{
-    \"command\": \"reservation-del\",
-    \"arguments\": {
-        \"subnet-id\": <integer>,
-        \"ip-address\": <string>,
-        \"identifier-type\": <one of \"hw-address\", \"duid\", \"circuit-id\", \"client-id\" and \"flex-id\">,
-        \"identifier\": <string>
-    }
-}",
+    "cmd-syntax": {
+        "command": "reservation-del",
+        "arguments": {
+            "subnet-id": "<integer>",
+            "ip-address": "<string>",
+            "identifier-type": "<one of 'hw-address', 'duid', 'circuit-id', 'client-id' and 'flex-id'>",
+            "identifier": "<string>"
+        }
+    },
     "cmd-comment": "The host reservation can be identified by either (subnet-id, ip-address) pair or a triplet of (subnet-id, identifier-type, identifier)."
 }
index 75b9ef85df40d0af33a8fdeee781837c7fa75953..b3bcca3a73f6af1560c625e38caef749043a8e32 100644 (file)
@@ -5,10 +5,11 @@
     "hook": "host_cmds",
     "avail": "1.6.0",
 
-    "cmd-syntax": "{
-    \"command\": \"reservation-get-all\",
-    \"arguments\": {
-        \"subnet-id\": <integer>
-}",
+    "cmd-syntax": {
+        "command": "reservation-get-all",
+        "arguments": {
+            "subnet-id": "<integer>"
+        }
+    },
     "resp-comment": "reservation-get-all command may result in very large responses."
 }
index 04796acec70869d236cbbdbf1d109d2167dacd53..3dfa7bbdf9411c4dbf33c5ef19ab5a9bf9d4e46d 100644 (file)
@@ -5,14 +5,14 @@
     "hook": "host_cmds",
     "avail": "1.6.0",
 
-    "cmd-syntax": "{
-    \"command\": \"reservation-get-page\",
-    \"arguments\": {
-        \"subnet-id\": <integer>,
-        \"limit\": <integer>,
-        \"source-index\": <integer>,
-        \"from\": <integer>
-    }
-}",
+    "cmd-syntax": {
+        "command": "reservation-get-page",
+        "arguments": {
+            "subnet-id": "<integer>",
+            "limit": "<integer>",
+            "source-index": "<integer>",
+            "from": "<integer>"
+        }
+    },
     "cmd-comment": "the subnet id and the page size limit are mandatory. The source index and from host id are optional and default to 0. Values to use to next the next page are returned in responses in a next map."
 }
index ef359b0928c602ac9caacc45380c9880932100f1..d0cb797b6b3e0e5bd2c112642180b9ad8b5fba01 100644 (file)
@@ -5,41 +5,40 @@
     "hook": "host_cmds",
     "avail": "1.2.0",
 
-    "cmd-syntax": "{
-    \"command\": \"reservation-get\",
-    \"arguments\": {
-        \"subnet-id\": <integer>,
-        \"identifier-type\": <string with one value out of: hw-address|duid|circuit-id|client-id|flex-id>,
-        \"identifier\": <string>;
-    }
-}",
+    "cmd-syntax": {
+        "command": "reservation-get",
+        "arguments": {
+            "subnet-id": "<integer>",
+            "identifier-type": "<string with one value out of: hw-address|duid|circuit-id|client-id|flex-id>",
+            "identifier": "<string>"
+        }
+    },
 
     "cmd-comment": "The host reservation can be identified by either (subnet-id, ip-address) pair or a triplet of (subnet-id, identifier-type, identifier).",
 
-    "resp-syntax": "{
-    \"result\": <integer>,
-    \"text\": <string>,
-    \"arguments\": {
-        \"boot-file-name\": <string>,
-        \"comment\": <string>
-        \"client-id\": <string>,
-        \"circuit-id\": <string>,
-        \"duid\": <string>,
-        \"flex-id\": <string>,
-        \"ip-address\": <string (IPv4 address)>,
-        \"ip-addresses\": [ <comma separated strings> ],
-        \"hw-address\": <string>,
-        \"hostname\": <string>,
-        \"next-server\": <string (IPv4 address)>,
-        \"option-data-list\": [ <comma separated structures defining options> ],
-        \"prefixes\": [ <comma separated IPv6 prefixes> ],
-        \"reservation-client-classes\": [ <comma separated strings> ],
-        \"server-hostname\": <string>,
-        \"subnet-id\": <integer>,
-        \"user-context\": <any valid JSON>,
-    }
-}",
+    "resp-syntax": {
+        "result": "<integer>",
+        "text": "<string>",
+        "arguments": {
+            "boot-file-name": "<string>",
+        "comment": "<string>",
+            "client-id": "<string>",
+            "circuit-id": "<string>",
+            "duid": "<string>",
+            "flex-id": "<string>",
+            "ip-address": "<string (IPv4 address)>",
+            "ip-addresses": [ "<comma separated strings>" ],
+            "hw-address": "<string>",
+            "hostname": "<string>",
+            "next-server": "<string (IPv4 address)>",
+            "option-data-list": [ "<comma separated structures defining options>" ],
+            "prefixes": [ "<comma separated IPv6 prefixes>" ],
+            "reservation-client-classes": [ "<comma separated strings>" ],
+            "server-hostname": "<string>",
+            "subnet-id": "<integer>",
+            "user-context": "<any valid JSON>"
+        }
+    },
 
-    "resp-comment": "Arguments object appear only if a host is found. Many fields in the arguments
-object appear only if specific field is set."
+    "resp-comment": "Arguments object appear only if a host is found. Many fields in the arguments object appear only if specific field is set."
 }
index 6c9cc305b41cb0c2222d69c492d72f7140f27987..21b1934e906d99a05f7510cc2c14bd1c35143a48 100644 (file)
@@ -4,9 +4,5 @@
     "description": "See <xref linkend=\"command-shutdown\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6", "kea-dhcp-ddns", "kea-ctrl-agent" ],
     "avail": "1.0.0",
-    "cmd-syntax": "{
-    \"command\": \"shutdown\"
-}",
-    "cmd-comment": "The server will respond with a confirmation that the shutdown
-                    procedure has been initiated."
+    "cmd-comment": "The server will respond with a confirmation that the shutdown procedure has been initiated."
 }
index b155d9c7ffaea498cc1105d46f91863317b52ed3..5ade9fcb741e6623e841a626274c3a0c73dbac04 100644 (file)
@@ -1,29 +1,28 @@
 {
     "name": "stat-lease4-get",
-    "brief": "The stat-lease4-get command fetches lease statistics for a range
-              of known IPv4 subnets.",
+    "brief": "The stat-lease4-get command fetches lease statistics for a range of known IPv4 subnets.",
     "description": "See <xref linkend=\"command-stat-lease4-get\"/>",
     "support": [ "kea-dhcp4" ],
     "avail": "1.4.0",
     "hook": "stat_cmds",
-    "cmd-syntax": "{
-  \"command\": \"stat-lease4-get\"
-}",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"stat-lease4-get: 2 rows found\",
-    \"arguments\": {
-      \"result-set\": {
-        \"columns\": [ \"subnet-id\",
-                       \"total-addresses\",
-                       \"assigned-addresses\",
-                       \"declined-addresses\" ]
-        \"rows\": [
-          [ 10, 256, 111, 0 ],
-          [ 20, 4098, 2034, 4 ]
-        ],
-      \"timestamp\": \"2018-05-04 15:03:37.000000\"
-      }
+    "cmd-syntax": {
+        "command": "stat-lease4-get"
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "stat-lease4-get: 2 rows found",
+        "arguments": {
+            "result-set": {
+                "columns": [ "subnet-id",
+                             "total-addresses",
+                             "assigned-addresses",
+                             "declined-addresses" ],
+                "rows": [
+                    [ 10, 256, 111, 0 ],
+                    [ 20, 4098, 2034, 4 ]
+                ],
+                "timestamp": "2018-05-04 15:03:37.000000"
+            }
+        }
     }
-  }"
 }
index 3834d7320cf78c35a31124c35f4cdd6223de7bec..70f9e6f4c6c67fe5083c78b783dc1f062dc799db 100644 (file)
@@ -1,30 +1,29 @@
 {
     "name": "stat-lease6-get",
-    "brief": "The stat-lease6-get command fetches lease statistics for a range
-              of known IPv6 subnets.",
+    "brief": "The stat-lease6-get command fetches lease statistics for a range of known IPv6 subnets.",
     "description": "See <xref linkend=\"command-stat-lease6-get\"/>",
     "support": [ "kea-dhcp6" ],
     "avail": "1.4.0",
     "hook": "stat_cmds",
-    "cmd-syntax": "{
-  \"command\": \"stat-lease6-get\",
-  \"arguments\": {
-    \"subnet-id\" : 10
-  }
-}",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"stat-lease6-get: 2 rows found\",
-    \"arguments\": {
-      \"result-set\": {
-        \"columns\": [ \"subnet-id\", \"total-nas\", \"assigned-nas\", \"declined-nas\", \"total-pds\", \"assigned-pds\" ]
-        \"rows\": [
-          [ 10, 4096, 2400, 3, 0, 0],
-          [ 20, 0, 0, 0, 1048, 233 ]
-          [ 30, 256, 60, 0, 1048, 15 ]
-        ],
-      \"timestamp\": \"2018-05-04 15:03:37.000000\"
-      }
+    "cmd-syntax": {
+        "command": "stat-lease6-get",
+        "arguments": {
+            "subnet-id" : 10
+        }
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "stat-lease6-get: 2 rows found",
+        "arguments": {
+            "result-set": {
+                "columns": [ "subnet-id", "total-nas", "assigned-nas", "declined-nas", "total-pds", "assigned-pds" ],
+                "rows": [
+                    [ 10, 4096, 2400, 3, 0, 0],
+                    [ 20, 0, 0, 0, 1048, 233 ],
+                    [ 30, 256, 60, 0, 1048, 15 ]
+                ],
+                "timestamp": "2018-05-04 15:03:37.000000"
+            }
+        }
     }
-  }"
 }
index fcfdce1161e36336fcc8aa2547246017d93ac835..2dd7218d2e0967bd4e1c19c667119a349596654c 100644 (file)
@@ -4,9 +4,9 @@
     "description": "See <xref linkend=\"command-statistic-get-all\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.0.0",
-    "cmd-syntax": "{
-    \"command\": \"statistic-get-all\",
-    \"arguments\": { }
-}",
+    "cmd-syntax": {
+        "command": "statistic-get-all",
+        "arguments": { }
+    },
     "cmd-comment": "The server will respond with details of all recorded statistics, with result set to 0 indicating that it iterated over all statistics (even when the total number of statistics is zero)."
 }
index 97cf96ef87cb8bec04a3383d48250943a70b8ed1..aa2fb895b569159b808bb9143545bada45c36184 100644 (file)
@@ -4,11 +4,11 @@
     "description": "See <xref linkend=\"command-statistic-get\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.0.0",
-    "cmd-syntax": "{
-    \"command\": \"statistic-get\",
-    \"arguments\": {
-        \"name\": \"pkt4-received\"
-    }
-}",
-    "cmd-comment": "The server will respond with details of the requested statistic, with a result set to 0 indicating success and the specified statistic as the value of the \"arguments\" parameter."
+    "cmd-syntax": {
+        "command": "statistic-get",
+        "arguments": {
+            "name": "pkt4-received"
+        }
+    },
+    "cmd-comment": "The server will respond with details of the requested statistic, with a result set to 0 indicating success and the specified statistic as the value of the 'arguments' parameter."
 }
index b1cae435b3935d81238523a58f63f9278be9fd02..4d25d191ef6a5f4e7ff94cd21ba78adf833351b8 100644 (file)
@@ -4,9 +4,9 @@
     "description": "See <xref linkend=\"command-statistic-remove-all\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.0.0",
-    "cmd-syntax": "{
-    \"command\": \"statistic-remove-all\",
-    \"arguments\": { }
-}",
+    "cmd-syntax": {
+        "command": "statistic-remove-all",
+        "arguments": { }
+    },
     "cmd-comment": "If the removal of all statistics was successful, the server will respond with a status of 0, indicating success and an empty parameters field. If an error is encountered, the server will return a status code of 1 (error) and the text field will contain the error description."
 }
index 8e3eaa6874b4424ec8edcc1a7ca33f38cdfebba9..e625d6ae2af46639ecbd24104be21cedd946650e 100644 (file)
@@ -4,11 +4,11 @@
     "description": "See <xref linkend=\"command-statistic-remove\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.0.0",
-    "cmd-syntax": "{
-    \"command\": \"statistic-remove\",
-    \"arguments\": {
-        \"name\": \"pkt4-received\"
-    }
-}",
+    "cmd-syntax": {
+        "command": "statistic-remove",
+        "arguments": {
+            "name": "pkt4-received"
+        }
+    },
     "cmd-comment": "If the specific statistic is found and its removal was successful, the server will respond with a status of 0, indicating success and an empty parameters field. If an error is encountered (e.g. requested statistic was not found), the server will return a status code of 1 (error) and the text field will contain the error description."
 }
index e87ab26c687e64935280b6c44f41ecb26de436f6..5f2df3cf02143a874e033d341478b6e8949643a9 100644 (file)
@@ -4,9 +4,9 @@
     "description": "See <xref linkend=\"command-statistic-reset-all\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.0.0",
-    "cmd-syntax": "{
-    \"command\": \"statistic-reset-all\",
-    \"arguments\": { }
-}",
+    "cmd-syntax": {
+        "command": "statistic-reset-all",
+        "arguments": { }
+    },
     "cmd-comment": "If the operation is successful, the server will respond with a status of 0, indicating success and an empty parameters field. If an error is encountered, the server will return a status code of 1 (error) and the text field will contain the error description."
 }
index c06162aef434c9300d7761bfbb519ae198b368b3..3a5cd9f68afca902ada733a08c981feb7beb954e 100644 (file)
@@ -4,11 +4,11 @@
     "description": "See <xref linkend=\"command-statistic-reset\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6" ],
     "avail": "1.0.0",
-    "cmd-syntax": "{
-    \"command\": \"statistic-reset\",
-    \"arguments\": {
-        \"name\": \"pkt4-received\"
-    }
-}",
+    "cmd-syntax": {
+        "command": "statistic-reset",
+        "arguments": {
+            "name": "pkt4-received"
+        }
+    },
     "cmd-comment": "If the specific statistic is found and reset was successful, the server will respond with a status of 0, indicating success and an empty parameters field. If an error is encountered (e.g. requested statistic was not found), the server will return a status code of 1 (error) and the text field will contain the error description."
 }
index 14daab1bb800bc2c918a1dde185d8455b5cf5cdf..d87201cf35dcfcb3a0d465790f5bfadb29d619ce 100644 (file)
@@ -5,26 +5,25 @@
     "support": [ "kea-dhcp4"],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"subnet4-add\",
-    \"arguments\": {
-        \"subnets\": [ {
-            \"id\": 123,
-            \"subnet\": \"10.20.30.0/24\",
-            ...
-        } ]
+    "cmd-syntax": {
+        "command": "subnet4-add",
+        "arguments": {
+            "subnets": [ {
+                "id": 123,
+                "subnet": "10.20.30.0/24"
+            } ]
+        }
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "IPv4 subnet added",
+        "arguments": {
+            "subnets": [
+                {
+                    "id": 123,
+                    "subnet": "10.20.30.0/24"
+                }
+            ]
+        }
     }
-}",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"IPv4 subnet added\",
-    \"arguments\": {
-        \"subnets\": [
-            {
-                \"id\": 123,
-                \"subnet\": \"10.20.30.0/24\"
-            }
-        ]
-    }
-}"
 }
index 3adf0d59a7ffb52bd62cf7896265ed2d5e0cb376..1493939d23c927a200f654ed4eab00a94b11928a 100644 (file)
@@ -5,22 +5,22 @@
     "support": [ "kea-dhcp4"],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"subnet4-del\",
-    \"arguments\": {
-        \"id\": 123
+    "cmd-syntax": {
+        "command": "subnet4-del",
+        "arguments": {
+            "id": 123
+        }
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "IPv4 subnet 192.0.2.0/24 (id 123) deleted",
+        "arguments": {
+            "subnets": [
+                {
+                    "id": 123,
+                    "subnet": "192.0.2.0/24"
+                }
+            ]
+        }
     }
-}",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"IPv4 subnet 192.0.2.0/24 (id 123) deleted\",
-    \"arguments\": {
-        \"subnets\": [
-            {
-                \"id\": 123,
-                \"subnet\": \"192.0.2.0/24\"
-            }
-        ]
-    }
-}"
 }
index 69d52202dc8c4588a4264a8a7ca6afe3285853ff..d918304f828fcd566582f1b087cd730efa4ed0b8 100644 (file)
@@ -5,26 +5,24 @@
     "support": [ "kea-dhcp4" ],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"subnet4-get\",
-    \"arguments\": {
-        \"id\": 10
+    "cmd-syntax": {
+        "command": "subnet4-get",
+        "arguments": {
+            "id": 10
+        }
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "Info about IPv4 subnet 10.0.0.0/8 (id 10) returned",
+        "arguments": {
+            "subnets": [
+                {
+                    "subnet": "10.0.0.0/8",
+                    "id": 1,
+                    "option-data": [
+                    ]
+                }
+            ]
+        }
     }
-}",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"Info about IPv4 subnet 10.0.0.0/8 (id 10) returned\",
-    \"arguments\": {
-        \"subnets\": [
-            {
-                \"subnet\": \"10.0.0.0/8\",
-                \"id\": 1,
-                \"option-data\": [
-                    ....
-                ]
-                ...
-            }
-        ]
-    }
-}"
 }
index e514cbfd56c2c520cbd531b794c4b56956341e13..23d469af9b414b85cd5970392264e5f98d8931cb 100644 (file)
@@ -5,23 +5,24 @@
     "support": [ "kea-dhcp4"],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"subnet4-list\"
-}",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"2 IPv4 subnets found\",
-    \"arguments\": {
-    \"subnets\": [
-        {
-            \"id\": 10,
-            \"subnet\": \"10.0.0.0/8\"
-        },
-        {
-            \"id\": 100,
-            \"subnet\": \"192.0.2.0/24\"
+    "cmd-syntax": {
+        "command": "subnet4-list"
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "2 IPv4 subnets found",
+        "arguments": {
+            "subnets": [
+                {
+                    "id": 10,
+                    "subnet": "10.0.0.0/8"
+                },
+                {
+                    "id": 100,
+                    "subnet": "192.0.2.0/24"
+                }
+            ]
         }
-    ]
-}",
+    },
     "resp-comment": "If no IPv4 subnets are found, an error code is returned along with the error description."
-}
\ No newline at end of file
+}
index 5926b47dc573aa768dc06368117f30fa83a3c9d9..b7c561aa1059648b21b16752e52a9ec635c7f6b7 100644 (file)
@@ -5,26 +5,25 @@
     "support": [ "kea-dhcp4"],
     "avail": "1.6.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"subnet4-update\",
-    \"arguments\": {
-        \"subnets\": [ {
-            \"id\": 123,
-            \"subnet\": \"10.20.30.0/24\",
-            ...
-        } ]
+    "cmd-syntax": {
+        "command": "subnet4-update",
+        "arguments": {
+            "subnets": [ {
+                "id": 123,
+                "subnet": "10.20.30.0/24"
+            } ]
+        }
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "IPv4 subnet updated",
+        "arguments": {
+            "subnets": [
+                {
+                    "id": 123,
+                    "subnet": "10.20.30.0/24"
+                }
+            ]
+        }
     }
-}",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"IPv4 subnet updated\",
-    \"arguments\": {
-        \"subnets\": [
-            {
-                \"id\": 123,
-                \"subnet\": \"10.20.30.0/24\"
-            }
-        ]
-    }
-}"
 }
index 727241f2462d6c689e03954d6480c0c604ca289e..1371618732dae572f21c0a0b205633b3414e103c 100644 (file)
@@ -5,26 +5,25 @@
     "support": [ "kea-dhcp6" ],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"subnet6-add\",
-    \"arguments\": {
-        \"subnet6\": [ {
-            \"id\": 234,
-            \"subnet\": \"2001:db8:1::/64\",
-            ...
-        } ]
+    "cmd-syntax": {
+        "command": "subnet6-add",
+        "arguments": {
+            "subnet6": [ {
+                "id": 234,
+                "subnet": "2001:db8:1::/64"
+            } ]
+        }
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "IPv6 subnet added",
+        "arguments": {
+            "subnet6": [
+                {
+                    "id": 234,
+                    "subnet": "2001:db8:1::/64"
+                }
+            ]
+        }
     }
-}",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"IPv6 subnet added\",
-    \"arguments\": {
-        \"subnet6\": [
-            {
-                \"id\": 234,
-                \"subnet\": \"2001:db8:1::/64\"
-            }
-        ]
-    }
-}"
 }
index d95e48828ce3e7598a3b6c897ae59c9e8ca293e0..a54879b2a273065a735b7edcc5cfa6698a435549 100644 (file)
@@ -5,20 +5,20 @@
     "support": [ "kea-dhcp6" ],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"subnet6-del\",
-    \"arguments\": {
-        \"id\": 234
-    }
-}",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"IPv6 subnet 2001:db8:1::/64 (id 234) deleted\",
-    \"subnets\": [
-        {
-            \"id\": 234,
-            \"subnet\": \"2001:db8:1::/64\"
+    "cmd-syntax": {
+        "command": "subnet6-del",
+        "arguments": {
+            "id": 234
         }
-    ]
-}"
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "IPv6 subnet 2001:db8:1::/64 (id 234) deleted",
+        "subnets": [
+            {
+                "id": 234,
+                "subnet": "2001:db8:1::/64"
+            }
+        ]
+    }
 }
index cc9e921677128bb9a0963e1bf7f972c5e97fade5..3dcc1a83faabb7ce1ea9d23557c4e734a6d548c8 100644 (file)
@@ -5,26 +5,24 @@
     "support": [ "kea-dhcp6" ],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"subnet6-get\",
-    \"arguments\": {
-        \"id\": 11
+    "cmd-syntax": {
+        "command": "subnet6-get",
+        "arguments": {
+            "id": 11
+        }
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "Info about IPv6 subnet 2001:db8:1::/64 (id 11) returned",
+        "arguments": {
+            "subnets": [
+                {
+                    "subnet": "2001:db8:1::/64",
+                    "id": 1,
+                    "option-data": [
+                    ]
+                }
+            ]
+        }
     }
-}",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"Info about IPv6 subnet 2001:db8:1::/64 (id 11) returned\",
-    \"arguments\": {
-        \"subnets\": [
-            {
-                \"subnet\": \"2001:db8:1::/64\",
-                \"id\": 1,
-                \"option-data\": [
-                    ...
-                ]
-                ....
-            }
-        ]
-    }
-}"
 }
index fc95177c5791888a5f5147377f74a24626be9227..374b38e06fc723a87ac96d81a53e40954dfa43b9 100644 (file)
@@ -5,23 +5,24 @@
     "support": [ "kea-dhcp6" ],
     "avail": "1.3.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"subnet6-list\"
-}",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"2 IPv6 subnets found\",
-    \"arguments\": {
-    \"subnets\": [
-        {
-            \"id\": 11,
-            \"subnet\": \"2001:db8:1::/64\"
-        },
-        {
-            \"id\": 233,
-            \"subnet\": \"3000::/16\"
+    "cmd-syntax": {
+        "command": "subnet6-list"
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "2 IPv6 subnets found",
+        "arguments": {
+            "subnets": [
+                {
+                    "id": 11,
+                    "subnet": "2001:db8:1::/64"
+                },
+                {
+                    "id": 233,
+                    "subnet": "3000::/16"
+                }
+            ]
         }
-    ]
-}",
+    },
     "resp-comment": "If no IPv6 subnets are found, an error code is returned along with the error description."
-}
\ No newline at end of file
+}
index 9360a377993d58b59c6a6fc45bd3f24315bed955..94f3fc1a82cc722b9202edde14bc0c72d09639bd 100644 (file)
@@ -5,26 +5,25 @@
     "support": [ "kea-dhcp6" ],
     "avail": "1.6.0",
     "hook": "subnet_cmds",
-    "cmd-syntax": "{
-    \"command\": \"subnet6-update\",
-    \"arguments\": {
-        \"subnet6\": [ {
-            \"id\": 234,
-            \"subnet\": \"2001:db8:1::/64\",
-            ...
-        } ]
+    "cmd-syntax": {
+        "command": "subnet6-update",
+        "arguments": {
+            "subnet6": [ {
+                "id": 234,
+                "subnet": "2001:db8:1::/64"
+            } ]
+        }
+    },
+    "resp-syntax": {
+        "result": 0,
+        "text": "IPv6 subnet updated",
+        "arguments": {
+            "subnet6": [
+                {
+                    "id": 234,
+                    "subnet": "2001:db8:1::/64"
+                }
+            ]
+        }
     }
-}",
-    "resp-syntax": "{
-    \"result\": 0,
-    \"text\": \"IPv6 subnet updated\",
-    \"arguments\": {
-        \"subnet6\": [
-            {
-                \"id\": 234,
-                \"subnet\": \"2001:db8:1::/64\"
-            }
-        ]
-    }
-}"
 }
index e9c192c25f53e9bc20113ef4c38f23062208eebe..1ab9c35cfe25c40b5e786e900bb37eab98c19008 100644 (file)
@@ -1,12 +1,7 @@
 {
     "name": "version-get",
-    "brief": "The version-get command returns extended information about
-              Kea version. The returned string is the same as if Kea would
-              be run with -V command line option.",
+    "brief": "The version-get command returns extended information about Kea version. The returned string is the same as if Kea would be run with -V command line option.",
     "description": "See <xref linkend=\"command-version-get\"/>",
     "support": [ "kea-dhcp4", "kea-dhcp6", "kea-dhcp-ddns", "kea-ctrl-agent" ],
-    "avail": "1.2.0",
-    "cmd-syntax": "{
-    \"command\": \"version-get\"
-}"
+    "avail": "1.2.0"
 }
diff --git a/doc/sphinx/api2doc.py b/doc/sphinx/api2doc.py
new file mode 100755 (executable)
index 0000000..60ed6e9
--- /dev/null
@@ -0,0 +1,175 @@
+#!/usr/bin/env python3
+
+# Copyright (C) 2019 Internet Systems Consortium, Inc. ("ISC")
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http:#mozilla.org/MPL/2.0/.
+
+# Produce API Manual
+
+import os
+import json
+import argparse
+import collections
+
+
+def parse_args():
+    parser = argparse.ArgumentParser(description='Convert set of *.json files to .rst documentation format')
+    parser.add_argument('-o', '--output', help='Output file name (default to stdout).')
+    parser.add_argument('files', help='Input API .json files.', nargs='+')
+
+    args = parser.parse_args()
+    return args
+
+
+def read_input_files(files):
+    apis = {}
+    for f in files:
+        name = os.path.basename(f)[:-5]
+        with open(f) as fp:
+            # use OrderedDict to preserve order of fields in cmd-syntax
+            try:
+                descr = json.load(fp, object_pairs_hook=collections.OrderedDict)
+            except:
+                print('\nError while processing %s\n\n' % f)
+                raise
+            assert name == descr['name']
+        apis[name] = descr
+
+    return apis
+
+
+def generate_rst(apis):
+    rst = '''.. _api:
+
+API Reference
+=============
+
+'''
+
+    daemons = {}
+    hooks = {}
+    for func in apis.values():
+        for dm in func['support']:
+            if dm not in daemons:
+                daemons[dm] = []
+            daemons[dm].append(func)
+
+        if 'hook' in func:
+            if func['hook'] not in hooks:
+                hooks[func['hook']] = []
+            hooks[func['hook']].append(func)
+
+    rst += 'Kea currently supports %d commands in %s daemons and %s hook libraries.\n\n' % (
+        len(apis),
+        ", ".join([':ref:`%s <commands-%s>`' % (m, m) for m in sorted(daemons.keys())]),
+        ", ".join([':ref:`%s <commands-%s>`' % (m, m) for m in sorted(hooks.keys())]))
+
+    for dm, funcs in sorted(daemons.items()):
+        rst += '.. _commands-%s:\n\n' % dm
+        rst += 'Commands supported by `%s` daemon: ' % dm
+        funcs = sorted([ ':ref:`%s <ref-%s>`' % (f['name'], f['name']) for f in funcs])
+        rst += ', '.join(funcs)
+        rst += '.\n\n'
+
+    for h, funcs in sorted(hooks.items()):
+        rst += '.. _commands-%s:\n\n' % h
+        rst += 'Commands supported by `%s` hook library: ' % h
+        funcs = sorted([ ':ref:`%s <ref-%s>`' % (f['name'], f['name']) for f in funcs])
+        rst += ', '.join(funcs)
+        rst += '.\n\n'
+
+    for func in sorted(apis.values(), key=lambda f: f['name']):
+        name = func['name']
+        rst += '.. _ref-%s:\n\n' % name
+        rst += name + '\n'
+        rst += '-' * len(name) + '\n\n'
+
+        # command overview
+        rst += '%s\n\n' % func['brief']
+
+        # command can be issued to the following daemons
+        rst += 'Supported by: '
+        rst += ', '.join(sorted([':ref:`%s <commands-%s>`' % (dm, dm) for dm in func['support']]))
+        rst += '\n\n'
+
+        # availability
+        rst += 'Availability: %s ' % func['avail']
+        rst += '(:ref:`%s <commands-%s>` hook library)' % (func['hook'], func['hook']) if 'hook' in func else '(built-in)'
+        rst += '\n\n'
+
+        # description and examples
+        rst += 'Description and examples: see :ref:`%s command <command-%s>`\n\n' % (name, name)
+
+        # command syntax
+        rst += 'Command syntax:\n\n'
+        rst += '.. code-block:: json\n\n'
+        if 'cmd-syntax' in func:
+            cmd_syntaxes = [func['cmd-syntax']]
+            if isinstance(cmd_syntaxes, dict):
+                cmd_syntaxes = [cmd_syntax]
+            for cmd_syntax in cmd_syntaxes:
+                if 'comment' in cmd_syntax:
+                    rst += cmd_syntax['comment']
+                    rst += '\n\n'
+                    del cmd_syntax['comment']
+                txt = json.dumps(cmd_syntax, indent=4, separators=(',', ': '))
+                lines = [ '    %s' % l for l in txt.splitlines()]
+                rst += '\n'.join(lines)
+        else:
+            rst += '   {\n'
+            rst += '       "command": \"%s\"\n' % name
+            rst += '   }'
+        rst += '\n\n'
+
+        if 'cmd-comment' in func:
+            rst += func['cmd-comment']
+            rst += '\n\n'
+
+        # response syntax
+        rst += 'Response syntax:\n\n'
+        rst += '.. code-block:: json\n\n'
+        if 'resp-syntax' in func:
+            resp_syntaxes = [func['resp-syntax']]
+            if isinstance(resp_syntaxes, dict):
+                resp_syntaxes = [resp_syntax]
+            for resp_syntax in resp_syntaxes:
+                txt = json.dumps(resp_syntax, indent=4, separators=(',', ': '))
+                lines = [ '    %s' % l for l in txt.splitlines()]
+                rst += '\n'.join(lines)
+        else:
+            rst += '   {\n'
+            rst += '       "result": "<integer>",\n'
+            rst += '       "text": "<string>"\n'
+            rst += '   }'
+        rst += '\n\n'
+
+        if 'resp-comment' in func:
+            rst += func['resp-comment']
+            rst += '\n\n'
+        else:
+            rst += 'Result is an integer representation of the status. Currently supported statuses are:\n\n'
+            rst += '- 0 - success\n'
+            rst += '- 1 - error\n'
+            rst += '- 2 - unsupported\n'
+            rst += '- 3 - empty (command was completed successfully, but no data was affected or returned)\n\n'
+
+    return rst
+
+
+def main():
+    args = parse_args()
+
+    apis = read_input_files(args.files)
+
+    rst = generate_rst(apis)
+
+    if args.output:
+        with open(args.output, 'w') as f:
+            f.write(rst)
+    else:
+        print(rst)
+
+if __name__ == '__main__':
+    main()
diff --git a/doc/sphinx/arm/api.rst b/doc/sphinx/arm/api.rst
deleted file mode 100644 (file)
index 70098d6..0000000
+++ /dev/null
@@ -1,6759 +0,0 @@
-.. _api:
-
-*************
-API Reference
-*************
-
-Kea currently supports 121 commands: ``build-report`` , ``cache-clear``
-, ``cache-get`` , ``cache-get-by-id`` , ``cache-insert`` ,
-``cache-load`` , ``cache-remove`` , ``cache-size`` , ``cache-write`` ,
-``class-add`` , ``class-del`` , ``class-get`` , ``class-list`` ,
-``class-update`` , ``config-get`` , ``config-reload`` , ``config-set`` ,
-``config-test`` , ``config-write`` , ``dhcp-disable`` , ``dhcp-enable``
-, ``ha-continue`` , ``ha-heartbeat`` , ``ha-scopes`` , ``ha-sync`` ,
-``lease4-add`` , ``lease4-del`` , ``lease4-get`` , ``lease4-get-all`` ,
-``lease4-update`` , ``lease4-wipe`` , ``lease6-add`` , ``lease6-del`` ,
-``lease6-get`` , ``lease6-get-all`` , ``lease6-update`` ,
-``lease6-wipe`` , ``leases-reclaim`` , ``libreload`` , ``list-commands``
-, ``network4-add`` , ``network4-del`` , ``network4-get`` ,
-``network4-list`` , ``network4-subnet-add`` , ``network4-subnet-del`` ,
-``network6-add`` , ``network6-del`` , ``network6-get`` ,
-``network6-list`` , ``network6-subnet-add`` , ``network6-subnet-del`` ,
-``remote-global-parameter4-del`` , ``remote-global-parameter4-get`` ,
-``remote-global-parameter4-get-all`` , ``remote-global-parameter4-set``
-, ``remote-global-parameter6-del`` , ``remote-global-parameter6-get`` ,
-``remote-global-parameter6-get-all`` , ``remote-global-parameter6-set``
-, ``remote-network4-del`` , ``remote-network4-get`` ,
-``remote-network4-list`` , ``remote-network4-set`` ,
-``remote-network6-del`` , ``remote-network6-get`` ,
-``remote-network6-list`` , ``remote-network6-set`` ,
-``remote-option-def4-del`` , ``remote-option-def4-get`` ,
-``remote-option-def4-get-all`` , ``remote-option-def4-set`` ,
-``remote-option-def6-del`` , ``remote-option-def6-get`` ,
-``remote-option-def6-get-all`` , ``remote-option-def6-set`` ,
-``remote-option4-global-del`` , ``remote-option4-global-get`` ,
-``remote-option4-global-get-all`` , ``remote-option4-global-set`` ,
-``remote-option6-global-del`` , ``remote-option6-global-get`` ,
-``remote-option6-global-get-all`` , ``remote-option6-global-set`` ,
-``remote-subnet4-del-by-id`` , ``remote-subnet4-del-by-prefix`` ,
-``remote-subnet4-get-by-id`` , ``remote-subnet4-get-by-prefix`` ,
-``remote-subnet4-list`` , ``remote-subnet4-set`` ,
-``remote-subnet6-del-by-id`` , ``remote-subnet6-del-by-prefix`` ,
-``remote-subnet6-get-by-id`` , ``remote-subnet6-get-by-prefix`` ,
-``remote-subnet6-list`` , ``remote-subnet6-set`` , ``reservation-add`` ,
-``reservation-del`` , ``reservation-get`` , ``reservation-get-all`` ,
-``reservation-get-page`` , ``shutdown`` , ``stat-lease4-get`` ,
-``stat-lease6-get`` , ``statistic-get`` , ``statistic-get-all`` ,
-``statistic-remove`` , ``statistic-remove-all`` , ``statistic-reset`` ,
-``statistic-reset-all`` , ``subnet4-add`` , ``subnet4-del`` ,
-``subnet4-get`` , ``subnet4-list`` , ``subnet4-update`` ,
-``subnet6-add`` , ``subnet6-del`` , ``subnet6-get`` , ``subnet6-list`` ,
-``subnet6-update`` , ``version-get`` .
-
-Commands supported by the kea-ctrl-agent daemon: ``build-report`` ,
-``config-get`` , ``config-reload`` , ``config-set`` , ``config-test`` ,
-``config-write`` , ``list-commands`` , ``shutdown`` , ``version-get`` .
-
-Commands supported by the kea-dhcp-ddns daemon: ``build-report`` ,
-``config-get`` , ``config-reload`` , ``config-set`` , ``config-test`` ,
-``config-write`` , ``list-commands`` , ``shutdown`` , ``version-get`` .
-
-Commands supported by the kea-dhcp4 daemon: ``build-report`` ,
-``cache-clear`` , ``cache-get`` , ``cache-get-by-id`` , ``cache-insert``
-, ``cache-load`` , ``cache-remove`` , ``cache-size`` , ``cache-write`` ,
-``class-add`` , ``class-del`` , ``class-get`` , ``class-list`` ,
-``class-update`` , ``config-get`` , ``config-reload`` , ``config-set`` ,
-``config-test`` , ``config-write`` , ``dhcp-disable`` , ``dhcp-enable``
-, ``ha-continue`` , ``ha-heartbeat`` , ``ha-scopes`` , ``ha-sync`` ,
-``lease4-add`` , ``lease4-del`` , ``lease4-get`` , ``lease4-get-all`` ,
-``lease4-update`` , ``lease4-wipe`` , ``leases-reclaim`` , ``libreload``
-, ``list-commands`` , ``network4-add`` , ``network4-del`` ,
-``network4-get`` , ``network4-list`` , ``network4-subnet-add`` ,
-``network4-subnet-del`` , ``remote-global-parameter4-del`` ,
-``remote-global-parameter4-get`` , ``remote-global-parameter4-get-all``
-, ``remote-global-parameter4-set`` , ``remote-network4-del`` ,
-``remote-network4-get`` , ``remote-network4-list`` ,
-``remote-network4-set`` , ``remote-option-def4-del`` ,
-``remote-option-def4-get`` , ``remote-option-def4-get-all`` ,
-``remote-option-def4-set`` , ``remote-option4-global-del`` ,
-``remote-option4-global-get`` , ``remote-option4-global-get-all`` ,
-``remote-option4-global-set`` , ``remote-subnet4-del-by-id`` ,
-``remote-subnet4-del-by-prefix`` , ``remote-subnet4-get-by-id`` ,
-``remote-subnet4-get-by-prefix`` , ``remote-subnet4-list`` ,
-``remote-subnet4-set`` , ``reservation-add`` , ``reservation-del`` ,
-``reservation-get`` , ``reservation-get-all`` , ``reservation-get-page``
-, ``shutdown`` , ``stat-lease4-get`` , ``statistic-get`` ,
-``statistic-get-all`` , ``statistic-remove`` , ``statistic-remove-all``
-, ``statistic-reset`` , ``statistic-reset-all`` , ``subnet4-add`` ,
-``subnet4-del`` , ``subnet4-get`` , ``subnet4-list`` ,
-``subnet4-update`` , ``version-get`` .
-
-Commands supported by the kea-dhcp6 daemon: ``build-report`` ,
-``cache-clear`` , ``cache-get`` , ``cache-get-by-id`` , ``cache-insert``
-, ``cache-load`` , ``cache-remove`` , ``cache-size`` , ``cache-write`` ,
-``class-add`` , ``class-del`` , ``class-get`` , ``class-list`` ,
-``class-update`` , ``config-get`` , ``config-reload`` , ``config-set`` ,
-``config-test`` , ``config-write`` , ``dhcp-disable`` , ``dhcp-enable``
-, ``ha-continue`` , ``ha-heartbeat`` , ``ha-scopes`` , ``ha-sync`` ,
-``lease6-add`` , ``lease6-del`` , ``lease6-get`` , ``lease6-get-all`` ,
-``lease6-update`` , ``lease6-wipe`` , ``leases-reclaim`` , ``libreload``
-, ``list-commands`` , ``network6-add`` , ``network6-del`` ,
-``network6-get`` , ``network6-list`` , ``network6-subnet-add`` ,
-``network6-subnet-del`` , ``remote-global-parameter6-del`` ,
-``remote-global-parameter6-get`` , ``remote-global-parameter6-get-all``
-, ``remote-global-parameter6-set`` , ``remote-network6-del`` ,
-``remote-network6-get`` , ``remote-network6-list`` ,
-``remote-network6-set`` , ``remote-option-def6-del`` ,
-``remote-option-def6-get`` , ``remote-option-def6-get-all`` ,
-``remote-option-def6-set`` , ``remote-option6-global-del`` ,
-``remote-option6-global-get`` , ``remote-option6-global-get-all`` ,
-``remote-option6-global-set`` , ``remote-subnet6-del-by-id`` ,
-``remote-subnet6-del-by-prefix`` , ``remote-subnet6-get-by-id`` ,
-``remote-subnet6-get-by-prefix`` , ``remote-subnet6-list`` ,
-``remote-subnet6-set`` , ``reservation-add`` , ``reservation-del`` ,
-``reservation-get`` , ``reservation-get-all`` , ``reservation-get-page``
-, ``shutdown`` , ``stat-lease6-get`` , ``statistic-get`` ,
-``statistic-get-all`` , ``statistic-remove`` , ``statistic-remove-all``
-, ``statistic-reset`` , ``statistic-reset-all`` , ``subnet6-add`` ,
-``subnet6-del`` , ``subnet6-get`` , ``subnet6-list`` ,
-``subnet6-update`` , ``version-get`` .
-
-.. _commands-cb_cmds-lib:
-
-Commands supported by the Configuration Backend Commands (cb_cmds) hooks library:
-``remote-global-parameter4-del`` , ``remote-global-parameter4-get`` ,
-``remote-global-parameter4-get-all`` , ``remote-global-parameter4-set``
-, ``remote-global-parameter6-del`` , ``remote-global-parameter6-get`` ,
-``remote-global-parameter6-get-all`` , ``remote-global-parameter6-set``
-, ``remote-network4-del`` , ``remote-network4-get`` ,
-``remote-network4-list`` , ``remote-network4-set`` ,
-``remote-network6-del`` , ``remote-network6-get`` ,
-``remote-network6-list`` , ``remote-network6-set`` ,
-``remote-option-def4-del`` , ``remote-option-def4-get`` ,
-``remote-option-def4-get-all`` , ``remote-option-def4-set`` ,
-``remote-option-def6-del`` , ``remote-option-def6-get`` ,
-``remote-option-def6-get-all`` , ``remote-option-def6-set`` ,
-``remote-option4-global-del`` , ``remote-option4-global-get`` ,
-``remote-option4-global-get-all`` , ``remote-option4-global-set`` ,
-``remote-option6-global-del`` , ``remote-option6-global-get`` ,
-``remote-option6-global-get-all`` , ``remote-option6-global-set`` ,
-``remote-subnet4-del-by-id`` , ``remote-subnet4-del-by-prefix`` ,
-``remote-subnet4-get-by-id`` , ``remote-subnet4-get-by-prefix`` ,
-``remote-subnet4-list`` , ``remote-subnet4-set`` ,
-``remote-subnet6-del-by-id`` , ``remote-subnet6-del-by-prefix`` ,
-``remote-subnet6-get-by-id`` , ``remote-subnet6-get-by-prefix`` ,
-``remote-subnet6-list`` , ``remote-subnet6-set`` .
-
-.. _commands-class_cmds-lib:
-
-Commands supported by the Class Commands (class_cmds) hooks library: ``class-add`` ,
-``class-del`` , ``class-get`` , ``class-list`` , ``class-update`` .
-
-.. _commands-high_availability-lib:
-
-Commands supported by the High Availability (high_availability) hooks library: ``ha-continue`` ,
-``ha-heartbeat`` , ``ha-scopes`` , ``ha-sync`` .
-
-.. _commands-host_cache-lib:
-
-Commands supported by the Host Cache (host_cache) hooks library: ``cache-clear`` ,
-``cache-get`` , ``cache-get-by-id`` , ``cache-insert`` , ``cache-load``
-, ``cache-remove`` , ``cache-size`` , ``cache-write`` .
-
-.. _commands-host_cmds-lib:
-
-Commands supported by the Host Commands (host_cmds) hooks library: ``reservation-add`` ,
-``reservation-del`` , ``reservation-get`` , ``reservation-get-all`` ,
-``reservation-get-page`` .
-
-.. _commands-lease_cmds-lib:
-
-Commands supported by the Lease Commands (lease_cmds) hooks library: ``lease4-add`` ,
-``lease4-del`` , ``lease4-get`` , ``lease4-get-all`` , ``lease4-update``
-, ``lease4-wipe`` , ``lease6-add`` , ``lease6-del`` , ``lease6-get`` ,
-``lease6-get-all`` , ``lease6-update`` , ``lease6-wipe`` .
-
-.. _commands-stat_cmds-lib:
-
-Commands supported by the Supplemental Statistics Commands (stat_cmds) hooks library: ``stat-lease4-get`` ,
-``stat-lease6-get`` .
-
-.. _commands-subnet_cmds-lib:
-
-Commands supported by the Subnet Commands (subnet_cmds) hooks library: ``network4-add`` ,
-``network4-del`` , ``network4-get`` , ``network4-list`` ,
-``network4-subnet-add`` , ``network4-subnet-del`` , ``network6-add`` ,
-``network6-del`` , ``network6-get`` , ``network6-list`` ,
-``network6-subnet-add`` , ``network6-subnet-del`` , ``subnet4-add`` ,
-``subnet4-del`` , ``subnet4-get`` , ``subnet4-list`` ,
-``subnet4-update`` , ``subnet6-add`` , ``subnet6-del`` , ``subnet6-get``
-, ``subnet6-list`` , ``subnet6-update`` .
-
-.. _reference-build-report:
-
-build-report reference
-======================
-
-``build-report`` - returns a list of compilation options that this
-particular binary was built with.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``, ``kea-dhcp-ddns``,
-``kea-ctrl-agent``
-
-Availability: 1.2.0 (built-in)
-
-Description and examples: see :ref:`command-build-report`
-
-Command syntax:
-
-::
-
-   {
-       "command": "build-report"
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": <string with build details>
-   }
-
-.. _reference-cache-clear:
-
-cache-clear reference
-=====================
-
-``cache-clear`` - removes all cached host reservations.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.4.0 (:ref:`The Host Cache hooks library<commands-host_cache-lib>`)
-
-Description and examples: see :ref:`command-cache-clear`
-
-Command syntax:
-
-::
-
-   {
-       "command": "cache-clear"
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-cache-get:
-
-cache-get reference
-===================
-
-``cache-get`` - returns full content of the host cache.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.4.0 (:ref:`The Host Cache hooks library<commands-host_cache-lib>`)
-
-Description and examples: see :ref:`command-cache-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "cache-get"
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0
-       "text": "123 entries returned."
-       "arguments": <list of host reservations>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-cache-get-by-id:
-
-cache-get-by-id reference
-=========================
-
-``cache-get-by-id`` - returns entries matching the given identifier from
-the host cache.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Host Cache hooks library<commands-host_cache-lib>`)
-
-Description and examples: see :ref:`command-cache-get-by-id`
-
-Command syntax:
-
-::
-
-   {
-       "command": "cache-get-by-id",
-       "arguments": {
-           "hw-address": "01:02:03:04:05:06"
-       }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0
-       "text": "2 entries returned."
-       "arguments": <list of host reservations>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-cache-insert:
-
-cache-insert reference
-======================
-
-``cache-insert`` - manually inserts a host into the cache.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.4.0 (:ref:`The Host Cache hooks library<commands-host_cache-lib>`)
-
-Description and examples: see :ref:`command-cache-insert`
-
-Command syntax:
-
-::
-
-   {
-       "command": "cache-insert",
-       "arguments": {
-           "hw-address": "01:02:03:04:05:06",
-           "subnet-id4": 4,
-           "subnet-id6": 0,
-           "ip-address": "192.0.2.100",
-           "hostname": "somehost.example.org",
-           "client-classes4": [ ],
-           "client-classes6": [ ],
-           "option-data4": [ ],
-           "option-data6": [ ],
-           "next-server": "192.0.0.2",
-           "server-hostname": "server-hostname.example.org",
-           "boot-file-name": "bootfile.efi",
-           "host-id": 0
-       }
-   },
-   {
-       "command": "cache-insert",
-       "arguments": {
-           "hw-address": "01:02:03:04:05:06",
-           "subnet-id4": 0,
-           "subnet-id6": 6,
-           "ip-addresses": [ "2001:db8::cafe:babe" ],
-           "prefixes": [ "2001:db8:dead:beef::/64" ],
-           "hostname": "",
-           "client-classes4": [ ],
-           "client-classes6": [ ],
-           "option-data4": [ ],
-           "option-data6": [ ],
-           "next-server": "0.0.0.0",
-           "server-hostname": "",
-           "boot-file-name": "",
-           "host-id": 0
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-cache-load:
-
-cache-load reference
-====================
-
-``cache-load`` - allows the contents of a file on disk to be loaded
-into an in-memory cache.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.4.0 (:ref:`The Host Cache hooks library<commands-host_cache-lib>`)
-
-Description and examples: see :ref:`command-cache-load`
-
-Command syntax:
-
-::
-
-   {
-       "command": "cache-load",
-       "arguments": "/tmp/kea-host-cache.json"
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-cache-remove:
-
-cache-remove reference
-======================
-
-``cache-remove`` - works similarly to the reservation-get command.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.4.0 (:ref:`The Host Cache hooks library<commands-host_cache-lib>`)
-
-Description and examples: see :ref:`command-cache-remove`
-
-Command syntax:
-
-::
-
-   {
-       "command": "cache-remove",
-       "arguments": {
-           "ip-address": "192.0.2.1",
-           "subnet-id": 123
-       }
-   }
-
-   Another example that removes the IPv6 host identifier by DUID and specific subnet-id is:
-   {
-       "command": "cache-remove",
-       "arguments": {
-           "duid": "00:01:ab:cd:f0:a1:c2:d3:e4",
-           "subnet-id": 123
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-cache-size:
-
-cache-size reference
-====================
-
-``cache-size`` - returns the number of entries in the host cache.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Host Cache hooks library<commands-host_cache-lib>`)
-
-Description and examples: see :ref:`command-cache-size`
-
-Command syntax:
-
-::
-
-   {
-       "command": "cache-size"
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0
-       "text": "123 entries."
-       "arguments": { "size": 123 }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-cache-write:
-
-cache-write reference
-=====================
-
-``cache-write`` - instructs Kea to write its host cache content to disk.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.4.0 (:ref:`The Host Cache hooks library<commands-host_cache-lib>`)
-
-Description and examples: see :ref:`command-cache-write`
-
-Command syntax:
-
-::
-
-   {
-       "command": "cache-write",
-       "arguments": "/path/to/the/file.json"
-   }
-
-The command takes one mandatory argument that specifies a filename path
-of a file to be written.
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-class-add:
-
-class-add reference
-===================
-
-``class-add`` - creates and adds a new class to
-the existing server configuration.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.5.0 (:ref:`The Class Commands hooks library<commands-class_cmds-lib>`)
-
-Description and examples: see :ref:`command-class-add`
-
-Command syntax:
-
-::
-
-   {
-       "command": "class-add",
-       "arguments": {
-           "client-classes": [ {
-              "name": <name of the class>,
-              "test": <test expression to be evaluated on incoming packets>,
-              "option-data": [ <option values here> ],
-              "option-def": [ <option defintions here> ],
-              "next-server": <ipv4 address>,
-              "server-hostname": <string>,
-              "boot-file-name": <name of the boot file>
-           } ]
-       }
-   }
-
-The ``next-server``, ``server-hostname``, and ``boot-file-name`` commands are
-DHCPv4-specific. Only one client class can be added with a single
-command.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "Class '<class-name>' added.",
-   }
-
-The command will be successful (result 0), unless the class name is a
-duplicate or another error occurs (result 1).
-
-.. _reference-class-del:
-
-class-del reference
-===================
-
-``class-del`` - removes a client class from the server configuration.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.5.0 (:ref:`The Class Commands hooks library<commands-class_cmds-lib>`)
-
-Description and examples: see :ref:`command-class-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "class-del",
-       "arguments": {
-           "name": <name of the class>
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "Class '<class-name>' deleted."
-   }
-
-The command will return a result of 3 (empty) if the client class
-does not exist. If the client class exists, the returned result is 0 if
-the deletion was successful and the result is 1 if the deletion is
-unsuccessful.
-
-.. _reference-class-get:
-
-class-get reference
-===================
-
-``class-get`` - returns detailed information about an existing client class.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.5.0 (:ref:`The Class Commands hooks library<commands-class_cmds-lib>`)
-
-Description and examples: see :ref:`command-class-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "class-get",
-       "arguments": {
-           "name": <name of the class>
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "Class '<class-name>' definition returned",
-       "arguments": {
-           "client-classes": [
-               {
-                   "name": <name of the class>,
-                   "only-if-required": <only if required boolean value>,
-                   "test": <test expression to be evaluated on incoming packets>,
-                   "option-data": [ <option values here> ],
-                   "option-def": [ <option defintions here> ],
-                   "next-server": <ipv4 address>,
-                   "server-hostname": <string>,
-                   "boot-file-name": <name of the boot file>
-               }
-           ]
-       }
-   }
-
-The returned information depends on the DHCP server type, i.e. some
-parameters are specific to DHCPv4 server. Also, some parameters may not
-be returned if they are not set for the client class. If a class with the
-specified name does not exist, a result of 3 (empty) is returned. If the
-client class is found, the result of 0 is returned. If there is an error
-while processing the command, the result of 1 is returned.
-
-.. _reference-class-list:
-
-class-list reference
-====================
-
-``class-list`` - retrieves a list of all client
-classes from the server configuration.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.5.0 (:ref:`The Class Commands hooks library<commands-class_cmds-lib>`)
-
-Description and examples: see :ref:`command-class-list`
-
-Command syntax:
-
-::
-
-   {
-       "command": "class-list"
-   }
-
-This command includes no arguments.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "<number of> classes found",
-       "arguments": {
-           "client-classes": [
-               {
-                   "name": <first class name>
-               },
-               {
-                   "name": <second class name>
-               }
-           ]
-       }
-   }
-
-The returned list of classes merely contains their names. To
-retrieve full information about one of these classes, use
-:ref:`command-class-get`. The returned result is 3 (empty) if no
-classes are found. If the command is processed successfully and the list
-of client classes is not empty, the result of 0 is returned. If there is
-an error while processing the command, the result of 1 is returned.
-
-.. _reference-class-update:
-
-class-update reference
-======================
-
-``class-update`` - updates an existing client
-class in the server configuration.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.5.0 (:ref:`The Class Commands hooks library<commands-class_cmds-lib>`)
-
-Description and examples: see :ref:`command-class-update`
-
-Command syntax:
-
-::
-
-   {
-       "command": "class-update",
-       "arguments": {
-           "client-classes": [ {
-              "name": <name of the class>,
-              "test": <test expression to be evaluated on incoming packets>,
-              "option-data": [ <option values here> ],
-              "option-def": [ <option defintions here> ],
-              "next-server": <ipv4 address>,
-              "server-hostname": <string>,
-              "boot-file-name": <name of the boot file>
-           } ]
-       }
-   }
-
-The ``next-server``, ``server-hostname``, and ``boot-file-name`` commands are
-DHCPv4-specific. Only one client class can be updated with a single
-command.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "Class '<class-name>' updated.",
-   }
-
-The command will return the result of 3 (empty) if the client class
-does not exist. If the client class exists, the returned result is 0 if
-the update was successful and 1 if the update is unsuccessful.
-
-.. _reference-config-get:
-
-config-get reference
-====================
-
-``config-get`` - retrieves the current configuration used by the server.
-The configuration is roughly equal to the configuration file, but
-includes additional changes made by other commands and due to parameters
-inheritance.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``, ``kea-dhcp-ddns``,
-``kea-ctrl-agent``
-
-Availability: 1.2.0 (built-in)
-
-Description and examples: see :ref:`command-config-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "config-get"
-   }
-
-This command takes no parameters.
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "arguments": {
-           <JSON configuration here, starting with Dhcp4, Dhcp6, or Control-agent object>
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-config-reload:
-
-config-reload reference
-=======================
-
-``config-reload`` - instructs Kea to load
-again the configuration file that was used previously.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``, ``kea-dhcp-ddns``,
-``kea-ctrl-agent``
-
-Availability: 1.2.0 (built-in)
-
-Description and examples: see :ref:`command-config-reload`
-
-Command syntax:
-
-::
-
-   {
-       "command": "config-reload"
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-config-set:
-
-config-set reference
-====================
-
-``config-set`` - instructs the server to replace
-its current configuration with the new configuration supplied in the
-command's arguments.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``, ``kea-dhcp-ddns``,
-``kea-ctrl-agent``
-
-Availability: 1.2.0 (built-in)
-
-Description and examples: see :ref:`command-config-set`
-
-Command syntax:
-
-::
-
-   {
-       "command": "config-set",
-       "arguments":  {
-           "<server>": {
-           }
-        }
-   }
-
-where <server> is the configuration element name for a given server, such
-as "Dhcp4" or "Dhcp6"
-
-Response syntax:
-
-::
-
-       {"result": 0, "text": "Configuration successful." }
-
-       or
-
-       {"result": 1, "text": "unsupported parameter: BOGUS (<string>:16:26)" }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-config-test:
-
-config-test reference
-=====================
-
-``config-test`` - instructs the server to check
-whether the new configuration supplied in the command's arguments can be
-loaded.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``, ``kea-dhcp-ddns``,
-``kea-ctrl-agent``
-
-Availability: 1.2.0 (built-in)
-
-Description and examples: see :ref:`command-config-test`
-
-Command syntax:
-
-::
-
-   {
-       "command": "config-test",
-       "arguments":  {
-           "<server>": {
-           }
-        }
-   }
-
-where <server> is the configuration element name for a given server, such
-as "Dhcp4" or "Dhcp6"
-
-Response syntax:
-
-::
-
-   {"result": 0, "text": "Configuration seems sane..." }
-
-       or
-
-       {"result": 1, "text": "unsupported parameter: BOGUS (<string>:16:26)" }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-config-write:
-
-config-write reference
-======================
-
-``config-write`` - instructs the Kea server to
-write its current configuration to a file on disk.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``, ``kea-dhcp-ddns``,
-``kea-ctrl-agent``
-
-Availability: 1.2.0 (built-in)
-
-Description and examples: see :ref:`command-config-write`
-
-Command syntax:
-
-::
-
-   {
-       "command": "config-write",
-       "arguments": {
-           "filename": "config-modified-2017-03-15.json"
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-dhcp-disable:
-
-dhcp-disable reference
-======================
-
-``dhcp-disable`` - globally disables the DHCP service.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.4.0 (built-in)
-
-Description and examples: see :ref:`command-dhcp-disable`
-
-Command syntax:
-
-::
-
-   {
-       "command": "dhcp-disable",
-       "arguments": {
-           "max-period": 20
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-dhcp-enable:
-
-dhcp-enable reference
-=====================
-
-``dhcp-enable`` - globally enables the DHCP service.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.4.0 (built-in)
-
-Description and examples: see :ref:`command-dhcp-enable`
-
-Command syntax:
-
-::
-
-   {
-       "command": "dhcp-enable"
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-ha-continue:
-
-ha-continue reference
-=====================
-
-``ha-continue`` - resumes the operation of the
-paused HA state machine.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.4.0 (:ref:`The High Availability hooks library<commands-high_availability-lib>`)
-
-Description and examples: see :ref:`command-ha-continue`
-
-Command syntax:
-
-::
-
-   {
-       "command": "ha-continue"
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-ha-heartbeat:
-
-ha-heartbeat reference
-======================
-
-``ha-heartbeat`` - is sent internally by a Kea partner when
-operating in High Availability (HA) mode; it retrieves the server HA
-state and clock value.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.4.0 (:ref:`The High Availability hooks library<commands-high_availability-lib>`)
-
-Description and examples: see :ref:`ha-server-states`
-
-Command syntax:
-
-::
-
-   {
-       "command": "ha-heartbeat",
-       }
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The response to this command is different from the typical command
-response. The response will include the server state (see
-:ref:`ha-server-states` plus the current clock value.
-
-.. _reference-ha-scopes:
-
-ha-scopes reference
-===================
-
-``ha-scopes`` - modifies the scope that the server is
-responsible for serving when operating in High Availability (HA) mode.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.4.0 (:ref:`The High Availability hooks library<commands-high_availability-lib>`)
-
-Description and examples: see :ref:`command-ha-scopes`
-
-Command syntax:
-
-::
-
-   {
-       "command": "ha-scopes",
-       "service": [ <service, typically "dhcp4" or "dhcp6"> ],
-       "arguments": {
-           "scopes": [ "HA_server1", "HA_server2" ]
-       }
-
-In the example given, the arguments configure the server to handle
-traffic from both HA_server1 and HA_server2 scopes.
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-ha-sync:
-
-ha-sync reference
-=================
-
-``ha-sync`` - instructs the server running in HA
-mode to synchronize its local lease database with the selected peer.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.4.0 (:ref:`The High Availability hooks library<commands-high_availability-lib>`)
-
-Description and examples: see :ref:`command-ha-sync`
-
-Command syntax:
-
-::
-
-   {
-       "command": "ha-sync",
-       "service": [ <service affected:> "dhcp4" or "dhcp6" ],
-       "arguments": {
-           "server-name": <name of the partner server>,
-           "max-period": <integer, in seconds>
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-lease4-add:
-
-lease4-add reference
-====================
-
-``lease4-add`` - adds a new IPv4 lease administratively.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.3.0 (:ref:`The Lease Commands hooks library<commands-lease_cmds-lib>`)
-
-Description and examples: see :ref:`command-lease4-add`
-
-Command syntax:
-
-::
-
-   {
-       "command": "lease4-add",
-       "arguments": {
-           "ip-address": "192.0.2.202",
-           "hw-address": "1a:1b:1c:1d:1e:1f"
-       }
-   }
-
-Note that Kea 1.4 requires an additional argument, subnet-ID, which is
-optional as of Kea 1.5. A number of other more detailed optional
-arguments are also supported.
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-lease4-del:
-
-lease4-del reference
-====================
-
-``lease4-del`` - deletes a lease from the lease database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.3.0 (:ref:`The Lease Commands hooks library<commands-lease_cmds-lib>`)
-
-Description and examples: see :ref:`command-lease4-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "lease4-del",
-       "arguments": {
-           "ip-address": "192.0.2.202"
-       }
-   }
-
-Specify the lease to be deleted either by IP address, or by
-identifier-type and identifier value. Currently supported identifiers
-are "hw-address" and "client-id".
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-lease4-get:
-
-lease4-get reference
-====================
-
-``lease4-get`` - queries the lease database and retrieves existing leases.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.3.0 (:ref:`The Lease Commands hooks library<commands-lease_cmds-lib>`)
-
-Description and examples: see :ref:`command-lease4-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "lease4-get",
-       "arguments": {
-           "ip-address": "192.0.2.1"
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-     "arguments": {
-       "client-id": "42:42:42:42:42:42:42:42",
-       "cltt": 12345678,
-       "fqdn-fwd": false,
-       "fqdn-rev": true,
-       "hostname": "myhost.example.com.",
-       "hw-address": "08:08:08:08:08:08",
-       "ip-address": "192.0.2.1",
-       "state": 0,
-       "subnet-id": 44,
-       "valid-lft": 3600
-     },
-     "result": 0,
-     "text": "IPv4 lease found."
-   }
-
-``lease4-get`` returns a result that indicates a result of the operation and
-lease details, if found. It has one of the following values: 0
-(success), 1 (error), or 2 (empty).
-
-.. _reference-lease4-get-all:
-
-lease4-get-all reference
-========================
-
-``lease4-get-all`` - retrieves all IPv4 leases
-or all leases for the specified set of subnets.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.4.0 (:ref:`The Lease Commands hooks library<commands-lease_cmds-lib>`)
-
-Description and examples: see :ref:`command-lease4-get-all`
-
-Command syntax:
-
-::
-
-   {
-       "command": "lease4-get-all"
-       "arguments": "subnets"
-   }
-
-The ``lease4-get-all`` command may result in very large responses.
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-lease4-update:
-
-lease4-update reference
-=======================
-
-``lease4-update`` - updates existing leases.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.3.0 (:ref:`The Lease Commands hooks library<commands-lease_cmds-lib>`)
-
-Description and examples: see :ref:`command-lease4-update`
-
-Command syntax:
-
-::
-
-   {
-     "command": "lease4-update",
-     "arguments": {
-       "ip-address": "192.0.2.1",
-       "hostname": "newhostname.example.org",
-       "hw-address": "1a:1b:1c:1d:1e:1f",
-       "subnet-id": 44,
-       "force-create": true
-     }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-lease4-wipe:
-
-lease4-wipe reference
-=====================
-
-``lease4-wipe`` - removes all leases associated with a given subnet.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.3.0 (:ref:`The Lease Commands hooks library<commands-lease_cmds-lib>`)
-
-Description and examples: see :ref:`command-lease4-wipe`
-
-Command syntax:
-
-::
-
-   {
-     "command": "lease4-wipe",
-     "arguments": {
-       "subnet-id": 44
-     }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-lease6-add:
-
-lease6-add reference
-====================
-
-``lease6-add`` - creates a new lease administratively.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.3.0 (:ref:`The Lease Commands hooks library<commands-lease_cmds-lib>`)
-
-Description and examples: see :ref:`command-lease4-add`
-
-Command syntax:
-
-::
-
-   {
-       "command": "lease6-add",
-       "arguments": {
-           "subnet-id": 66,
-           "ip-address": "2001:db8::3",
-           "duid": "1a:1b:1c:1d:1e:1f:20:21:22:23:24",
-           "iaid": 1234
-       }
-   }
-
-``lease6-add`` can be also used to add leases for IPv6 prefixes.
-
-Response syntax:
-
-::
-
-   { "result": 0, "text": "Lease added." }
-       { "result": 1, "text": "missing parameter 'ip-address' (<string>:3:19)" }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-lease6-del:
-
-lease6-del reference
-====================
-
-``lease6-del`` - deletes a lease from the lease database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.3.0 (:ref:`The Lease Commands hooks library<commands-lease_cmds-lib>`)
-
-Description and examples: see :ref:`command-lease4-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "lease6-del",
-       "arguments": {
-           "ip-address": "192.0.2.202"
-       }
-   }
-
-``lease6-del`` returns a result that indicates a outcome of the operation.
-It has one of the following values: 0 (success), 1 (error), or 3 (empty).
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-lease6-get:
-
-lease6-get reference
-====================
-
-``lease6-get`` - queries the lease database and retrieves existing leases.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.3.0 (:ref:`The Lease Commands hooks library<commands-lease_cmds-lib>`)
-
-Description and examples: see :ref:`command-lease4-get`
-
-Command syntax:
-
-::
-
-   {
-     "command": "lease6-get",
-     "arguments": {
-       "ip-address": "2001:db8:1234:ab::",
-       "type": "IA_PD"
-     }
-   }
-
-``lease6-get`` returns a result that indicates a result of the operation and
-lease details, if found. It has one of the following values: 0
-(success), 1 (error), or 2 (empty).
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-lease6-get-all:
-
-lease6-get-all reference
-========================
-
-``lease6-get-all`` - retrieves all IPv6 leases
-or all leases for the specified set of subnets.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.3.0 (:ref:`The Lease Commands hooks library<commands-lease_cmds-lib>`)
-
-Description and examples: see :ref:`command-lease4-get-all`
-
-Command syntax:
-
-::
-
-   {
-       "command": "lease6-get-all",
-       "arguments": {
-           "subnets": [ 1, 2, 3, 4 ]
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "arguments": {
-           "leases": [
-               {
-                   "cltt": 12345678,
-                   "duid": "42:42:42:42:42:42:42:42",
-                   "fqdn-fwd": false,
-                   "fqdn-rev": true,
-                   "hostname": "myhost.example.com.",
-                   "hw-address": "08:08:08:08:08:08",
-                   "iaid": 1,
-                   "ip-address": "2001:db8:2::1",
-                   "preferred-lft": 500,
-                   "state": 0,
-                   "subnet-id": 44,
-                   "type": "IA_NA",
-                   "valid-lft": 3600
-               },
-               {
-                   "cltt": 12345678,
-                   "duid": "21:21:21:21:21:21:21:21",
-                   "fqdn-fwd": false,
-                   "fqdn-rev": true,
-                   "hostname": "",
-                   "iaid": 1,
-                   "ip-address": "2001:db8:0:0:2::",
-                   "preferred-lft": 500,
-                   "prefix-len": 80,
-                   "state": 0,
-                   "subnet-id": 44,
-                   "type": "IA_PD",
-                   "valid-lft": 3600
-               }
-           ]
-       },
-       "result": 0,
-       "text": "2 IPv6 lease(s) found."
-   }
-
-The ``lease6-get-all`` command may result in very large responses.
-
-.. _reference-lease6-update:
-
-lease6-update reference
-=======================
-
-``lease6-update`` - updates existing leases.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.3.0 (:ref:`The Lease Commands hooks library<commands-lease_cmds-lib>`)
-
-Description and examples: see :ref:`command-lease4-update`
-
-Command syntax:
-
-::
-
-   {
-     "command": "lease6-update",
-     "arguments": {
-       "ip-address": "2001:db8::1",
-       "duid": "88:88:88:88:88:88:88:88",
-       "iaid": 7654321,
-       "hostname": "newhostname.example.org",
-       "subnet-id": 66,
-       "force-create": false
-     }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-lease6-wipe:
-
-lease6-wipe reference
-=====================
-
-``lease6-wipe`` - removes all leases associated with a given subnet.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.3.0 (:ref:`The Lease Commands hooks library<commands-lease_cmds-lib>`)
-
-Description and examples: see :ref:`command-lease4-wipe`
-
-Command syntax:
-
-::
-
-   {
-     "command": "lease6-wipe",
-     "arguments": {
-       "subnet-id": 66
-     }
-   }
-
-Note: not all backends support this command.
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-leases-reclaim:
-
-leases-reclaim reference
-========================
-
-``leases-reclaim`` - instructs the server to
-reclaim all expired leases immediately.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.0.0 (built-in)
-
-Description and examples: see :ref:`command-leases-reclaim`
-
-Command syntax:
-
-::
-
-   {
-       "command": "leases-reclaim",
-       "arguments": {
-           "remove": true
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-libreload:
-
-libreload reference
-===================
-
-``libreload`` - unloads and then loads all currently loaded hook libraries.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.2.0 (built-in)
-
-Description and examples: see :ref:`command-libreload`
-
-Command syntax:
-
-::
-
-   {
-       "command": "libreload",
-       "arguments": { }
-   }
-
-The server will respond with a result of 0 indicating success, or 1
-indicating a failure.
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-list-commands:
-
-list-commands reference
-=======================
-
-``list-commands`` - retrieves a list of all commands supported by the server.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``, ``kea-dhcp-ddns``,
-``kea-ctrl-agent``
-
-Availability: 1.0.0 (built-in)
-
-Description and examples: see :ref:`command-list-commands`
-
-Command syntax:
-
-::
-
-   {
-       "command": "list-commands",
-       "arguments": { }
-   }
-
-The server will respond with a list of all supported commands.
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-network4-add:
-
-network4-add reference
-======================
-
-``network4-add`` - adds a new shared network.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-network4-add`
-
-Command syntax:
-
-::
-
-   {
-       "command": "network4-add",
-       "arguments": {
-           "shared-networks": [ {
-               "name": "floor13",
-               "subnet4": [
-               {
-                   "id": 100,
-                   "pools": [ { "pool": "192.0.2.2-192.0.2.99" } ],
-                   "subnet": "192.0.2.0/24",
-                   "option-data": [
-                       {
-                           "name": "routers",
-                           "data": "192.0.2.1"
-                       }
-                   ]
-               },
-               {
-                   "id": 101,
-                   "pools": [ { "pool": "192.0.3.2-192.0.3.99" } ],
-                   "subnet": "192.0.3.0/24",
-                   "option-data": [
-                       {
-                           "name": "routers",
-                           "data": "192.0.3.1"
-                       }
-                   ]
-               } ]
-           } ]
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "arguments": {
-           "shared-networks": [ { "name": "floor13" } ]
-       },
-       "result": 0,
-       "text": "A new IPv4 shared network 'floor13' added"
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-network4-del:
-
-network4-del reference
-======================
-
-``network4-del`` - deletes existing shared networks.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-network4-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "network4-del",
-       "arguments": {
-           "name": "floor13"
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "arguments": {
-           "shared-networks": [
-               {
-                   "name": "floor13"
-               }
-           ]
-       },
-       "result": 0,
-       "text": "IPv4 shared network 'floor13' deleted"
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-network4-get:
-
-network4-get reference
-======================
-
-``network4-get`` - retrieves detailed
-information about shared networks, including subnets currently being
-part of a given network.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-network4-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "network4-get",
-       "arguments": {
-           "name": "floor13"
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "Info about IPv4 shared network 'floor13' returned",
-       "arguments": {
-           "shared-networks": [
-           {
-               "match-client-id": true,
-               "name": "floor13",
-               "option-data": [ ],
-               "rebind-timer": 90,
-               "relay": {
-                   "ip-address": "0.0.0.0"
-               },
-               "renew-timer": 60,
-               "reservation-mode": "all",
-               "subnet4": [
-                   {
-                       "subnet": "192.0.2.0/24",
-                       "id": 5,
-                       // many other subnet specific details here
-                   },
-                   {
-                       "id": 6,
-                       "subnet": "192.0.3.0/31",
-                       // many other subnet specific details here
-                   }
-               ],
-               "valid-lifetime": 120
-           }
-           ]
-       }
-   }
-
-Note that the actual response contains many additional fields that are
-omitted here for clarity.
-
-.. _reference-network4-list:
-
-network4-list reference
-=======================
-
-``network4-list`` - retrieves the full list of currently configured shared networks.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-network4-list`
-
-Command syntax:
-
-::
-
-   {
-       "command": "network4-list"
-   }
-
-Response syntax:
-
-::
-
-   {
-       "arguments": {
-           "shared-networks": [
-               { "name": "floor1" },
-               { "name": "office" }
-           ]
-       },
-       "result": 0,
-       "text": "2 IPv4 network(s) found"
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-network4-subnet-add:
-
-network4-subnet-add reference
-=============================
-
-``network4-subnet-add`` - adds existing subnets to existing shared networks.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-network4-subnet-add`
-
-Command syntax:
-
-::
-
-   {
-       "command": "network4-subnet-add",
-       "arguments": {
-           "name": "floor13",
-           "id": 5
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv4 subnet 10.0.0.0/8 (id 5) is now part of shared network 'floor1'"
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-network4-subnet-del:
-
-network4-subnet-del reference
-=============================
-
-``network4-subnet-del`` - removes a subnet that is part of an existing shared
-network and demotes it to a plain, stand-alone subnet.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-network4-subnet-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "network4-subnet-del",
-       "arguments": {
-           "name": "floor13",
-           "id": 5
-       }
-    }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv4 subnet 10.0.0.0/8 (id 5) is now removed from shared network 'floor13'"
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-network6-add:
-
-network6-add reference
-======================
-
-``network6-add`` - adds a new shared network.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-network4-add`
-
-Command syntax:
-
-::
-
-   {
-       "command": "network4-add",
-       "arguments": {
-           "shared-networks": [ {
-               "name": "floor13",
-               "subnet4": [
-               {
-                   "id": 100,
-                   "pools": [ { "pool": "192.0.2.2-192.0.2.99" } ],
-                   "subnet": "192.0.2.0/24",
-                   "option-data": [
-                       {
-                           "name": "routers",
-                           "data": "192.0.2.1"
-                       }
-                   ]
-               },
-               {
-                   "id": 101,
-                   "pools": [ { "pool": "192.0.3.2-192.0.3.99" } ],
-                   "subnet": "192.0.3.0/24",
-                   "option-data": [
-                       {
-                           "name": "routers",
-                           "data": "192.0.3.1"
-                       }
-                   ]
-               } ]
-           } ]
-       }
-   }
-
-The ``network6-add`` command uses the same syntax for both the query and the
-response. However, there are some parameters that are IPv4-only (e.g.
-match-client-id) and some that are IPv6-only (e.g. interface-id).
-
-Response syntax:
-
-::
-
-   {
-       "arguments": {
-           "shared-networks": [ { "name": "floor13" } ]
-       },
-       "result": 0,
-       "text": "A new IPv4 shared network 'floor13' added"
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-network6-del:
-
-network6-del reference
-======================
-
-``network6-del`` - deletes existing shared networks.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-network4-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "network4-del",
-       "arguments": {
-           "name": "floor13"
-       }
-   }
-
-The ``network6-del`` command uses exactly the same syntax as ``network4-del``
-for both the command and the response.
-
-Response syntax:
-
-::
-
-   {
-       "command": "network4-del",
-       "arguments": {
-           "name": "floor13",
-           "subnets-action": "delete"
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-network6-get:
-
-network6-get reference
-======================
-
-``network6-get`` - retrieves detailed
-information about shared networks, including subnets that are currently
-part of a given network.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-network4-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "network4-get",
-       "arguments": {
-           "name": "floor13"
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "Info about IPv4 shared network 'floor13' returned",
-       "arguments": {
-           "shared-networks": [
-           {
-               "match-client-id": true,
-               "name": "floor13",
-               "option-data": [ ],
-               "rebind-timer": 90,
-               "relay": {
-                   "ip-address": "0.0.0.0"
-               },
-               "renew-timer": 60,
-               "reservation-mode": "all",
-               "subnet4": [
-                   {
-                       "subnet": "192.0.2.0/24",
-                       "id": 5,
-                       // many other subnet specific details here
-                   },
-                   {
-                       "id": 6,
-                       "subnet": "192.0.3.0/31",
-                       // many other subnet specific details here
-                   }
-               ],
-               "valid-lifetime": 120
-           }
-           ]
-       }
-   }
-
-Note that the actual response contains many additional fields that are
-omitted here for clarity.
-
-.. _reference-network6-list:
-
-network6-list reference
-=======================
-
-``network6-list`` - retrieves the full list of currently configured shared networks.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-network4-list`
-
-Command syntax:
-
-::
-
-   {
-       "command": "network4-list"
-   }
-
-The ``network6-list`` command follows exactly the same syntax as ``network4-list`` for
-both the query and the response.
-
-Response syntax:
-
-::
-
-   {
-       "arguments": {
-           "shared-networks": [
-               { "name": "floor1" },
-               { "name": "office" }
-           ]
-       },
-       "result": 0,
-       "text": "2 IPv4 network(s) found"
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-network6-subnet-add:
-
-network6-subnet-add reference
-=============================
-
-``network6-subnet-add`` - adds existing subnets to existing shared networks.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-network4-subnet-add`
-
-Command syntax:
-
-::
-
-   {
-       "command": "network4-subnet-add",
-       "arguments": {
-           "name": "floor13",
-           "id": 5
-       }
-   }
-
-The ``network6-subnet-add`` command uses exactly the same syntax as
-``network4-subnet-add`` for both the command and the response.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv4 subnet 10.0.0.0/8 (id 5) is now part of shared network 'floor1'"
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-network6-subnet-del:
-
-network6-subnet-del reference
-=============================
-
-``network6-subnet-del`` - removes a subnet that is part of an existing shared
-network and demotes it to a plain, stand-alone subnet.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-network4-subnet-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "network4-subnet-del",
-       "arguments": {
-           "name": "floor13",
-           "id": 5
-       }
-    }
-
-The ``network6-subnet-del`` command uses exactly the same syntax as
-``network4-subnet-del`` for both the command and the response.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv4 subnet 10.0.0.0/8 (id 5) is now removed from shared network 'floor13'"
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-global-parameter4-del:
-
-remote-global-parameter4-del reference
-======================================
-
-``remote-global-parameter4-del`` - deletes a
-global DHCPv4 parameter from the configuration database. The server will
-use the value specified in the configuration file or a default value (if
-the parameter is not specified in the configuration file) after deleting
-the parameter from the database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-global-parameter4-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-global-parameter4-del",
-       "arguments": {
-           "parameters": [ <parameter name> ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command carries the list including exactly one name of the
-parameter to be deleted.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "DHCPv4 global parameter(s) deleted.",
-       "arguments": {
-           "count": 1
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-global-parameter4-get:
-
-remote-global-parameter4-get reference
-======================================
-
-``remote-global-parameter4-get`` - fetches the
-selected global parameter for the server from the specified database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-global-parameter4-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-global-parameter4-get"
-       "arguments": {
-           "parameters": [ <parameter name> ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command carries a list including exactly one name of the parameter
-to be fetched.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "DHCPv4 global parameter found.",
-       "arguments": {
-           "parameters": {
-               <parameter name>: <parameter value>,
-               "metadata": {
-                   "server-tag": <server tag>
-               }
-           },
-           "count": 1
-       }
-   }
-
-The returned response contains a map with a global parameter name/value
-pair. The value may be a JSON string, integer, real, or boolean. The
-metadata is included and provides database-specific information
-associated with the returned object.
-
-.. _reference-remote-global-parameter4-get-all:
-
-remote-global-parameter4-get-all reference
-==========================================
-
-``remote-global-parameter4-get-all`` - fetches all
-global parameters for the server from the specified database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-global-parameter4-get-all`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-global-parameter4-get-all"
-       "arguments": {
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command contains no arguments besides the optional ``remote``.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "DHCPv4 global parameters found.",
-       "arguments": {
-           "parameters": [
-               {
-                   <first parameter name>: <first parameter value>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               },
-               {
-                   <second parameter name>: <second parameter value>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               }
-           ],
-           "count": 2
-       }
-   }
-
-The returned response contains a list of maps. Each map contains a
-global parameter name/value pair. The value may be a JSON string,
-integer, real, or boolean. The metadata is appended to each parameter and
-provides database-specific information associated with the returned
-objects.
-
-.. _reference-remote-global-parameter4-set:
-
-remote-global-parameter4-set reference
-======================================
-
-``remote-global-parameter4-set`` - creates or
-updates one or more global parameters in the configuration database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-global-parameter4-set`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-global-parameter4-set"
-       "arguments": {
-           "parameters": {
-               <first parameter name>: <first parameter value>,
-               <second parameter name>: <second parameter value>
-           },
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command carries multiple global parameters with their values. Care
-should be taken when specifying more than one parameter, because in some
-cases only a subset of the parameters may be successfully stored in the
-database and other parameters may fail to be stored. In such cases the
-``remote-global-parameter4-get-all`` command may be useful to verify the
-contents of the database after the update.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "DHCPv4 global parameter(s) successfully set."
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-global-parameter6-del:
-
-remote-global-parameter6-del reference
-======================================
-
-``remote-global-parameter6-del`` - deletes a
-global DHCPv6 parameter from the configuration database. The server will
-use the value specified in the configuration file or a default value (if
-the parameter is not specified in the configuration file) after deleting
-the parameter from the database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-global-parameter4-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-global-parameter6-del",
-       "arguments": {
-           "parameters": [ <parameter name> ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command carries the list including exactly one name of the
-parameter to be deleted.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "DHCPv6 global parameter(s) deleted.",
-       "arguments": {
-           "count": 1
-       }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-global-parameter6-get:
-
-remote-global-parameter6-get reference
-======================================
-
-``remote-global-parameter6-get`` - fetches the
-selected global parameter for the server from the specified database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-global-parameter4-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-global-parameter6-get"
-       "arguments": {
-           "parameters": [ <parameter name> ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command carries a list including exactly one name of the parameter
-to be fetched.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "DHCPv6 global parameter found.",
-       "arguments": {
-           "parameters": {
-               <parameter name>: <parameter value>,
-               "metadata": {
-                   "server-tag": <server tag>
-               }
-           },
-           "count": 1
-       }
-   }
-
-The returned response contains a map with a global parameter name/value
-pair. The value may be a JSON string, integer, real, or boolean. The
-metadata is included and provides database-specific information
-associated with the returned object.
-
-.. _reference-remote-global-parameter6-get-all:
-
-remote-global-parameter6-get-all reference
-==========================================
-
-``remote-global-parameter6-get-all`` - fetches all
-global parameters for the server from the specified database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-global-parameter4-get-all`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-global-parameter6-get-all"
-       "arguments": {
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command contains no arguments besides the optional ``remote``.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "DHCPv6 global parameters found.",
-       "arguments": {
-           "parameters": [
-               {
-                   <first parameter name>: <first parameter value>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               },
-               {
-                   <second parameter name>: <second parameter value>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               }
-           ],
-           "count": 2
-       }
-   }
-
-The returned response contains a list of maps. Each map contains a
-global parameter name/value pair. The value may be a JSON string,
-integer, real, or boolean. The metadata is appended to each parameter and
-provides database-specific information associated with the returned
-objects.
-
-.. _reference-remote-global-parameter6-set:
-
-remote-global-parameter6-set reference
-======================================
-
-``remote-global-parameter6-set`` - creates or
-updates one or more global DHCP parameters in the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-global-parameter4-set`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-global-parameter6-set"
-       "arguments": {
-           "parameters": {
-               <first parameter name>: <first parameter value>,
-               <second parameter name>: <second parameter value>
-           },
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command carries multiple global parameters with their values. Care
-should be taken when specifying more than one parameter, because in some
-cases only a subset of the parameters may be successfully stored in the
-database and other parameters may fail to be stored. In such cases the
-``remote-global-parameter6-get-all`` command may be useful to verify the
-contents of the database after the update.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "DHCPv6 global parameter(s) successfully set."
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-network4-del:
-
-remote-network4-del reference
-=============================
-
-``remote-network4-del`` - deletes an IPv4 shared
-network from the configuration database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-network4-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-network4-del",
-       "arguments": {
-           "shared-networks": [
-               {
-                   "name": <shared network name>
-               }
-           ],
-           "subnets-action": "keep" | "delete",
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes a list with exactly one name of the shared network
-to be deleted. The ``subnets-action`` command denotes whether the subnets in
-this shared network should be deleted or not.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "1 IPv4 shared network(s) deleted.",
-       "arguments": {
-           "count": 1
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-network4-get:
-
-remote-network4-get reference
-=============================
-
-``remote-network4-get`` - fetches the selected IPv4
-shared network for the server from the specified database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-network4-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-network4-get"
-       "arguments": {
-           "shared-networks": [
-               {
-                   "name": <shared network name>
-               }
-           ],
-           "subnets-include": "full" | "no",
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes a list with exactly one name of the shared network
-to be returned. The ``subnets-include`` optional parameter
-specifies whether the subnets belonging to the shared network should
-also be returned.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv4 shared network found.",
-       "arguments": {
-           "shared-networks": [
-               {
-                   "name": <shared network name>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   },
-                   <the rest of the shared network information, potentially including subnets>
-               }
-           ],
-           "count": 1
-       }
-   }
-
-If the subnets are returned with the shared network they are carried in
-the ``subnet4`` list within the shared network definition. The metadata
-is included in the returned shared network definition and provides
-the database-specific information associated with the returned object.
-
-.. _reference-remote-network4-list:
-
-remote-network4-list reference
-==============================
-
-``remote-network4-list`` - fetches a list of all
-IPv4 shared networks from the configuration database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-network4-list`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-network4-list"
-       "arguments": {
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command contains no arguments besides the optional ``remote``.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "2 IPv4 shared network(s) found.",
-       "arguments": {
-           "shared-networks": [
-               {
-                   "name": <first shared network name>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               },
-               {
-                   "name": <second shared network name>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               }
-           ],
-           "count": 2
-       }
-   }
-
-The returned response contains the list of maps. Each map contains the
-shared network name and the metadata, which provides database-specific
-information associated with the shared network. The returned list does
-not contain full definitions of the shared networks; use
-``remote-network4-get`` to fetch the complete information about the selected
-shared networks.
-
-.. _reference-remote-network4-set:
-
-remote-network4-set reference
-=============================
-
-``remote-network4-set`` - creates or replaces an
-IPv4 shared network in the configuration database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-network4-set`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-network4-set",
-       "arguments": {
-           "shared-networks": [
-               {
-                   <shared network specification excluding subnets list>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-The provided list must contain exactly one shared network specification.
-It must not contain subnets ("subnet4" parameter); the subnets are added
-to the shared network using the ``remote-subnet4-set`` command.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv4 shared network successfully set."
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-network6-del:
-
-remote-network6-del reference
-=============================
-
-``remote-network6-del`` - deletes an IPv6 shared
-network from the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-network4-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-network6-del",
-       "arguments": {
-           "shared-networks": [
-               {
-                   "name": <shared network name>
-               }
-           ],
-           "subnets-action": "keep" | "delete",
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes a list with exactly one name of the shared network
-to be deleted. The ``subnets-action`` command denotes whether the subnets in
-this shared network should be deleted or not.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "1 IPv6 shared network(s) deleted.",
-       "arguments": {
-           "count": 1
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-network6-get:
-
-remote-network6-get reference
-=============================
-
-``remote-network6-get`` - fetches the selected IPv6
-shared network for the server from the specified database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-network4-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-network6-get"
-       "arguments": {
-           "shared-networks": [
-               {
-                   "name": <shared network name>
-               }
-           ],
-           "subnets-include": "full" | "no",
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes a list with exactly one name of the shared network
-to be returned. The ``subnets-include`` optional parameter
-specifies whether the subnets belonging to the shared network should
-also be returned.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv6 shared network found.",
-       "arguments": {
-           "shared-networks": [
-               {
-                   "name": <shared network name>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   },
-                   <the rest of the shared network information, potentially including subnets>
-               }
-           ],
-           "count": 1
-       }
-   }
-
-If the subnets are returned with the shared network, they are carried in
-the ``subnet6`` list within the shared network definition. The metadata
-is included in the returned shared network definition and provides
-the database-specific information associated with the returned object.
-
-.. _reference-remote-network6-list:
-
-remote-network6-list reference
-==============================
-
-``remote-network6-list`` - fetches a list of all
-IPv6 shared networks from the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-network4-list`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-network6-list"
-       "arguments": {
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command contains no arguments besides the optional ``remote``.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "2 IPv6 shared network(s) found.",
-       "arguments": {
-           "shared-networks": [
-               {
-                   "name": <first shared network name>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               },
-               {
-                   "name": <second shared network name>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               }
-           ],
-           "count": 2
-       }
-   }
-
-The returned response contains the list of maps. Each map contains the
-shared network name and the metadata, which provides database-specific
-information associated with the shared network. The returned list does
-not contain full definitions of the shared networks; use
-``remote-network6-get`` to fetch the complete information about the selected
-shared networks.
-
-.. _reference-remote-network6-set:
-
-remote-network6-set reference
-=============================
-
-``remote-network6-set`` - creates or replaces an
-IPv6 shared network in the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-network4-set`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-network6-set",
-       "arguments": {
-           "shared-networks": [
-               {
-                   <shared network specification excluding subnets list>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-The provided list must contain exactly one shared network specification.
-It must not contain subnets ("subnet6" parameter); the subnets are added
-to the shared network using the ``remote-subnet6-set`` command.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv6 shared network successfully set."
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-option-def4-del:
-
-remote-option-def4-del reference
-================================
-
-``remote-option-def4-del`` - deletes a DHCPv4
-option definition from the configuration database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-option-def4-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-option-def4-del",
-       "arguments": {
-           "option-defs": [ {
-               "code": <option code>,
-               "space": <option space
-           } ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes a list with exactly one option definition
-specification comprising an option name and code.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "1 DHCPv4 option definition(s) deleted.",
-       "arguments": {
-           "count": 1
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-option-def4-get:
-
-remote-option-def4-get reference
-================================
-
-``remote-option-def4-get`` - fetches a DHCPv4
-option definition from the configuration database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-option-def4-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-option-def4-get",
-       "arguments": {
-           "option-defs": [
-               {
-                   "code": <option code>,
-                   "space": <option space>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-The desired option definition is identified by the pair of option
-code/space values.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "DHCPv4 option definition found.",
-       "arguments": {
-           "option-defs": [
-               {
-                   <option definition>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               }
-           ],
-           "count": 1
-       }
-   }
-
-The metadata is included and provides database-specific information
-associated with the returned object.
-
-.. _reference-remote-option-def4-get-all:
-
-remote-option-def4-get-all reference
-====================================
-
-``remote-option-def4-get-all`` - fetches all
-DHCPv4 option definitions from the configuration database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-option-def4-get-all`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-option-def4-get-all"
-       "arguments": {
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command contains no arguments besides the optional ``remote``.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "2 DHCPv4 option definition(s) found.",
-       "arguments": {
-           "option-defs": [
-               {
-                   <first option definition>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               },
-               {
-                   <second option definition>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               }
-           ],
-           "count": 2
-       }
-   }
-
-The returned response contains a list of maps. Each map contains an
-option definition specification and the metadata, including
-database-specific information associated with the returned objects.
-
-.. _reference-remote-option-def4-set:
-
-remote-option-def4-set reference
-================================
-
-``remote-option-def4-set`` - creates or replaces a
-DHCPv4 option definition in the configuration database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-option-def4-set`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-option-def4-set",
-       "arguments": {
-           "option-defs": [
-               {
-                   <option definition specification>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-The provided list must contain exactly one option definition
-specification.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "DHCPv4 option definition set."
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-option-def6-del:
-
-remote-option-def6-del reference
-================================
-
-``remote-option-def6-del`` - deletes a DHCPv6
-option definition from the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-option-def4-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-option-def6-del",
-       "arguments": {
-           "option-defs": [
-               {
-                   "code": <option code>,
-                   "space": <option space>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes a list with exactly one option definition
-specification comprising an option name and code.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "1 DHCPv6 option definition(s) deleted.",
-       "arguments": {
-           "count": 1
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-option-def6-get:
-
-remote-option-def6-get reference
-================================
-
-``remote-option-def6-get`` - fetches a DHCPv6
-option definition from the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-option-def4-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-option-def6-get",
-       "arguments": {
-           "option-defs": [
-               {
-                   "code": <option code>,
-                   "space": <option space>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-The desired option definition is identified by the pair of the option
-code/space values.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "DHCPv6 option definition found.",
-       "arguments": {
-           "option-defs": [
-               {
-                   <option definition>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               }
-           ],
-           "count": 1
-       }
-   }
-
-The metadata is included and provides database-specific information
-associated with the returned object.
-
-.. _reference-remote-option-def6-get-all:
-
-remote-option-def6-get-all reference
-====================================
-
-``remote-option-def6-get-all`` - fetches all
-DHCPv6 option definitions from the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-option-def4-get-all`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-option-def6-get-all"
-       "arguments": {
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command contains no arguments besides the optional ``remote``.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "2 DHCPv6 option definition(s) found.",
-       "arguments": {
-           "option-defs": [
-               {
-                   <first option definition>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               },
-               {
-                   <second option definition>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               }
-           ],
-           "count": 2
-       }
-   }
-
-The returned response contains a list of maps. Each map contains an
-option definition specification and the metadata, including
-database-specific information associated with the returned objects.
-
-.. _reference-remote-option-def6-set:
-
-remote-option-def6-set reference
-================================
-
-``remote-option-def6-set`` - creates or replaces a
-DHCPv6 option definition in the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-option-def4-set`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-option-def6-set",
-       "arguments": {
-           "option-defs": [
-               {
-                   <option definition specification>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-The provided list must contain exactly one option definition
-specification.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "DHCPv6 option definition set."
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-option4-global-del:
-
-remote-option4-global-del reference
-===================================
-
-``remote-option4-global-del`` - deletes a DHCPv4
-global option from the configuration database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-option4-global-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-option4-global-del",
-       "arguments": {
-           "options": [
-               {
-                   "code": <option code>
-                   "space": <option space>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes a list with exactly one option specification
-comprising an option name and code.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "1 DHCPv4 option(s) deleted.",
-       "arguments": {
-           "count": 1
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-option4-global-get:
-
-remote-option4-global-get reference
-===================================
-
-``remote-option4-global-get`` - fetches a global
-DHCPv4 option for the server from the specified database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-option4-global-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-option4-global-get",
-       "arguments": {
-           "options": [
-               {
-                   "code": <option code>,
-                   "space": <option space>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-   }
-
-The option is identified by the pair of option code/space values.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "DHCPv4 option in found.",
-       "arguments": {
-           "options": [
-               {
-                   <option information>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               }
-           ]
-       }
-   }
-
-The metadata is included and provides database-specific information
-associated with the returned object.
-
-.. _reference-remote-option4-global-get-all:
-
-remote-option4-global-get-all reference
-=======================================
-
-``remote-option4-global-get-all`` - fetches all
-DHCPv4 global options for the server from the configuration database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-option4-global-get-all`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-option4-global-get-all",
-       "arguments": {
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command takes no arguments besides the optional ``remote`` map.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "2 DHCPv4 option(s) found.",
-       "arguments": {
-           "options": [
-               {
-                   <first option specification>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               },
-               {
-                   <second option specification>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               }
-           ],
-           "count": 2
-       }
-   }
-
-The returned response contains a list of maps. Each map contains a
-global option specification and the metadata, including database-specific
-information associated with the returned object.
-
-.. _reference-remote-option4-global-set:
-
-remote-option4-global-set reference
-===================================
-
-``remote-option4-global-set`` - creates or
-replaces a DHCPv4 global option in the configuration database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-option4-global-set`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-option4-global-set",
-       "arguments": {
-           "options": [
-               {
-                   <global option specification>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-The provided list must contain exactly one option specification.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "DHCPv4 option set.",
-       "arguments": {
-           "options": [
-               {
-                   "code": <option code>,
-                   "space": <option space>
-               }
-           ]
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-option6-global-del:
-
-remote-option6-global-del reference
-===================================
-
-``remote-option6-global-del`` - deletes a DHCPv6
-global option from the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-option4-global-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-option6-global-del",
-       "arguments": {
-           "options": [
-               {
-                   "code": <option code>
-                   "space": <option space>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes a list with exactly one option specification
-comprising an option name and code.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "1 DHCPv6 option(s) deleted.",
-       "arguments": {
-           "count": 1
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-option6-global-get:
-
-remote-option6-global-get reference
-===================================
-
-``remote-option6-global-get`` - deletes a DHCPv6
-global option from the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-option4-global-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-option6-global-get",
-       "arguments": {
-           "options": [
-               {
-                   "code": <option code>,
-                   "space": <option space>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-   }
-
-The option is identified by the pair of option code/space values.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "DHCPv6 option found.",
-       "arguments": {
-           "options": [
-               {
-                   <option information>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               }
-           ]
-       }
-   }
-
-The metadata is included and provides database-specific information
-associated with the returned object.
-
-.. _reference-remote-option6-global-get-all:
-
-remote-option6-global-get-all reference
-=======================================
-
-``remote-option6-global-get-all`` - fetches all
-DHCPv6 global options for the server from the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-option4-global-get-all`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-option6-global-get-all",
-       "arguments": {
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command takes no arguments besides the optional ``remote`` map.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "2 DHCPv6 option(s) found.",
-       "arguments": {
-           "options": [
-               {
-                   <first option specification>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               },
-               {
-                   <second option specification>,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               }
-           ],
-           "count": 2
-       }
-   }
-
-The returned response contains a list of maps. Each map contains a
-global option specification and the metadata, including database-specific
-information associated with the returned object.
-
-.. _reference-remote-option6-global-set:
-
-remote-option6-global-set reference
-===================================
-
-``remote-option6-global-set`` - creates or
-replaces a DHCPv6 global option in the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-option4-global-set`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-option6-global-set",
-       "arguments": {
-           "options": [
-               {
-                   <global option specification>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-The provided list must contain exactly one option specification.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "DHCPv6 option set.",
-       "arguments": {
-           "options": [
-               {
-                   "code": <option code>,
-                   "space": <option space>
-               }
-           ]
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-subnet4-del-by-id:
-
-remote-subnet4-del-by-id reference
-==================================
-
-``remote-subnet4-del-by-id`` - deletes an IPv4
-subnet by ID from the configuration database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-subnet4-del-by-id`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-subnet4-del-by-id",
-       "arguments": {
-           "subnets": [
-               {
-                   "id": <subnet identifier>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes a list with exactly one ID of the subnet to be
-deleted.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "1 IPv4 subnet(s) deleted.",
-       "arguments": {
-           "count": 1
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-subnet4-del-by-prefix:
-
-remote-subnet4-del-by-prefix reference
-======================================
-
-``remote-subnet4-del-by-prefix`` - deletes an
-IPv4 subnet by prefix from the configuration database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-subnet4-del-by-prefix`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-subnet4-del-by-prefix",
-       "arguments": {
-           "subnets": [
-               {
-                   "subnet": <subnet prefix>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes a list with exactly one prefix of the subnet to be
-deleted.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "1 IPv4 subnet(s) deleted.",
-       "arguments": {
-           "count": 1
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-subnet4-get-by-id:
-
-remote-subnet4-get-by-id reference
-==================================
-
-``remote-subnet4-get-by-id`` - fetches a selected
-IPv4 subnet by ID for the server from the configuration database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-subnet4-get-by-id`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-subnet4-get-by-id"
-       "arguments": {
-           "subnets": [ {
-               "id": <subnet identifier>
-           } ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes a list with exactly one ID of the subnet to be
-returned.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv4 subnet found.",
-       "arguments": {
-           "subnets": [ {
-               "id": <subnet identifier>
-               "subnet": <subnet prefix>,
-               "shared-network-name": <shared network name> | null,
-               "metadata": {
-                   "server-tag": <server tag>
-               },
-               <the rest of the subnet specification here>
-           } ],
-           "count": 1
-       }
-   }
-
-If the shared network name is null, it means that the returned subnet
-does not belong to any shared network (global subnet). The metadata is
-included in the returned subnet definition and provides
-database-specific information associated with the returned object.
-
-.. _reference-remote-subnet4-get-by-prefix:
-
-remote-subnet4-get-by-prefix reference
-======================================
-
-``remote-subnet4-get-by-prefix`` - fetches a
-selected IPv4 subnet by prefix from the configuration database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-subnet4-get-by-prefix`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-subnet4-get-by-prefix"
-       "arguments": {
-           "subnets": [ {
-               "subnet": <subnet prefix>
-           } ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes a list with exactly one prefix of the subnet to be
-returned.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv4 subnet found.",
-       "arguments": {
-           "subnets": [
-               {
-                   "id": <subnet identifier>
-                   "subnet": <subnet prefix>,
-                   "shared-network-name": <shared network name> | null,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   },
-                   <the rest of the subnet specification here>
-               }
-           ],
-           "count": 1
-       }
-   }
-
-If the shared network name is null, it means that the returned subnet
-does not belong to any shared network (global subnet). The metadata is
-included in the returned subnet definition and provides
-database-specific information associated with the returned object.
-
-.. _reference-remote-subnet4-list:
-
-remote-subnet4-list reference
-=============================
-
-``remote-subnet4-list`` - fetches a list of all
-IPv4 subnets from the configuration database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-subnet4-list`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-subnet4-list"
-       "arguments": {
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes no arguments besides the optional ``remote`` map.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "2 IPv4 subnets found.",
-       "arguments": {
-           "subnets": [
-               {
-                   "id": <first subnet identifier>,
-                   "subnet": <first subnet prefix>,
-                   "shared-network-name": <shared network name> | null,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               },
-               {
-                   "id": <second subnet identifier>,
-                   "subnet": <second subnet prefix>,
-                   "shared-network-name": <shared network name> | null,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               }
-           ],
-           "count": 2
-       }
-   }
-
-The returned response contains a list of maps. Each map contains a
-subnet identifier, prefix, and shared network name to which the subnet
-belongs. If the subnet does not belong to a shared network, the name is
-null. The metadata includes database-specific information associated
-with the subnets. The returned list does not contain full subnet
-definitions; use ``remote-subnet4-get`` to fetch the complete information
-about the selected subnets.
-
-.. _reference-remote-subnet4-set:
-
-remote-subnet4-set reference
-============================
-
-``remote-subnet4-set`` - creates or replaces an
-IPv4 subnet in the configuration database.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-subnet4-set`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-subnet4-set",
-       "arguments": {
-           "subnets": [
-               {
-                   "id": <subnet identifier>,
-                   "subnet": <subnet prefix>,
-                   "shared-network-name": <shared network name> | null,
-                   <the rest of the subnet specification here>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-The provided list must contain exactly one subnet specification. The
-``shared-network-name`` parameter is required for these commands; it
-associates the subnet with the shared network by its name. If the subnet
-must not belong to any shared network (global subnet), the ``null``
-value must be specified for the shared network name.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv4 subnet successfully set.",
-       "arguments": {
-           "id": <subnet identifier>,
-           "subnet": <subnet prefix>
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-subnet6-del-by-id:
-
-remote-subnet6-del-by-id reference
-==================================
-
-``remote-subnet6-del-by-id`` - deletes an IPv6
-subnet by ID from the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-subnet4-del-by-id`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-subnet6-del-by-id",
-       "arguments": {
-           "subnets": [
-               {
-                   "id": <subnet identifier>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes a list with exactly one ID of the subnet to be
-deleted.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "1 IPv6 subnet(s) deleted.",
-       "arguments": {
-           "count": 1
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-subnet6-del-by-prefix:
-
-remote-subnet6-del-by-prefix reference
-======================================
-
-``remote-subnet6-del-by-prefix`` - deletes an
-IPv6 subnet by prefix from the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-subnet4-del-by-prefix`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-subnet6-del-by-prefix",
-       "arguments": {
-           "subnets": [
-               {
-                   "subnet": <subnet prefix>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes a list with exactly one prefix of the subnet to be
-deleted.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "1 IPv6 subnet(s) deleted.",
-       "arguments": {
-           "count": 1
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-remote-subnet6-get-by-id:
-
-remote-subnet6-get-by-id reference
-==================================
-
-``remote-subnet6-get-by-id`` - fetches a selected
-IPv6 subnet by ID for the server from the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-subnet4-get-by-id`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-subnet6-get-by-id"
-       "arguments": {
-           "subnets": [
-               {
-                   "id": <subnet identifier>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes a list with exactly one ID of the subnet to be
-returned.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv6 subnet found.",
-       "arguments": {
-           "subnets": [
-               {
-                   "id": <subnet identifier>
-                   "subnet": <subnet prefix>,
-                   "shared-network-name": <shared network name> | null,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   },
-                   <the rest of the subnet specification here>
-               }
-           ],
-           "count": 1
-       }
-   }
-
-If the shared network name is null, it means that the returned subnet
-does not belong to any shared network (global subnet). The metadata is
-included in the returned subnet definition and provides
-database-specific information associated with the returned object.
-
-.. _reference-remote-subnet6-get-by-prefix:
-
-remote-subnet6-get-by-prefix reference
-======================================
-
-``remote-subnet6-get-by-prefix`` - fetches a
-selected IPv6 subnet by prefix from the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-subnet4-get-by-prefix`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-subnet4-get-by-prefix"
-       "arguments": {
-           "subnets": [
-               {
-                   "subnet": <subnet prefix>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes a list with exactly one prefix of the subnet to be
-returned.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv6 subnet found.",
-       "arguments": {
-           "subnets": [ {
-               "id": <subnet identifier>
-               "subnet": <subnet prefix>,
-               "shared-network-name": <shared network name> | null,
-               "metadata": {
-                   "server-tag": <server tag>
-               },
-               <the rest of the subnet specification here>
-           } ],
-           "count": 1
-       }
-   }
-
-If the shared network name is null, it means that the returned subnet
-does not belong to any shared network (global subnet). The metadata is
-included in the returned subnet definition and provides
-database-specific information associated with the returned object.
-
-.. _reference-remote-subnet6-list:
-
-remote-subnet6-list reference
-=============================
-
-``remote-subnet6-list`` - fetches a list of all
-IPv6 subnets from the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-subnet4-list`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-subnet6-list"
-       "arguments": {
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-This command includes no arguments besides the optional ``remote`` map.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "2 IPv6 subnets found.",
-       "arguments": {
-           "subnets": [
-               {
-                   "id": <first subnet identifier>,
-                   "subnet": <first subnet prefix>,
-                   "shared-network-name": <shared network name> | null,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               },
-               {
-                   "id": <second subnet identifier>,
-                   "subnet": <second subnet prefix>,
-                   "shared-network-name": <shared network name> | null,
-                   "metadata": {
-                       "server-tag": <server tag>
-                   }
-               }
-           ],
-           "count": 2
-       }
-   }
-
-The returned response contains a list of maps. Each map contains a
-subnet identifier, prefix, and shared network name to which the subnet
-belongs. If the subnet does not belong to a shared network, the name is
-null. The metadata includes database-specific information associated
-with the subnets. The returned list does not contain full subnet
-definitions; use ``remote-subnet6-get`` to fetch the complete information
-about the selected subnets.
-
-.. _reference-remote-subnet6-set:
-
-remote-subnet6-set reference
-============================
-
-``remote-subnet6-set`` - creates or replaces an
-IPv4 subnet in the configuration database.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Configuration Backend Commands hooks library<commands-cb_cmds-lib>`)
-
-Description and examples: see :ref:`command-remote-subnet4-set`
-
-Command syntax:
-
-::
-
-   {
-       "command": "remote-subnet6-set",
-       "arguments": {
-           "subnets": [
-               {
-                   "id": <subnet identifier>,
-                   "subnet": <subnet prefix>,
-                   "shared-network-name": <shared network name> | null,
-                   <the rest of the subnet specification here>
-               }
-           ],
-           "remote": {
-               <specification of the database to connect to>
-           }
-       }
-   }
-
-The provided list must contain exactly one subnet specification. The
-``shared-network-name`` parameter is required for these commands; it
-associates the subnet with the shared network by its name. If the subnet
-must not belong to any shared network (global subnet), the ``null``
-value must be specified for the shared network name.
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv6 subnet successfully set.",
-       "arguments": {
-           "id": <subnet identifier>,
-           "subnet": <subnet prefix>
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-reservation-add:
-
-reservation-add reference
-=========================
-
-``reservation-add`` - adds a new host reservation. The reservation may
-include an IPv4 address, IPv6 addresses, IPv6 prefixes, various
-identifiers, a class the client will be assigned to, DHCPv4 and DHCPv6
-options, and more.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.2.0 (:ref:`The Host Commands hooks library<commands-host_cmds-lib>`)
-
-Description and examples: see :ref:`command-reservation-add`
-
-Command syntax:
-
-::
-
-   {
-       "command": "reservation-add",
-       "arguments": {
-           "reservation": {
-               "boot-file-name": <string>,
-               "comment": <string>
-               "client-id": <string>,
-               "circuit-id": <string>,
-               "duid": <string>,
-               "flex-id": <string>,
-               "ip-address": <string (IPv4 address)>,
-               "ip-addresses": [ <comma-separated strings> ],
-               "hw-address": <string>,
-               "hostname": <string>,
-               "next-server": <string (IPv4 address)>,
-               "option-data-list": [ <comma-separated structures defining options> ],
-               "prefixes": [ <comma-separated IPv6 prefixes> ],
-               "reservation-client-classes": [ <comma-separated strings> ],
-               "server-hostname": <string>,
-               "subnet-id": <integer>,
-               "user-context": <any valid JSON>,
-           }
-       }
-   }
-
-Note that ip-address, client-id, next-server, server-hostname, and
-boot-file-name are IPv4-specific. duid, ip-addresses, and prefixes are
-IPv6-specific.
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-reservation-del:
-
-reservation-del reference
-=========================
-
-``reservation-del`` - deletes an existing host reservation.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.2.0 (:ref:`The Host Commands hooks library<commands-host_cmds-lib>`)
-
-Description and examples: see :ref:`command-reservation-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "reservation-del",
-       "arguments": {
-           "subnet-id": <integer>,
-           "ip-address": <string>,
-           "identifier-type": <one of "hw-address", "duid", "circuit-id", "client-id" and "flex-id">,
-           "identifier": <string>
-       }
-   }
-
-The host reservation can be identified by either the (subnet-id, ip-address)
-pair or a triplet of (subnet-id, identifier-type, identifier).
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-reservation-get:
-
-reservation-get reference
-=========================
-
-``reservation-get`` - attempts to retrieve an existing host reservation.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.2.0 (:ref:`The Host Commands hooks library<commands-host_cmds-lib>`)
-
-Description and examples: see :ref:`command-reservation-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "reservation-get",
-       "arguments": {
-           "subnet-id": <integer>,
-           "identifier-type": <string with one value out of: hw-address|duid|circuit-id|client-id|flex-id>,
-           "identifier": <string>;
-       }
-   }
-
-The host reservation can be identified by either a (subnet-id, ip-address)
-pair or a triplet of (subnet-id, identifier-type, identifier).
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>,
-       "arguments": {
-           "boot-file-name": <string>,
-           "comment": <string>
-           "client-id": <string>,
-           "circuit-id": <string>,
-           "duid": <string>,
-           "flex-id": <string>,
-           "ip-address": <string (IPv4 address)>,
-           "ip-addresses": [ <comma-separated strings> ],
-           "hw-address": <string>,
-           "hostname": <string>,
-           "next-server": <string (IPv4 address)>,
-           "option-data-list": [ <comma-separated structures defining options> ],
-           "prefixes": [ <comma-separated IPv6 prefixes> ],
-           "reservation-client-classes": [ <comma-separated strings> ],
-           "server-hostname": <string>,
-           "subnet-id": <integer>,
-           "user-context": <any valid JSON>,
-       }
-   }
-
-The arguments object appears only if a host is found. Many fields in the
-arguments object appear only if a specific field is set.
-
-.. _reference-reservation-get-all:
-
-reservation-get-all reference
-=============================
-
-``reservation-get-all`` - retrieves all host reservations for a specified
-subnet.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Host Commands hooks library<commands-host_cmds-lib>`)
-
-Description and examples: see :ref:`command-reservation-get-all`
-
-Command syntax:
-
-::
-
-   {
-       "command": "reservation-get-all",
-       "arguments": {
-           "subnet-id": <integer>
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The ``reservation-get-all`` command may result in very large responses.
-
-.. _reference-reservation-get-page:
-
-reservation-get-page reference
-==============================
-
-``reservation-get-page`` - retrieves host reservations for a specified
-subnet by page.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Host Commands hooks library<commands-host_cmds-lib>`)
-
-Description and examples: see :ref:`command-reservation-get-page`
-
-Command syntax:
-
-::
-
-   {
-       "command": "reservation-get-page",
-       "arguments": {
-           "subnet-id": <integer>,
-           "limit": <integer>,
-           "source-index": <integer>,
-           "from": <integer>
-       }
-   }
-
-The "subnet-id" and the "limit" arguments are mandatory. The "limit"
-specifies the maximum number of host reservations to be returned, and
-the "source-index" and "from" arguments should be set to 0 when retrieving
-the first page of host reservations (if they are not specified, they will
-default to 0). To fetch subsequent pages of host reservations, the returned
-values of "source-index" and "from" must be copied from the previous response.
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-shutdown:
-
-shutdown reference
-==================
-
-``shutdown`` - instructs the server to initiate its
-shutdown procedure.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``, ``kea-dhcp-ddns``,
-``kea-ctrl-agent``
-
-Availability: 1.0.0 (built-in)
-
-Description and examples: see :ref:`command-shutdown`
-
-Command syntax:
-
-::
-
-   {
-       "command": "shutdown"
-   }
-
-The server will respond with a confirmation that the shutdown procedure
-has been initiated.
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-stat-lease4-get:
-
-stat-lease4-get reference
-=========================
-
-``stat-lease4-get`` - fetches lease
-statistics for a range of known IPv4 subnets.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.4.0 (:ref:`The Supplemental Statistics Commands hooks library<commands-stat_cmds-lib>`)
-
-Description and examples: see :ref:`command-stat-lease4-get`
-
-Command syntax:
-
-::
-
-   {
-     "command": "stat-lease4-get"
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "stat-lease4-get: 2 rows found",
-       "arguments": {
-         "result-set": {
-           "columns": [ "subnet-id",
-                          "total-addresses",
-                          "assigned-addresses",
-                          "declined-addresses" ]
-           "rows": [
-             [ 10, 256, 111, 0 ],
-             [ 20, 4098, 2034, 4 ]
-           ],
-         "timestamp": "2018-05-04 15:03:37.000000"
-         }
-       }
-     }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-stat-lease6-get:
-
-stat-lease6-get reference
-=========================
-
-``stat-lease6-get`` - fetches lease
-statistics for a range of known IPv6 subnets.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.4.0 (:ref:`The Supplemental Statistics Commands hooks library<commands-stat_cmds-lib>`)
-
-Description and examples: see :ref:`command-stat-lease4-get`
-
-Command syntax:
-
-::
-
-   {
-     "command": "stat-lease6-get",
-     "arguments": {
-       "subnet-id" : 10
-     }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "stat-lease6-get: 2 rows found",
-       "arguments": {
-         "result-set": {
-           "columns": [ "subnet-id", "total-nas", "assigned-nas", "declined-nas", "total-pds", "assigned-pds" ]
-           "rows": [
-             [ 10, 4096, 2400, 3, 0, 0],
-             [ 20, 0, 0, 0, 1048, 233 ]
-             [ 30, 256, 60, 0, 1048, 15 ]
-           ],
-         "timestamp": "2018-05-04 15:03:37.000000"
-         }
-       }
-     }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-statistic-get:
-
-statistic-get reference
-=======================
-
-``statistic-get`` - retrieves a single
-statistic. It takes a single string parameter, called "name", that specifies
-the statistic name.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.0.0 (built-in)
-
-Description and examples: see :ref:`command-statistic-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "statistic-get",
-       "arguments": {
-           "name": "pkt4-received"
-       }
-   }
-
-The server will respond with details of the requested statistic, with a
-result set to 0 indicating success and the specified statistic as the
-value of the "arguments" parameter.
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-statistic-get-all:
-
-statistic-get-all reference
-===========================
-
-``statistic-get-all`` - retrieves all statistics recorded.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.0.0 (built-in)
-
-Description and examples: see :ref:`command-statistic-get-all`
-
-Command syntax:
-
-::
-
-   {
-       "command": "statistic-get-all",
-       "arguments": { }
-   }
-
-The server will respond with details of all recorded statistics, with a
-result of 0 indicating that it iterated over all statistics (even
-when the total number of statistics is zero).
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-statistic-remove:
-
-statistic-remove reference
-==========================
-
-``statistic-remove`` - attempts to delete a
-single statistic. It takes a single string parameter, called "name", that
-specifies the statistic name.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.0.0 (built-in)
-
-Description and examples: see :ref:`command-statistic-remove`
-
-Command syntax:
-
-::
-
-   {
-       "command": "statistic-remove",
-       "arguments": {
-           "name": "pkt4-received"
-       }
-   }
-
-If the specific statistic is found and its removal was successful, the
-server will respond with a status of 0, indicating success, and an empty
-parameters field. If an error is encountered (e.g. the requested statistic
-was not found), the server will return a status code of 1 (error) and
-the text field will contain the error description.
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-statistic-remove-all:
-
-statistic-remove-all reference
-==============================
-
-``statistic-remove-all`` - attempts to
-delete all statistics.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.0.0 (built-in)
-
-Description and examples: see :ref:`command-statistic-remove-all`
-
-Command syntax:
-
-::
-
-   {
-       "command": "statistic-remove-all",
-       "arguments": { }
-   }
-
-If the removal of all statistics was successful, the server will respond
-with a status of 0, indicating success, and an empty parameters field. If
-an error is encountered, the server will return a status code of 1
-(error) and the text field will contain the error description.
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-statistic-reset:
-
-statistic-reset reference
-=========================
-
-``statistic-reset`` - sets the specified
-statistic to its neutral value: 0 for integer, 0.0 for float, 0h0m0s0us
-for time duration, and "" for string type. It takes a single string
-parameter, called "name", that specifies the statistic name.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.0.0 (built-in)
-
-Description and examples: see :ref:`command-statistic-reset`
-
-Command syntax:
-
-::
-
-   {
-       "command": "statistic-reset",
-       "arguments": {
-           "name": "pkt4-received"
-       }
-   }
-
-If the specific statistic is found and the reset was successful, the server
-will respond with a status of 0, indicating success, and an empty
-parameters field. If an error is encountered (e.g. the requested statistic
-was not found), the server will return a status code of 1 (error) and
-the text field will contain the error description.
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-statistic-reset-all:
-
-statistic-reset-all reference
-=============================
-
-``statistic-reset-all`` - sets all
-statistics to their neutral values: 0 for integer, 0.0 for float,
-0h0m0s0us for time duration, and "" for string type.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``
-
-Availability: 1.0.0 (built-in)
-
-Description and examples: see :ref:`command-statistic-reset-all`
-
-Command syntax:
-
-::
-
-   {
-       "command": "statistic-reset-all",
-       "arguments": { }
-   }
-
-If the operation is successful, the server will respond with a status of
-0, indicating success, and an empty parameters field. If an error is
-encountered, the server will return a status code of 1 (error) and the
-text field will contain the error description.
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-subnet4-add:
-
-subnet4-add reference
-=====================
-
-``subnet4-add`` - creates and adds a new subnet to
-the existing server configuration.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-subnet4-add`
-
-Command syntax:
-
-::
-
-   {
-       "command": "subnet4-add",
-       "arguments": {
-           "subnets": [ {
-               "id": 123,
-               "subnet": "10.20.30.0/24",
-               ...
-           } ]
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv4 subnet added",
-       "arguments": {
-           "subnets": [
-               {
-                   "id": 123,
-                   "subnet": "10.20.30.0/24"
-               }
-           ]
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-subnet4-del:
-
-subnet4-del reference
-=====================
-
-``subnet4-del`` - removes a subnet from the
-server's configuration. This command has no effect on other configured
-subnets, but administrators should exercise caution when
-using this command as removing a subnet may have unintended consequences.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-subnet4-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "subnet4-del",
-       "arguments": {
-           "id": 123
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv4 subnet 192.0.2.0/24 (id 123) deleted",
-       "arguments": {
-           "subnets": [
-               {
-                   "id": 123,
-                   "subnet": "192.0.2.0/24"
-               }
-           ]
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-subnet4-get:
-
-subnet4-get reference
-=====================
-
-``subnet4-get`` - retrieves detailed information
-about the specified subnet. This command usually follows the
-``subnet4-list`` command, which is used to discover available subnets with their
-respective subnet identifiers and prefixes.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-subnet4-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "subnet4-get",
-       "arguments": {
-           "id": 10
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "Info about IPv4 subnet 10.0.0.0/8 (id 10) returned",
-       "arguments": {
-           "subnets": [
-               {
-                   "subnet": "10.0.0.0/8",
-                   "id": 1,
-                   "option-data": [
-                       ....
-                   ]
-                   ...
-               }
-           ]
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-subnet4-list:
-
-subnet4-list reference
-======================
-
-``subnet4-list`` - lists all currently configured
-subnets. The subnets are returned in a brief form, i.e. a subnet
-identifier and subnet prefix are included for each subnet.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-subnet4-list`
-
-Command syntax:
-
-::
-
-   {
-       "command": "subnet4-list"
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "2 IPv4 subnets found",
-       "arguments": {
-       "subnets": [
-           {
-               "id": 10,
-               "subnet": "10.0.0.0/8"
-           },
-           {
-               "id": 100,
-               "subnet": "192.0.2.0/24"
-           }
-       ]
-   }
-
-If no IPv4 subnets are found, an error code is returned along with the
-error description.
-
-.. _reference-subnet4-update:
-
-subnet4-update reference
-========================
-
-``subnet4-update`` - updates a subnet in the
-existing server configuration.
-
-Supported by: ``kea-dhcp4``
-
-Availability: 1.6.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-subnet4-update`
-
-Command syntax:
-
-::
-
-   {
-       "command": "subnet4-update",
-       "arguments": {
-           "subnets": [ {
-               "id": 123,
-               "subnet": "10.20.30.0/24",
-               ...
-           } ]
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv4 subnet updated",
-       "arguments": {
-           "subnets": [
-               {
-                   "id": 123,
-                   "subnet": "10.20.30.0/24"
-               }
-           ]
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-subnet6-add:
-
-subnet6-add reference
-=====================
-
-``subnet6-add`` - creates and adds a new subnet to
-the existing server configuration. This operation has no impact on other
-subnets.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-subnet6-add`
-
-Command syntax:
-
-::
-
-   {
-       "command": "subnet6-add",
-       "arguments": {
-           "subnet6": [ {
-               "id": 234,
-               "subnet": "2001:db8:1::/64",
-               ...
-           } ]
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv6 subnet added",
-       "arguments": {
-           "subnet6": [
-               {
-                   "id": 234,
-                   "subnet": "2001:db8:1::/64"
-               }
-           ]
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-subnet6-del:
-
-subnet6-del reference
-=====================
-
-``subnet6-del`` - removes a subnet from the
-server's configuration. This command has no effect on other configured
-subnets, but administrators should exercise caution when
-using this command as removing a subnet may have unintended consequences.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-subnet6-del`
-
-Command syntax:
-
-::
-
-   {
-       "command": "subnet6-del",
-       "arguments": {
-           "id": 234
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv6 subnet 2001:db8:1::/64 (id 234) deleted",
-       "subnets": [
-           {
-               "id": 234,
-               "subnet": "2001:db8:1::/64"
-           }
-       ]
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-subnet6-get:
-
-subnet6-get reference
-=====================
-
-``subnet6-get`` - retrieves detailed information
-about the specified subnet. This command usually follows the
-``subnet6-list`` command, which is used to discover available subnets with their
-respective subnet identifiers and prefixes.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-subnet6-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "subnet6-get",
-       "arguments": {
-           "id": 11
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "Info about IPv6 subnet 2001:db8:1::/64 (id 11) returned",
-       "arguments": {
-           "subnets": [
-               {
-                   "subnet": "2001:db8:1::/64",
-                   "id": 1,
-                   "option-data": [
-                       ...
-                   ]
-                   ....
-               }
-           ]
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-subnet6-list:
-
-subnet6-list reference
-======================
-
-``subnet6-list`` - lists all currently configured
-subnets. The subnets are returned in a brief form, i.e. a subnet
-identifier and subnet prefix are included for each subnet.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.3.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-subnet6-list`
-
-Command syntax:
-
-::
-
-   {
-       "command": "subnet6-list"
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "2 IPv6 subnets found",
-       "arguments": {
-       "subnets": [
-           {
-               "id": 11,
-               "subnet": "2001:db8:1::/64"
-           },
-           {
-               "id": 233,
-               "subnet": "3000::/16"
-           }
-       ]
-   }
-
-If no IPv6 subnets are found, an error code is returned along with the
-error description.
-
-.. _reference-subnet6-update:
-
-subnet6-update reference
-========================
-
-``subnet6-update`` - updates a subnet in the
-existing server configuration. This operation has no impact on other
-subnets.
-
-Supported by: ``kea-dhcp6``
-
-Availability: 1.6.0 (:ref:`The Subnet Commands hooks library<commands-subnet_cmds-lib>`)
-
-Description and examples: see :ref:`command-subnet6-update`
-
-Command syntax:
-
-::
-
-   {
-       "command": "subnet6-update",
-       "arguments": {
-           "subnet6": [ {
-               "id": 234,
-               "subnet": "2001:db8:1::/64",
-               ...
-           } ]
-       }
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": 0,
-       "text": "IPv6 subnet updated",
-       "arguments": {
-           "subnet6": [
-               {
-                   "id": 234,
-                   "subnet": "2001:db8:1::/64"
-               }
-           ]
-       }
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
-
-.. _reference-version-get:
-
-version-get reference
-=====================
-
-``version-get`` - returns extended information
-about the Kea version in operation. The returned string is the same as if Kea were
-run with the -V command-line option.
-
-Supported by: ``kea-dhcp4``, ``kea-dhcp6``, ``kea-dhcp-ddns``,
-``kea-ctrl-agent``
-
-Availability: 1.2.0 (built-in)
-
-Description and examples: see :ref:`command-version-get`
-
-Command syntax:
-
-::
-
-   {
-       "command": "version-get"
-   }
-
-Response syntax:
-
-::
-
-   {
-       "result": <integer>,
-       "text": <string>
-   }
-
-The result is an integer representation of the status. Currently supported
-statuses are:
-
--  0 - success
-
--  1 - error
-
--  2 - unsupported
-
--  3 - empty (command was completed successfully, but no data were
-   affected or returned)
index 4b7f6a9a7dd2397f4774b31efe0806338105b4de..7f98ab1f275dd4abbaa53e11da961c0e1ba4fdb1 100644 (file)
@@ -147,6 +147,8 @@ message created during the last modification, etc.
 
 .. _command-remote-global-parameter4-del:
 
+.. _command-remote-global-parameter6-del:
+
 The remote-global-parameter4-del, remote-global-parameter6-del Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -174,6 +176,8 @@ parameter from the database:
 
 .. _command-remote-global-parameter4-get:
 
+.. _command-remote-global-parameter6-get:
+
 The remote-global-parameter4-get, remote-global-parameter6-get Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -278,6 +282,8 @@ Finally, the boolean value:
 
 .. _command-remote-global-parameter4-get-all:
 
+.. _command-remote-global-parameter6-get-all:
+
 The remote-global-parameter4-get-all, remote-global-parameter6-get-all Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -286,8 +292,10 @@ database. They include no arguments besides the optional ``remote`` map.
 
 .. _command-remote-global-parameter4-set:
 
-The remote-global-parameter4-set Command
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.. _command-remote-global-parameter6-set:
+
+The remote-global-parameter4-set, remote-global-parameter6-set Commands
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 This command is used to create scalar global DHCP parameters in the
 database. If any of the parameters already exists, its value is replaced
@@ -324,6 +332,8 @@ have failed.
 
 .. _command-remote-network4-del:
 
+.. _command-remote-network6-del:
+
 The remote-network4-del, remote-network6-del Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -361,6 +371,8 @@ global. This behavior corresponds to the behavior of the
 
 .. _command-remote-network4-get:
 
+.. _command-remote-network6-get:
+
 The remote-network4-get, remote-network6-get Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -394,6 +406,8 @@ with the full information about the subnets belonging to it:
 
 .. _command-remote-network4-list:
 
+.. _command-remote-network6-list:
+
 The remote-network4-list, remote-network6-list Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -408,6 +422,8 @@ The ``remote-network[46]-list`` takes no argument except the optional
 
 .. _command-remote-network4-set:
 
+.. _command-remote-network6-set:
+
 The remote-network4-set, remote-network6-set Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -468,6 +484,8 @@ specified, the default values will be used.
 
 .. _command-remote-option-def4-del:
 
+.. _command-remote-option-def6-del:
+
 The remote-option-def4-del, remote-option-def6-del Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -499,6 +517,8 @@ to the option space "isc". The default option spaces are "dhcp4" and
 
 .. _command-remote-option-def4-get:
 
+.. _command-remote-option-def6-get:
+
 The remote-option-def4-get, remote-option-def6-get Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -530,6 +550,8 @@ code of 1 and belonging to option space "isc":
 
 .. _command-remote-option-def4-get-all:
 
+.. _command-remote-option-def6-get-all:
+
 The remote-option-def4-get-all, remote-option-def6-get-all Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -538,6 +560,8 @@ database. They take no arguments except the optional ``remote`` map.
 
 .. _command-remote-option-def4-set:
 
+.. _command-remote-option-def6-set:
+
 The remote-option-def4-set, remote-option-def6-set Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -573,6 +597,8 @@ top-level "dhcp4" option space:
 
 .. _command-remote-option4-global-del:
 
+.. _command-remote-option6-global-del:
+
 The remote-option4-global-del, remote-option6-global-del Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -603,6 +629,8 @@ options belong.
 
 .. _command-remote-option4-global-get:
 
+.. _command-remote-option6-global-get:
+
 The remote-option4-global-get, remote-option6-global-get Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -633,6 +661,8 @@ The following command retrieves the IPv6 "DNS Servers" (code 23) option:
 
 .. _command-remote-option4-global-get-all:
 
+.. _command-remote-option6-global-get-all:
+
 The remote-option4-global-get-all, remote-option6-global-get-all Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -642,6 +672,8 @@ configuration database. They take no arguments except the optional
 
 .. _command-remote-option4-global-set:
 
+.. _command-remote-option6-global-set:
+
 The remote-option4-global-set, remote-option6-global-set Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -691,6 +723,8 @@ instead of the name. For example:
 
 .. _command-remote-subnet4-del-by-id:
 
+.. _command-remote-subnet6-del-by-id:
+
 The remote-subnet4-del-by-id, remote-subnet6-del-by-id Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -717,6 +751,8 @@ example, to delete the IPv4 subnet with an ID of 5:
 
 .. _command-remote-subnet4-del-by-prefix:
 
+.. _command-remote-subnet6-del-by-prefix:
+
 The remote-subnet4-del-by-prefix, remote-subnet6-del-by-prefix Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -743,6 +779,8 @@ subnet. For example:
 
 .. _command-remote-subnet4-get-by-id:
 
+.. _command-remote-subnet6-get-by-id:
+
 The remote-subnet4-get-by-id, remote-subnet6-get-by-id Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -769,6 +807,8 @@ For example:
 
 .. _command-remote-subnet4-get-by-prefix:
 
+.. _command-remote-subnet6-get-by-prefix:
+
 The remote-subnet4-get-by-prefix, remote-subnet6-get-by-prefix Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -795,6 +835,8 @@ subnet. For example:
 
 .. _command-remote-subnet4-list:
 
+.. _command-remote-subnet6-list:
+
 The remote-subnet4-list, remote-subnet6-list Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -807,6 +849,8 @@ information about the selected subnet, use the
 
 .. _command-remote-subnet4-set:
 
+.. _command-remote-subnet6-set:
+
 The remote-subnet4-set, remote-subnet6-set Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
index 5389c97bb60ae43bd83d2ebc9d0ceb9921f5d42f..1c4041cf53e1885e1d2c3b376b3dccc8f373835f 100644 (file)
@@ -130,6 +130,8 @@ clocks and restart the servers.
 Server States
 -------------
 
+.. _command-ha-heartbeat:
+
 A DHCP server operating within an HA setup runs a state machine, and the
 state of the server can be retrieved by its peers using the
 ``ha-heartbeat`` command sent over the RESTful API. If the partner
index 50cadfff623808d6b41841c03f48319933b4951f..fd8da1042d65e06496475d200a9ffae6b051cd83 100644 (file)
@@ -97,6 +97,8 @@ servers.
 
 .. _command-lease4-add:
 
+.. _command-lease6-add:
+
 The lease4-add, lease6-add Commands
 -----------------------------------
 
@@ -359,6 +361,8 @@ such lease doesn't exist (empty result).
 
 .. _command-lease4-get:
 
+.. _command-lease6-get:
+
 The lease4-get, lease6-get Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -474,6 +478,8 @@ An example result returned when the host was found:
 
 .. _command-lease4-get-all:
 
+.. _command-lease6-get-all:
+
 The lease4-get-all, lease6-get-all Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -682,6 +688,8 @@ leases were found.
 
 .. _command-lease4-del:
 
+.. _command-lease6-del:
+
 The lease4-del, lease6-del Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -729,6 +737,8 @@ properly, but the object (a lease in this case) has not been found.
 
 .. _command-lease4-update:
 
+.. _command-lease6-update:
+
 The lease4-update, lease6-update Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -784,6 +794,8 @@ An example of a command to update an IPv6 lease is:
 
 .. _command-lease4-wipe:
 
+.. _command-lease6-wipe:
+
 The lease4-wipe, lease6-wipe Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
index 1a36628c1790daa5f5d9be9c44d0d012b3424703..befa0044652a36aa9ad767731d7f4f409bb852b4 100644 (file)
@@ -59,6 +59,8 @@ configuration, Kea will not retrieve statistics for it.
 
 .. _command-stat-lease4-get:
 
+.. _command-stat-lease6-get:
+
 The stat-lease4-get, stat-lease6-get Commands
 ---------------------------------------------
 
index cb543c2d695b4b88c1986d79ddce649f84c59705..15ec046685faff043a36e8c76cd86aed5c259a5b 100644 (file)
@@ -2184,6 +2184,8 @@ The example successful response may look like this:
 
 .. _command-network4-list:
 
+.. _command-network6-list:
+
 The network4-list, network6-list Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -2220,6 +2222,8 @@ the response.
 
 .. _command-network4-get:
 
+.. _command-network6-get:
+
 The network4-get, network6-get Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -2282,6 +2286,8 @@ information.
 
 .. _command-network4-add:
 
+.. _command-network6-add:
+
 The network4-add, network6-add Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -2361,6 +2367,8 @@ applies to subnets within the network.
 
 .. _command-network4-del:
 
+.. _command-network6-del:
+
 The network4-del, network6-del Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -2421,6 +2429,8 @@ Alternatively, to completely remove the subnets, it is possible to use the
 
 .. _command-network4-subnet-add:
 
+.. _command-network6-subnet-add:
+
 The network4-subnet-add, network6-subnet-add Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -2482,6 +2492,8 @@ both the command and the response.
 
 .. _command-network4-subnet-del:
 
+.. _command-network6-subnet-del:
+
 The network4-subnet-del, network6-subnet-del Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
index 35b739f867587eef1817a483b9db22d3ba1bd62a..ef52c59943c7fda92eb4d8f03838b11440a0973f 100644 (file)
@@ -43,7 +43,7 @@ extensions = [
 source_suffix = '.rst'
 
 # The master toctree document.
-master_doc = 'arm/index'
+master_doc = 'index'
 
 # Additional docs
 messages_doc = 'kea-messages'
similarity index 69%
rename from doc/sphinx/arm/index.rst
rename to doc/sphinx/index.rst
index 4c06f20df6d837b7e80bee8fff3378706eb56400..07d2e998fcd97ee52b86bd5ae760b195341bd2b6 100644 (file)
@@ -19,26 +19,26 @@ Kea, can be found in ISC's `Knowledgebase <https://kb.isc.org/docs/kea-administr
    :numbered:
    :maxdepth: 5
 
-   intro
-   quickstart
-   install
-   admin
-   config
-   keactrl
-   agent
-   dhcp4-srv
-   dhcp6-srv
-   lease-expiration
-   congestion-handling
-   ddns
-   lfc
-   classify
-   hooks
-   stats
-   ctrl-channel
-   logging
-   shell
-   netconf
+   arm/intro
+   arm/quickstart
+   arm/install
+   arm/admin
+   arm/config
+   arm/keactrl
+   arm/agent
+   arm/dhcp4-srv
+   arm/dhcp6-srv
+   arm/lease-expiration
+   arm/congestion-handling
+   arm/ddns
+   arm/lfc
+   arm/classify
+   arm/hooks
+   arm/stats
+   arm/ctrl-channel
+   arm/logging
+   arm/shell
+   arm/netconf
 
 .. toctree::
    :caption: Appendices
@@ -46,8 +46,9 @@ Kea, can be found in ISC's `Knowledgebase <https://kb.isc.org/docs/kea-administr
    :maxdepth: 1
 
    api
-   acknowledgments
-   manpages
+   arm/manpages
+   kea-messages
+   arm/acknowledgments
 
 
 
similarity index 97%
rename from doc/sphinx/system_messages.py
rename to doc/sphinx/mes2doc.py
index 402f86cbbc091ecb4fc3205cfb069106eb2249da..12f8b697e4865bff2284c35cf90a72ab0fc54eb6 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (C) 2015-2018 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2019 Internet Systems Consortium, Inc. ("ISC")
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -27,7 +27,7 @@ import argparse
 def parse_args():
     parser = argparse.ArgumentParser(description='Convert set of *.mes files to .rst documentation format')
     parser.add_argument('-o', '--output', help='Output file name (default to stdout).')
-    parser.add_argument('files', help='Input .mes files.', nargs='+') #, required=True)
+    parser.add_argument('files', help='Input .mes files.', nargs='+')
 
     args = parser.parse_args()
     return args
@@ -69,8 +69,6 @@ def read_input_files(files):
 
 def generate_rst(messages):
     rst = '''
-:orphan:
-
 ###################
 Kea Messages Manual
 ###################