<?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.
  -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <!-- user group providers type -->
    <xs:complexType name="UserGroupProvider">
        <xs:sequence>
            <xs:element name="identifier" type="xs:string"/>
            <xs:element name="class" type="xs:string"/>
            <xs:element name="property" type="Prop" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>

    <!-- access policy provider type -->
    <xs:complexType name="AccessPolicyProvider">
        <xs:sequence>
            <xs:element name="identifier" type="xs:string"/>
            <xs:element name="class" type="xs:string"/>
            <xs:element name="property" type="Prop" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>

    <!-- authorizers type -->
    <xs:complexType name="Authorizer">
        <xs:sequence>
            <xs:element name="identifier" type="xs:string"/>
            <xs:element name="class" type="xs:string"/>
            <xs:element name="classpath" type="xs:string" minOccurs="0"/>
            <xs:element name="property" type="Prop" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <!-- Name/Value properties-->
    <xs:complexType name="Prop">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="name" type="xs:string"></xs:attribute>
                <xs:attribute name="encryption" type="xs:string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <!-- authorizers -->
    <xs:element name="authorizers">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="userGroupProvider" type="UserGroupProvider" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="accessPolicyProvider" type="AccessPolicyProvider" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="authorizer" type="Authorizer" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>