<?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.

-->
<enunciate label="lens" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.25.xsd">
  <namespaces>
    <namespace uri="https://git-wip-us.apache.org/repos/asf/lens.git" id="lens"/>
  </namespaces>
  <services>
    <rest defaultRestSubcontext="/">
      <custom-resource-parameter-annotation qualifiedName="org.glassfish.jersey.media.multipart.FormDataParam"/>
    </rest>
  </services>
  <api-classes>
    <include pattern="org.apache.lens.server.query.*"/>
    <include pattern="org.apache.lens.server.query.save.*"/>
    <include pattern="org.apache.lens.server.metastore.*"/>
    <include pattern="org.apache.lens.server.quota.*"/>
    <include pattern="org.apache.lens.server.scheduler.*"/>
    <include pattern="org.apache.lens.server.session.*"/>
  </api-classes>
  <modules>
    <docs docsDir="lens-server" title="Lens Server REST API"/>
    <csharp disabled="true"/>
    <c disabled="true"/>
    <obj-c disabled="true"></obj-c>
  </modules>
</enunciate>
