"name": "v6-dnr",
"data": "1234, 23, example.some.host.org., " // please notice comma and space at the end put on purpose
// this means empty last type of the record - binary type
-
},
// Option codes 145-65535 are unassigned.
else:
rst += ' {\n'
- rst += ' "result": "<integer>",\n'
+ rst += ' "result": <integer>,\n'
rst += ' "text": "<string>"\n'
rst += ' }'
rst += '\n\n'
}
}
-The ``command`` is the name of the command to execute and is mandatory.
-The ``arguments`` is a map of the parameters required to carry out the given
-command. The exact content and format of the map are command-specific.
+The ``command`` parameter contains the name of the command to execute and it
+is mandatory.
+The ``arguments`` map contains the parameters required to carry out the
+given command. The exact content and format of the map are command specific.
``service`` is a list of the servers at which the control command is
targeted. In the example above, the control command is targeted at the
See section :ref:`dhcp4-t1-t2-times`
for more details on generating T1 and T2.
-The ``interfaces-config`` map specifies the
-network interfaces on which the server should listen to
-DHCP messages. The ``interfaces`` parameter specifies a list of
-network interfaces on which the server should listen. Lists are opened
-and closed with square brackets, with elements separated by commas. To
+The ``interfaces-config`` map specifies the network interfaces on which the
+server should listen to DHCP messages. The ``interfaces`` parameter specifies
+a list of network interfaces on which the server should listen. Lists are
+opened and closed with square brackets, with elements separated by commas. To
listen on two interfaces, the ``interfaces-config`` element should look like
this:
not set its value(s).
The ``name``, ``code``, and ``type`` parameters are required; all others
-are optional. The ``array`` default value is ``false``. The
-``record-types`` and ``encapsulate`` default values are blank (``""``).
-The default ``space`` is ``dhcp4``.
+are optional. The ``array`` parameter default value is ``false``. The
+``record-types`` and ``encapsulate`` parameters default values are blank
+(``""``). The default ``space`` is ``dhcp4``.
Once the new option format is defined, its value is set in the same way
as for a standard option. For example, the following commands set a
...
}
-The ``type`` is set to ``"record"`` to indicate that the option contains
-multiple values of different types. These types are given as a
+The ``type`` parameter is set to ``"record"`` to indicate that the option
+contains multiple values of different types. These types are given as a
comma-separated list in the ``record-types`` field and should be ones
from those listed in :ref:`dhcp-types`.
...
}
-The ``csv-format`` is set to ``true`` to indicate that the ``data`` field
-comprises a comma-separated list of values. The values in ``data``
-must correspond to the types set in the ``record-types`` field of the
-option definition.
+The ``csv-format`` parameter is set to ``true`` to indicate that the ``data``
+field comprises a comma-separated list of values. The values in ``data`` must
+correspond to the types set in the ``record-types`` field of the option
+definition.
When ``array`` is set to ``true`` and ``type`` is set to ``"record"``, the
last field is an array, i.e. it can contain more than one value, as in:
to generate DNS removal requests to D2.
The DNS entries Kea creates contain a value for TTL (time to live).
-The ``kea-dhcp4`` calculates that value based on
+The ``kea-dhcp4`` server calculates that value based on
`RFC 4702, Section 5 <https://tools.ietf.org/html/rfc4702#section-5>`__,
which suggests that the TTL value be 1/3 of the lease's lifetime, with
a minimum value of 10 minutes.
When Does the ``kea-dhcp4`` Server Generate a DDNS Request?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-The ``kea-dhcp4`` follows the behavior prescribed for DHCP servers in `RFC
-4702 <https://tools.ietf.org/html/rfc4702>`__. It is important to keep in
-mind that ``kea-dhcp4`` makes the initial decision of when and what to
+The ``kea-dhcp4`` server follows the behavior prescribed for DHCP servers in
+`RFC 4702 <https://tools.ietf.org/html/rfc4702>`__. It is important to keep
+in mind that ``kea-dhcp4`` makes the initial decision of when and what to
update and forwards that information to D2 in the form of NCRs. Carrying
out the actual DNS updates and dealing with such things as conflict
resolution are within the purview of D2 itself
...
}
-The ``kea-dhcp4`` always generates DDNS update requests if the client
-request only contains the Host Name option. In addition, it includes
+The ``kea-dhcp4`` server always generates DDNS update requests if the
+client request only contains the Host Name option. In addition, it includes
an FQDN option in the response to the client with the FQDN N-S-O flags
set to 0-1-0, respectively. The domain name portion of the FQDN option
is the name submitted to D2 in the DDNS update request.
}
}
-The ``match-client-id`` is a boolean value which controls this behavior.
-The default value of ``true`` indicates that the server will use the
-client identifier for lease lookups and ``chaddr`` if the first lookup
+The ``match-client-id`` parameter is a boolean value which controls this
+behavior. The default value of ``true`` indicates that the server will use
+the client identifier for lease lookups and ``chaddr`` if the first lookup
returns no results. ``false`` means that the server will only use
the ``chaddr`` to search for the client's lease. Whether the DHCID for DNS
updates is generated from the client identifier or ``chaddr`` is
]
}
-The ``only-if-required`` parameter is needed here to force
-evaluation of the class after the lease has been allocated and thus the
-reserved class has been also assigned.
+The ``only-if-required`` parameter is needed here to force evaluation
+of the class after the lease has been allocated and thus the reserved
+class has been also assigned.
.. note::
host reservations lookup should be performed before lease lookup. This parameter
has effect only when multi-threading is disabled. When multi-threading is
enabled, host reservations lookup is always performed first to avoid lease
-lookup resource locking. The ``reservations-lookup-first`` defaults to ``false``
-when multi-threading is disabled.
+lookup resource locking. The ``reservations-lookup-first`` parameter defaults to
+``false`` when multi-threading is disabled.
.. _host_reservations_as_basic_access_control4:
::
+ {
"Dhcp4": {
"shared-networks": [ {
# Name of the shared network. It may be an arbitrary string
}
]
}
+ }
As demonstrated in the example, it is possible to mix shared and regular
("plain") subnets. Each shared network must have a unique name. This is
``rebind-timer`` are values (also in seconds) that define T1 and T2 timers, which govern
when the client begins the renewal and rebind procedures.
-The ``interfaces-config`` map specifies the
-network interfaces on which the server should listen to
-DHCP messages. The ``interfaces`` parameter specifies a list of
-network interfaces on which the server should listen. Lists are opened
-and closed with square brackets, with elements separated by commas. To
+The ``interfaces-config`` map specifies the network interfaces on which the
+server should listen to DHCP messages. The ``interfaces`` parameter specifies
+a list of network interfaces on which the server should listen. Lists are
+opened and closed with square brackets, with elements separated by commas. To
listen on two interfaces, the ``interfaces-config`` element should look like
this:
configuration statement only defines the format of an option and does
not set its value(s).
-The ``name``, ``code``, and ``type`` parameters are required; all
-others are optional. The ``array`` default value is ``false``. The
-``record-types`` and ``encapsulate`` default values are blank (``""``).
-The default ``space`` is ``dhcp6``.
+The ``name``, ``code``, and ``type`` parameters are required; all others
+are optional. The ``array`` parameter default value is ``false``. The
+``record-types`` and ``encapsulate`` parameters default values are blank
+(``""``). The default ``space`` is ``dhcp6``.
Once the new option format is defined, its value is set in the same way
as for a standard option. For example, the following commands set a
...
}
-The ``type`` is set to ``"record"`` to indicate that the option contains
-multiple values of different types. These types are given as a
+The ``type`` parameter is set to ``"record"`` to indicate that the option
+contains multiple values of different types. These types are given as a
comma-separated list in the ``record-types`` field and should be ones
from those listed in :ref:`dhcp-types`.
...
}
-The ``csv-format`` is set to ``true`` to indicate that the ``data`` field
-comprises a comma-separated list of values. The values in ``data``
-must correspond to the types set in the ``record-types`` field of the
-option definition.
+The ``csv-format`` parameter is set to ``true`` to indicate that the ``data``
+field comprises a comma-separated list of values. The values in ``data`` must
+correspond to the types set in the ``record-types`` field of the option
+definition.
When ``array`` is set to ``true`` and ``type`` is set to ``"record"``, the
last field is an array, i.e. it can contain more than one value, as in:
When Does the ``kea-dhcp6`` Server Generate a DDNS Request?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-The ``kea-dhcp6`` follows the behavior prescribed for DHCP servers in `RFC
-4704 <https://tools.ietf.org/html/rfc4704>`__. It is important to keep in
-mind that ``kea-dhcp6`` makes the initial decision of when and what to
+The ``kea-dhcp6`` server follows the behavior prescribed for DHCP servers in
+`RFC 4704 <https://tools.ietf.org/html/rfc4704>`__. It is important to keep
+in mind that ``kea-dhcp6`` makes the initial decision of when and what to
update and forwards that information to D2 in the form of NCRs. Carrying
out the actual DNS updates and dealing with such things as conflict
resolution are within the purview of D2 itself
...
}
-The ``kea-dhcp6`` always generates DDNS update requests if the client
-request only contains the Host Name option. In addition, it includes
+The ``kea-dhcp6`` server always generates DDNS update requests if the
+client request only contains the Host Name option. In addition, it includes
an FQDN option in the response to the client with the FQDN N-S-O flags
set to 0-1-0, respectively. The domain name portion of the FQDN option
is the name submitted to D2 in the DDNS update request.
::
+ {
"Dhcp6": {
"shared-networks": [ {
# Name of the shared network. It may be an arbitrary string
}
]
}
+ }
As demonstrated in the example, it is possible to mix shared and regular
("plain") subnets. Each shared network must have a unique name. This is
the common APIs to create, read, update, and delete (CRUD) the
configuration information in the respective databases. For example:
the ``mysql_cb`` hook library implements this API for MySQL while the
-``pgsql_cg`` hook library implements this API for PostgreSQL.
+``pgsql_cb`` hook library implements this API for PostgreSQL.
To manage the configuration information in a MySQL database, both the
``mysql_cb`` and ``cb_cmds`` libraries must be loaded by the server used for the
configuration management.
}
}
-The "dhcp4" is the top-level option space where the standard DHCPv4 options
-belong. The ``server-tags`` parameter is mandatory and must include a
+The "dhcp4" value represents the top-level option space where the standard DHCPv4
+options belong. The ``server-tags`` parameter is mandatory and must include a
single option tag or the keyword "all". If the explicit server tag is specified,
this command attempts to delete a global option associated with this
server. If there is no such option associated with the given server, no option
}
}
-The "dhcp4" is the top-level option space where the standard DHCPv4 options
-belong. The ``server-tags`` parameter cannot be specified for this command.
+The "dhcp4" value represents the top-level option space where the standard DHCPv4
+options belong. The ``server-tags`` parameter cannot be specified for this command.
.. _command-remote-option4-network-set:
}
}
-The "dhcp6" is the top-level option space where the standard DHCPv6 options
-belong. The ``server-tags`` parameter cannot be specified for this command.
+The "dhcp6" value represents the top-level option space where the standard DHCPv6
+options belong. The ``server-tags`` parameter cannot be specified for this command.
.. _command-remote-option6-pd-pool-set:
}
}
-The "dhcp4" is the top-level option space where the standard DHCPv4 options
-belong. The ``server-tags`` parameter cannot be specified for this command.
+The "dhcp4" value represents the top-level option space where the standard DHCPv4
+options belong. The ``server-tags`` parameter cannot be specified for this command.
.. _command-remote-option4-pool-set:
}
}
-The "dhcp4" is the top-level option space where the standard DHCPv4 options
-belong. The ``server-tags`` parameter cannot be specified for this command.
+The "dhcp4" value represents the top-level option space where the standard DHCPv4
+options belong. The ``server-tags`` parameter cannot be specified for this command.
.. _command-remote-option4-subnet-set:
}
}
-The ``reservation-get`` typically returns the result 0 when a query was
+``reservation-get`` typically returns the result 0 when a query was
conducted properly. In particular, 0 is returned when the host was not
found. If the query was successful, the host parameters are
returned. An example of a query that did not find the host looks as
}
}
-The ``reservation-del`` returns a result of 0 when the host deletion was
+``reservation-del`` returns a result of 0 when the host deletion was
successful, or 1 if it failed. Descriptive text is provided in the event of
an error. Here are some examples of possible results:
}
}
-The ``lease6-add`` can also be used to add leases for IPv6 prefixes. In this
-case there are three additional parameters that must be specified:
+The ``lease6-add`` command can also be used to add leases for IPv6 prefixes.
+In this case there are three additional parameters that must be specified:
``subnet-id``, ``type`` (set to "IA_PD"), and prefix length. The actual
prefix is set using the ``ip-address`` field. Note that Kea cannot guess
``subnet-id`` values for prefixes; they must be specified explicitly. For
}
-The ``lease4-del`` and ``lease6-del`` return a result that indicates the outcome
+``lease4-del`` and ``lease6-del`` return a result that indicates the outcome
of the operation. It has one of the following values: 0 (success), 1 (error),
or 3 (empty). The empty result means that a query has been completed properly,
but the object (a lease, in this case) has not been found.
}
}
-The ``lease4-resend-ddns`` and ``lease6-resend-ddns`` return an indication of the
-result of the operation.
-it has one of the following values: 0 (success), 1 (error), or 3 (empty). An empty
-result means that a query has been completed properly, but the object (a lease in
-this case) has not been found.
+``lease4-resend-ddns`` and ``lease6-resend-ddns`` return an indication of the
+result of the operation. It has one of the following values: 0 (success), 1 (error),
+or 3 (empty). An empty result means that a query has been completed properly, but the
+object (a lease in this case) has not been found.
A successful result does not mean that DNS has been successfully updated; it
indicates that a request to update DNS has been successfully created and
IdentifierBaseType::~IdentifierBaseType() {
}
+constexpr size_t DUID::MIN_DUID_LEN;
+constexpr size_t DUID::MAX_DUID_LEN;
+
DUID::DUID(const std::vector<uint8_t>& data) : IdentifierType<3, 130>(data) {
}
return (data_);
}
-constexpr size_t DUID::MIN_DUID_LEN;
-constexpr size_t DUID::MAX_DUID_LEN;
-
DUID::DUIDType DUID::getType() const {
if (data_.size() < 2) {
return (DUID_UNKNOWN);
"resp-syntax": [
"{",
" \"result\": 0,",
- " \"text\": \"<string with build details>\"",
+ " \"text\": <string with build details>",
"}"
],
"support": [
"{",
" \"result\": 0,",
" \"text\": \"2 entries returned.\",",
- " \"arguments\": \"<list of host reservations>\"",
+ " \"arguments\": <list of host reservations>",
"}"
],
"support": [
"{",
" \"result\": 0,",
" \"text\": \"123 entries returned.\",",
- " \"arguments\": \"<list of host reservations>\"",
+ " \"arguments\": <list of host reservations>",
"}"
],
"support": [
" \"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 definitions here>\" ],",
- " \"next-server\": \"<ipv4 address>\",",
- " \"server-hostname\": \"<string>\",",
- " \"boot-file-name\": \"<name of the boot file>\"",
+ " \"name\": <name of the class>,",
+ " \"test\": <test expression to be evaluated on incoming packets>,",
+ " \"option-data\": [ <option values here> ],",
+ " \"option-def\": [ <option definitions here> ],",
+ " \"next-server\": <ipv4 address>,",
+ " \"server-hostname\": <string>,",
+ " \"boot-file-name\": <name of the boot file>",
" } ]",
" }",
"}"
"{",
" \"command\": \"class-del\",",
" \"arguments\": {",
- " \"name\": \"<name of the class>\"",
+ " \"name\": <name of the class>",
" }",
"}"
],
"{",
" \"command\": \"class-get\",",
" \"arguments\": {",
- " \"name\": \"<name of the class>\"",
+ " \"name\": <name of the class>",
" }",
"}"
],
" \"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 definitions here>\" ],",
- " \"next-server\": \"<ipv4 address>\",",
- " \"server-hostname\": \"<string>\",",
- " \"boot-file-name\": \"<name of the boot file>\"",
+ " \"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 definitions here> ],",
+ " \"next-server\": <ipv4 address>,",
+ " \"server-hostname\": <string>,",
+ " \"boot-file-name\": <name of the boot file>",
" }",
" ]",
" }",
" \"arguments\": {",
" \"client-classes\": [",
" {",
- " \"name\": \"<first class name>\"",
+ " \"name\": <first class name>",
" },",
" {",
- " \"name\": \"<second class name>\"",
+ " \"name\": <second class name>",
" }",
" ]",
" }",
" \"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 definitions here>\" ],",
- " \"next-server\": \"<ipv4 address>\",",
- " \"server-hostname\": \"<string>\",",
- " \"boot-file-name\": \"<name of the boot file>\"",
+ " \"name\": <name of the class>,",
+ " \"test\": <test expression to be evaluated on incoming packets>,",
+ " \"option-data\": [ <option values here> ],",
+ " \"option-def\": [ <option definitions here> ],",
+ " \"next-server\": <ipv4 address>,",
+ " \"server-hostname\": <string>,",
+ " \"boot-file-name\": <name of the boot file>",
" } ]",
" }",
"}"
"name": "config-get",
"resp-syntax": [
"{",
- " \"result\": \"<integer>\",",
+ " \"result\": <integer>,",
" \"arguments\": {",
- " \"<Dhcp4, Dhcp6, or Control-agent object>\": \"<JSON configuration here>\" ",
+ " <Dhcp4, Dhcp6, or Control-agent object>: <JSON configuration here> ",
" }",
"}"
],
"This command instructs the server to check whether the new configuration supplied in the command's arguments can be loaded."
],
"cmd-comment": [
- "In the example below, \"<server>\" is the configuration element name for a given server such as \"Dhcp4\" or \"Dhcp6\"."
+ "In the example below, <server> is the configuration element name for a given server such as \"Dhcp4\" or \"Dhcp6\"."
],
"cmd-syntax": [
"{",
" \"result\": 0,",
" \"text\": \"HA peer status returned.\",",
" \"arguments\": {",
- " \"state\": \"<server state>\",",
- " \"date-time\": \"<server notion of time>\",",
- " \"scopes\": [ \"<first scope>, <second scope>\" ],",
- " \"unsent-update-count\": \"<total number of lease allocations in partner-down state>\"",
+ " \"state\": <server state>,",
+ " \"date-time\": <server notion of time>,",
+ " \"scopes\": [ <first scope>, <second scope>, ... ],",
+ " \"unsent-update-count\": <total number of lease allocations in partner-down state>",
" }",
"}"
],
"{",
" \"command\": \"ha-maintenance-notify\",",
" \"arguments\": {",
- " \"cancel\": \"<boolean>\"",
+ " \"cancel\": <boolean>",
" }",
"}"
],
"cmd-syntax": [
"{",
" \"command\": \"ha-scopes\",",
- " \"service\": [ \"<service, typically 'dhcp4' or 'dhcp6'>\" ],",
+ " \"service\": [ <service, typically 'dhcp4' or 'dhcp6'> ],",
" \"arguments\": {",
" \"scopes\": [ \"HA_server1\", \"HA_server2\" ]",
" }",
"cmd-syntax": [
"{",
" \"command\": \"ha-sync\",",
- " \"service\": [ \"<service affected: 'dhcp4' or 'dhcp6'>\" ],",
+ " \"service\": [ <service affected: 'dhcp4' or 'dhcp6'> ],",
" \"arguments\": {",
- " \"server-name\": \"<name of the partner server>\",",
- " \"max-period\": \"<integer, in seconds>\"",
+ " \"server-name\": <name of the partner server>,",
+ " \"max-period\": <integer, in seconds>",
" }",
"}"
],
"{",
" \"command\": \"lease4-get-all\",",
" \"arguments\": {",
- " \"subnets\": [ 1, 2, 3 ]",
+ " \"subnets\": [ 1, 2, 3, ... ]",
" }",
"}"
],
"{",
" \"command\": \"lease4-get-page\",",
" \"arguments\": {",
- " \"limit\": \"<integer>\",",
- " \"from\": \"<IPv4 address or 'start'>\"",
+ " \"limit\": <integer>,",
+ " \"from\": <IPv4 address or 'start'>",
" }",
"}"
],
" {",
" \"ip-address\": \"2001:db8:abcd::\",",
" \"type\": \"IA_PD\",",
- " \"<other\": \"properties>\"",
+ " ...",
" },",
" {",
" \"ip-address\": \"2001:db8:abcd::234\",",
" \"type\": \"IA_NA\",",
- " \"<other\": \"properties>\"",
+ " ...",
" }",
" ],",
" \"leases\": [",
" \"subnet-id\": 66,",
" \"ip-address\": \"2001:db8:cafe::\",",
" \"type\": \"IA_PD\",",
- " \"<other\": \"properties>\"",
+ " ...",
" },",
" {",
" \"subnet-id\": 66,",
" \"ip-address\": \"2001:db8:abcd::333\",",
" \"type\": \"IA_NA\",",
- " \"<other\": \"properties>\"",
+ " ...",
" }",
" ]",
" }",
" {",
" \"ip-address\": \"2001:db8:abcd::\",",
" \"type\": \"IA_PD\",",
- " \"result\": \"<control result>\",",
- " \"error-message\": \"<error message>\"",
+ " \"result\": <control result>,",
+ " \"error-message\": <error message>",
" }",
" ],",
" \"failed-leases\": [",
" {",
" \"ip-address\": \"2001:db8:cafe::\",",
" \"type\": \"IA_PD\",",
- " \"result\": \"<control result>\",",
- " \"error-message\": \"<error message>\"",
+ " \"result\": <control result>,",
+ " \"error-message\": <error message>",
" }",
" ]",
" }",
"{",
" \"command\": \"lease6-get-page\",",
" \"arguments\": {",
- " \"limit\": \"<integer>\",",
- " \"from\": \"<IPv6 address or 'start'>\"",
+ " \"limit\": <integer>,",
+ " \"from\": <IPv6 address or 'start'>",
" }",
"}"
],
" {",
" \"subnet\": \"192.0.2.0/24\",",
" \"id\": 5,",
- " \"<other\": \"properties>\"",
+ " <many other subnet specific details here>",
" },",
" {",
" \"subnet\": \"192.0.3.0/31\",",
" \"id\": 6,",
- " \"<other\": \"properties>\"",
+ " <many other subnet specific details here>",
" }",
" ],",
" \"valid-lifetime\": 120",
" {",
" \"subnet\": \"2003:db8:1::/64\",",
" \"id\": 5,",
- " \"<other\": \"properties>\"",
+ " <many other subnet specific details here>",
" },",
" {",
" \"subnet\": \"2003:db8:2::/71\",",
" \"id\": 6,",
- " \"<other\": \"properties>\"",
+ " <many other subnet specific details here>",
" }",
" ],",
" \"valid-lifetime\": 120",
" \"arguments\": {",
" \"client-classes\": [",
" {",
- " \"name\": \"<client class name>\"",
+ " \"name\": <client class name>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"command\": \"remote-class4-get-all\",",
" \"arguments\": {",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
"}"
],
" \"arguments\": {",
" \"client-classes\": [",
" {",
- " \"<first\": \"client class specification>\",",
+ " <first client class specification>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
" },",
" {",
- " \"<second\": \"client class specification>\",",
+ " <second client class specification>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, ... ]",
" }",
" }",
" ],",
" \"arguments\": {",
" \"client-classes\": [",
" {",
- " \"name\": \"<client class name>\"",
+ " \"name\": <client class name>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"client-classes\": [",
" {",
- " \"name\": \"<client class name>\",",
+ " \"name\": <client class name>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" },",
- " \"<the\": \"rest of the client class information>\"",
+ " <the rest of the client class information>",
" }",
" ],",
" \"count\": 1",
" \"arguments\": {",
" \"client-class\": [",
" {",
- " \"<client\": \"class specification>\",",
- " \"follow-class-name\": \"<existing class name>\"",
+ " <client class specification>,",
+ " \"follow-class-name\": <existing class name>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
"}"
],
" \"arguments\": {",
" \"client-classes\": [",
" {",
- " \"name\": \"<set client class name>\"",
+ " \"name\": <set client class name>",
" }",
" ]",
" }",
" \"arguments\": {",
" \"client-classes\": [",
" {",
- " \"name\": \"<client class name>\"",
+ " \"name\": <client class name>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"command\": \"remote-class6-get-all\",",
" \"arguments\": {",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
"}"
],
" \"arguments\": {",
" \"client-classes\": [",
" {",
- " \"<first\": \"client class specification>\",",
+ " <first client class specification>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
" },",
" {",
- " \"<second\": \"client class specification>\",",
+ " <second client class specification>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, ... ]",
" }",
" }",
" ],",
" \"arguments\": {",
" \"client-classes\": [",
" {",
- " \"name\": \"<client class name>\"",
+ " \"name\": <client class name>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"client-classes\": [",
" {",
- " \"name\": \"<client class name>\",",
+ " \"name\": <client class name>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" },",
- " \"<the\": \"rest of the client class information>\"",
+ " <the rest of the client class information>",
" }",
" ],",
" \"count\": 1",
" \"arguments\": {",
" \"client-class\": [",
" {",
- " \"<client\": \"class specification>\",",
- " \"follow-class-name\": \"<existing class name>\"",
+ " <client class specification>,",
+ " \"follow-class-name\": <existing class name>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
"}"
],
" \"arguments\": {",
" \"client-classes\": [",
" {",
- " \"name\": \"<set client class name>\"",
+ " \"name\": <set client class name>",
" }",
" ]",
" }",
"{",
" \"command\": \"remote-global-parameter4-del\",",
" \"arguments\": {",
- " \"parameters\": [ \"<parameter name as string>\" ],",
+ " \"parameters\": [ <parameter name as string> ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"command\": \"remote-global-parameter4-get-all\",",
" \"arguments\": {",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"arguments\": {",
" \"parameters\": [",
" {",
- " \"<first\": \"parameter name>: <first parameter value>\",",
+ " <first parameter name>: <first parameter value>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" },",
" {",
- " \"<second\": \"parameter name>: <second parameter value>\",",
+ " <second parameter name>: <second parameter value>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" }",
" ],",
"{",
" \"command\": \"remote-global-parameter4-get\",",
" \"arguments\": {",
- " \"parameters\": [ \"<parameter name as string>\" ],",
+ " \"parameters\": [ <parameter name as string> ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"text\": \"DHCPv4 global parameter found.\",",
" \"arguments\": {",
" \"parameters\": {",
- " \"<parameter\" :\" name>: <parameter value>\",",
+ " <parameter name>: <parameter value>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" },",
" \"count\": 1",
" \"command\": \"remote-global-parameter4-set\",",
" \"arguments\": {",
" \"parameters\": {",
- " \"<first\": \"parameter name>: <first parameter value>\",",
- " \"<second\": \"parameter name>: <second parameter value>\"",
+ " <first parameter name>: <first parameter value>,",
+ " <second parameter name>: <second parameter value>",
" },",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"text\": \"DHCPv4 global parameter(s) successfully set.\",",
" \"arguments\": {",
" \"parameters\": {",
- " \"<first\": \"parameter name>: <first parameter value>\",",
- " \"<second\": \"parameter name>: <second parameter value>\"",
+ " <first parameter name>: <first parameter value>,",
+ " <second parameter name>: <second parameter value>",
" },",
" \"count\": 2",
" }",
"{",
" \"command\": \"remote-global-parameter6-del\",",
" \"arguments\": {",
- " \"parameters\": [ \"<parameter name as string>\" ],",
+ " \"parameters\": [ <parameter name as string> ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"command\": \"remote-global-parameter6-get-all\",",
" \"arguments\": {",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"arguments\": {",
" \"parameters\": [",
" {",
- " \"<first\": \"parameter name>: <first parameter value>\",",
+ " <first parameter name>: <first parameter value>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" },",
" {",
- " \"<second\": \"parameter name>: <second parameter value>\",",
+ " <second parameter name>: <second parameter value>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" }",
" ],",
"{",
" \"command\": \"remote-global-parameter6-get\",",
" \"arguments\": {",
- " \"parameters\": [ \"<parameter name as string>\" ],",
+ " \"parameters\": [ <parameter name as string> ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"text\": \"DHCPv6 global parameter found.\",",
" \"arguments\": {",
" \"parameters\": {",
- " \"<parameter\": \"name>: <parameter value>\",",
+ " <parameter name>: <parameter value>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" },",
" \"count\": 1",
" \"command\": \"remote-global-parameter6-set\",",
" \"arguments\": {",
" \"parameters\": {",
- " \"<first\": \"parameter name>: <first parameter value>\",",
- " \"<second\": \"parameter name>: <second parameter value>\"",
+ " <first parameter name>: <first parameter value>,",
+ " <second parameter name>: <second parameter value>",
" },",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"text\": \"DHCPv6 global parameter(s) successfully set.\",",
" \"arguments\": {",
" \"parameters\": {",
- " \"<first\": \"parameter name>: <first parameter value>\",",
- " \"<second\": \"parameter name>: <second parameter value>\"",
+ " <first parameter name>: <first parameter value>,",
+ " <second parameter name>: <second parameter value>",
" },",
" \"count\": 2",
" }",
" \"arguments\": {",
" \"shared-networks\": [",
" {",
- " \"name\": \"<shared network name>\"",
+ " \"name\": <shared network name>",
" }",
" ],",
- " \"subnets-action\": \"<'keep' | 'delete'>\",",
+ " \"subnets-action\": <'keep' | 'delete'>,",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"shared-networks\": [",
" {",
- " \"name\": \"<shared network name>\"",
+ " \"name\": <shared network name>",
" }",
" ],",
- " \"subnets-include\": \"<'full' | 'no'>\",",
+ " \"subnets-include\": <'full' | 'no'>,",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"shared-networks\": [",
" {",
- " \"name\": \"<shared network name>\",",
+ " \"name\": <shared network name>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" },",
- " \"<the\": \"rest of the shared network information, potentially including subnets>\"",
+ " <the rest of the shared network information, potentially including subnets>",
" }",
" ],",
" \"count\": 1",
" \"command\": \"remote-network4-list\",",
" \"arguments\": {",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
"}"
],
" \"arguments\": {",
" \"shared-networks\": [",
" {",
- " \"name\": \"<first shared network name>\",",
+ " \"name\": <first shared network name>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
" },",
" {",
- " \"name\": \"<second shared network name>\",",
+ " \"name\": <second shared network name>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, ... ]",
" }",
" }",
" ],",
" \"arguments\": {",
" \"shared-networks\": [",
" {",
- " \"<shared\": \"network specification excluding subnets list>\"",
+ " <shared network specification excluding subnets list>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
"}"
],
" \"arguments\": {",
" \"shared-networks\": [",
" {",
- " \"name\": \"<shared network name>\"",
+ " \"name\": <shared network name>",
" }",
" ],",
- " \"subnets-action\": \"<'keep' | 'delete'>\",",
+ " \"subnets-action\": <'keep' | 'delete'>,",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"shared-networks\": [",
" {",
- " \"name\": \"<shared network name>\"",
+ " \"name\": <shared network name>",
" }",
" ],",
- " \"subnets-include\": \"<'full' | 'no'>\",",
+ " \"subnets-include\": <'full' | 'no'>,",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"shared-networks\": [",
" {",
- " \"name\": \"<shared network name>\",",
+ " \"name\": <shared network name>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" },",
- " \"<the\": \"rest of the shared network information, potentially including subnets>\"",
+ " <the rest of the shared network information, potentially including subnets>",
" }",
" ],",
" \"count\": 1",
" \"command\": \"remote-network6-list\",",
" \"arguments\": {",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
"}"
],
" \"arguments\": {",
" \"shared-networks\": [",
" {",
- " \"name\": \"<first shared network name>\",",
+ " \"name\": <first shared network name>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
" },",
" {",
- " \"name\": \"<second shared network name>\",",
+ " \"name\": <second shared network name>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, ... ]",
" }",
" }",
" ],",
" \"arguments\": {",
" \"shared-networks\": [",
" {",
- " \"<shared\": \"network specification excluding subnets list>\"",
+ " <shared network specification excluding subnets list>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
"}"
],
" \"command\": \"remote-option-def4-del\",",
" \"arguments\": {",
" \"option-defs\": [ {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" } ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"command\": \"remote-option-def4-get-all\",",
" \"arguments\": {",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"arguments\": {",
" \"option-defs\": [",
" {",
- " \"<first\": \"option definition>\",",
+ " <first option definition>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" },",
" {",
- " \"<second\": \"option definition>\",",
+ " <second option definition>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" }",
" ],",
" \"arguments\": {",
" \"option-defs\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"arguments\": {",
" \"option-defs\": [",
" {",
- " \"<option\": \"definition>\",",
+ " <option definition>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" }",
" ],",
" \"arguments\": {",
" \"option-defs\": [",
" {",
- " \"<option\": \"definition specification>\"",
+ " <option definition specification>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"command\": \"remote-option-def6-del\",",
" \"arguments\": {",
" \"option-defs\": [ {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" } ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"command\": \"remote-option-def6-get-all\",",
" \"arguments\": {",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"arguments\": {",
" \"option-defs\": [",
" {",
- " \"<first\": \"option definition>\",",
+ " <first option definition>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" },",
" {",
- " \"<second\": \"option definition>\",",
+ " <second option definition>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" }",
" ],",
" \"arguments\": {",
" \"option-defs\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"arguments\": {",
" \"option-defs\": [",
" {",
- " \"<option\": \"definition>\",",
+ " <option definition>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" }",
" ],",
" \"arguments\": {",
" \"option-defs\": [",
" {",
- " \"<option\": \"definition specification>\"",
+ " <option definition specification>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"arguments\": {",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"command\": \"remote-option4-global-get-all\",",
" \"arguments\": {",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"arguments\": {",
" \"options\": [",
" {",
- " \"<first\": \"option specification>\",",
+ " <first option specification>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" },",
" {",
- " \"<second\": \"option specification>\",",
+ " <second option specification>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" }",
" ],",
" \"arguments\": {",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"arguments\": {",
" \"options\": [",
" {",
- " \"<option\": \"information>\",",
+ " <option information>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" }",
" ]",
" \"arguments\": {",
" \"options\": [",
" {",
- " \"<global\": \"option specification>\"",
+ " <global option specification>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"arguments\": {",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ]",
" }",
" \"arguments\": {",
" \"shared-networks\": [",
" {",
- " \"name\": \"<shared network name>\"",
+ " \"name\": <shared network name>",
" }",
" ],",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"shared-networks\": [",
" {",
- " \"name\": \"<shared network name>\"",
+ " \"name\": <shared network name>",
" }",
" ],",
" \"options\": [",
" {",
- " \"<shared\": \"network option specification>\"",
+ " <shared network option specification>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ]",
" }",
" \"arguments\": {",
" \"pools\": [",
" {",
- " \"pool\": \"<pool range or prefix>\"",
+ " \"pool\": <pool range or prefix>",
" }",
" ],",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"pools\": [",
" {",
- " \"pool\": \"<pool range or prefix>\"",
+ " \"pool\": <pool range or prefix>",
" }",
" ],",
" \"options\": [",
" {",
- " \"<address\": \"pool option specification>\"",
+ " <address pool option specification>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ]",
" }",
" \"arguments\": {",
" \"subnets\": [",
" {",
- " \"id\": \"<subnet identifier>\"",
+ " \"id\": <subnet identifier>",
" }",
" ],",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"subnets\": [",
" {",
- " \"id\": \"<subnet identifier>\"",
+ " \"id\": <subnet identifier>",
" }",
" ],",
" \"options\": [",
" {",
- " \"<subnet\": \"option specification>\"",
+ " <subnet option specification>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ]",
" }",
" \"arguments\": {",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"command\": \"remote-option6-global-get-all\",",
" \"arguments\": {",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"arguments\": {",
" \"options\": [",
" {",
- " \"<first\": \"option specification>\",",
+ " <first option specification>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" },",
" {",
- " \"<second\": \"option specification>\",",
+ " <second option specification>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" }",
" ],",
" \"arguments\": {",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"arguments\": {",
" \"options\": [",
" {",
- " \"<option\": \"information>\",",
+ " <option information>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<server tag>\" ]",
+ " \"server-tags\": [ <server tag> ]",
" }",
" }",
" ]",
" \"arguments\": {",
" \"options\": [",
" {",
- " \"<global\": \"option specification>\"",
+ " <global option specification>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<single server tag as string>\" ]",
+ " \"server-tags\": [ <single server tag as string> ]",
" }",
"}"
],
" \"arguments\": {",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ]",
" }",
" \"arguments\": {",
" \"shared-networks\": [",
" {",
- " \"name\": \"<shared network name>\"",
+ " \"name\": <shared network name>",
" }",
" ],",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"shared-networks\": [",
" {",
- " \"name\": \"<shared network name>\"",
+ " \"name\": <shared network name>",
" }",
" ],",
" \"options\": [",
" {",
- " \"<shared\": \"network option specification>\"",
+ " <shared network option specification>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ]",
" }",
" \"arguments\": {",
" \"pd-pools\": [",
" {",
- " \"prefix\": \"<pool prefix (address part)>\",",
- " \"prefix-len\": \"<pool prefix (length part)>\"",
+ " \"prefix\": <pool prefix (address part)>,",
+ " \"prefix-len\": <pool prefix (length part)>",
" }",
" ],",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"pd-pools\": [",
" {",
- " \"prefix\": \"<pool prefix (address part)>\",",
- " \"prefix-len\": \"<pool prefix (length part)>\"",
+ " \"prefix\": <pool prefix (address part)>,",
+ " \"prefix-len\": <pool prefix (length part)>",
" }",
" ],",
" \"options\": [",
" {",
- " \"<prefix\": \"delegation pool option specification>\"",
+ " <prefix delegation pool option specification>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ]",
" }",
" \"arguments\": {",
" \"pools\": [",
" {",
- " \"pool\": \"<pool range or prefix>\"",
+ " \"pool\": <pool range or prefix>",
" }",
" ],",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"pools\": [",
" {",
- " \"pool\": \"<pool range or prefix>\"",
+ " \"pool\": <pool range or prefix>",
" }",
" ],",
" \"options\": [",
" {",
- " \"<address\": \"pool option specification>\"",
+ " <address pool option specification>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ]",
" }",
" \"arguments\": {",
" \"subnets\": [",
" {",
- " \"id\": \"<subnet identifier>\"",
+ " \"id\": <subnet identifier>",
" }",
" ],",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"subnets\": [",
" {",
- " \"id\": \"<subnet identifier>\"",
+ " \"id\": <subnet identifier>",
" }",
" ],",
" \"options\": [",
" {",
- " \"<subnet\": \"option specification>\"",
+ " <subnet option specification>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"options\": [",
" {",
- " \"code\": \"<option code>\",",
- " \"space\": \"<option space>\"",
+ " \"code\": <option code>,",
+ " \"space\": <option space>",
" }",
" ]",
" }",
" \"arguments\": {",
" \"servers\": [",
" {",
- " \"server-tag\": \"<server name>\"",
+ " \"server-tag\": <server name>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"command\": \"remote-server4-get-all\",",
" \"arguments\": {",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"servers\": [",
" {",
- " \"server-tag\": \"<first server tag>\",",
- " \"description\": \"<first server description>\"",
+ " \"server-tag\": <first server tag>,",
+ " \"description\": <first server description>",
" },",
" {",
- " \"server-tag\": \"<second server tag>\",",
- " \"description\": \"<second server description>\"",
+ " \"server-tag\": <second server tag>,",
+ " \"description\": <second server description>",
" }",
" ],",
" \"count\": 2",
" \"arguments\": {",
" \"servers\": [",
" {",
- " \"server-tag\": \"<server tag>\"",
+ " \"server-tag\": <server tag>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"servers\": [",
" {",
- " \"server-tag\": \"<server tag>\",",
- " \"description\": \"<server description>\"",
+ " \"server-tag\": <server tag>,",
+ " \"description\": <server description>",
" }",
" ],",
" \"count\": 1",
" \"arguments\": {",
" \"servers\": [",
" {",
- " \"server-tag\": \"<server tag>\",",
- " \"description\": \"<server description>\"",
+ " \"server-tag\": <server tag>,",
+ " \"description\": <server description>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"servers\": [",
" {",
- " \"server-tag\": \"<server tag>\",",
- " \"description\": \"<server description>\"",
+ " \"server-tag\": <server tag>,",
+ " \"description\": <server description>",
" }",
" ]",
" }",
" \"arguments\": {",
" \"servers\": [",
" {",
- " \"server-tag\": \"<server name>\"",
+ " \"server-tag\": <server name>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"command\": \"remote-server6-get-all\",",
" \"arguments\": {",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"servers\": [",
" {",
- " \"server-tag\": \"<first server tag>\",",
- " \"description\": \"<first server description>\"",
+ " \"server-tag\": <first server tag>,",
+ " \"description\": <first server description>",
" },",
" {",
- " \"server-tag\": \"<second server tag>\",",
- " \"description\": \"<second server description>\"",
+ " \"server-tag\": <second server tag>,",
+ " \"description\": <second server description>",
" }",
" ],",
" \"count\": 2",
" \"arguments\": {",
" \"servers\": [",
" {",
- " \"server-tag\": \"<server tag>\"",
+ " \"server-tag\": <server tag>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"servers\": [",
" {",
- " \"server-tag\": \"<server tag>\",",
- " \"description\": \"<server description>\"",
+ " \"server-tag\": <server tag>,",
+ " \"description\": <server description>",
" }",
" ],",
" \"count\": 1",
" \"arguments\": {",
" \"servers\": [",
" {",
- " \"server-tag\": \"<server tag>\",",
- " \"description\": \"<server description>\"",
+ " \"server-tag\": <server tag>,",
+ " \"description\": <server description>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"servers\": [",
" {",
- " \"server-tag\": \"<server tag>\",",
- " \"description\": \"<server description>\"",
+ " \"server-tag\": <server tag>,",
+ " \"description\": <server description>",
" }",
" ]",
" }",
" \"arguments\": {",
" \"subnets\": [",
" {",
- " \"id\": \"<subnet identifier>\"",
+ " \"id\": <subnet identifier>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"subnets\": [",
" {",
- " \"subnet\": \"<subnet prefix>\"",
+ " \"subnet\": <subnet prefix>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"command\": \"remote-subnet4-get-by-id\",",
" \"arguments\": {",
" \"subnets\": [ {",
- " \"id\": \"<subnet identifier>\"",
+ " \"id\": <subnet identifier>",
" } ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"text\": \"IPv4 subnet found.\",",
" \"arguments\": {",
" \"subnets\": [ {",
- " \"id\": \"<subnet identifier>\",",
- " \"subnet\": \"<subnet prefix>\",",
- " \"shared-network-name\": \"<shared network name or null>\",",
+ " \"id\": <subnet identifier>,",
+ " \"subnet\": <subnet prefix>,",
+ " \"shared-network-name\": <shared network name or null>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" },",
- " \"<the\": \"rest of the subnet specification here>\"",
+ " <the rest of the subnet specification here>",
" } ],",
" \"count\": 1",
" }",
" \"command\": \"remote-subnet4-get-by-prefix\",",
" \"arguments\": {",
" \"subnets\": [ {",
- " \"subnet\": \"<subnet prefix>\"",
+ " \"subnet\": <subnet prefix>",
" } ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"subnets\": [",
" {",
- " \"id\": \"<subnet identifier>\",",
- " \"subnet\": \"<subnet prefix>\",",
- " \"shared-network-name\": \"<shared network name or null>\",",
+ " \"id\": <subnet identifier>,",
+ " \"subnet\": <subnet prefix>,",
+ " \"shared-network-name\": <shared network name or null>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" },",
- " \"<the\": \"rest of the subnet specification here>\"",
+ " <the rest of the subnet specification here>",
" }",
" ],",
" \"count\": 1",
" \"command\": \"remote-subnet4-list\",",
" \"arguments\": {",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
"}"
],
" \"arguments\": {",
" \"subnets\": [",
" {",
- " \"id\": \"<first subnet identifier>\",",
- " \"subnet\": \"<first subnet prefix>\",",
- " \"shared-network-name\": \"<shared network name or null>\",",
+ " \"id\": <first subnet identifier>,",
+ " \"subnet\": <first subnet prefix>,",
+ " \"shared-network-name\": <shared network name or null>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
" },",
" {",
- " \"id\": \"<second subnet identifier>\",",
- " \"subnet\": \"<second subnet prefix>\",",
- " \"shared-network-name\": \"<shared network name or null>\",",
+ " \"id\": <second subnet identifier>,",
+ " \"subnet\": <second subnet prefix>,",
+ " \"shared-network-name\": <shared network name or null>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, ... ]",
" }",
" }",
" ],",
" \"arguments\": {",
" \"subnets\": [",
" {",
- " \"id\": \"<subnet identifier>\",",
- " \"subnet\": \"<subnet prefix>\",",
- " \"shared-network-name\": \"<shared network name or null>\",",
- " \"<the\": \"rest of the subnet specification here>\"",
+ " \"id\": <subnet identifier>,",
+ " \"subnet\": <subnet prefix>,",
+ " \"shared-network-name\": <shared network name or null>,",
+ " <the rest of the subnet specification here>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
"}"
],
" \"result\": 0,",
" \"text\": \"IPv4 subnet successfully set.\",",
" \"arguments\": {",
- " \"id\": \"<subnet identifier>\",",
- " \"subnet\": \"<subnet prefix>\"",
+ " \"id\": <subnet identifier>,",
+ " \"subnet\": <subnet prefix>",
" }",
"}"
],
" \"arguments\": {",
" \"subnets\": [",
" {",
- " \"id\": \"<subnet identifier>\"",
+ " \"id\": <subnet identifier>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"subnets\": [",
" {",
- " \"subnet\": \"<subnet prefix>\"",
+ " \"subnet\": <subnet prefix>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"subnets\": [",
" {",
- " \"id\": \"<subnet identifier>\"",
+ " \"id\": <subnet identifier>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"arguments\": {",
" \"subnets\": [",
" {",
- " \"id\": \"<subnet identifier>\",",
- " \"subnet\": \"<subnet prefix>\",",
- " \"shared-network-name\": \"<shared network name or null>\",",
+ " \"id\": <subnet identifier>,",
+ " \"subnet\": <subnet prefix>,",
+ " \"shared-network-name\": <shared network name or null>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" },",
- " \"<the\": \"rest of the subnet specification here>\"",
+ " <the rest of the subnet specification here>",
" }",
" ],",
" \"count\": 1",
" \"arguments\": {",
" \"subnets\": [",
" {",
- " \"subnet\": \"<subnet prefix>\"",
+ " \"subnet\": <subnet prefix>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" }",
" }",
"}"
" \"text\": \"IPv6 subnet found.\",",
" \"arguments\": {",
" \"subnets\": [ {",
- " \"id\": \"<subnet identifier>\",",
- " \"subnet\": \"<subnet prefix>\",",
- " \"shared-network-name\": \"<shared network name or null>\",",
+ " \"id\": <subnet identifier>,",
+ " \"subnet\": <subnet prefix>,",
+ " \"shared-network-name\": <shared network name or null>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" },",
- " \"<the\": \"rest of the subnet specification here>\"",
+ " <the rest of the subnet specification here>",
" } ],",
" \"count\": 1",
" }",
" \"command\": \"remote-subnet6-list\",",
" \"arguments\": {",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
"}"
],
" \"arguments\": {",
" \"subnets\": [",
" {",
- " \"id\": \"<first subnet identifier>\",",
- " \"subnet\": \"<first subnet prefix>\",",
- " \"shared-network-name\": \"<shared network name or null>\",",
+ " \"id\": <first subnet identifier>,",
+ " \"subnet\": <first subnet prefix>,",
+ " \"shared-network-name\": <shared network name or null>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
" },",
" {",
- " \"id\": \"<second subnet identifier>\",",
- " \"subnet\": \"<second subnet prefix>\",",
- " \"shared-network-name\": \"<shared network name or null>\",",
+ " \"id\": <second subnet identifier>,",
+ " \"subnet\": <second subnet prefix>,",
+ " \"shared-network-name\": <shared network name or null>,",
" \"metadata\": {",
- " \"server-tags\": [ \"<first server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, ... ]",
" }",
" }",
" ],",
" \"arguments\": {",
" \"subnets\": [",
" {",
- " \"id\": \"<subnet identifier>\",",
- " \"subnet\": \"<subnet prefix>\",",
- " \"shared-network-name\": \"<shared network name or null>\",",
- " \"<the\": \"rest of the subnet specification here>\"",
+ " \"id\": <subnet identifier>,",
+ " \"subnet\": <subnet prefix>,",
+ " \"shared-network-name\": <shared network name or null>,",
+ " <the rest of the subnet specification here>",
" }",
" ],",
" \"remote\": {",
- " \"<specification\": \"of the database to connect to>\"",
+ " <specification of the database to connect to>",
" },",
- " \"server-tags\": [ \"<first server tag>, <second server tag>\" ]",
+ " \"server-tags\": [ <first server tag>, <second server tag>, ... ]",
" }",
"}"
],
" \"result\": 0,",
" \"text\": \"IPv6 subnet successfully set.\",",
" \"arguments\": {",
- " \"id\": \"<subnet identifier>\",",
- " \"subnet\": \"<subnet prefix>\"",
+ " \"id\": <subnet identifier>,",
+ " \"subnet\": <subnet prefix>",
" }",
"}"
],
" \"command\": \"reservation-add\",",
" \"arguments\": {",
" \"reservation\": {",
- " \"boot-file-name\": \"<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\": [ \"<comma-separated structures defining options>\" ],",
- " \"prefixes\": [ \"<comma-separated IPv6 prefixes>\" ],",
- " \"client-classes\": [ \"<comma-separated strings>\" ],",
- " \"server-hostname\": \"<string>\",",
- " \"subnet-id\": \"<integer>\",",
- " \"user-context\": \"<any valid JSON>\"",
+ " \"boot-file-name\": <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\": [ <comma-separated structures defining options> ],",
+ " \"prefixes\": [ <comma-separated IPv6 prefixes> ],",
+ " \"client-classes\": [ <comma-separated strings> ],",
+ " \"server-hostname\": <string>,",
+ " \"subnet-id\": <integer>,",
+ " \"user-context\": <any valid JSON>",
" }",
" }",
"}"
"resp-syntax": [
"",
"{",
- " \"result\": \"<integer>\",",
- " \"text\": \"<string>\"",
+ " \"result\": <integer>,",
+ " \"text\": <string>",
"}"
],
"support": [
"{",
" \"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>\"",
+ " \"subnet-id\": <integer>,",
+ " \"ip-address\": <string>,",
+ " \"identifier-type\": <one of 'hw-address', 'duid', 'circuit-id', 'client-id' and 'flex-id'>,",
+ " \"identifier\": <string>",
" }",
"}"
],
"{",
" \"command\": \"reservation-get-all\",",
" \"arguments\": {",
- " \"subnet-id\": \"<integer>\"",
+ " \"subnet-id\": <integer>",
" }",
"}"
],
"{",
" \"command\": \"reservation-get-by-hostname\",",
" \"arguments\": {",
- " \"hostname\": \"<hostname>\",",
- " \"subnet-id\": \"<integer>\"",
+ " \"hostname\": <hostname>,",
+ " \"subnet-id\": <integer>",
" }",
"}"
],
"{",
" \"command\": \"reservation-get-by-id\",",
" \"arguments\": {",
- " \"identifier-type\": \"<one of 'hw-address', 'duid', 'circuit-id', 'client-id' and 'flex-id'>\",",
- " \"identifier\": \"<string>\"",
+ " \"identifier-type\": <one of 'hw-address', 'duid', 'circuit-id', 'client-id' and 'flex-id'>,",
+ " \"identifier\": <string>",
" }",
"}"
],
"{",
" \"command\": \"reservation-get-page\",",
" \"arguments\": {",
- " \"subnet-id\": \"<integer>\",",
- " \"limit\": \"<integer>\",",
- " \"source-index\": \"<integer>\",",
- " \"from\": \"<integer>\"",
+ " \"subnet-id\": <integer>,",
+ " \"limit\": <integer>,",
+ " \"source-index\": <integer>,",
+ " \"from\": <integer>",
" }",
"}"
],
"{",
" \"command\": \"reservation-get\",",
" \"arguments\": {",
- " \"subnet-id\": \"<integer>\",",
- " \"identifier-type\": \"<one of 'hw-address', 'duid', 'circuit-id', 'client-id' and 'flex-id'>\",",
- " \"identifier\": \"<string>\"",
+ " \"subnet-id\": <integer>,",
+ " \"identifier-type\": <one of 'hw-address', 'duid', 'circuit-id', 'client-id' and 'flex-id'>,",
+ " \"identifier\": <string>",
" }",
"}"
],
],
"resp-syntax": [
"{",
- " \"result\": \"<integer>\",",
- " \"text\": \"<string>\",",
+ " \"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\": [ \"<comma-separated structures defining options>\" ],",
- " \"prefixes\": [ \"<comma-separated IPv6 prefixes>\" ],",
- " \"client-classes\": [ \"<comma-separated strings>\" ],",
- " \"server-hostname\": \"<string>\",",
- " \"subnet-id\": \"<integer>\",",
- " \"user-context\": \"<any valid JSON>\"",
+ " \"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\": [ <comma-separated structures defining options> ],",
+ " \"prefixes\": [ <comma-separated IPv6 prefixes> ],",
+ " \"client-classes\": [ <comma-separated strings> ],",
+ " \"server-hostname\": <string>,",
+ " \"subnet-id\": <integer>,",
+ " \"user-context\": <any valid JSON>",
" }",
"}"
],
" \"command\": \"reservation-update\",",
" \"arguments\": {",
" \"reservation\": {",
- " \"boot-file-name\": \"<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\": [ \"<comma-separated structures defining options>\" ],",
- " \"prefixes\": [ \"<comma-separated IPv6 prefixes>\" ],",
- " \"client-classes\": [ \"<comma-separated strings>\" ],",
- " \"server-hostname\": \"<string>\",",
- " \"subnet-id\": \"<integer>\",",
- " \"user-context\": \"<any valid JSON>\"",
+ " \"boot-file-name\": <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\": [ <comma-separated structures defining options> ],",
+ " \"prefixes\": [ <comma-separated IPv6 prefixes> ],",
+ " \"client-classes\": [ <comma-separated strings> ],",
+ " \"server-hostname\": <string>,",
+ " \"subnet-id\": <integer>,",
+ " \"user-context\": <any valid JSON>",
" }",
" }",
"}"
"resp-syntax": [
"",
"{",
- " \"result\": \"<integer>\",",
- " \"text\": \"<string>\"",
+ " \"result\": <integer>,",
+ " \"text\": <string>",
"}"
],
"support": [
],
"resp-syntax": [
"{",
- " \"result\": \"<integer>\",",
+ " \"result\": <integer>,",
" \"arguments\": {",
- " \"pid\": \"<integer>\",",
- " \"uptime\": \"<uptime in seconds>\",",
- " \"reload\": \"<time since reload in seconds>\",",
+ " \"pid\": <integer>,",
+ " \"uptime\": <uptime in seconds>,",
+ " \"reload\": <time since reload in seconds>,",
" \"high-availability\": [",
" {",
- " \"ha-mode\": \"<HA mode configured for this relationship>\",",
+ " \"ha-mode\": <HA mode configured for this relationship>,",
" \"ha-servers\": {",
" \"local\": {",
- " \"role\": \"<role of this server as in the configuration file>\",",
- " \"scopes\": \"<list of scope names served by this server>\",",
- " \"state\": \"<HA state name of the server receiving the command>\"",
+ " \"role\": <role of this server as in the configuration file>,",
+ " \"scopes\": <list of scope names served by this server>,",
+ " \"state\": <HA state name of the server receiving the command>",
" },",
" \"remote\": {",
- " \"age\": \"<the age of the remote status in seconds>\",",
- " \"in-touch\": \"<indicates if this server communicated with remote>\",",
- " \"last-scopes\": \"<list of scopes served by partner>\",",
- " \"last-state\": \"<HA state name of the partner>\",",
- " \"role\": \"<partner role>\"",
+ " \"age\": <the age of the remote status in seconds>,",
+ " \"in-touch\": <indicates if this server communicated with remote>,",
+ " \"last-scopes\": <list of scopes served by partner>,",
+ " \"last-state\": <HA state name of the partner>,",
+ " \"role\": <partner role>",
" }",
" }",
" }",
" \"packet-queue-size\": 64,",
" \"packet-queue-statistics\": [ 1.2, 2.3, 3.4 ],",
" \"sockets\": {",
- " \"errors\": [",
- " \"<error received during the last attempt to open all sockets>\"",
- " ],",
- " \"status\": \"<ready, retrying, or failed>\"",
+ " \"errors\": [ <error received during the last attempt to open all sockets> ],",
+ " \"status\": <ready, retrying, or failed>",
" }",
" }",
"}"
" \"subnet4\": [ {",
" \"id\": 123,",
" \"subnet\": \"10.20.30.0/24\",",
- " \"<other\": \"properties>\"",
+ " ...",
" } ]",
" }",
"}"
" \"subnet4\": [ {",
" \"id\": 123,",
" \"subnet\": \"10.20.30.0/24\",",
- " \"<other\": \"properties>\"",
+ " ...",
" } ]",
" }",
"}"
" \"subnet4\": [ {",
" \"id\": 123,",
" \"subnet\": \"10.20.30.0/24\",",
- " \"<other\": \"properties>\"",
+ " ...",
" } ]",
" }",
"}"
" {",
" \"subnet\": \"10.0.0.0/8\",",
" \"id\": 1,",
- " \"option-data\": [",
- " \"<other properties>\"",
- " ],",
- " \"<other\": \"properties>\"",
+ " \"option-data\": [{",
+ " ...",
+ " }],",
+ " ...",
" }",
" ]",
" }",
" \"subnet4\": [ {",
" \"id\": 123,",
" \"subnet\": \"10.20.30.0/24\",",
- " \"<other\": \"properties>\"",
+ " ...",
" } ]",
" }",
"}"
" \"subnet6\": [ {",
" \"id\": 234,",
" \"subnet\": \"2001:db8:1::/64\",",
- " \"<other\": \"properties>\"",
+ " ...",
" } ]",
" }",
"}"
" \"subnet6\": [ {",
" \"id\": 234,",
" \"subnet\": \"2001:db8:1::/64\",",
- " \"<other\": \"properties>\"",
+ " ...",
" } ]",
" }",
"}"
" \"subnet6\": [ {",
" \"id\": 234,",
" \"subnet\": \"2001:db8:1::/64\",",
- " \"<other\": \"properties>\"",
+ " ...",
" } ]",
" }",
"}"
" {",
" \"subnet\": \"2001:db8:1::/64\",",
" \"id\": 1,",
- " \"option-data\": [",
- " \"<other properties>\"",
- " ],",
- " \"<other\": \"properties>\"",
+ " \"option-data\": [{",
+ " ...",
+ " }],",
+ " ...",
" }",
" ]",
" }",
" \"subnet6\": [ {",
" \"id\": 234,",
" \"subnet\": \"2001:db8:1::/64\",",
- " \"<other\": \"properties>\"",
+ " ...",
" } ]",
" }",
"}"
comment=0
line_num=0
echo "processing: $file"
- while read line; do
+ while IFS= read line; do
line_num=$((line_num+1))
- if [ $comment -eq 0 -a $json -eq 0 -a `echo "$line" | grep -e "^\[A-Za-z]+" | wc -l` -eq 1 ]; then
+ if [ $comment -eq 0 -a $json -eq 0 -a `echo "$line" | grep -e "^[A-Za-z]+\|^\s*\\\`" | wc -l` -eq 1 ]; then
+ # ignore line if it starts with 'A-Za-z' or spaces followed by '`'
continue
- elif [ $comment -eq 0 -a `echo "$line" | grep -e "\/\*" | grep -v -e "\*\/" | wc -l` -eq 1 ]; then
+ elif [ $comment -eq 0 -a `echo "$line" | grep -e "\/\*" | grep -v -e "\*\/" | wc -l` -eq 1 ]; then
+ # if the line contains /* and it does not contain */ on the same line
comment=1
echo "" >> $work_file
continue
- elif [ $comment -eq 1 -a `echo "$line" | grep "\*\/" | wc -l` -eq 1 ]; then
+ elif [ $comment -eq 1 -a `echo "$line" | grep "\*\/" | wc -l` -eq 1 ]; then
+ # if the line contains */
comment=0
echo "" >> $work_file
continue
elif [ $comment -eq 0 -a $json -eq 0 -a `echo "$line" | grep "^\s*{\|^\s*\".*{" | grep -v "}" | grep -v "key\|pre" | wc -l` -eq 1 ]; then
+ # if this is not a commend and the line starts with spaces followed by '{' or by '"' followed by "{"
+ # ignore dns config:
+ # key "key.four.example.com." {
+ # algorithm hmac-sha224;
+ # secret "bZEG7Ow8OgAUPfLWV3aAUQ==";
+ # };
+ # ignore detailed html:
+ # .. raw:: html
+ # <details><summary>Expand here!</summary>
+ # <pre>{
+ # ...
+ # }</pre>
+ # </details><br>
json=1
# ignore any map name before top level map
line=`echo "$line" | sed "s/.*{/{/g"`
echo "" > $work_file
- elif [ $comment -eq 0 -a $json -eq 1 -a `echo "$line" | grep -e "^\s*[A-Za-z]" | wc -l` -eq 1 ]; then
+ elif [ $comment -eq 0 -a $json -eq 1 -a `echo "$line" | grep -e "^\s*[A-Za-z]\|^\s*\\\`" | wc -l` -eq 1 ]; then
+ # if the line is not a comment and the line starts with spaces followed by 'A-Za-z' or followed by "`" and the parser is processing a json structure
json=0
cat $work_file | jq . > /dev/null
if [ $? -ne 0 ]; then
+ # if the jq tool returned error
echo "file $file contains invalid JSON near line $line_num"
echo "===start of JSON block==="
cat $work_file
echo "====end of JSON block===="
fi
fi
- if [ $comment -eq 0 -a $json -eq 1 ]; then
+ if [ $comment -eq 0 -a $json -eq 1 ]; then
if [ `echo "$line" | grep -e "^\s*\.\.\s" | wc -l` -eq 1 ]; then
echo "" >> $work_file
else
+ # if file is .json the following replace in line are done:
+ # 1. delete everything after '#'
+ # 2. delete everything after //
+ # 3. ignore <?include?>
+ # 4. replace all '[ <DATA> ]' with '[ "<DATA>"]' where DATA contains: '-' and 'A-Za-z0-9' and ' '
+ # 5. replace all ' <DATA>:' with ' "<DATA>":'
+ # 6. replace all ': <DATA>' with ': "<DATA>"'
+ # 7. replace ' ...' with ' "placeholder": "value"
+ # 8. replace ', ... ' with ' '
+ # 9. replace ' <DATA>' with ' "placeholder": "value"'
+ # 10. replace ' <DATA>' with ' "placeholder"'
if [ `echo "$file" | grep "\.json" | wc -l` -eq 0 ]; then
- echo "$line" | cut -d "#" -f 1 | sed "s/\.\.\./\"placeholder\": 0/g" | sed "s/\/\/ .*//g" | sed "s/<?.*?>//g" >> $work_file
+ echo "$line" | cut -d "#" -f 1 | sed "s/\/\/ .*//g" | sed "s/<?.*?>//g" | sed "s/\[ <\([-A-Za-z0-9 ]*\)> \]/\[ \"<\1>\" \]/g" | sed "s/ <\(.*\)>:/ \"<\1>\":/g" | sed "s/: <\(.*\)>/: \"<\1>\"/g" | sed "s/ \.\.\./ \"placeholder\": \"value\"/g" | sed "s/, \.\.\. / /g" | sed "s/ <\(.*\)>/ \"placeholder\": \"value\"/g" | sed "s/ <\(.*\)>/ \"placeholder\"/g" >> $work_file
else
+ # if file is .rst the following replace in line are done:
+ # 1. delete everything after '#'
+ # 2. delete everything after //
+ # 3. ignore <?include?>
echo "$line" | cut -d "#" -f 1 | sed "s/\/\/ .*//g" | sed "s/<?.*?>//g" >> $work_file
fi
fi
fi
done <<< $(cat $file | sed ':a;N;$!ba;s/,\s*\n\s*\.\.\.//g' | sed 's/\\\"/\\\\\"/g' | sed 's/\\\\,/\\\\\\\\,/g')
if [ $comment -eq 0 -a $json -eq 1 ]; then
+ # if the file ended but the parser is processing a json structure
cat $work_file | jq . > /dev/null
if [ $? -ne 0 ]; then
+ # if the jq tool returned error
echo "file $file contains invalid JSON near line $line_num"
echo "===start of JSON block==="
cat $work_file