#
#============LICENSE_START==================================================
#  ONAP Policy Engine
#===========================================================================
#  Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
#===========================================================================
# Licensed 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.
#============LICENSE_END==================================================
#

#
#Mon Mar 19 19:20:17 UTC 2018
historydb.name=operationHistoryDB
AAF.description=AAFEngine to communicate with AAF to take decisions
historydb.issuer=org\:onap\:xacml\:guard\:historydb
AAF.classname=org.onap.policy.xacml.std.pip.engines.aaf.AAFEngine
AAF.name=AAFEngine
historydb.classname=org.onap.policy.xacml.std.pip.engines.OperationHistoryEngine
xacml.pip.engines=historydb,AAF
