<?xml version="1.0"?>
<!--
 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.
-->
<configuration>
  <layoutversion>1</layoutversion>
  <layers>
    <layer id="datacenter">
      <prefix></prefix>
      <cost>1</cost>
      <type>ROOT</type>
    </layer>
    <layer id="rack">
      <prefix>rack</prefix>
      <cost>1</cost>
      <type>InnerNode</type>
    </layer>
    <layer id="nodegroup">
      <prefix></prefix>
      <cost>1</cost>
      <type>InnerNode</type>
    </layer>
    <layer id="node">
      <prefix></prefix>
      <cost>0</cost>
      <type>Leaf</type>
    </layer>
  </layers>
  <topology>
    <path>/datacenter/rack/nodegroup/node</path>
    <enforceprefix>true</enforceprefix>
  </topology>
</configuration>