blob: ea9a1391b280bce8c8729b59ab3b8a55dc59b880 [file] [log] [blame]
<!--*-markdown-*-
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
# The qdrouter management schema
The schema `qdrouterd.json` is a JSON format file that defines
entity types of the Qpid Dispatch Router management model. The model is based
on the AMQP management specification.
The schema is a JSON map with the following keys:
- "description": documentation string for the schema
- "prefix": Prefix for schema names when they are exposed to AMQP management clients.
- "entityTypes": map of entity type names to definitions (see below)
Entity type definition maps have the following keys:
- "description": documentation string.
- "fullName": if true use the type name as-is, do not apply the schema prefix.
- "attributes": map of attribute names to attribute definitions (see below)
- "operations": list of allowed operation names.
- "operationsDefs": map of operation names to operation definitions.
Entity type definitions also have these fields:
- "extends": Name of base type. The new type includes attributes, operations and operationDefs from the base type.
Operation definitions are optional, you can call an operation in the operations
list without an operation definition. They have the following fields:
- "properties": map of property names to property definition maps.
Defines the set of message properties expected by the operation.
- "body": a property definition map.
Attribute or property definition maps have the following fields:
- "description": documentation string.
- "type": one of the following:
- "string": a Unicode string value.
- "path": A string c
- "entityId": a string that holds the `identity` of a management entity.
- "integer": an integer value.
- "boolean": a true/false value.
- "map": a map.
- "list": a list.
- [...]: A list of strings is an enumeration. Values must be one of the strings or an integer integer index into the list, starting from 0.
- "default": a default can be a literal value or a reference to another attribute in the form `$attributeName`.
- "create": if true the attribute can be set by CREATE.
- "update": if true the attribute can be changed by UPDATE.
Attributes with neither "create" nor "update" are set automatically by the system.
There is the following hierarchy among entity types:
- `entity`: The base of all entity types.
- `configurationEntity`: base for all types that hold *configuration information*.
Configuration information is supplied in advance and express *intent*. For
example "I want the router to listen on port N". All the entities that can be
used in the configuration file extend `configurationEntity`.
- `operationalEntity`: base for all types that hold *operational information*.
Operational information reflects the actual current state of the router. For
example, "how many addresses are presently active?" All the entities queried
by the `qdstat` tool extend `operationalEntity`.
The two types are often related. For example `listener` and `connector` extend
`configurationEntity`, they express the intent to make or receive
connections. `connection` extends `operationalEntity`, it holds information
the actual connection status.