<!--
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. Kerberos, LDAP, Custom. Binary/Htt
-->
<view>
  <name>ADMIN_VIEW</name>
  <label>Ambari Admin View</label>
  <version>2.1.0</version>
  <system>true</system>
  <instance>
    <name>INSTANCE</name>
    <description>This view provides administration capabilities for Ambari</description>
    <visible>false</visible>
  </instance>
</view>
