blob: cc1895067f8a519f50a6e5a9ae8e044cee05b69c [file] [log] [blame]
<!--
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 xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="ParameterType">
<xs:annotation>
<xs:documentation>Defines a configuration parameter that is used to when creating a view instance.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element type="xs:string" name="name" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The name of the configuration parameter.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="description" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The description of the configuration parameter.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="label" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The label for the configuration parameter.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="placeholder" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The placeholder for the configuration parameter.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="default-value" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The default value of the configuration parameter.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="cluster-config" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The cluster configuration id. The presence of this element indicates that the property value may be obtained through a cluster association.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:boolean" name="required" minOccurs="0" maxOccurs="1" default="false">
<xs:annotation>
<xs:documentation>If true, the configuration parameter is required in order to create a view instance. The default is false (not required).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:boolean" name="masked" minOccurs="0" maxOccurs="1" default="false">
<xs:annotation>
<xs:documentation>Indicated this parameter value is to be "masked" in the Ambari Web UI (i.e. not shown in the clear). Omitting this element default to not-masked. Otherwise, if true, the parameter value will be "masked" in the Web UI.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ResourceType">
<xs:annotation>
<xs:documentation>Defines a resource that is exposed by the view.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element type="xs:string" name="name" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The name of the resource. This will be the resource endpoint name of the view instance.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="plural-name" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The plural name of the resource.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="id-property" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The name of the resource-class attribute which uniquely identifies this resource.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="resource-class" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The JavaBean resource class.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="provider-class" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The Ambari ResourceProvider implementation class.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="service-class" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The JAX-RS annotated resource service class.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="sub-resource-name" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>The sub-resource name.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PermissionType">
<xs:annotation>
<xs:documentation>Defines a custom permission for the view.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element type="xs:string" name="name" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The unique custom permission name.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="description" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The description of the custom view permission.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PersistenceEntityType">
<xs:annotation>
<xs:documentation>Defines a persistence entity used by the view.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element type="xs:string" name="class" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The class name of the persistence entity JavaBean.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="id-property" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The name of the entity class attribute which uniquely identifies this entity.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PersistenceType">
<xs:annotation>
<xs:documentation>Defines the persistence entities used by the view.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element type="PersistenceEntityType" name="entity" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Defines a persistence entity used by the view.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="InstancePropertyType">
<xs:annotation>
<xs:documentation>Defines a property value for a static instance of the view.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element type="xs:string" name="key" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The configuration parameter name.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="value" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The configuration parameter value.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="InstanceType">
<xs:annotation>
<xs:documentation>Defines a static instance of the view.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element type="xs:string" name="name" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The unique name of the view instance.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="label" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The display label of the view instance. If not set, the view definition label is used.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="description" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The description of the view instance. If not set, the view definition description is used.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="icon64" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Overrides the view icon64 for this specific view instance.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="icon" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Overrides the view icon for this specific view instance.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:boolean" name="visible" minOccurs="0" maxOccurs="1" default="true">
<xs:annotation>
<xs:documentation>If true, for the view instance to show up in the users view instance list. The default value is true.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="InstancePropertyType" name="property" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Specifies configuration parameters values for the view instance.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ServiceType">
<xs:annotation>
<xs:documentation>Defines a persistence entity used by the view.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element type="xs:string" name="service" minOccurs="1" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>The name of a service required to auto create an instance of this view.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AutoInstanceType">
<xs:complexContent>
<xs:extension base="InstanceType">
<xs:sequence>
<xs:element name="stack-id" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The stack id required to auto create an instance of this view. The wildcard character '*' is supported (e.g. 'HDP-2.*').</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="ServiceType" name="services" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The services required to auto create an instance of this view.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PathType">
<xs:annotation>
<xs:documentation>Defines a single classpath.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element type="xs:string" name="path" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>The path of a filename or URL pointing to a directory or jar file. A directory path should end with '/'.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="view">
<xs:annotation>
<xs:documentation>Defines a view.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="name" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The unique name of the view.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="label" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The display label of the view.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="version" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The version of the view.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="build" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The build number of the view.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="data-version" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The data version. Used for data migrations.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="min-ambari-version" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The minimum version of Ambari server required to run this view.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="max-ambari-version" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The maximum version of Ambari server that can run this view.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="description" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The description of the view.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="icon64" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The 64x64 icon to display for this view. If this property is not set, the 32x32 sized icon
will be used.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="icon" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The 32x32 icon to display for this view. Suggested size is 32x32 and will be displayed as
8x8 and 16x16 as necessary. If this property is not set, a default view framework icon is used.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:boolean" name="system" minOccurs="0" maxOccurs="1" default="false">
<xs:annotation>
<xs:documentation>Indicates whether or not this is a system view.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="PathType" name="classpath" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Extra class path entries for this view. A directory path should end with '/'.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="view-class" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The View class to receive framework events.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="validator-class" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The Validator class to validate view instances and properties.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="masker-class" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The Masker class for masking view parameters.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="cluster-config-options" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Enable views to display cluster options in case of no cluster config properties.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="xs:string" name="data-migrator-class" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The data migration class.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="ParameterType" name="parameter" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Defines a configuration parameter that is used to when creating a view instance.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="ResourceType" name="resource" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Defines a resource that is exposed by the view.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="PermissionType" name="permission" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Defines a custom permission for the view.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="PersistenceType" name="persistence" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Defines the persistence entities used by the view.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="AutoInstanceType" name="auto-instance" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Defines an auto create instance of the view.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element type="InstanceType" name="instance" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Defines a static instance of the view.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>