###
# ============LICENSE_START=======================================================
# ECOMP Policy Engine
# ================================================================================
# Copyright (C) 2017 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=========================================================
###

# PIP Engine Definition
#PDP_URL2 = http://localhost:8082/pdp/ ,testpdp,alpha456
PDP_URL1= http://localhost:9091/pdp/ ,testpdp, alpha456
PAP_URL = http://localhost:8070/pap/ , testpap, alpha123
PYPDP_ID=testrest
PYPDP_PASSWORD=secUre
# DO NOT ADD THIS TO THE INSTALLTION SCRIPTS. This is for build Test purposes. 
Test = true

#Integrity Monitor values
#database driver for Integrity Monitor
javax.persistence.jdbc.driver=com.mysql.jdbc.Driver
#database URL for Integrity Monitor
javax.persistence.jdbc.url=jdbc:mysql://localhost:3306/ecomp_sdk
#database username for Integrity Monitor
javax.persistence.jdbc.user=policy_user
#database password for Integrity Monitor
javax.persistence.jdbc.password=policy_user
#resource name
RESOURCE_NAME=pypdp_pdp01

#The site name for the Admin
site_name=site_1

#Has to be one of pdp_xacml, pdp_drools, pap, pap_admin, logparser, brms_gateway, astra_gateway, elk_server, pypdp
node_type=pypdp

ENVIRONMENT=DEVL
CLIENT_FILE=client.properties