blob: 12b021714a03ae6963ecee3c50393b19d507489f [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
/**
* 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.
*/
-->
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="configuration">
<xs:complexType>
<xs:sequence>
<xs:element name="property" type="property" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="supports_final" type="xs:boolean" use="optional"/>
<xs:attribute name="supports_deletable" type="xs:boolean" use="optional"/>
<xs:attribute name="supports_adding_forbidden" type="xs:boolean" use="optional"/>
<xs:attribute name="supports_do_not_extend" type="xs:boolean" use="optional"/>
</xs:complexType>
</xs:element>
<xs:complexType name="property">
<xs:all>
<xs:element name="name" type="xs:string" minOccurs="1"/>
<xs:element name="value" type="xs:string" minOccurs="0"/>
<xs:element name="description" type="xs:string" minOccurs="0"/>
<xs:element name="display-name" type="xs:string" minOccurs="0"/>
<xs:element name="filename" type="xs:string" minOccurs="0"/>
<xs:element name="deleted" type="xs:boolean" minOccurs="0"/>
<xs:element name="final" type="xs:boolean" minOccurs="0"/>
<xs:element name="on-ambari-upgrade" type="propertyUpgradeBehavior" minOccurs="1"/>
<xs:element name="supported-refresh-commands" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="refresh-command" type="refreshCommands" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="on-stack-upgrade" type="propertyStackUpgradeBehavior" minOccurs="0"/>
<xs:element name="property-type" minOccurs="0">
<xs:simpleType>
<xs:list itemType="propertyType"/>
</xs:simpleType>
</xs:element>
<xs:element name="value-attributes" type="valueAttributesInfo" minOccurs="0"/>
<xs:element name="depends-on" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="property" type="propertyDependencyInfo" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="property_depended_by" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="dependedByProperties" type="propertyDependencyInfo" nillable="true" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="used-by" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="property" type="propertyDependencyInfo" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="require-input" type="xs:boolean" use="optional"/>
</xs:complexType>
<xs:complexType name="propertyUpgradeBehavior">
<xs:attribute name="add" type="xs:boolean" use="optional" default="true"/>
<xs:attribute name="delete" type="xs:boolean" use="optional"/>
<xs:attribute name="update" type="xs:boolean" use="optional"/>
</xs:complexType>
<xs:complexType name="propertyStackUpgradeBehavior">
<xs:attribute name="merge" type="xs:boolean" use="optional" default="true"/>
</xs:complexType>
<xs:complexType name="refreshCommands">
<xs:attribute name="componentName" type="xs:string" use="required"/>
<xs:attribute name="command" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="valueAttributesInfo">
<xs:all>
<xs:element name="type" type="xs:string" minOccurs="0"/>
<xs:element name="maximum" type="xs:string" minOccurs="0"/>
<xs:element name="minimum" type="xs:string" minOccurs="0"/>
<xs:element name="unit" type="xs:string" minOccurs="0"/>
<xs:element name="delete" type="xs:string" minOccurs="0"/>
<xs:element name="visible" type="xs:boolean" minOccurs="0"/>
<xs:element name="overridable" type="xs:boolean" minOccurs="0"/>
<xs:element name="empty-value-valid" type="xs:boolean" minOccurs="0"/>
<xs:element name="ui-only-property" type="xs:boolean" minOccurs="0"/>
<xs:element name="read-only" type="xs:boolean" minOccurs="0"/>
<xs:element name="editable-only-at-install" type="xs:boolean" minOccurs="0"/>
<xs:element name="show-property-name" type="xs:boolean" minOccurs="0"/>
<xs:element name="increment-step" type="xs:string" minOccurs="0"/>
<xs:element name="keystore" type="xs:boolean" minOccurs="0"/>
<xs:element name="entries" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="entry" type="valueEntryInfo" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="hidden" type="xs:string" minOccurs="0"/>
<xs:element name="entries_editable" type="xs:boolean" minOccurs="0"/>
<xs:element name="selection-cardinality" type="xs:string" minOccurs="0"/>
<xs:element name="property-file-name" type="xs:string" minOccurs="0"/>
<xs:element name="property-file-type" type="xs:string" minOccurs="0"/>
<xs:element name="user-groups" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="property" type="userGroupInfo" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="valueEntryInfo">
<xs:all>
<xs:element name="value" type="xs:string" minOccurs="0"/>
<xs:element name="label" type="xs:string" minOccurs="0"/>
<xs:element name="description" type="xs:string" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="userGroupInfo">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="name" type="xs:string" minOccurs="0"/>
<xs:element name="type" type="xs:string" minOccurs="0"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="propertyDependencyInfo">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="name" type="xs:string" minOccurs="0"/>
<xs:element name="type" type="xs:string" minOccurs="0"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="propertyType">
<xs:restriction base="xs:string">
<xs:enumeration value="PASSWORD"/>
<xs:enumeration value="USER"/>
<xs:enumeration value="GROUP"/>
<xs:enumeration value="TEXT"/>
<xs:enumeration value="ADDITIONAL_USER_PROPERTY"/>
<xs:enumeration value="NOT_MANAGED_HDFS_PATH"/>
<xs:enumeration value="VALUE_FROM_PROPERTY_FILE"/>
<xs:enumeration value="KERBEROS_PRINCIPAL"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>