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

PolicyRefresher.loadPolicy
RangerPolicyEngine.init
RangerPolicyEngine.cleanUp
RangerPolicyEngine.reorderPolicyEvaluators
RangerPolicyEngine.usage
RangerContextEnricher.init
RangerPolicyEvaluator.init
RangerPolicyItemEvaluator.init
RangerConditionEvaluator.init
RangerContextEnricher.enrich
RangerPolicyEngine.isAccessAllowed
RangerPolicyEvaluator.evaluate
RangerPolicyEvaluator.isMatch
RangerPolicyItemEvaluator.isMatch
RangerConditionEvaluator.matchCondition
RangerPolicyEngine.processAudit
RangerTagRefresher.populateTags
RangerPolicyEvaluator.isAccessAllowed
RangerPolicyRetriever.getServicePolicies
RangerTagDBReceiver.getTags
ServiceREST.createServiceDef
ServiceREST.updateServiceDef
ServiceREST.deleteServiceDef
ServiceREST.getServiceDef
ServiceREST.getServiceDefByName
ServiceREST.getServiceDefs
ServiceREST.createService
ServiceREST.updateService
ServiceREST.deleteService
ServiceREST.getService
ServiceREST.getServices
ServiceREST.countService
ServiceREST.validateConfig
ServiceREST.lookupResource
ServiceREST.grantAccess
ServiceREST.revokeAccess
ServiceREST.createPolicy
ServiceREST.updatePolicy
ServiceREST.deletePolicy
ServiceREST.getPolicy
ServiceREST.getPolicies
ServiceREST.countPolicies
ServiceREST.getServicePolicies
ServiceREST.getServicePoliciesIfUpdated
