<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  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.
-->
<configuration>
  <property>
    <name>ranger.plugin.presto.service.name</name>
    <value>prestoservice</value>
    <description>
      Name of the Ranger service containing policies for this Presto instance
    </description>
  </property>

  <property>
    <name>ranger.plugin.presto.policy.source.impl</name>
    <value>org.apache.ranger.admin.client.RangerAdminRESTClient</value>
    <description>
      Class to retrieve policies from the source
    </description>
  </property>

  <property>
    <name>ranger.plugin.presto.policy.rest.url</name>
    <value>http://localhost:6080</value>
    <description>
      URL to Ranger Admin
    </description>
  </property>

  <property>
    <name>ranger.plugin.presto.policy.rest.ssl.config.file</name>
    <value>/etc/hadoop/conf/ranger-policymgr-ssl.xml</value>
    <description>
      Path to the file containing SSL details to contact Ranger Admin
    </description>
  </property>

  <property>
    <name>ranger.plugin.presto.policy.pollIntervalMs</name>
    <value>30000</value>
    <description>
      How often to poll for changes in policies?
    </description>
  </property>

  <property>
    <name>ranger.plugin.presto.policy.rest.client.connection.timeoutMs</name>
    <value>30000</value>
    <description>
      S3 Plugin RangerRestClient Connection Timeout in Milli Seconds
    </description>
  </property>

  <property>
    <name>ranger.plugin.presto.policy.rest.client.read.timeoutMs</name>
    <value>30000</value>
    <description>
      S3 Plugin RangerRestClient read Timeout in Milli Seconds
    </description>
  </property>
</configuration>
