code: public UNode toDoc() {
          UNode tenantNode = UNode.createMapNode(m_name, "tenant");
          if (m_options.size() > 0) {
              UNode optsNode = tenantNode.addMapNode("options");
              for (Map.Entry<String, Object> mapEntry : m_options.entrySet()) {
                  optsNode.addChildNode(optionValueToUNode(mapEntry.getKey(), mapEntry.getValue()));
              }
          }
          if (m_properties.size() > 0) {
              UNode propsNode = tenantNode.addMapNode("properties");
              for (Map.Entry<String, String> mapEntry : m_properties.entrySet()) {
                  propsNode.addValueNode(mapEntry.getKey(), mapEntry.getValue(), "property");
              }
          }
          if (m_users.size() > 0) {
              UNode usersNode = tenantNode.addMapNode("users");
              for (UserDefinition userDef : m_users.values()) {
                  usersNode.addChildNode(userDef.toDoc());
              }
          }
          return tenantNode;
      }
docs: Return this Tenant definition as a UNode tree, which can be serialized into text
  via {@link UNode#toJSON()} or {@link UNode#toXML()}.
  
  @return  This Tenant definition serialized as a UNode tree.