Initial OpenECOMP policy/engine commit

Change-Id: I7dbff37733b661643dd4d1caefa3d7dccc361b6e
Signed-off-by: Pamela Dragosh <pdragosh@research.att.com>
diff --git a/PolicyEngineAPI/Config/Config.properties b/PolicyEngineAPI/Config/Config.properties
new file mode 100644
index 0000000..34a9a82
--- /dev/null
+++ b/PolicyEngineAPI/Config/Config.properties
@@ -0,0 +1,26 @@
+###
+# ============LICENSE_START=======================================================
+# PolicyEngineAPI
+# ================================================================================
+# 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=========================================================
+###
+
+# Policies to load
+#
+PDP_URL =  http://localhost:8081/pdp/ , testpdp, alpha123
+PAP_URL=http://localhost:8070/pap/, testpap, alpha123
+NOTIFICATION_TYPE = ueb
+NOTIFICATION_UEB_SERVERS=localhost.com,localhost1.com
diff --git a/PolicyEngineAPI/policyLogger.properties b/PolicyEngineAPI/policyLogger.properties
new file mode 100644
index 0000000..7c4d9e2
--- /dev/null
+++ b/PolicyEngineAPI/policyLogger.properties
@@ -0,0 +1,44 @@
+###
+# ============LICENSE_START=======================================================
+# PolicyEngineAPI
+# ================================================================================
+# 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=========================================================
+###
+
+################################### Set concurrentHashMap and timer info  #######################
+#Timer initial delay and the delay between in milliseconds before task is to be execute.
+timer.delay.time=1000
+#Timer scheduleAtFixedRate period - time in milliseconds between successive task executions.
+check.interval= 30000
+#Longest time an event info can be stored in the concurrentHashMap for logging - in seconds. 
+event.expired.time=86400
+#Size of the concurrentHashMap which stores the event starting time, etc - when its size reaches this limit, the Timer gets executed 
+#to remove all expired records from this concurrentHashMap.
+concurrentHashMap.limit=5000
+#Size of the concurrentHashMap - when its size drops to this point, stop the Timer
+stop.check.point=2500
+################################### Set logging format #############################################
+# set EELF for EELF logging format, set LOG4J for using log4j, set SYSTEMOUT for using system.out.println
+logger.type=EELF
+#################################### Set level for EELF or SYSTEMOUT logging ##################################
+# Set level for debug file. Set DEBUG to enable .info, .warn and .debug; set INFO for enable .info and .warn; set OFF to disable all 
+debugLogger.level=INFO
+# Set level for metrics file. Set OFF to disable; set ON to enable
+metricsLogger.level=ON
+# Set level for error file. Set OFF to disable; set ON to enable
+error.level=ON
+# Set level for audit file. Set OFF to disable; set ON to enable
+audit.level=ON
diff --git a/PolicyEngineAPI/pom.xml b/PolicyEngineAPI/pom.xml
new file mode 100644
index 0000000..7cabd82
--- /dev/null
+++ b/PolicyEngineAPI/pom.xml
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ============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=========================================================
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	
+	<parent>
+		<groupId>org.openecomp.policy.engine</groupId>
+		<artifactId>PolicyEngineSuite</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</parent>
+	
+	<groupId>org.openecomp.policy.engine</groupId>
+	<artifactId>PolicyEngineAPI</artifactId>
+	<dependencies>
+		<dependency>
+			<groupId>xml-apis</groupId>
+			<artifactId>xml-apis</artifactId>
+			<version>1.4.01</version>
+		</dependency>			
+		<dependency>
+			<groupId>com.fasterxml.jackson.core</groupId>
+			<artifactId>jackson-databind</artifactId>
+			<version>2.8.5</version>
+		</dependency>
+		<dependency>
+			<groupId>org.glassfish</groupId>
+			<artifactId>javax.json</artifactId>
+			<version>1.0.4</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.httpcomponents</groupId>
+			<artifactId>httpclient</artifactId>
+			<version>4.3.1</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-io</groupId>
+			<artifactId>commons-io</artifactId>
+			<version>2.4</version>
+		</dependency>
+		<dependency>
+			<groupId>com.google.guava</groupId>
+			<artifactId>guava</artifactId>
+			<version>14.0.1</version>
+		</dependency>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.11</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.websocket</groupId>
+			<artifactId>javax.websocket-api</artifactId>
+			<version>1.1</version>
+		</dependency>
+		<dependency>
+			<groupId>org.glassfish.tyrus</groupId>
+			<artifactId>tyrus-client</artifactId>
+			<version>1.13</version>
+		</dependency>
+		<dependency>
+			<groupId>org.glassfish.tyrus</groupId>
+			<artifactId>tyrus-container-grizzly-client</artifactId>
+			<version>1.13</version>
+		</dependency>
+		<dependency>
+			<groupId>log4j</groupId>
+			<artifactId>log4j</artifactId>
+			<version>1.2.17</version>
+		</dependency>
+		<dependency>
+  			<groupId>com.att.nsa</groupId>
+  			<artifactId>cambriaClient</artifactId>
+  			<version>0.0.1</version>
+  			<exclusions>
+  				<exclusion>
+  					<groupId>org.slf4j</groupId>
+  					<artifactId>slf4j-log4j12</artifactId>
+  				</exclusion>
+  			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>org.openecomp.policy.engine</groupId>
+			<artifactId>ECOMP-XACML</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.eclipse.persistence</groupId>
+			<artifactId>javax.persistence</artifactId>
+			<version>2.1.0</version>
+		</dependency>
+		<dependency>
+			<groupId>org.eclipse.persistence</groupId>
+			<artifactId>eclipselink</artifactId>
+			<version>2.5.2</version>
+		</dependency>
+		<dependency>
+			<groupId>mysql</groupId>
+			<artifactId>mysql-connector-java</artifactId>
+			<version>5.1.30</version>
+		</dependency>
+		<dependency>
+			<groupId>org.mariadb.jdbc</groupId>
+			<artifactId>mariadb-java-client</artifactId>
+			<version>1.2.3</version>
+		</dependency>
+		<dependency>
+			<groupId>org.openecomp.policy.engine</groupId>
+			<artifactId>PolicyEngineUtils</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+	</dependencies>
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.2</version>
+				<configuration>
+					<source>1.8</source>
+					<target>1.8</target>
+				</configuration>
+			</plugin>
+			<plugin>
+				<!-- Dependency version for Clients who need it -->
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<version>2.2</version>
+				<configuration>
+					<descriptorRefs>
+						<descriptorRef>jar-with-dependencies</descriptorRef>
+					</descriptorRefs>
+				</configuration>
+				<executions>
+					<execution>
+						<id>make-assembly</id>
+						<phase>package</phase>
+						<goals>
+							<goal>single</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/PolicyEngineAPI/src/log4j.properties b/PolicyEngineAPI/src/log4j.properties
new file mode 100644
index 0000000..9e5bf71
--- /dev/null
+++ b/PolicyEngineAPI/src/log4j.properties
@@ -0,0 +1,48 @@
+###
+# ============LICENSE_START=======================================================
+# PolicyEngineAPI
+# ================================================================================
+# 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=========================================================
+###
+
+#
+# Use this properties for debugging and development.
+#
+#
+# Set root logger level to DEBUG and its only appender to A1.
+log4j.rootLogger=INFO, FILE
+
+# A1 is set to be a DailyRollingFileAppender.
+log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
+
+# Set the name of the file
+log4j.appender.FILE.File=src.out
+
+# Set the immediate flush to true (default)
+log4j.appender.FILE.ImmediateFlush=true
+
+# Set the threshold to debug mode
+log4j.appender.FILE.Threshold=debug
+
+# Set the append to false, should not overwrite
+log4j.appender.FILE.Append=true
+
+# Set the DatePattern
+log4j.appender.FILE.DatePattern='.' yyyy-MM-dd-a
+
+# A1 uses PatternLayout.
+log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
+log4j.appender.FILE.layout.ConversionPattern=%d{yyyy_MM_dd_HH_mm_ss_SSS} [%t] %-5p %l- %m%n
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/AttributeType.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/AttributeType.java
new file mode 100644
index 0000000..2a88791
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/AttributeType.java
@@ -0,0 +1,66 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+/**
+ * Enumeration of the Attribute Types that is used as a part of
+ * {@link org.openecomp.policy.api.PolicyParameters}.
+ * 
+ * @version 0.1
+ */
+public enum AttributeType {
+	/**
+	 * Indicates Attributes required to Match the Policy. 
+	 */
+	MATCHING("matching"),
+	/**
+	 * Indicates Attributes required to create DRL based Rules. 
+	 */
+	RULE("rule"),
+	/**
+	 * Indicates Attributes required to create MicroService policy. 
+	 */
+	MICROSERVICE("microService"),
+	/**
+	 * Indicates Attributes required to create settings for Decision Policy.
+	 */
+	SETTINGS("settings"),
+	/**
+	 * Indicates Attributes required to create dictionary fields for creating Dictionary Items
+	 */
+	DICTIONARY("dictionary")
+	;
+	
+	
+	private String name;
+	
+	private AttributeType(String typeName){
+		this.name = typeName;
+	}
+	
+	/**
+	 * Returns the <code>String</code> format of Type for this <code>AttributeType</code>
+	 * @return the <code>String</code> of the Type for this <code>AttributeType</code>
+	 */
+	public String toString() {
+		return this.name;
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/ConfigRequestParameters.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/ConfigRequestParameters.java
new file mode 100644
index 0000000..1830679
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/ConfigRequestParameters.java
@@ -0,0 +1,148 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ * <code>ConfigRequestParameters</code> defines the Config Policy Request Parameters
+ *  which retrieve(s) the policy from PDP if the request parameters match with any Config Policy.  
+ * 
+ * @version 0.1
+ */
+public class ConfigRequestParameters {
+	private String policyName;
+	private String eCOMPComponentName;
+	private String configName;
+	private Map<String,String> configAttributes;
+	private UUID requestID;
+	private Boolean unique = false;
+	
+	/**
+	 * Sets the PolicyName of the Config policy which needs to be retrieved. 
+	 * 
+	 * @param policyName the <code>String</code> format of the PolicyFile Name whose configuration is required.
+	 */
+	public void setPolicyName(String policyName){
+		this.policyName = policyName;
+	}
+	
+	/**
+	 * Sets the ECOMP Component Name of the Config policy which needs to be retrieved. 
+	 * 
+	 * @param eCOMPComponentName the <code>String</code> format of the eCOMPComponentName whose configuration is required.
+	 */
+	public void setEcompName(String eCOMPComponentName){
+		this.eCOMPComponentName = eCOMPComponentName;
+	}
+	
+	/**
+	 * Sets the Config Name of the Config policy which needs to be retrieved.  
+	 * 
+	 * @param configName the <code>String</code> format of the configurationName whose configuration is required.
+	 */
+	public void setConfigName(String configName){
+		this.configName = configName;
+	}
+	
+	/**
+	 * Sets the ConfigAttributes of the Config policy which needs to be retrieved. 
+	 * 
+	 * @param configAttributes the <code>Map</code> of <code>String,String</code> format of the configuration attributes which are required.
+	 */
+	public void setConfigAttributes(Map<String, String> configAttributes){
+		this.configAttributes = configAttributes;
+	}
+	
+	/**
+	 * Sets the Request ID of the ECOMP request. 
+	 * 
+	 * @param requestID unique <code>UUID</code> requestID which will be passed throughout the ECOMP components to correlate logging messages.
+	 */
+	public void setRequestID(UUID requestID){
+		this.requestID = requestID;
+	}
+	
+	/**
+	 * Gets the policyName of the Request Parameters.
+	 * 
+	 * @return <code>String</code> format of the policyName.
+	 */
+	public String getPolicyName(){
+		return policyName;
+	}
+	
+	/**
+	 * Gets the ECOMP Component Name of the Request Parameters. 
+	 * 
+	 * @return <code>String</code> format of the ECOMP Component Name. 
+	 */
+	public String getEcompName(){
+		return eCOMPComponentName;
+	}
+	
+	/**
+	 * Gets the Config name of the Request Parameters. 
+	 * 
+	 * @return <code>String</code> format of the Config Name.  
+	 */
+	public String getConfigName(){
+		return configName;
+	}
+	
+	/**
+	 *  Gets the Config Attributes of the Request Parameters. 
+	 *  
+	 * @return <code>Map</code> of <code>String</code>,<code>String</code> format of the config Attributes. 
+	 */
+	public Map<String,String> getConfigAttributes(){
+		return configAttributes;
+	}
+	
+	/**
+	 *  Gets the Request ID of the Request Paramters.
+	 *  
+	 * @return <code>UUID</code> format of requestID. 
+	 */
+	public UUID getRequestID(){
+		return requestID;
+	}
+	
+	/**
+	 * Makes the results Unique, priority based. If set to True. Default Value is set to False. 
+	 * 
+	 * @param unique flag which is either true or false. 
+	 */
+	public void makeUnique(Boolean unique){
+		this.unique = unique;
+	}
+	
+	/**
+	 * Gets the Unique flag value from the Config Request Parameters. 
+	 * 
+	 * @return unique flag which is either true or false. 
+	 */
+	public Boolean getUnique(){
+		return this.unique;
+	}
+
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DecisionRequestParameters.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DecisionRequestParameters.java
new file mode 100644
index 0000000..dc485f7
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DecisionRequestParameters.java
@@ -0,0 +1,104 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ * <code>DecisionRequestParameters</code> defines the Decision Policy Request Parameters
+ *  which retrieve(s) the response from PDP if the request parameters match with any Decision Policy.
+ * 
+ * @version 0.1
+ */
+public class DecisionRequestParameters {
+	private String eCOMPComponentName;
+	private Map<String,String> decisionAttributes;
+	private UUID requestID;
+	
+	/**
+	 * Constructor with no Parameters
+	 */
+	public DecisionRequestParameters(){
+	}
+	
+	/**
+	 * Constructor with Parameters
+	 * 
+	 * @param eCOMPComponentName the <code>String</code> format of the eCOMPComponentName whose Decision is required.
+	 * @param decisionAttributes the <code>Map</code> of <code>String,String</code> format of the decisionAttributes that contain the ID and values.
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 */
+	public DecisionRequestParameters(String eCOMPComponentName, Map<String,String> decisionAttributes, UUID requestID){
+		this.eCOMPComponentName = eCOMPComponentName;
+		this.decisionAttributes = decisionAttributes;
+		this.requestID = requestID;
+	}
+	
+	/**
+	 * Gets the ECOMPComponentName of the Decision Request Parameters. 
+	 * 
+	 * @return ECOMPComponentName the <code>String</code> format of the eCOMPComponentName of the Decision Request Parameters.
+	 */
+	public String getECOMPComponentName() {
+		return eCOMPComponentName;
+	}
+	/**
+	 * Sets the ECOMPComponentName of the Decision Request parameters.  
+	 * 
+	 * @param eCOMPComponentName the <code>String</code> format of the eCOMPComponentName whose Decision is required.
+	 */
+	public void setECOMPComponentName(String eCOMPComponentName) {
+		this.eCOMPComponentName = eCOMPComponentName;
+	}
+	/**
+	 * Gets the Decision Attributes from Decision Request Parameters. 
+	 * 
+	 * @return decisionAttributes the <code>Map</code> of <code>String,String</code> format of the decisionAttributes that contain the ID and values.
+	 */
+	public Map<String,String> getDecisionAttributes() {
+		return decisionAttributes;
+	}
+	/**
+	 * Sets the Decision Attributes which contain ID and values for obtaining Decision from PDP. 
+	 * 
+	 * @param decisionAttributes the <code>Map</code> of <code>String,String</code> format of the decisionAttributes that must contain the ID and values.
+	 */
+	public void setDecisionAttributes(Map<String,String> decisionAttributes) {
+		this.decisionAttributes = decisionAttributes;
+	}
+	/**
+	 * Gets the request ID of Decision Request Parameters. 
+	 * 
+	 * @return the requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 */
+	public UUID getRequestID() {
+		return requestID;
+	}
+	/**
+	 * Sets the ReqestID of Decision Request Parameters which will be passed around ECOMP requests.
+	 * 
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 */
+	public void setRequestID(UUID requestID) {
+		this.requestID = requestID;
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DecisionResponse.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DecisionResponse.java
new file mode 100644
index 0000000..caa9fda
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DecisionResponse.java
@@ -0,0 +1,43 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+/**
+ * Defines the Object that represents the Policy Decision Response elements.
+ * DecisionResponse communicates the decision and details  
+ * 
+ * @version 0.1
+ */
+public interface DecisionResponse {
+	/**
+	 * Gets the Decision of the Policy, Either a Permit or Deny. 
+	 * 
+	 * @return {@link org.openecomp.policy.api.PolicyDecision} Enumeration. 
+	 */
+	public PolicyDecision getDecision();
+	
+	/**
+	 * Gets the details of the result. Would be required in case of Deny. 
+	 * 
+	 * @return <code>String</code> format of the details of Deny cause. 
+	 */
+	public String getDetails();
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DeletePolicyCondition.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DeletePolicyCondition.java
new file mode 100644
index 0000000..3440c99
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DeletePolicyCondition.java
@@ -0,0 +1,53 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+/**
+ * Enumeration of the Policy Delete Condition that is used as a part of
+ * {@link org.openecomp.policy.api.DeletePolicyParameters}.
+ * 
+ * @version 0.1
+ */
+public enum DeletePolicyCondition {
+	
+	/**
+	 * Indicates a condition to only delete the current version of the policy. 
+	 */
+	ONE("Current Version"),
+	
+	/**
+	 * Indicates a condition to delete all versions of the policy.
+	 */
+	ALL("All Versions");
+	private String name;
+
+	private DeletePolicyCondition(String name){
+		this.name = name;
+	}
+
+	/**
+	 * Returns the <code>String</code> format of delete condition for this Policy
+	 * @return the <code>String</code> of the delete condition for this Policy
+	 */
+	public String toString(){
+		return this.name;
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DeletePolicyParameters.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DeletePolicyParameters.java
new file mode 100644
index 0000000..3999c5e
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DeletePolicyParameters.java
@@ -0,0 +1,101 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+import java.util.UUID;
+
+/**
+ * <code>PushPolicyParameters</code> defines the Policy Parameters
+ *  which are required to Push a Policy to PDPGroup. 
+ * 
+ * @version 0.1
+ */
+public class DeletePolicyParameters {
+	
+	private String policyName;
+	private String policyComponent;
+	private DeletePolicyCondition deleteCondition;
+	private String pdpGroup;
+	private UUID requestID;
+
+	
+	/**
+	 * @return the policyName
+	 */
+	public String getPolicyName() {
+		return policyName;
+	}
+	/**
+	 * @param policyName the policyName to set
+	 */
+	public void setPolicyName(String policyName) {
+		this.policyName = policyName;
+	}
+	/**
+	 * @return the policyComponent
+	 */
+	public String getPolicyComponent() {
+		return policyComponent;
+	}
+	/**
+	 * @param policyComponent the policyComponent to set
+	 */
+	public void setPolicyComponent(String policyComponent) {
+		this.policyComponent = policyComponent;
+	}
+	/**
+	 * @return the deleteCondition
+	 */
+	public DeletePolicyCondition getDeleteCondition() {
+		return deleteCondition;
+	}
+	/**
+	 * @param deleteCondition the deleteCondition to set
+	 */
+	public void setDeleteCondition(DeletePolicyCondition deleteCondition) {
+		this.deleteCondition = deleteCondition;
+	}
+	/**
+	 * @return the requestID
+	 */
+	public UUID getRequestID() {
+		return requestID;
+	}
+	/**
+	 * @param requestID the requestID to set
+	 */
+	public void setRequestID(UUID requestID) {
+		this.requestID = requestID;
+	}
+	/**
+	 * @return the pdpGroup
+	 */
+	public String getPdpGroup() {
+		return pdpGroup;
+	}
+	/**
+	 * @param pdpGroup the pdpGroup to set
+	 */
+	public void setPdpGroup(String pdpGroup) {
+		this.pdpGroup = pdpGroup;
+	}
+
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DictionaryParameters.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DictionaryParameters.java
new file mode 100644
index 0000000..1506eff
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DictionaryParameters.java
@@ -0,0 +1,83 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+import java.util.Map;
+import java.util.UUID;
+
+public class DictionaryParameters {
+	
+	private DictionaryType dictionaryType;
+	private String dictionary;
+	private Map<AttributeType, Map<String,String>> dictionaryFields;
+	private UUID requestID;
+	
+	
+	/**
+	 * @return the dictionaryType
+	 */
+	public DictionaryType getDictionaryType() {
+		return dictionaryType;
+	}
+	/**
+	 * @param dictionaryType the dictionaryType to set
+	 */
+	public void setDictionaryType(DictionaryType dictionaryType) {
+		this.dictionaryType = dictionaryType;
+	}
+	/**
+	 * @return the dictionary
+	 */
+	public String getDictionary() {
+		return dictionary;
+	}
+	/**
+	 * @param dictionary the dictionary to set
+	 */
+	public void setDictionary(String dictionary) {
+		this.dictionary = dictionary;
+	}
+	/**
+	 * @return the dictionaryFields
+	 */
+	public Map<AttributeType, Map<String,String>> getDictionaryFields() {
+		return dictionaryFields;
+	}
+	/**
+	 * @param dictionaryFields the dictionaryFields to set
+	 */
+	public void setDictionaryFields(Map<AttributeType, Map<String,String>> dictionaryFields) {
+		this.dictionaryFields = dictionaryFields;
+	}
+	/**
+	 * @return the requestID
+	 */
+	public UUID getRequestID() {
+		return requestID;
+	}
+	/**
+	 * @param requestID the requestID to set
+	 */
+	public void setRequestID(UUID requestID) {
+		this.requestID = requestID;
+	}
+
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DictionaryType.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DictionaryType.java
new file mode 100644
index 0000000..0935f64
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/DictionaryType.java
@@ -0,0 +1,73 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+public enum DictionaryType {
+	/**
+	 * Indicates Common Dictionaries. 
+	 */
+	Common("Common"),
+	/**
+	 * Indicates ClosedLoop Policy Dictionaries. 
+	 */
+	ClosedLoop("ClosedLoop"),
+	/**
+	 * Indicates Firewall Config Policy Dictionaries. 
+	 */
+	Firewall("FW"),
+	/**
+	 * Indicates Decision Policy Dictionaries. 
+	 */
+	Decision("Decision"),
+	/**
+	 * Indicates BRMS Policy Dictionaries. 
+	 */
+	BRMS("BRMS"),
+	/**
+	 * Indicates DCAE Micro Service Policy Dictionaries. 
+	 */
+	MicroService("MS"),
+	/**
+	 * Indicates Descriptive Scope Dictionaries
+	 */
+	DescriptiveScope("DescriptiveScope"),
+	/**
+	 * Indicates Policy Scope Dictionaries
+	 */
+	PolicyScope("PolicyScope"),
+	;
+	
+	private String name;
+	
+	private DictionaryType(String typeName){
+		this.name = typeName;
+	}
+	
+	/**
+	 * Returns the <code>String</code> format of Type for this <code>PolicyClass</code>
+	 * @return the <code>String</code> of the Type for this <code>PolicyClass</code>
+	 */
+	public String toString() {
+		return this.name;
+	}
+	
+
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/EventRequestParameters.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/EventRequestParameters.java
new file mode 100644
index 0000000..155d9c6
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/EventRequestParameters.java
@@ -0,0 +1,89 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ * <code>EventRequestParameters</code> defines the Event Policy Request Parameters
+ *  which retrieve(s) the response from PDP if the request parameters match with any Action Policy.  
+ * 
+ * @version 0.1
+ */
+public class EventRequestParameters {
+	private Map<String,String> eventAttributes;
+	private UUID requestID;
+	
+	/**
+	 * Constructor with no Parameters
+	 */
+	public EventRequestParameters(){
+	}
+	
+	/**
+	 * Constructor with Parameters
+	 * 
+	 * @param eventAttributes the <code>Map</code> of <code>String,String</code> format of the eventAttributes that contains the event ID and values.
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 */
+	public EventRequestParameters(Map<String,String> eventAttributes, UUID requestID){
+		this.eventAttributes = eventAttributes;
+		this.requestID = requestID;
+	}
+	
+	/**
+	 * Gets the eventAttributes of Event Request Parameters. 
+	 * 
+	 * @return eventAttributes the <code>Map</code> of <code>String,String</code> format of the eventAttributes that contains the event ID and values.
+	 */
+	public Map<String,String> getEventAttributes() {
+		return eventAttributes;
+	}
+	
+	/**
+	 * Sets the eventAttributes that contain the eventID and values to the Event Request Parameters. 
+	 * 
+	 * @param eventAttributes the <code>Map</code> of <code>String,String</code> format of the eventAttributes that must contain the event ID and values.
+	 */
+	public void setEventAttributes(Map<String,String> eventAttributes) {
+		this.eventAttributes = eventAttributes;
+	}
+	
+	/**
+	 * Gets the ReqestID of Event Request Parameters which will be passed around ECOMP requests. 
+	 * 
+	 * @return requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 */
+	public UUID getRequestID() {
+		return requestID;
+	}
+	
+	/**
+	 * Sets the ReqestID of Event Request Parameters which will be passed around ECOMP requests.
+	 * 
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 */
+	public void setRequestID(UUID requestID) {
+		this.requestID = requestID;
+	}
+	
+} 
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/ImportParameters.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/ImportParameters.java
new file mode 100644
index 0000000..299f29a
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/ImportParameters.java
@@ -0,0 +1,194 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+import java.util.List;
+import java.util.UUID;
+
+
+/**
+ * <code>ImportParameters</code> defines the Policy Engine Import Parameters
+ *  which are required to import a new Policy Service or Value. 
+ * 
+ * @version 0.1
+ */
+public class ImportParameters {
+	private String serviceName;
+	private String description;
+	private UUID requestID;
+	private String filePath;
+	private String importBody;
+	private String version;
+	private IMPORT_TYPE importType;
+	
+	public enum IMPORT_TYPE {
+	    MICROSERVICE
+	}
+
+	/**
+	 * Sets Import Policy Parameters.
+	 * 
+	 * @param serviceName the <code>String</code> format of the Service Name
+	 * @param description the <code>String</code> format of the i Description
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 * @param filePath the <code>List</code> format of the file paths for the service files
+	 * @param importType the {@link IMPORT_TYPE} format of the Policy Service List
+	 * @param version the <code>String</code> format of the Policy Import Version
+	 * A different request ID should be passed for each request.
+	 */
+	public void setImportParameters(String serviceName, String description, UUID requestID, String filePath, IMPORT_TYPE importType, String version){
+		
+		this.setServiceName(serviceName);
+		this.setDescription(description);
+		this.setRequestID(requestID);
+		this.setFilePath(filePath);
+		this.setServiceType(importType);	
+		this.setVersion(version);
+		
+	}
+
+	/**
+	 * Gets the Policy Service of the Policy Service Import Parameters. 
+	 * 
+	 * @return serviceName the <code>String</code> format of the Policy Service Name
+	 */
+	public String getServiceName() {
+		return serviceName;
+	}
+
+	/**
+	 * Sets the serviceName of the Policy Service Parameters.
+	 * 
+	 * @param serviceName the <code>String</code> format of the Policy Service Name
+	 */
+	public void setServiceName(String serviceName) {
+		this.serviceName = serviceName;
+	}
+
+	/**
+	 * Gets the Policy Import Description. 
+	 * 
+	 * @return description the <code>String</code> format of the Policy Import Description
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * Sets the Description of the new Policy Import Description. 
+	 * 
+	 * @param description the <code>String</code> format of the Policy Import Description
+	 */
+	public void setDescription(String description) {
+		this.description = description;
+	}
+	
+	/**
+	 * Gets the requestID of the Policy Parameters. 
+	 * 
+	 * @return unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 */
+	public UUID getRequestID() {
+		return requestID;
+	}
+	
+	/**
+	 * Sets the requestID of the Policy Parameters. 
+	 * 
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 */
+	public void setRequestID(UUID requestID) {
+		this.requestID = requestID;
+	}
+
+	/**
+	 * Gets the importBody of the new policy import. 
+	 * 
+	 * @return importBody the <code>String</code> format of the Policy Import Body
+	 */
+	public String getImportBody() {
+		return importBody;
+	}
+
+	/**
+	 * Sets the importBody of the Policy Import Body. 
+	 * 
+	 * @param importBody the <code>String</code> format of the Policy Import Body
+	 */
+	public void setImportBody(String importBody) {
+		this.importBody = importBody;
+	}
+	
+	/**
+	 * Gets the List of File Paths of the new import. 
+	 * 
+	 * @return filePath the <code>List</code> format of the Policy Import  File
+	 */
+	public String getFilePath() {
+		return filePath;
+	}
+
+	/**
+	 * Sets the policy Import File List of the new Policy Import. 
+	 * 
+	 * @param filePath the <code>List</code> format of the Policy Import  File
+	 */
+	public void setFilePath(String filePath) {
+		this.filePath = filePath;
+	}
+	
+	/** 
+	 * Gets the Service Type of the new policy import. 
+	 * 
+	 * @return ImportType {@link IMPORT_TYPE} format of the Policy Service List
+	 */
+	public IMPORT_TYPE getServiceType() {
+		return importType;
+	}
+	
+	/**
+	 * Sets the policy Service Type of the new Policy Service. 
+	 * 
+	 * @param enumImportType the <code>enumServiceType</code> format of the Policy Service List
+	 */
+	public void setServiceType(IMPORT_TYPE enumImportType) {
+		this.importType = enumImportType;
+	}
+	
+	/**
+	 * 
+	 * Gets the Import Version of the new policy import. 
+	 * 
+	 * @return version the <code>String</code> format of the Policy Import Version
+	 */
+	public String getVersion() {
+		return version;
+	}
+
+	/**
+	 * Sets the policy Import Version  of the new Policy Import. 
+	 * 
+	 * @param version the <code>String</code> format of the Policy Import Version
+	 */
+	public void setVersion(String version) {
+		this.version = version;
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/NotificationScheme.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/NotificationScheme.java
new file mode 100644
index 0000000..2e88d9c
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/NotificationScheme.java
@@ -0,0 +1,61 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+/**
+ * Enumeration of <code>NotificationScheme</code> describes the Notification Scheme that will be used by the PolicyEngine.
+ * 
+ * @version 0.1 
+ */
+public enum NotificationScheme {
+	/**
+	 * Notifications for policyUpdates on policy Configs already retrieved 
+	 */
+	AUTO_NOTIFICATIONS("auto_notifications"),
+	/**
+	 * Subscribing to all notifications from the PDP 
+	 */
+	AUTO_ALL_NOTIFICATIONS("auto_all_notifications"),
+	/**
+	 * Client can poll for updates that receive policyUpdates on policy Configs that have already been retrieved
+	 */
+	MANUAL_NOTIFICATIONS("manual_notifications"),
+	/**
+	 * Client can poll for updates that receive all notifications from the PDP 
+	 */
+	MANUAL_ALL_NOTIFICATIONS("manual_all_notifications")
+	;
+	
+	private String name;
+	private NotificationScheme(String name){
+		this.name = name;
+	}
+	
+	/**
+	 * Returns the <code>String</code> name for this <code>NotificationScheme</code>
+	 * 
+	 * @return the <code>String</code> name for this <code>NotificationScheme</code>
+	 */
+	@Override
+	public String toString(){
+		return this.name;
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyChangeResponse.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyChangeResponse.java
new file mode 100644
index 0000000..98bfdc2
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyChangeResponse.java
@@ -0,0 +1,44 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+/**
+ * <code>PolicyChangeResponse</code> defines the Policy Response
+ *  which is Contains responseCode corresponding to HTTP response Codes with response Message. 
+ * 
+ * @version 0.1
+ */
+public interface PolicyChangeResponse {
+	
+	/**
+	 * Policy Change Response Message in <code>String</code> format from the Policy Engine. 
+	 * 
+	 * @return the responseMessage in <code>String</code> format related to Response from Policy Engine. 
+	 */
+	public String getResponseMessage();
+	
+	/**
+	 * Response code of type <code>Integer</code> which corresponds to the HTTP Response code explaining the response from Policy Engine. 
+	 * 
+	 * @return the responseCode in <code>Integer</code> format corresponding to the HTTP response code from Policy Engine. 
+	 */
+	public int getResponseCode();
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyClass.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyClass.java
new file mode 100644
index 0000000..caf3c11
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyClass.java
@@ -0,0 +1,56 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+/**
+ * Enumeration of the Policy Types that is used as a part of
+ * {@link org.openecomp.policy.api.PolicyParameters}.
+ * 
+ * @version 0.1
+ */
+public enum PolicyClass {
+	/**
+	 * Indicates Config based Policy. 
+	 */
+	Config("Config"),
+	/**
+	 * Indicates Action based Policy. 
+	 */
+	Action("Action"),
+	/**
+	 * Indicates Decision based Policy. 
+	 */
+	Decision("Decision")
+	;
+	private String name;
+	
+	private PolicyClass(String typeName){
+		this.name = typeName;
+	}
+	
+	/**
+	 * Returns the <code>String</code> format of Type for this <code>PolicyClass</code>
+	 * @return the <code>String</code> of the Type for this <code>PolicyClass</code>
+	 */
+	public String toString() {
+		return this.name;
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyConfig.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyConfig.java
new file mode 100644
index 0000000..5cb7d81
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyConfig.java
@@ -0,0 +1,123 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+import java.util.Map;
+import java.util.Properties;
+
+import javax.json.JsonObject;
+
+import org.w3c.dom.Document;
+/**
+ * Defines the objects that represent PolicyEngine config elements. PolicyConfig communicates the PolicyConfigStatus,
+ * PolicyConfigMessage, PolicyType, Properties, JsonObject, String and Document. 
+ * 
+ * @version 0.7
+ */
+
+public interface PolicyConfig {
+	/**
+	 * Gets the {@link org.openecomp.policy.api.PolicyType} associated with <code>PolicyConfig</code> 
+	 * 
+	 * @return the <code>PolicyType</code> associated with this <code>PolicyConfig</code> 
+	 */
+	public PolicyType getType();
+	
+	/**
+	 * Gives the <code>Properties</code> response associated with the <code>PolicyConfig</code> 
+	 * 
+	 * @return the <code>Properties</code> associated with this <code>PolicyConfig</code>
+	 */
+	public Properties toProperties();
+	
+	/**
+	 * Gives the <code>JsonObject</code> response associated with the <code>PolicyConfig</code> 
+	 * 
+	 * @return the <code>JsonObject</code> result associated with <code>PolicyConfig</code> 
+	 */
+	public JsonObject toJSON();
+	
+	/**
+	 * Gives the XML <code>Document</code> result associated with <code>PolicyConfig</code> 
+	 * 
+	 * @return the <code>Document</code> result associated with <code>PolicyConfig</code> 
+	 */
+	public Document toXML();
+	
+	/**
+	 * Gives the Other <code>String</code> response associated with <code>PolicyConfig</code>
+	 * 
+	 * @return the <code>String</code> result associated with <code>PolicyConfig</code>
+	 */
+	public String toOther();
+	
+	/**
+	 * Gets the {@link org.openecomp.policy.api.PolicyConfigStatus} associated with this <code>PolicyConfig</code>.
+	 * 
+	 * @return the <code>PolicyConfigStatus</code> associated with this <code>PolicyConfig</code>
+	 */
+	public PolicyConfigStatus getPolicyConfigStatus();
+	
+	/**
+	 * Gets the <code>String</code> of the PolicyConfigMessage from <code>PolicyConfig</code>.
+	 * 
+	 * @return the <code>String</code> which consists of PolicyConfigMessage from <code>PolicyConfig</code>
+	 */
+	public String getPolicyConfigMessage();
+	
+	/**
+	 * Gets the <code>String</code> of the PolicyName retrieved.
+	 * 
+	 * @return the <code>String</code> which consists of Policy Name which has been retrieved.  
+	 */
+	public String getPolicyName();
+	
+	
+	/**
+	 * Gets the <code>String</code> of the PolicyVersion retrieved.
+	 * 
+	 * @return the <code>String</code> which consists of the Policy Version number which has been retrieved.
+	 */
+	public String getPolicyVersion();
+	
+	/**
+	 * Gets the Matching Conditions of the policy retrieved which can be used in the getConfig call.
+	 * 
+	 * @return <code>Map</code> of <code>String, String</code> which consists of the Matching conditions of the Policy retrieved. 
+	 */
+	public Map<String,String> getMatchingConditions();
+	
+	/**
+	 * Gets the Response Attributes of the policy retrieved. Which can hold additional information about the policy retrieved.  
+	 * 
+	 * @return <code>Map</code> of <code>String, String</code> which consists of the Response Attributes of the Policy retrieved. 
+	 */
+	public Map<String,String> getResponseAttributes();
+ 	
+	/**
+	 * Returns the <code>String</code> version of the <code>PolicyConfig</code> object.
+	 * 
+	 *  @return <code>String</code> of the <code>PolicyConfig</code> Object.  
+	 */
+	@Override
+	public String toString();
+	
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyConfigException.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyConfigException.java
new file mode 100644
index 0000000..ad6948e
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyConfigException.java
@@ -0,0 +1,49 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+/**
+ * PolicyConfigException extends <code>Exception</code> to implement exceptions thrown by {@link org.openecomp.policy.api.PolicyEngine}
+ * 
+ * @version 0.1
+ */
+public class PolicyConfigException extends Exception{
+	private static final long serialVersionUID = -188355220060684215L;
+	
+	public PolicyConfigException() {
+	}
+	
+	public PolicyConfigException(String message) {
+		super(message);
+	}
+	
+	public PolicyConfigException(Throwable cause){
+		super(cause);
+	}
+	
+	public PolicyConfigException(String message, Throwable cause) {
+		super(message, cause);
+	}
+	
+	public PolicyConfigException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+		super(message, cause, enableSuppression, writableStackTrace);
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyConfigStatus.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyConfigStatus.java
new file mode 100644
index 0000000..9f45b65
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyConfigStatus.java
@@ -0,0 +1,68 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+/**
+ * Enumeration of PolicyConfigStatus that can be returned as a part of 
+ * {@link org.openecomp.policy.api.PolicyConfig}.
+ * 
+ * @version 0.1
+ */
+public enum PolicyConfigStatus {	
+	/**
+	 * Indicates that the Configuration has been successfully retrieved. 
+	 */
+	CONFIG_RETRIEVED("retrieved"),
+	/**
+	 * Indicates that there is no Configuration Retrieved from PolicyConfig.
+	 */
+	CONFIG_NOT_FOUND("not_found"),
+	;
+	
+	private String name;
+	private PolicyConfigStatus(String name){
+		this.name = name;
+	}
+	
+	/**
+	 * Get the <code>PolicyConfigStatus</code> based on <code>String</code> representation of <code>PolicyConfig</code>
+	 * 
+	 * @param configStatus the <code>String</code> Configuration Status
+	 * @return the <code>PolicyConfigResponse</code> with the name matching <code>CONFIG_RETRIEVED</code> or <code>CONFIG_NOT_FOUND</code>
+	 * if no match is found
+	 */
+	public static PolicyConfigStatus getStatus(String configStatus) {
+		if(configStatus.equalsIgnoreCase("retrieved")) {
+			return CONFIG_RETRIEVED;
+		}else {
+			return CONFIG_NOT_FOUND;
+		}
+	}
+	
+	/**
+	 * Returns the <code>String</code> name for this <code>PolicyConfigStatus</code>
+	 * 
+	 * @return the <code>String</code> name for this <code>PolicyConfigStatus</code>
+	 */
+	public String toString(){
+		return this.name;
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyConfigType.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyConfigType.java
new file mode 100644
index 0000000..111c856
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyConfigType.java
@@ -0,0 +1,73 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+/**
+ * Enumeration of the Policy Config Types that is used as a part of
+ * {@link org.openecomp.policy.api.PolicyParameters}.
+ * 
+ * @version 0.1
+ */
+public enum PolicyConfigType {
+	/**
+	 * Indicates Base Config Policy. 
+	 */
+	Base("Base"),
+	/**
+	 * Indicates ClosedLoop Fault Policy. 
+	 */
+	ClosedLoop_Fault("Fault"),
+	/**
+	 * Indicates ClosedLoop Performance Metrics Policy. 
+	 */
+	ClosedLoop_PM("PM"),
+	/**
+	 * Indicates Firewall Config Policy. 
+	 */
+	Firewall("FW"),
+	/**
+	 * Indicates BRMS based raw DRL Rule Policy. 
+	 */
+	BRMS_RAW("BRMS_Raw"),
+	/**
+	 * Indicates BRMS based Param DRL policy. 
+	 */
+	BRMS_PARAM("BRMS_Param"),
+	/**
+	 * Indicates DCAE Micro Service based Policy. 
+	 */
+	MicroService("MS")
+	;
+	
+	private String name;
+	
+	private PolicyConfigType(String typeName){
+		this.name = typeName;
+	}
+	
+	/**
+	 * Returns the <code>String</code> format of Type for this <code>PolicyClass</code>
+	 * @return the <code>String</code> of the Type for this <code>PolicyClass</code>
+	 */
+	public String toString() {
+		return this.name;
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyDecision.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyDecision.java
new file mode 100644
index 0000000..18d0669
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyDecision.java
@@ -0,0 +1,57 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+/**
+ * Enumeration of PolicyDecision that can be returned as a part of 
+ * {@link org.openecomp.policy.api.DecisionResponse} getDecision().
+ * 
+ * @version 0.1
+ */
+public enum PolicyDecision {
+	/**
+	 * Indicates that the Decision is to Permit. 
+	 */
+	PERMIT("permit"),
+	/**
+	 * Indicates that the Decision is to Deny. 
+	 */
+	DENY("deny"),
+	/**
+	 * Indicates that the Decision process has some issues. 
+	 */
+	ERROR("error")
+	;
+	
+	private String name;
+	private PolicyDecision(String name){
+		this.name = name;
+	}
+	
+	/**
+	 * Returns the <code>String</code> name for this <code>PolicyDecision</code>
+	 * 
+	 * @return the <code>String</code> name for this <code>PolicyDecision</code>
+	 */
+	public String toString(){
+		return this.name;
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyDecisionException.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyDecisionException.java
new file mode 100644
index 0000000..7f08fcb
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyDecisionException.java
@@ -0,0 +1,50 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+/**
+ * PolicyDecisionException extends <code>Exception</code> to implement exceptions thrown by {@link org.openecomp.policy.api.PolicyEngine}
+ * 
+ * @version 0.1
+ */
+public class PolicyDecisionException extends Exception {
+
+	private static final long serialVersionUID = -2080072039363261175L;
+	
+	public PolicyDecisionException() {
+	}
+	
+	public PolicyDecisionException(String message) {
+		super(message);
+	}
+	
+	public PolicyDecisionException(Throwable cause){
+		super(cause);
+	}
+	
+	public PolicyDecisionException(String message, Throwable cause) {
+		super(message, cause);
+	}
+	
+	public PolicyDecisionException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+		super(message, cause, enableSuppression, writableStackTrace);
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyEngine.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyEngine.java
new file mode 100644
index 0000000..0b46c57
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyEngine.java
@@ -0,0 +1,575 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.UUID;
+
+import javax.json.JsonObject;
+
+import org.openecomp.policy.api.NotificationHandler;
+import org.openecomp.policy.api.PDPNotification;
+import org.openecomp.policy.std.StdPolicyEngine;
+
+/**
+ * PolicyEngine is the Interface that applications use to make policy queries against a PEPEngine 
+ * 
+ * @version 1.0
+ */
+public class PolicyEngine{
+	private String propertyFilePath = null;
+	private StdPolicyEngine stdPolicyEngine;
+	private NotificationScheme scheme = null;
+	private NotificationHandler handler = null;
+	
+	/**
+	 * Gets the configuration from the PolicyDecisionPoint(PDP) for the <code>String</code> which represents the Policy File Name 
+	 * 
+	 * @param policyName the <code>String</code> format of the PolicyFile Name whose configuration is required. 
+	 * @return <code>Collection</code> of {@link org.openecomp.policy.api.PolicyConfig} which has the configuration. 
+	 * @throws PolicyConfigException
+	 * @deprecated use {@link #getConfigByPolicyName(String policyName, UUID requestID)} Instead.
+	 */
+	@Deprecated
+	public Collection<PolicyConfig> getConfigByPolicyName(String policyName) throws PolicyConfigException {
+		Collection<PolicyConfig> policyConfig = stdPolicyEngine.policyName(policyName,(UUID)null);
+		return policyConfig;	
+	}
+	
+	/**
+	 * Gets the configuration from the PolicyDecisionPoint(PDP) for the <code>String</code> which represents the Policy File Name 
+	 * 
+	 * @param policyName the <code>String</code> format of the PolicyFile Name whose configuration is required. 
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 * A different request ID should be passed for each request.
+	 * @return <code>Collection</code> of {@link org.openecomp.policy.api.PolicyConfig} which has the configuration. 
+	 * @throws PolicyConfigException
+	 * @deprecated use {@link #getConfigByPolicyName(String policyName, UUID requestID)} Instead.
+	 */
+	@Deprecated
+	public Collection<PolicyConfig> getConfigByPolicyName(String policyName, UUID requestID) throws PolicyConfigException {
+		Collection<PolicyConfig> policyConfig = stdPolicyEngine.policyName(policyName,requestID);
+		return policyConfig;	
+	}
+	
+	/**
+	 * Gets the configuration from the PolicyDecisionPoint(PDP) for the <code>String</code> which represents the eCOMPComponentName 
+	 * 
+	 * @param eCOMPComponentName the <code>String</code> format of the eCOMPComponentName whose configuration is required. 
+	 * @return <code>Collection</code> of {@link org.openecomp.policy.api.PolicyConfig} which has the configuration.
+	 * @throws PolicyConfigException 
+	 * @deprecated use {@link #getConfig(ConfigRequestParameters)} Instead.
+	 */
+	@Deprecated
+	public Collection<PolicyConfig> getConfig(String eCOMPComponentName) throws PolicyConfigException {
+		Collection<PolicyConfig> policyConfig = stdPolicyEngine.config(eCOMPComponentName,(UUID)null);
+		return policyConfig;
+	}
+	
+	/**
+	 * Gets the configuration from the PolicyDecisionPoint(PDP) for the <code>String</code> which represents the eCOMPComponentName 
+	 * 
+	 * @param eCOMPComponentName the <code>String</code> format of the eCOMPComponentName whose configuration is required. 
+	 * @return <code>Collection</code> of {@link org.openecomp.policy.api.PolicyConfig} which has the configuration.
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 * A different request ID should be passed for each request.
+	 * @throws PolicyConfigException 
+	 * @deprecated use {@link #getConfig(ConfigRequestParameters)} Instead.
+	 */
+	@Deprecated
+	public Collection<PolicyConfig> getConfig(String eCOMPComponentName, UUID requestID) throws PolicyConfigException {
+		Collection<PolicyConfig> policyConfig = stdPolicyEngine.config(eCOMPComponentName,requestID);
+		return policyConfig;
+	}
+	
+	/**
+	 * Requests the configuration of the <code>String</code> which represents the eCOMPComponentName and <code>String</code>
+	 * which represents the configName and returns the configuration if different Configurations exist for the
+	 * particular eCOMPComponentName.  
+	 * 
+	 * @param eCOMPComponentName the <code>String</code> format of the eCOMPComponentName whose configuration is required.
+	 * @param configName the <code>String</code> format of the configurationName whose configuration is required.
+	 * @return <code>Collection</code> of {@link org.openecomp.policy.api.PolicyConfig} which has the configuration. 
+	 * @throws PolicyConfigException
+	 * @deprecated use {@link #getConfig(ConfigRequestParameters)} Instead.
+	 */
+	@Deprecated
+	public Collection<PolicyConfig> getConfig(String eCOMPComponentName, String configName) throws PolicyConfigException {
+		Collection<PolicyConfig> policyConfig = stdPolicyEngine.config(eCOMPComponentName,configName,(UUID)null);
+		return policyConfig;
+	}
+	
+	/**
+	 * Requests the configuration of the <code>String</code> which represents the eCOMPComponentName and <code>String</code>
+	 * which represents the configName and returns the configuration if different Configurations exist for the
+	 * particular eCOMPComponentName.  
+	 * 
+	 * @param eCOMPComponentName the <code>String</code> format of the eCOMPComponentName whose configuration is required.
+	 * @param configName the <code>String</code> format of the configurationName whose configuration is required.
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 * A different request ID should be passed for each request.
+	 * @return <code>Collection</code> of {@link org.openecomp.policy.api.PolicyConfig} which has the configuration. 
+	 * @throws PolicyConfigException
+	 * @deprecated use {@link #getConfig(ConfigRequestParameters)} Instead.
+	 */
+	@Deprecated
+	public Collection<PolicyConfig> getConfig(String eCOMPComponentName, String configName, UUID requestID) throws PolicyConfigException {
+		Collection<PolicyConfig> policyConfig = stdPolicyEngine.config(eCOMPComponentName,configName,requestID);
+		return policyConfig;
+	}
+	
+	/**
+	 * Requests the configuration of the <code>String</code> which represents the eCOMPComponentName, <code>String</code>
+	 * which represents the configName and <code>Map</code> of <code>String,String</code> which has the configAttribute and returns the specific 
+	 * configuration related to the configAttributes mentioned.
+	 * 
+	 * @param eCOMPComponentName the <code>String</code> format of the eCOMPComponentName whose configuration is required.
+	 * @param configName the <code>String</code> format of the configurationName whose configuration is required.
+	 * @param configAttributes the <code>Map</code> of <code>String,String</code> format of the configuration attributes which are required.
+	 * @return <code>Collection</code> of {@link org.openecomp.policy.api.PolicyConfig} which has the configuration.
+	 * @throws PolicyConfigException
+	 * @deprecated use {@link #getConfig(ConfigRequestParameters)} Instead.
+	 */
+	@Deprecated
+	public Collection<PolicyConfig> getConfig(String eCOMPComponentName, String configName, Map<String, String> configAttributes) throws PolicyConfigException{
+		Collection<PolicyConfig> policyConfig = stdPolicyEngine.config(eCOMPComponentName,configName,configAttributes,(UUID)null);
+		return policyConfig;
+	}
+	
+	/**
+	 * Requests the configuration of the <code>String</code> which represents the eCOMPComponentName, <code>String</code>
+	 * which represents the configName and <code>Map</code> of <code>String,String</code> which has the configAttribute and returns the specific 
+	 * configuration related to the configAttributes mentioned.
+	 * 
+	 * @param eCOMPComponentName the <code>String</code> format of the eCOMPComponentName whose configuration is required.
+	 * @param configName the <code>String</code> format of the configurationName whose configuration is required.
+	 * @param configAttributes the <code>Map</code> of <code>String,String</code> format of the configuration attributes which are required.
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 * A different request ID should be passed for each request.
+	 * @return <code>Collection</code> of {@link org.openecomp.policy.api.PolicyConfig} which has the configuration.
+	 * @throws PolicyConfigException
+	 * @deprecated use {@link #getConfig(ConfigRequestParameters)} Instead.
+	 */
+	@Deprecated
+	public Collection<PolicyConfig> getConfig(String eCOMPComponentName, String configName, Map<String, String> configAttributes, UUID requestID) throws PolicyConfigException{
+		Collection<PolicyConfig> policyConfig = stdPolicyEngine.config(eCOMPComponentName,configName,configAttributes,requestID);
+		return policyConfig;
+	}
+	
+	/**
+	 * Requests the configuration of the <code>ConfigRequestParameters</code> which represents the Config policy request parameters 
+	 * and returns the specific configuration related to the matching parameters. 
+	 * 
+	 * @param configRequestParameters {@link org.openecomp.policy.api.ConfigRequestParameters} which represents the Config policy request parameters. 
+	 * @return <code>Collection</code> of {@link org.openecomp.policy.api.PolicyConfig} which has the configuration.
+	 * @throws PolicyConfigException
+	 */
+	public Collection<PolicyConfig> getConfig(ConfigRequestParameters configRequestParameters)  throws PolicyConfigException{
+		Collection<PolicyConfig> policyConfig = stdPolicyEngine.config(configRequestParameters);
+		return policyConfig;
+	}
+	
+	/**
+	 * Requests the list of policies based on the <code>ConfigRequestParameters</code> which represents the policy request parameters 
+	 * and returns the list of policies filtered by the parameters. 
+	 * 
+	 * @param configRequestParameters {@link org.openecomp.policy.api.ConfigRequestParameters} which represents the List Policy request parameters. 
+	 * @return <code>Collection</code> of <code>String</code> which returns the list of policies.
+	 * @throws PolicyConfigException
+	 */
+	public Collection<String> listConfig(ConfigRequestParameters listPolicyRequestParameters)  throws PolicyConfigException{
+		Collection<String> policyList = stdPolicyEngine.listConfig(listPolicyRequestParameters);
+		return policyList;
+	}
+	
+	
+	/**
+	 * Sends the Events specified to the PEP and returns back the PolicyResponse. 
+	 * 
+	 * @param eventAttributes the <code>Map</code> of <code>String,String</code> format of the eventAttributes that must contain the event ID and values.
+	 * @return <code>Collection</code> of {@link org.openecomp.policy.api.PolicyResponse} which has the Response. 
+	 * @throws PolicyEventException
+	 * @deprecated use {@link #sendEvent(EventRequestParameters)} Instead.
+	 */
+	@Deprecated
+	public Collection<PolicyResponse> sendEvent(Map<String, String> eventAttributes) throws PolicyEventException {
+		Collection<PolicyResponse> policyResponse = stdPolicyEngine.event(eventAttributes, (UUID) null);
+		return policyResponse;
+	}
+	
+	/**
+	 * Sends the Events specified to the PEP and returns back the PolicyResponse. 
+	 * 
+	 * @param eventAttributes the <code>Map</code> of <code>String,String</code> format of the eventAttributes that must contain the event ID and values.
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 * A different request ID should be passed for each request.
+	 * @return <code>Collection</code> of {@link org.openecomp.policy.api.PolicyResponse} which has the Response. 
+	 * @throws PolicyEventException
+	 * @deprecated use {@link #sendEvent(EventRequestParameters)} Instead.
+	 */
+	@Deprecated
+	public Collection<PolicyResponse> sendEvent(Map<String, String> eventAttributes, UUID requestID) throws PolicyEventException {
+		Collection<PolicyResponse> policyResponse = stdPolicyEngine.event(eventAttributes, requestID);
+		return policyResponse;
+	}
+	
+	/**
+	 * Sends the Events specified to the PEP and returns back the PolicyResponse.
+	 * 
+	 * @param eventRequestParameters {@link org.openecomp.policy.api.EventRequestParameters} which represents the Event Request Parameters. 
+	 * @return <code>Collection</code> of {@link org.openecomp.policy.api.PolicyResponse} which has the Response.
+	 * @throws PolicyEventException
+	 */
+	public Collection<PolicyResponse> sendEvent(EventRequestParameters eventRequestParameters) throws PolicyEventException {
+		Collection<PolicyResponse> policyResponse = stdPolicyEngine.event(eventRequestParameters);
+		return policyResponse;
+	}
+	
+	/**
+	 * Sends the decision Attributes specified to the PEP and returns back the PolicyDecision. 
+	 * 
+	 * @param eCOMPComponentName the <code>String</code> format of the eCOMPComponentName whose Decision is required.
+	 * @param decisionAttributes the <code>Map</code> of <code>String,String</code> format of the decisionAttributes that must contain the ID and values.
+	 * @return {@link org.openecomp.policy.api.DecisionResponse} which has the Decision. 
+	 * @throws PolicyDecisionException
+	 * @deprecated use {@link #getDecision(DecisionRequestParameters)} Instead.
+	 */
+	@Deprecated
+	public DecisionResponse getDecision(String eCOMPComponentName, Map<String,String> decisionAttributes) throws PolicyDecisionException {
+		DecisionResponse policyDecision = stdPolicyEngine.decide(eCOMPComponentName, decisionAttributes, null);
+		return policyDecision;
+	}
+	
+	/**
+	 * Sends the decision Attributes specified to the PEP and returns back the PolicyDecision. 
+	 * 
+	 * @param eCOMPComponentName the <code>String</code> format of the eCOMPComponentName whose Decision is required.
+	 * @param decisionAttributes the <code>Map</code> of <code>String,String</code> format of the decisionAttributes that must contain the ID and values.
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 * A different request ID should be passed for each request.
+	 * @return {@link org.openecomp.policy.api.DecisionResponse} which has the Decision. 
+	 * @throws PolicyDecisionException
+	 * @deprecated use {@link #getDecision(DecisionRequestParameters)} Instead.
+	 */
+	@Deprecated
+	public DecisionResponse getDecision(String eCOMPComponentName, Map<String,String> decisionAttributes, UUID requestID) throws PolicyDecisionException {
+		DecisionResponse policyDecision = stdPolicyEngine.decide(eCOMPComponentName, decisionAttributes, requestID);
+		return policyDecision;
+	}
+	
+	/**
+	 * Sends the decision Attributes specified to the PEP and returns back the PolicyDecision. 
+	 * 
+	 * @param decisionRequestParameters {@link org.openecomp.policy.api.DecisionRequestParameters} which represents the Decision Request Parameters.
+	 * @return {@link org.openecomp.policy.api.DecisionResponse} which has the Decision.
+	 * @throws PolicyDecisionException
+	 */
+	public DecisionResponse getDecision(DecisionRequestParameters decisionRequestParameters) throws PolicyDecisionException {
+		DecisionResponse policyDecision = stdPolicyEngine.decide(decisionRequestParameters);
+		return policyDecision;
+	}
+	
+	/**
+	 * <code>setNotification</code> allows changes to the Notification Scheme and Notification Handler
+	 * 
+	 * @param scheme the <code>NotificationScheme</code> of {@link org.openecomp.policy.api.NotificationScheme} which defines the Notification Scheme
+	 * @param handler the <code>NotificationHandler</code> of {@link org.openecomp.policy.api.NotificationHandler} which defines what should happen when a notification is received.
+	 */
+	public void setNotification(NotificationScheme scheme, NotificationHandler handler) {
+		this.scheme = scheme;
+		this.handler = handler;
+		stdPolicyEngine.notification(this.scheme,this.handler);
+	}
+	
+	/**
+	 * <code>clearNotification</code> shutsDown the Notification Service if the Auto Scehme Notification service is running.
+	 */
+	public void clearNotification(){
+		stdPolicyEngine.stopNotification();
+	}
+	
+	/**
+	 * <code>setNotification</code> allows changes to the Notification Scheme
+	 * 
+	 * @param scheme the <code>NotificationScheme</code> of {@link org.openecomp.policy.api.NotificationScheme} which defines the Notification Scheme
+	 */
+	public void setScheme(NotificationScheme scheme){
+		this.scheme = scheme;
+		stdPolicyEngine.setScheme(this.scheme);
+	}
+	/**
+	 * Gets the <code>PDPNotification</code> if there is one exists. This is used for Polling Patterns. 
+	 * 
+	 * @return <code>PDPNotification</code> of {@link org.openecomp.policy.api.PDPNotification} which has the Notification. 
+	 */
+	public PDPNotification getNotification() {
+		return stdPolicyEngine.getNotification();
+	}
+	
+	/**
+	 * Creates a Config Policy based on given arguments
+	 * @param policyName the <code>String</code> format of the Policy Name
+	 * @param policyDescription the <code>String</code> format of the Policy Description
+	 * @param ecompName the <code>String</code> format of the ECOMP Name
+	 * @param configName the <code>String</code> format of the Config Name
+	 * @param configAttributes the <code>List</code> the <code>Map</code> Attributes that must contain the key and value.
+	 * @param configType the <code>String</code> format of the Config Type
+	 * @param body the <code>String</code> format of the Policy Body
+	 * @param policyScope the <code>String</code> value of the sub scope directory where the policy will be created and stored
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 * A different request ID should be passed for each request.
+	 * @throws Exception 
+	 * @return <code>String</code> format of response
+	 * @deprecated use {@link #createPolicy(PolicyParameters)} Instead.
+	 */
+	@Deprecated
+	public String createConfigPolicy(String policyName, String policyDescription, String ecompName, String configName, 
+												Map<String, String> configAttributes, String configType, String body, String policyScope, UUID requestID,
+												String riskLevel, String riskType, String guard, String ttlDate) throws Exception {
+		
+		String response = stdPolicyEngine.createConfigPolicy(policyName, policyDescription, ecompName, configName, 
+																configAttributes, configType, body, policyScope, requestID,
+																riskLevel, riskType, guard, ttlDate);
+		
+		return response;
+		
+	}
+	
+	/**
+	 * Creates a Config Policy based on given arguments
+	 * @param policyName the <code>String</code> format of the Policy Name
+	 * @param policyDescription the <code>String</code> format of the Policy Description
+	 * @param ecompName the <code>String</code> format of the ECOMP Name
+	 * @param configName the <code>String</code> format of the Config Name
+	 * @param configAttributes the <code>List</code> the <code>Map</code> Attributes that must contain the key and value.
+	 * @param configType the <code>String</code> format of the Config Type
+	 * @param body the <code>String</code> format of the Policy Body
+	 * @param policyScope the <code>String</code> value of the sub scope directory where the policy will be created and stored
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 * A different request ID should be passed for each request.
+	 * @throws Exception 
+	 * @return <code>String</code> format of response
+	 * @deprecated use {@link #updatePolicy(PolicyParameters)} Instead.
+	 */
+	@Deprecated
+	public String updateConfigPolicy(String policyName, String policyDescription, String ecompName, String configName, 
+												Map<String, String> configAttributes, String configType, String body, String policyScope, UUID requestID,
+												String riskLevel, String riskType, String guard, String ttlDate) throws Exception {
+		
+		String response = stdPolicyEngine.updateConfigPolicy(policyName, policyDescription, ecompName, configName, 
+																configAttributes, configType, body, policyScope, requestID,riskLevel, riskType, guard, ttlDate);
+		
+		return response;
+		
+	}
+	
+	/**
+	 * Creates a Config Firewall Policy based on given arguments
+	 * @param policyName the <code>String</code> format of the Policy Name
+	 * @param firewallJson the <code>JsonObject</code> representation of the Firewall Rules List
+	 * @param policyScope the <code>String</code> value of the sub scope directory where the policy will be created and stored
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 * A different request ID should be passed for each request.
+	 * @throws Exception 
+	 * @return <code>String</code> format of response.
+	 * @deprecated use {@link #createPolicy(PolicyParameters)} Instead.
+	 */
+	@Deprecated
+	public String createConfigFirewallPolicy(String policyName, JsonObject firewallJson, String policyScope, UUID requestID,
+			String riskLevel, String riskType, String guard, String ttlDate) throws Exception {
+		
+		String response = stdPolicyEngine.createConfigFirewallPolicy(policyName, firewallJson, policyScope, requestID,riskLevel, 
+				riskType, guard, ttlDate);
+		
+		return response;
+		
+	}
+	
+	/**
+	 * Updates a Config Firewall Policy based on given arguments
+	 * @param policyName the <code>String</code> format of the Policy Name
+	 * @param firewallJson the <code>JsonObject</code> representation of the Firewall Rules List
+	 * @param policyScope the <code>String</code> value of the sub scope directory where the policy will be created and stored
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 * A different request ID should be passed for each request.
+	 * @throws Exception 
+	 * @return <code>String</code> format of response. 
+	 * @deprecated use {@link #updatePolicy(PolicyParameters)} Instead.
+	 */
+	@Deprecated
+	public String updateConfigFirewallPolicy(String policyName, JsonObject firewallJson, String policyScope, UUID requestID,
+			String riskLevel, String riskType, String guard, String ttlDate) throws Exception {
+		
+		String response = stdPolicyEngine.updateConfigFirewallPolicy(policyName, firewallJson, policyScope, requestID,riskLevel, riskType, guard, ttlDate);
+		
+		return response;
+		
+	}
+	
+	/**
+	 * Creates a Dictionary Item based on given Dictionary Parameters
+	 * 
+	 * @param policyParameters {@link org.openecomp.policy.api.DictionaryParameters} which represents the Dictionary Parameters required to create a Dictionary Item. 
+	 * @return {@link org.openecomp.policy.api.PolicyChangeResponse} which consists of the response related to create dictionary item Request. 
+	 * @throws Exception
+	 */
+	public PolicyChangeResponse createDictionaryItem(DictionaryParameters parameters) throws Exception {
+		PolicyChangeResponse response = stdPolicyEngine.createDictionaryItem(parameters);
+		return response;
+	}
+	
+	/**
+	 * Creates a Policy based on given Policy Parameters. 
+	 * 
+	 * @param policyParameters {@link org.openecomp.policy.api.PolicyParameters} which represents the Policy Parameters required to create a Policy. 
+	 * @return {@link org.openecomp.policy.api.PolicyChangeResponse} which consists of the response related to create policy Request. 
+	 * @throws Exception
+	 */
+	public PolicyChangeResponse createPolicy(PolicyParameters policyParameters) throws Exception {
+		PolicyChangeResponse response = stdPolicyEngine.createPolicy(policyParameters);
+		return response;
+	}
+	
+	/**
+	 * Update Policy based on given Policy Parameters. 
+	 * 
+	 * @param policyParameters {@link org.openecomp.policy.api.PolicyParameters} which represents the Policy Parameters required to update a Policy. 
+	 * @return {@link org.openecomp.policy.api.PolicyChangeResponse} which consists of the response related to create policy Request. 
+	 * @throws Exception
+	 */
+	public PolicyChangeResponse updatePolicy(PolicyParameters policyParameters) throws Exception {
+		PolicyChangeResponse response = stdPolicyEngine.updatePolicy(policyParameters);
+		return response;
+	}
+	
+	/**
+	 * Pushes the specified policy to the PDP Group. If no PDP group is selected default is used. 
+	 * 
+	 * @param policyScope the <code>String</code> value of the sub scope directory where the policy is located
+	 * @param policyName the <code>String</code> format of the Policy Name being pushed. 
+	 * @param policyType the <code>String</code> format of the Policy Type which is being pushed.  
+	 * @param pdpGroup the <code>String</code> format of the PDP Group name to which the policy needs to be pushed to. 
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 * @return <code>String</code> format of the response related to the push Policy Request. 
+	 * @throws Exception
+	 * @deprecated use {@link #pushPolicy(PushPolicyParameters)} instead. 
+	 */
+	@Deprecated
+	public String pushPolicy(String policyScope, String policyName, String policyType, String pdpGroup, UUID requestID) throws Exception {
+		
+		String response = stdPolicyEngine.pushPolicy(policyScope, policyName, policyType, pdpGroup, requestID);
+		
+		return response;
+	}
+	
+	/**
+	 * Pushes the specified policy to the PDP Group. If no PDP group is selected default is used. 
+	 * 
+	 * @param pushPolicyParameters {@link org.openecomp.policy.api.PushPolicyParameters} which represents the Push Policy parameters required to push a policy. 
+	 * @return {@link org.openecomp.policy.api.PolicyChangeResponse} which consists of the response related to the push Policy Request. 
+	 * @throws Exception
+	 */
+	public PolicyChangeResponse pushPolicy(PushPolicyParameters pushPolicyParameters) throws Exception {
+		PolicyChangeResponse response = stdPolicyEngine.pushPolicy(pushPolicyParameters);
+		return response;
+	}
+	
+	/**
+	 * Deletes the specified policy from the PAP or PDP.
+	 * 
+	 * @param deletePolicyParameters {@link org.openecomp.policy.api.DeletePolicyParameters} which represents the Delete Policy parameters to delete a policy.
+	 * @return {@link org.openecomp.policy.api.PolicyChangeResponse} which consists of the response related to the Delete Policy Request.
+	 * @throws Exception
+	 */
+	public PolicyChangeResponse deletePolicy(DeletePolicyParameters deletePolicyParameters) throws Exception {
+		PolicyChangeResponse response = stdPolicyEngine.deletePolicy(deletePolicyParameters);
+		return response;
+	}
+	
+	/**
+	 * PolicyEngine Constructor with <code>String</code> format of propertiesFilePathname
+	 * 
+	 * @param propertiesFilePathname the <code>String</code> format of the propertiesFilePathname 
+	 * @throws PolicyEngineException 
+	 */
+	public PolicyEngine(String propertiesFilePathname) throws PolicyEngineException {
+		this.propertyFilePath = propertiesFilePathname ; 
+		this.stdPolicyEngine= new StdPolicyEngine(this.propertyFilePath);
+	}
+	
+	/**
+	 * PolicyEngine Constructor with <code>String</code> format of PropertiesFilePathname, <code>NotificationScheme</code> and <code>NotificationHandler</code>
+	 *  
+	 *  @param propertiesFilePathname the <code>String</code> format of the propertiesFilePathname 
+	 *  @param scheme the <code>NotificationScheme</code> of {@link org.openecomp.policy.api.NotificationScheme} which defines the Notification Scheme
+	 *  @param handler the <code>NotificationHandler</code> of {@link org.openecomp.policy.api.NotificationHandler} which defines what should happen when a notification is received.
+	 *  @throws PolicyEngineException 
+	 */
+	public PolicyEngine(String propertiesFilePathname, NotificationScheme scheme, NotificationHandler handler) throws PolicyEngineException {
+		this.propertyFilePath = propertiesFilePathname ;
+		this.scheme = scheme;
+		this.handler = handler;
+		this.stdPolicyEngine= new StdPolicyEngine(this.propertyFilePath,this.scheme,this.handler);
+	}
+	
+	/**
+	 * Creates a new Policy Service based on given Service Parameters. 
+	 * 
+	 * @param importParameters {@link org.openecomp.policy.api.ImportParameters} which represents the Service Parameters required to create a Policy Service. 
+	 * @return {@link org.openecomp.policy.api.PolicyChangeResponse} which consists of the response related to create import Service. 
+	 * @throws Exception
+	 */
+	public PolicyChangeResponse policyEngineImport(ImportParameters importParameters) throws Exception {
+		PolicyChangeResponse response = stdPolicyEngine.policyEngineImport(importParameters);
+		return response;
+	}
+	
+	/**
+	 * PolicyEngine Constructor with <code>String</code> format of PropertiesFilePathname and <code>NotificationScheme</code>
+	 * 
+	 * @param propertiesFilePathname the <code>String</code> format of the propertiesFilePathname
+	 * @param scheme the <code>NotificationScheme</code> of {@link org.openecomp.policy.api.NotificationScheme} which defines the Notification Scheme
+	 * @throws PolicyEngineException 
+	 */
+	public PolicyEngine(String propertiesFilePathname, NotificationScheme scheme) throws PolicyEngineException{
+		this.propertyFilePath = propertiesFilePathname;
+		this.scheme = scheme;
+		this.stdPolicyEngine = new StdPolicyEngine(this.propertyFilePath, this.scheme);
+	}
+	/**
+	 * PolicyEngine Constructor with no parameters.
+	 *//*
+	public PolicyEngine(){
+		
+	}
+	public void createFirewallPolicy(String filterName, String termName, String preIPSource, String preIPDest, 
+										String sourcePort, String destPort, String Port, String protocol, String direction, String action ) throws PolicyDecisionException {
+		stdPolicyEngine.createFirewallPolicy(filterName, termName, preIPSource, preIPDest, sourcePort, destPort, Port,
+												protocol, direction, action);
+	}
+	
+	public void updateFirewallPolicy(String filterName, String termName, String preIPSource, String preIPDest, 
+										String sourcePort, String destPort, String Port, String protocol, String direction, String action ) throws PolicyDecisionException {
+			stdPolicyEngine.updateFirewallPolicy(filterName, termName, preIPSource, preIPDest, sourcePort, destPort, Port,
+													protocol, direction, action);
+	}*/
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyEngineException.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyEngineException.java
new file mode 100644
index 0000000..e80513a
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyEngineException.java
@@ -0,0 +1,49 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+/**
+ * PolicyEngineException extends <code>Exception</code> to implement exceptions thrown by {@link org.openecomp.policy.api.PolicyEngine}
+ * 
+ * @version 0.1
+ */
+public class PolicyEngineException extends Exception{
+	private static final long serialVersionUID = 4945973094200118969L;
+
+	public PolicyEngineException() {
+	}
+	
+	public PolicyEngineException(String message) {
+		super(message);
+	}
+	
+	public PolicyEngineException(Throwable cause){
+		super(cause);
+	}
+	
+	public PolicyEngineException(String message, Throwable cause) {
+		super(message, cause);
+	}
+	
+	public PolicyEngineException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+		super(message, cause, enableSuppression, writableStackTrace);
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyEventException.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyEventException.java
new file mode 100644
index 0000000..8e4c819
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyEventException.java
@@ -0,0 +1,49 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+/**
+ * PolicyEventException extends <code>Exception</code> to implement exceptions thrown by {@link org.openecomp.policy.api.PolicyEngine}
+ * 
+ * @version 0.1
+ */
+public class PolicyEventException extends Exception {
+	private static final long serialVersionUID = -1477625011320634608L;
+	
+	public PolicyEventException() {
+	}
+	
+	public PolicyEventException(String message) {
+		super(message);
+	}
+	
+	public PolicyEventException(Throwable cause){
+		super(cause);
+	}
+	
+	public PolicyEventException(String message, Throwable cause) {
+		super(message, cause);
+	}
+	
+	public PolicyEventException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+		super(message, cause, enableSuppression, writableStackTrace);
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyParameters.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyParameters.java
new file mode 100644
index 0000000..32cd75b
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyParameters.java
@@ -0,0 +1,497 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ * <code>PolicyParameters</code> defines the Policy Parameters
+ *  which are required to Create/Update a Policy. 
+ * 
+ * @version 0.1
+ */
+public class PolicyParameters {
+	private PolicyClass policyClass;
+	private PolicyConfigType policyConfigType;
+	private String policyName;
+	private String policyDescription;
+	private String ecompName;
+	private String configName;
+	private Map<AttributeType, Map<String,String>> attributes;
+	private String configBody;
+	private PolicyType configBodyType;
+	private String actionPerformer;
+	private String actionAttribute;
+	private UUID requestID;
+	private List<String> dynamicRuleAlgorithmLabels;
+	private List<String> dynamicRuleAlgorithmFunctions;
+	private List<String> dynamicRuleAlgorithmField1;
+	private List<String> dynamicRuleAlgorithmField2;
+	private String priority;
+	private RuleProvider ruleProvider;
+	private Date TTLDate;
+	private boolean guard = false;
+	private String riskLevel = "5";
+	private String riskType = "defualt";
+	
+	/**
+	 * Sets Config Policy Parameters.
+	 * 
+	 * @param policyConfigType the {@link org.openecomp.policy.api.PolicyConfigType} Enum format of the Config Type
+	 * @param policyName the <code>String</code> format of the Policy Name
+	 * @param policyDescription the <code>String</code> format of the Policy Description
+	 * @param ecompName the <code>String</code> format of the ECOMP Name
+	 * @param configName the <code>String</code> format of the Config Name
+	 * @param attributes the <code>Map</code> Attributes that must contain the AttributeType and Map of key,value pairs corresponding to it.
+	 * @param configBodyType the {@link org.openecomp.policy.api.PolicyType} Enum format of the config Body Type. 
+	 * @param configBody the <code>String</code> format of the Policy Body
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 * A different request ID should be passed for each request.
+	 */
+	public void setConfigPolicyParameters(PolicyConfigType policyConfigType, String policyName, String policyDescription, String ecompName, String configName, 
+			Map<AttributeType, Map<String, String>> attributes, PolicyType configBodyType, String configBody, UUID requestID){
+		this.setPolicyConfigType(policyConfigType);
+		this.setPolicyName(policyName);
+		this.setPolicyDescription(policyDescription);
+		this.setEcompName(ecompName);
+		this.setConfigName(configName);
+		this.setAttributes(attributes);
+		this.setConfigBody(configBody);
+		this.setConfigBodyType(configBodyType);
+		this.setRequestID(requestID);
+	}
+	
+	/**
+	 * Sets config Firewall Policy Parameters.
+	 * 
+	 * @param policyName the <code>String</code> format of the Policy Name
+	 * @param firewallJson the <code>String</code> representation of the Firewall Rules List
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 * A different request ID should be passed for each request.
+	 */
+	public void setConfigFirewallPolicyParameters(String policyName, String firewallJson, UUID requestID){
+		this.setPolicyConfigType(PolicyConfigType.Firewall);
+		this.setPolicyName(policyName);
+		this.setConfigBody(firewallJson);
+		this.setConfigBodyType(PolicyType.JSON);
+		this.setRequestID(requestID);
+	}
+
+	/**
+	 * Gets the PolicyName of the Policy Parameters. 
+	 * 
+	 * @return policyName the <code>String</code> format of the Policy Name
+	 */
+	public String getPolicyName() {
+		return policyName;
+	}
+
+	/**
+	 * Sets the policyName of the Policy Parameters.
+	 * 
+	 * @param policyName the <code>String</code> format of the Policy Name
+	 */
+	public void setPolicyName(String policyName) {
+		this.policyName = policyName;
+	}
+
+	/**
+	 * Gets the policy Description. 
+	 * 
+	 * @return the <code>String</code> format of the Policy Description
+	 */
+	public String getPolicyDescription() {
+		return policyDescription;
+	}
+
+	/**
+	 * Sets the policy Description of the Policy Description. 
+	 * 
+	 * @param policyDescription the <code>String</code> format of the Policy Description
+	 */
+	public void setPolicyDescription(String policyDescription) {
+		this.policyDescription = policyDescription;
+	}
+
+	/**
+	 * Gets the ECOMP Name value of the Policy Paramters. 
+	 * 
+	 * @return <code>String</code> format of the ECOMP Name
+	 */
+	public String getEcompName() {
+		return ecompName;
+	}
+
+	/**
+	 * Sets the ECOMP Name field of the Policy Parameters. 
+	 * 
+	 * @param ecompName the <code>String</code> format of the ECOMP Name
+	 */
+	public void setEcompName(String ecompName) {
+		this.ecompName = ecompName;
+	}
+
+	/**
+	 * Gets the Config Name value of the Policy Parameters. 
+	 * 
+	 * @return <code>String</code> format of the Config Name
+	 */
+	public String getConfigName() {
+		return configName;
+	}
+
+	/**
+	 * Sets the Config Name field of the Policy Parameters. 
+	 * 
+	 * @param configName the <code>String</code> format of the Config Name
+	 */
+	public void setConfigName(String configName) {
+		this.configName = configName;
+	}
+
+	/**
+	 * Gets the Attributes of the policy Parameters. 
+	 * 
+	 * @return <code>List</code> the <code>Map</code> Attributes that must contain the AttributeType and Map of key,value pairs corresponding to it.
+	 */
+	public Map<AttributeType, Map<String, String>> getAttributes() {
+		return attributes;
+	}
+
+	/**
+	 * Sets the Attributes of the Policy Parameters. 
+	 * 
+	 * @param attributes the <code>Map</code> Attributes that must contain the AttributeType and Map of key,value pairs corresponding to it.
+	 */
+	public void setAttributes(Map<AttributeType, Map<String, String>> attributes) {
+		this.attributes = attributes;
+	}
+
+	/**
+	 * Gets the Policy Config Type value the Policy parameters. 
+	 * 
+	 * @return {@link org.openecomp.policy.api.PolicyConfigType} Enum of the Config Type
+	 */
+	public PolicyConfigType getPolicyConfigType() {
+		return policyConfigType;
+	}
+
+	/**
+	 * Sets the Policy Config Type field of the policy Parameters. 
+	 * 
+	 * @param policyConfigType the {@link org.openecomp.policy.api.PolicyConfigType} Enum format of the Config Type
+	 */
+	public void setPolicyConfigType(PolicyConfigType policyConfigType) {
+		setPolicyClass(PolicyClass.Config);
+		this.policyConfigType = policyConfigType;
+	}
+
+	/**
+	 * Gets the configBody value of the Policy Parameters. 
+	 * 
+	 * @return the <code>String</code> format of the Policy Body
+	 */
+	public String getConfigBody() {
+		return configBody;
+	}
+
+	/**
+	 * Sets the configBody field of the Policy Parameters. 
+	 * 
+	 * @param configBody the <code>String</code> format of the Policy Body
+	 */
+	public void setConfigBody(String configBody) {
+		this.configBody = configBody;
+	}
+
+	/**
+	 * Gets the config Body Type value of the Policy Parameters.  
+	 * 
+	 * @return the <code>PolicyType</code> representation of the configBodyType
+	 */
+	public PolicyType getConfigBodyType() {
+		return configBodyType;
+	}
+
+	/**
+	 * Sets the configBodyType field of the Policy Parameters. 
+	 * 
+	 * @param configBodyType the <code>PolicyType</code> representation of the config BodyType
+	 */
+	public void setConfigBodyType(PolicyType configBodyType) {
+		this.configBodyType = configBodyType;
+	}
+	
+	/**
+	 * Gets the requestID of the Policy Parameters. 
+	 * 
+	 * @return unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 */
+	public UUID getRequestID() {
+		return requestID;
+	}
+	
+	/**
+	 * Sets the requestID of the Policy Parameters. 
+	 * 
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 */
+	public void setRequestID(UUID requestID) {
+		this.requestID = requestID;
+	}
+
+	/**
+	 * Gets the Policy Class of the Policy Parameters. 
+	 * 
+	 * @return {@link org.openecomp.policy.api.PolicyClass} of the Policy Parameters. 
+	 */
+	public PolicyClass getPolicyClass() {
+		return policyClass;
+	}
+
+	/**
+	 * Sets the Policy Class of the Policy Parameters. 
+	 * 
+	 * @param policyClass the Enum {@link org.openecomp.policy.api.PolicyClass} to set Policy Class Type of Policy parameters. 
+	 */
+	public void setPolicyClass(PolicyClass policyClass) {
+		this.policyClass = policyClass;
+	}
+	
+	/**
+	 * Gets the Action Performer value of the Policy Parameters for Action Policies. 
+	 *
+	 * @return the <code>String</code> value of the Action Performer for Action Policies
+	 */
+	public String getActionPerformer() {
+		return actionPerformer;
+	}
+	
+	/**
+	 * Sets the Action Performer value of the Policy Parameters for Action Policies.
+	 * 
+	 * @param actionPerformer the <code>String</code> format of the Action Performer
+	 */
+	public void setActionPerformer(String actionPerformer) {
+		this.actionPerformer = actionPerformer;
+	}
+
+	/**
+	 * Gets the Action Attribute value of the Policy Parameters for Action Policies. 
+	 *
+	 * @return the <code>String</code> value of the Action Attribute for Action Policies
+	 */
+	public String getActionAttribute() {
+		return actionAttribute;
+	}
+
+	/**
+	 * Sets the Action Attribute value of the Policy Parameters for Action Policies.
+	 * 
+	 * @param actionAttribute the <code>String</code> format of the Action Attribute
+	 */
+	public void setActionAttribute(String actionAttribute) {
+		this.actionAttribute = actionAttribute;
+	}
+	
+	/**
+	 * Gets the Dynamic Rule Algorithm Label of the policy Parameters. Used in conjunction with the Label, Field1,
+	 * Function, and Field2 to complete the complex and simple Rule Algorithms
+	 * 
+	 * @return <code>List</code> the Dynamic Rule Algorithm Label that must contain the Labels in order
+	 */
+	public List<String> getDynamicRuleAlgorithmLabels() {
+		return dynamicRuleAlgorithmLabels;
+	}
+
+	/**
+	 * Sets the Dynamic Rule Algorithm Labels used in conjunction with the Label, Field1,
+	 * Function, and Field2 to complete the complex and simple Rule Algorithms
+	 * 
+	 * @param dynamicRuleAlgorithmLabels the <code>List</code> dynamicRuleAlgoritmLabels in order
+	 */
+	public void setDynamicRuleAlgorithmLabels(
+			List<String> dynamicRuleAlgorithmLabels) {
+		this.dynamicRuleAlgorithmLabels = dynamicRuleAlgorithmLabels;
+	}
+
+	/**
+	 * Gets the Dynamic Rule Algorithm Function of the policy Parameters. Used in conjunction with the Label, Field1,
+	 * FunctionDef, and Field2 to complete the complex and simple Rule Algorithms 
+	 * 
+	 * @return <code>List</code> the Dynamic Rule Algorithm Functions that must contain the values in order
+	 */
+	public List<String> getDynamicRuleAlgorithmFunctions() {
+		return dynamicRuleAlgorithmFunctions;
+	}
+
+	/**
+	 * Sets the Dynamic Rule Algorithm Functions used in conjunction with the Label, Field1,
+	 * Function, and Field2 to complete the complex and simple Rule Algorithms
+	 * 
+	 * @param dynamicRuleAlgorithmFunctions the <code>List</code> dynamicRuleAlgorithmFunctions in order
+	 */
+	public void setDynamicRuleAlgorithmFunctions(List<String> dynamicRuleAlgorithmFunctions) {
+		this.dynamicRuleAlgorithmFunctions = dynamicRuleAlgorithmFunctions;
+	}
+
+	/**
+	 * Gets the Dynamic Rule Algorithm Field1 of the policy Parameters. Used in conjunction with the Label, Field1,
+	 * Function, and Field2 to complete the complex and simple Rule Algorithms
+	 * 
+	 * @return <code>List</code> the Dynamic Rule Algorithm Field1 that must contain the Field1 values in order
+	 */
+	public List<String> getDynamicRuleAlgorithmField1() {
+		return dynamicRuleAlgorithmField1;
+	}
+
+	/**
+	 * Sets the Dynamic Rule Algorithm Field1 used in conjunction with the Label, Field1,
+	 * Function, and Field2 to complete the complex and simple Rule Algorithms
+	 * 
+	 * @param dynamicRuleAlgorithmField1 the <code>List</code> dynamicRuleAlgorithmField1 in order
+	 */
+	public void setDynamicRuleAlgorithmField1(
+			List<String> dynamicRuleAlgorithmField1) {
+		this.dynamicRuleAlgorithmField1 = dynamicRuleAlgorithmField1;
+	}
+
+	/**
+	 * Gets the Dynamic Rule Algorithm Field2 of the policy Parameters. Used in conjunction with the Label, Field1,
+	 * Operator, and Field2 to complete the complex and simple Rule Algorithms
+	 * 
+	 * @return <code>List</code> the Dynamic Rule Algorithm Field2 that must contain the Field2 values in order
+	 */
+	public List<String> getDynamicRuleAlgorithmField2() {
+		return dynamicRuleAlgorithmField2;
+	}
+
+	/**
+	 * Sets the Dynamic Rule Algorithm Field2 used in conjunction with the Label, Field1,
+	 * Function, and Field2 to complete the complex and simple Rule Algorithms
+	 * 
+	 * @param dynamicRuleAlgorithmField2 the <code>List</code> dynamicRuleAlgorithmField2 in order
+	 */
+	public void setDynamicRuleAlgorithmField2(
+			List<String> dynamicRuleAlgorithmField2) {
+		this.dynamicRuleAlgorithmField2 = dynamicRuleAlgorithmField2;
+	}
+	
+	/**
+	 * Gets the Priority of the Policy Parameters. 
+	 * 
+	 * @return priority the <code>String</code> format of the Micro Services priority
+	 */
+	public String getPriority() {
+		return priority;
+	}
+	
+	/**
+	 * Sets the Priority of the Policy Parameters.
+	 * 
+	 * @param priority the <code>String</code> format of the Micro Services priority
+	 */
+	public void setPriority(String priority) {
+		this.priority = priority;
+	}
+
+	public RuleProvider getRuleProvider() {
+		return ruleProvider;
+	}
+
+	public void setRuleProvider(RuleProvider ruleProvider) {
+		this.ruleProvider = ruleProvider;
+	}	
+	/**
+	 * Sets the Guard field of the Policy Parameters. 
+	 * 
+	 * @param guard the <code>Boolean</code> format of the guard value
+	 */
+	public void setGuard(boolean guard){
+		this.guard = guard;
+	}
+	
+	/**
+	 * Gets the  guard value of the Policy Parameters for Action Policies. 
+	 *
+	 * @return the <code>boolean</code> value of the Guard for Config Policies
+	 */
+	public boolean getGuard(){
+		return guard;
+	}
+	
+	/**
+	 * Sets the riskType field of the Policy Parameters. 
+	 * 
+	 * @param guard the <code>String</code> format of the riskType value
+	 */
+	public void setRiskType(String riskType){
+		this.riskType = riskType;
+	}
+	
+	/**
+	 * Gets the riskType value of the Policy Parameters for Config Policies. 
+	 *
+	 * @return the <code>String</code> value of the riskType for Config Policies
+	 */
+	public String getRiskType(){
+		return riskType;
+	}
+	
+	/**
+	 * Sets the riskLevel field of the Policy Parameters. 
+	 * 
+	 * @param riskLevel the <code>String</code> format of the riskType value
+	 */
+	public void setRiskLevel(String riskLevel){
+		this.riskLevel = riskLevel;
+	}
+	
+	/**
+	 * Gets the riskLevel value of the Policy Parameters for Config Policies. 
+	 *
+	 * @return the <code>String</code> value of the riskLevel for Config Policies
+	 */
+	public String getRiskLevel(){
+		return riskLevel;
+	}
+	
+	/**
+	 * Sets the TTLDate field of the Policy Parameters. 
+	 * 
+	 * @param TTLDate the <code>Date</code> format of the TTLDate value
+	 */
+	public void setTtlDate(Date TTLDate){
+		this.TTLDate = TTLDate;
+	}
+	
+	/**
+	 * Gets the TTLDate value of the Policy Parameters for Config Policies. 
+	 *
+	 * @return the <code>Date</code> value of the TTLDate for Config Policies
+	 */
+	public Date getTtlDate(){
+		return TTLDate;
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyResponse.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyResponse.java
new file mode 100644
index 0000000..316f7dd
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyResponse.java
@@ -0,0 +1,77 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+
+package org.openecomp.policy.api;
+
+import java.util.Map;
+
+/**
+ * Defines the objects that represent PolicyEngine Response elements. PolicyResponse communicates the PolicyResponseStatus,
+ * PolicyResponseMessage, ActionAdvised, ActionTaken and RequestAttributes. 
+ * 
+ * @version 0.3
+ */
+public interface PolicyResponse {
+	/**
+	 * Gets the {@link org.openecomp.policy.api.PolicyResponseStatus} associated with this <code>PolicyResponse</code>.
+	 * 
+	 * @return the <code>PolicyResponseStatus</code> associated with this <code>PolicyResponse</code>
+	 */
+	public PolicyResponseStatus getPolicyResponseStatus();
+	
+	/**
+	 * Gets the <code>Map</code> of <code>String,String</code> which consists of ActionAdvised in this <code>PolicyResponse</code>.
+	 * If there is no ActionAdvised this method must return an empty <code>Map</code>.
+	 * 
+	 * @return the <code>Map</code> of <code>String,String</code> which consists of AdviceAttributes in <code>PolicyResponse</code>
+	 */
+	public Map<String,String> getActionAdvised();
+	
+	/**
+	 * Gets the <code>Map</code> of <code>String,String</code> which consists of ActionTaken in this <code>PolicyResponse</code>.
+	 * If there are no ActionTaken this method must return an empty <code>Map</code>.
+	 * 
+	 * @return the <code>Map</code> of <code>String,String</code> which consists of ActionTaken in <code>PolicyResponse</code>
+	 */
+	public Map<String,String> getActionTaken();
+	
+	/**
+	 * Gets the <code>Map</code> of <code>String,String</code> which consists of RequestAttributes in this <code>PolicyResponse</code>.
+	 * 
+	 * @return the <code>Map</code> of <code>String,String</code> which consists of RequestAttributes from <code>PolicyResponse</code>
+	 */
+	public Map<String,String> getRequestAttributes();
+	
+	/**
+	 * Gets the <code>String</code> of the PolicyResponseMessage from <code>PolicyResponse</code>
+	 * 
+	 * @return the <code>String</code> which consists of PolicyResponseMessage from <code>PolicyResponse</code>
+	 */
+	public String getPolicyResponseMessage();
+	
+	/**
+	 * Returns the <code>String</code> version of the <code>PolicyResponse</code> object.
+	 * 
+	 *  @return <code>String</code> of the <code>PolicyResponse</code> Object.  
+	 */
+	@Override
+	public String toString(); 
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyResponseStatus.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyResponseStatus.java
new file mode 100644
index 0000000..a9c3296
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyResponseStatus.java
@@ -0,0 +1,73 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+/**
+ * Enumeration of PolicyResponseStatus that can be returned as a part of
+ * {@link org.openecomp.policy.api.PolicyResponse}.
+ * 
+ * @version 0.2
+ */
+public enum PolicyResponseStatus {	
+	/**
+	 * Indicates there is no action required.
+	 */
+	NO_ACTION_REQUIRED("no_action"),
+	/** 
+	 * Indicates that an action has been advised.
+	 */
+	ACTION_ADVISED("action_advised"),
+	/**
+	 * Indicates that an action has been taken.
+	 */
+	ACTION_TAKEN("action_taken")
+	;
+	
+	private String name;
+	private PolicyResponseStatus(String name){
+		this.name = name;
+	}
+	
+	/**
+	 * Get the <code>PolicyResponseStatus</code> based on <code>String</code> representation of <code>PolicyResponse</code>
+	 * 
+	 * @param responseStatus the <code>String</code> Response Status
+	 * @return the <code>PolicyResponseStatus</code> with the name matching <code>ACTION_ADVISED</code> or <code>ACTION_TAKEN</code> or <code>NO_ACTION_REQUIRED</code>
+	 */
+	public static PolicyResponseStatus getStatus(String responseStatus) {
+		if(responseStatus.equalsIgnoreCase("action_advised")) {
+			return ACTION_ADVISED;
+		}else if(responseStatus.equalsIgnoreCase("action_taken")) {
+			return ACTION_TAKEN;
+		}else {
+			return NO_ACTION_REQUIRED;
+		}
+	}
+	
+	/**
+	 * Returns the <code>String</code> name for this <code>PolicyResponseStatus</code>
+	 * 
+	 * @return the <code>String</code> name for this <code>PolicyResponseStatus</code>
+	 */
+	public String toString(){
+		return this.name;
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyType.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyType.java
new file mode 100644
index 0000000..b86f952
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PolicyType.java
@@ -0,0 +1,61 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+/**
+ * Enumeration of the Policy Return Types that can be returned as part of a
+ * {@link org.openecomp.policy.api.PolicyConfig}.
+ * 
+ * @version 0.2
+ */
+public enum PolicyType {
+	/**
+	 * Indicates the response is Properties type
+	 */
+	PROPERTIES("Properties"),
+	/**
+	 * Indicates the response is JSON type
+	 */
+	JSON("json"),
+	/**
+	 * Indicates the response is XML type
+	 */
+	XML("xml"),
+	/**
+	 * Indicates the response is Other type
+	 */
+	OTHER("other")
+	;
+	
+	private String name; 
+	
+	private PolicyType(String typeName) {
+		this.name = typeName;
+	}
+	
+	/**
+	 * Returns the <code>String</code> format of Type for this <code>PolicyType</code>
+	 * @return the <code>String</code> of the Type for this <code>PolicyType</code>
+	 */
+	public String toString() {
+		return this.name;
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PushPolicyParameters.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PushPolicyParameters.java
new file mode 100644
index 0000000..8a82206
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/PushPolicyParameters.java
@@ -0,0 +1,131 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+import java.util.UUID;
+
+/**
+ * <code>PushPolicyParameters</code> defines the Policy Parameters
+ *  which are required to Push a Policy to PDPGroup. 
+ * 
+ * @version 0.1
+ */
+public class PushPolicyParameters {
+	private String policyName;
+	private String policyType;
+	private String pdpGroup;
+	private UUID requestID;
+	
+	/**
+	 * Constructor with no Parameters.
+	 */
+	public PushPolicyParameters(){
+	}
+	
+	/**
+	 * Constructor with Parameters.
+	 * 
+	 * @param policyName the <code>String</code> format of the Policy Name
+	 * @param policyType the <code>String</code> format of the Policy Type
+	 * @param pdpGroup the <code>String</code> format of the PDPGroup
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 */
+	public PushPolicyParameters(String policyName, String policyType, String pdpGroup, UUID requestID){
+		this.policyName = policyName;
+		this.policyType = policyType;
+		this.pdpGroup = pdpGroup;
+		this.requestID = requestID;
+	}
+	
+	/**
+	 * Gets the PolicyName of the Push Policy Parameters. 
+	 * 
+	 * @return policyName the <code>String</code> format of the Policy Name
+	 */
+	public String getPolicyName() {
+		return policyName;
+	}
+	
+	/**
+	 * Sets the policyName of the Push Policy Parameters.
+	 * 
+	 * @param policyName the <code>String</code> format of the Policy Name
+	 */
+	public void setPolicyName(String policyName) {
+		this.policyName = policyName;
+	}
+	
+	/**
+	 * Gets the PolicyType of the Push Policy Parameters. 
+	 * 
+	 * @return policyType the <code>String</code> format of the Policy Type
+	 */
+	public String getPolicyType() {
+		return policyType;
+	}
+	
+	/**
+	 * Sets the policyType of the Push Policy Parameters.
+	 * 
+	 * @param policyType the <code>String</code> format of the Policy Type
+	 */
+	public void setPolicyType(String policyType) {
+		this.policyType = policyType;
+	}
+	
+	/**
+	 * Gets the PDPGroup of the Push Policy Parameters. 
+	 * 
+	 * @return pdpGroup the <code>String</code> format of the PDPGroup
+	 */
+	public String getPdpGroup() {
+		return pdpGroup;
+	}
+	
+	/**
+	 * Sets the PDPGroup of the Push Policy Parameters.
+	 * 
+	 * @param pdpGroup the <code>String</code> format of the PDPGroup
+	 */
+	public void setPdpGroup(String pdpGroup) {
+		this.pdpGroup = pdpGroup;
+	}
+	
+	/**
+	 * Gets the requestID of the Push Policy Parameters. 
+	 * 
+	 * @return unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 */
+	public UUID getRequestID() {
+		return requestID;
+	}
+	
+	/**
+	 * Sets the requestID of the Push Policy Parameters. 
+	 * 
+	 * @param requestID unique request ID which will be passed throughout the ECOMP components to correlate logging messages.
+	 */
+	public void setRequestID(UUID requestID) {
+		this.requestID = requestID;
+	}
+	
+	
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/RuleProvider.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/RuleProvider.java
new file mode 100644
index 0000000..8e92181
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/RuleProvider.java
@@ -0,0 +1,53 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.api;
+
+/**
+ * Enumeration of the Attribute Types that is used as a part of
+ * {@link org.openecomp.policy.api.PolicyParameters}.
+ * 
+ * @version 0.1
+ */
+public enum RuleProvider {
+	/**
+	 * Indicates User will be defining the Rule information. 
+	 */
+	CUSTOM("Custom"),
+	/**
+	 * Indicates AAF will be providing the Rule information. 
+	 */
+	AAF("AAF")
+	;
+	
+	private String name;
+	
+	private RuleProvider(String typeName){
+		this.name = typeName;
+	}
+	
+	/**
+	 * Returns the <code>String</code> format of Type for this <code>AttributeType</code>
+	 * @return the <code>String</code> of the Type for this <code>AttributeType</code>
+	 */
+	public String toString() {
+		return this.name;
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/package-info.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/package-info.java
new file mode 100644
index 0000000..982dbb4
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/api/package-info.java
@@ -0,0 +1,36 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+
+package org.openecomp.policy.api;
+
+/**
+ * org.openecomp.policy.api contains the API for the PolicyEngine ProtoType
+ *
+ * @version 0.9
+ * 
+ * Changes:
+ * Addition of Notifications methods to the Client API. 
+ * Combining Multiple results. and Minor changes to retrieve all policies.
+ * Retrieve config policy using policyFile Name and the matching conditions of the policy in the results.
+ * Addition of Decision policy call  
+ * 
+ *
+ */
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/AutoClientEnd.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/AutoClientEnd.java
new file mode 100644
index 0000000..3f4fe0c
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/AutoClientEnd.java
@@ -0,0 +1,244 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std;
+
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import javax.websocket.ClientEndpoint;
+import javax.websocket.DeploymentException;
+import javax.websocket.OnClose;
+import javax.websocket.OnError;
+import javax.websocket.OnMessage;
+import javax.websocket.OnOpen;
+import javax.websocket.Session;
+
+//import org.apache.log4j.Logger;
+import org.glassfish.tyrus.client.ClientManager;
+import org.openecomp.policy.api.NotificationHandler;
+import org.openecomp.policy.api.NotificationScheme;
+import org.openecomp.policy.api.NotificationType;
+import org.openecomp.policy.api.PDPNotification;
+import org.openecomp.policy.std.NotificationStore;
+import org.openecomp.policy.std.StdPDPNotification;
+
+import org.openecomp.policy.xacml.api.XACMLErrorConstants;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import org.openecomp.policy.common.logging.flexlogger.*; 
+
+@ClientEndpoint
+public class AutoClientEnd {
+	private static StdPDPNotification notification = null;
+	private static StdPDPNotification oldNotification = null;
+	private static ClientManager client = null;
+	private static NotificationScheme scheme = null;
+	private static NotificationHandler handler = null;
+	private static String url = null;
+	private static Session session = null;
+	private static boolean status = false; 
+	private static boolean stop = false;
+	private static boolean message = false;
+	private static boolean error = false;
+	private static Logger logger = FlexLogger.getLogger(AutoClientEnd.class.getName());
+	
+	public static void setAuto(NotificationScheme scheme,
+			NotificationHandler handler) {
+		AutoClientEnd.scheme = scheme;
+		AutoClientEnd.handler = handler;
+	}
+
+	public static void setScheme(NotificationScheme scheme) {
+		AutoClientEnd.scheme = scheme;
+	}
+	
+	public static boolean getStatus(){
+		return AutoClientEnd.status;
+	}
+
+	public static String getURL() {
+		return AutoClientEnd.url;
+	}
+
+	public static void start(String url) {
+		AutoClientEnd.url = url;
+		// Stop and Start needs to be done.
+		if (scheme != null && handler!=null) {
+			if (scheme.equals(NotificationScheme.AUTO_ALL_NOTIFICATIONS) || scheme.equals(NotificationScheme.AUTO_NOTIFICATIONS)) {
+				if (AutoClientEnd.client == null) {
+					client = ClientManager.createClient();
+					if(url.contains("https")){
+						url = url.replaceAll("https", "wss");
+					}else {
+						url = url.replaceAll("http", "ws");
+					}
+					try {
+						logger.info("Starting Auto Notification with the PDP server : " + url);
+						client.connectToServer(AutoClientEnd.class, new URI(url	+ "notifications"));
+						status = true;
+						if(error){
+							// The URL's will be in Sync according to design Spec. 
+							ManualClientEnd.start(AutoClientEnd.url);
+							StdPDPNotification notification = NotificationStore.getDeltaNotification((StdPDPNotification)ManualClientEnd.result(NotificationScheme.MANUAL_ALL_NOTIFICATIONS));
+							if(notification.getNotificationType()!=null){
+								if(oldNotification!=notification){
+									oldNotification= notification;
+									AutoClientEnd.notification = notification;
+									callHandler();
+								}
+							}
+							error = false;
+						}
+						//
+					} catch (DeploymentException | IOException | URISyntaxException e) {
+						logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + e);
+						client = null;
+						status = false;
+						changeURL();
+					}
+				}
+			}
+		}
+	}
+	
+	private static void changeURL(){
+		// Change the PDP if it is not Up. 
+		StdPolicyEngine.rotateList();
+		start(StdPolicyEngine.getPDPURL());
+	}
+
+	public static void stop() {
+		if (client != null) {
+			client.shutdown();
+			if(session!=null){
+				try {
+					stop = true;
+					logger.info("\n Closing Auto Notification WebSocket Connection.. ");
+					session.close();
+					session = null;
+				} catch (IOException e) {
+					//
+				}
+			}
+			client = null;
+			status = false;
+			stop = false;
+		}
+	}
+
+	private static void callHandler() {
+		if (handler != null && scheme != null) {
+			if (scheme.equals(NotificationScheme.AUTO_ALL_NOTIFICATIONS)) {
+				boolean removed = false, updated = false;
+				if (notification.getRemovedPolicies() != null && !notification.getRemovedPolicies().isEmpty()) {
+					removed = true;
+				}
+				if (notification.getLoadedPolicies() != null && !notification.getLoadedPolicies().isEmpty()) {
+					updated = true;
+				}
+				if (removed && updated) {
+					notification.setNotificationType(NotificationType.BOTH);
+				} else if (removed) {
+					notification.setNotificationType(NotificationType.REMOVE);
+				} else if (updated) {
+					notification.setNotificationType(NotificationType.UPDATE);
+				}
+				try{
+					handler.notificationReceived(notification);
+				}catch (Exception e){
+					logger.error("Error in Clients Handler Object : " + e.getMessage());
+				}
+			} else if (scheme.equals(NotificationScheme.AUTO_NOTIFICATIONS)) {
+				PDPNotification newNotification = MatchStore.checkMatch(notification);
+				if (newNotification.getNotificationType() != null) {
+					handler.notificationReceived(newNotification);
+				}
+			}
+		}
+	}
+
+	// WebSockets Code..
+	@OnOpen
+	public void onOpen(Session session) throws IOException {
+		// session.getBasicRemote().sendText("Connected to Client with Session: "
+		// + session.getId());
+		logger.debug("Auto Notification Session Started... " + session.getId());
+		if(AutoClientEnd.session == null){
+			AutoClientEnd.session = session;
+		}
+	}
+
+	@OnError
+	public void onError(Session session, Throwable e) {
+		// trying to Restart by self.
+		logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Session Error.. "+ session.getId() + "\n Error is : " + e );
+		// e.printStackTrace();
+		stop();
+		if (url != null) {
+			client = null;
+			status = false;
+			error= true;
+			start(url);
+		}
+	}
+
+	@OnClose
+	public void onClose(Session session) {
+		logger.info("Session ended with "+ session.getId());
+		if(!stop && !message){
+			// This Block of code is executed if there is any Network Failure or if the Notification is Down. 
+			logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Disconnected from Notification Server");
+			client = null;
+			status = false;
+			AutoClientEnd.session=null;
+			// Try to connect Back to available PDP.
+			error = true;
+			start(url);
+		}
+		AutoClientEnd.message=false;
+	}
+
+	@OnMessage
+	public void onMessage(String message, Session session) throws JsonParseException, JsonMappingException, IOException {
+		AutoClientEnd.message = true;
+		logger.debug("Auto Notification Recieved Message " + message + " Session info is : " + session.getId());
+		try {
+			notification = NotificationUnMarshal.notificationJSON(message);
+		} catch (Exception e) {
+			logger.error("PE500 " + e);
+		}
+		if(AutoClientEnd.session == session){
+			try{
+				NotificationStore.recordNotification(notification);
+			}catch(Exception e){
+				logger.error(e);
+			}
+			if(oldNotification!=notification){
+				oldNotification= notification;
+				callHandler();
+			}
+		}else{
+			session.close();
+		}
+		AutoClientEnd.message = false;
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/AutoClientUEB.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/AutoClientUEB.java
new file mode 100644
index 0000000..87bb501
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/AutoClientUEB.java
@@ -0,0 +1,170 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.security.GeneralSecurityException;
+import java.util.List;
+import java.util.UUID;
+
+import org.openecomp.policy.api.NotificationHandler;
+import org.openecomp.policy.api.NotificationScheme;
+import org.openecomp.policy.api.NotificationType;
+import org.openecomp.policy.api.PDPNotification;
+import org.openecomp.policy.std.StdPDPNotification;
+
+import com.att.nsa.cambria.client.CambriaClientFactory;
+import com.att.nsa.cambria.client.CambriaConsumer;
+import org.openecomp.policy.common.logging.flexlogger.*; 
+/**
+ * Create a UEB Consumer to receive policy update notification.
+ * 
+ * 
+ *
+ */
+public class AutoClientUEB implements Runnable  {
+	private static StdPDPNotification notification = null;
+	private static NotificationScheme scheme = null;
+	private static NotificationHandler handler = null;
+	private static String url = null;
+	private static boolean status = false; 
+	private static Logger logger = FlexLogger.getLogger(AutoClientUEB.class.getName());
+	private static String notficatioinType = null;
+	private static CambriaConsumer CConsumer = null;
+//	private volatile boolean stop = false;
+	private static List<String> uebURLList = null; 
+	public volatile boolean isRunning = false;
+    
+
+	public AutoClientUEB(String url, List<String> uebURLList) {
+	       AutoClientUEB.url = url;
+	       AutoClientUEB.uebURLList = uebURLList;
+	}
+
+	public void setAuto(NotificationScheme scheme,
+			NotificationHandler handler) {
+		AutoClientUEB.scheme = scheme;
+		AutoClientUEB.handler = handler;
+	}
+
+	public static void setScheme(NotificationScheme scheme) {
+		AutoClientUEB.scheme = scheme;
+	}
+	
+	public static boolean getStatus(){
+		return AutoClientUEB.status;
+	}
+
+	public static String getURL() {
+		return AutoClientUEB.url;
+	}
+	
+	public static String getNotficationType(){
+		return AutoClientUEB.notficatioinType;
+	}
+
+	public synchronized boolean isRunning() {
+		return this.isRunning;
+	}
+	
+	public synchronized void terminate() {
+		this.isRunning = false;
+	}
+	@SuppressWarnings("deprecation")
+	@Override
+	public void run() {
+		synchronized(this) {
+			this.isRunning = true;
+		}
+		String group =  UUID.randomUUID ().toString ();
+		String id = "0";
+		String topic = null;
+		// Stop and Start needs to be done.
+		if (scheme != null && handler!=null) {
+			if (scheme.equals(NotificationScheme.AUTO_ALL_NOTIFICATIONS) || scheme.equals(NotificationScheme.AUTO_NOTIFICATIONS)) {
+				//Check if the Notification Type is UEB t				if (notficationType.equals("ueb")){
+				URL aURL;
+				try {
+					aURL = new URL(AutoClientUEB.url);
+					topic = aURL.getHost() + aURL.getPort();
+				} catch (MalformedURLException e) {
+					topic = AutoClientUEB.url.replace("[:/]", "");
+				}
+					
+				//TODO  create a loop to listen for messages from UEB cluster
+				try {
+					CConsumer = CambriaClientFactory.createConsumer ( null, uebURLList, topic, group, id, 15*1000, 1000 );
+				} catch (MalformedURLException e1) {
+					// TODO Auto-generated catch block
+					e1.printStackTrace();
+				} catch (GeneralSecurityException e1) {
+					// TODO Auto-generated catch block
+					e1.printStackTrace();
+				}
+				while (this.isRunning() )
+				{
+					try {
+						for ( String msg : CConsumer.fetch () )
+						{		
+							logger.debug("Auto Notification Recieved Message " + msg + " from UEB cluster : " + uebURLList.toString());
+							notification = NotificationUnMarshal.notificationJSON(msg);
+							callHandler();
+						}
+					} catch (Exception e) {
+						// TODO Auto-generated catch block
+						logger.debug("Error in processing UEB message");
+					}
+
+				}
+				logger.debug("Stopping UEB Consuer loop will not logger fetch messages from the cluser");
+			}
+		}
+	}
+
+	private static void callHandler() {
+		if (handler != null && scheme != null) {
+			if (scheme.equals(NotificationScheme.AUTO_ALL_NOTIFICATIONS)) {
+				boolean removed = false, updated = false;
+				if (notification.getRemovedPolicies() != null && !notification.getRemovedPolicies().isEmpty()) {
+					removed = true;
+				}
+				if (notification.getLoadedPolicies() != null && !notification.getLoadedPolicies().isEmpty()) {
+					updated = true;
+				}
+				if (removed && updated) {
+					notification.setNotificationType(NotificationType.BOTH);
+				} else if (removed) {
+					notification.setNotificationType(NotificationType.REMOVE);
+				} else if (updated) {
+					notification.setNotificationType(NotificationType.UPDATE);
+				}
+				handler.notificationReceived(notification);
+			} else if (scheme.equals(NotificationScheme.AUTO_NOTIFICATIONS)) {
+				PDPNotification newNotification = MatchStore.checkMatch(notification);
+				if (newNotification.getNotificationType() != null) {
+					handler.notificationReceived(newNotification);
+				}
+			}
+		}
+	}
+
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/ManualClientEnd.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/ManualClientEnd.java
new file mode 100644
index 0000000..c006b05
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/ManualClientEnd.java
@@ -0,0 +1,138 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std;
+
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.concurrent.CountDownLatch;
+
+import javax.websocket.ClientEndpoint;
+import javax.websocket.DeploymentException;
+import javax.websocket.OnClose;
+import javax.websocket.OnError;
+import javax.websocket.OnMessage;
+import javax.websocket.OnOpen;
+import javax.websocket.Session;
+
+//import org.apache.log4j.Logger;
+import org.glassfish.tyrus.client.ClientManager;
+import org.openecomp.policy.api.NotificationScheme;
+import org.openecomp.policy.api.NotificationType;
+import org.openecomp.policy.api.PDPNotification;
+import org.openecomp.policy.std.StdPDPNotification;
+
+import org.openecomp.policy.xacml.api.XACMLErrorConstants;
+
+import org.openecomp.policy.common.logging.flexlogger.*; 
+
+@ClientEndpoint
+public class ManualClientEnd {
+	private static CountDownLatch latch;
+	private static StdPDPNotification notification = null;
+	private static String resultJson = null;
+	private static Logger logger = FlexLogger.getLogger(ManualClientEnd.class.getName());
+	
+	public static void start(String url) {
+		latch = new CountDownLatch(1);
+		ClientManager client = ClientManager.createClient();
+		if(url.contains("https")){
+			url = url.replaceAll("https", "wss");
+		}else {
+			url = url.replaceAll("http", "ws");
+		}
+		try {
+			client.connectToServer(ManualClientEnd.class, new URI(url+"notifications"));
+			latch.await();
+		} catch (DeploymentException | URISyntaxException | InterruptedException e) {
+			logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + e);
+		} catch (IOException e) {
+			logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + e);
+		}
+	}
+
+	public static PDPNotification result(NotificationScheme scheme) {
+		if (resultJson == null || notification == null) {
+			logger.debug("No Result" );
+			return null;
+		} else {
+			if(scheme.equals(NotificationScheme.MANUAL_ALL_NOTIFICATIONS)) {
+				boolean removed = false, updated = false; 
+				if(notification.getRemovedPolicies()!=null && !notification.getRemovedPolicies().isEmpty()){
+					removed = true;
+				}
+				if(notification.getLoadedPolicies()!=null && !notification.getLoadedPolicies().isEmpty()){
+					updated = true;
+				}
+				if(removed && updated) {
+					notification.setNotificationType(NotificationType.BOTH);
+				}else if(removed){
+					notification.setNotificationType(NotificationType.REMOVE);
+				}else if(updated){
+					notification.setNotificationType(NotificationType.UPDATE);
+				}
+				return notification;
+			}else if(scheme.equals(NotificationScheme.MANUAL_NOTIFICATIONS)) {
+				return MatchStore.checkMatch(notification);
+			}else {
+				return null;
+			}
+		}
+	}
+	
+	// WebSockets Code.. 
+	@OnOpen
+	public void onOpen(Session session) throws IOException {
+		logger.info("Session Started with : " + session.getId());
+		session.getBasicRemote().sendText("Manual");
+	}
+	
+	@OnError
+	public void onError(Session session, Throwable e) {
+		logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error in: "+ session.getId());
+		latch.countDown();
+	}
+	
+	@OnClose
+	public void onClose(Session session) {
+		logger.info("Session ended with "+ session.getId());
+		latch.countDown();
+	}
+	
+	@OnMessage
+	public void onMessage(String message, Session session){
+		logger.debug(" Manual Notification Recieved Message : " + message +" Session info is : "+ session.getId());
+		resultJson = message;
+		try {
+			notification = NotificationUnMarshal.notificationJSON(message);
+		} catch (Exception e) {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
+			latch.countDown();
+		}
+		try {
+			session.close();
+		} catch (IOException e) {
+			logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
+			latch.countDown();
+		} // For Manual Client..
+		latch.countDown();
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/ManualClientEndUEB.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/ManualClientEndUEB.java
new file mode 100644
index 0000000..b1962bc
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/ManualClientEndUEB.java
@@ -0,0 +1,173 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.security.GeneralSecurityException;
+import java.util.List;
+import java.util.UUID;
+import java.util.concurrent.CountDownLatch;
+
+//import org.apache.log4j.Logger;
+import org.json.JSONObject;
+import org.openecomp.policy.api.NotificationScheme;
+import org.openecomp.policy.api.NotificationType;
+import org.openecomp.policy.api.PDPNotification;
+import org.openecomp.policy.std.StdPDPNotification;
+
+import com.att.nsa.cambria.client.CambriaClientFactory;
+import com.att.nsa.cambria.client.CambriaConsumer;
+import com.att.nsa.cambria.client.CambriaPublisher;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import org.openecomp.policy.common.logging.flexlogger.*; 
+
+
+public class ManualClientEndUEB {
+	private static StdPDPNotification notification = null;
+	private static String resultJson = null;
+	private static Logger logger = FlexLogger.getLogger(ManualClientEndUEB.class.getName());
+	private static CambriaConsumer CConsumer = null;
+	private static List<String> uebURLList = null; 
+	private static boolean messageNotReceived = false;
+	private static String url = null;
+	private static String uniquID = null;
+	private static String topic = null;
+	
+
+	public static PDPNotification result(NotificationScheme scheme) {
+		if (resultJson == null || notification == null) {
+			logger.debug("No Result" );
+			return null;
+		} else {
+			if(scheme.equals(NotificationScheme.MANUAL_ALL_NOTIFICATIONS)) {
+				boolean removed = false, updated = false; 
+				if(notification.getRemovedPolicies()!=null && !notification.getRemovedPolicies().isEmpty()){
+					removed = true;
+				}
+				if(notification.getLoadedPolicies()!=null && !notification.getLoadedPolicies().isEmpty()){
+					updated = true;
+				}
+				if(removed && updated) {
+					notification.setNotificationType(NotificationType.BOTH);
+				}else if(removed){
+					notification.setNotificationType(NotificationType.REMOVE);
+				}else if(updated){
+					notification.setNotificationType(NotificationType.UPDATE);
+				}
+				return notification;
+			}else if(scheme.equals(NotificationScheme.MANUAL_NOTIFICATIONS)) {
+				return MatchStore.checkMatch(notification);
+			}else {
+				return null;
+			}
+		}
+	}
+
+	private static void publishMessage(String pubTopic, String uniqueID , List<String> uebURLList) {
+		
+		String UEBlist = uebURLList.toString();
+		UEBlist = UEBlist.substring(1,UEBlist.length()-1);
+        CambriaPublisher pub = null;
+		try {
+			pub = CambriaClientFactory.createSimplePublisher(null, UEBlist, pubTopic);
+		} catch (MalformedURLException e1) {
+			// TODO Auto-generated catch block
+			e1.printStackTrace();
+		} catch (GeneralSecurityException e1) {
+			// TODO Auto-generated catch block
+			e1.printStackTrace();
+		}
+        final JSONObject msg1 = new JSONObject (); 
+
+        msg1.put ( "JSON", "UEB Update Ruest UID=" + uniqueID);  
+
+        try {
+			pub.send ( "MyPartitionKey", msg1.toString () );
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} 
+        pub.close (); 
+		
+	}
+
+	public static void createTopic (String url, String uniquID, List<String> uebURLList){
+		URL aURL;
+		try {
+			aURL = new URL(url);
+			topic = aURL.getHost() + aURL.getPort();
+		} catch (MalformedURLException e) {
+			topic = url.replace("[:/]", "");
+		}
+
+		publishMessage(topic+ uniquID , uniquID, uebURLList);
+		
+	}
+	public static void start(String url, List<String> uebURLList,
+			String uniqueID) {
+		ManualClientEndUEB.uebURLList  = uebURLList;
+		ManualClientEndUEB.url = url;
+		ManualClientEndUEB.uniquID = uniqueID;
+		URL aURL;
+		try {
+			aURL = new URL(url);
+			ManualClientEndUEB.topic = aURL.getHost() + aURL.getPort();
+		} catch (MalformedURLException e) {
+			ManualClientEndUEB.topic = url.replace("[:/]", "");
+		}
+		String id = "0";
+		try {
+			CConsumer = CambriaClientFactory.createConsumer ( null, uebURLList, topic + uniquID, "clientGroup", id, 15*1000, 1000 );
+		} catch (MalformedURLException e1) {
+			// TODO Auto-generated catch block
+			e1.printStackTrace();
+		} catch (GeneralSecurityException e1) {
+			// TODO Auto-generated catch block
+			e1.printStackTrace();
+		}		
+		int count = 1;
+		while (count < 4) {
+				publishMessage(topic + "UpdateRequest", uniquID, uebURLList);
+				try {
+					for ( String msg : CConsumer.fetch () )
+					{	
+						
+						logger.debug("Manual Notification Recieved Message " + msg + " from UEB cluster : " + uebURLList.toString());
+						resultJson = msg;
+						if (!msg.contains("UEB Update")){
+//							System.out.println("Manual Notification Recieved Message " + msg + " from UEB cluster : " + uebURLList.toString());
+							notification = NotificationUnMarshal.notificationJSON(msg);
+							count = 4;
+						}
+					}
+				}catch (Exception e) {
+					
+				} 
+				count++;
+			}		
+	}
+	
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/MatchStore.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/MatchStore.java
new file mode 100644
index 0000000..2c06b9a
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/MatchStore.java
@@ -0,0 +1,246 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std;
+
+import java.util.Collection;
+import java.util.HashSet;
+
+import org.openecomp.policy.api.LoadedPolicy;
+import org.openecomp.policy.api.NotificationType;
+import org.openecomp.policy.api.PDPNotification;
+import org.openecomp.policy.api.RemovedPolicy;
+import org.openecomp.policy.std.StdLoadedPolicy;
+import org.openecomp.policy.std.StdPDPNotification;
+import org.openecomp.policy.std.StdRemovedPolicy;
+
+import org.openecomp.policy.common.logging.flexlogger.*; 
+
+public class MatchStore {
+	private static HashSet<Matches> matchStore = new HashSet<Matches>();
+	private static Logger logger = FlexLogger.getLogger(MatchStore.class.getName());
+	
+	public static HashSet<Matches> getMatchStore() {
+		return matchStore;
+	}
+
+	public static void storeMatch(Matches newMatch){
+		// Initialization..
+		if(newMatch!=null){
+			if(matchStore.isEmpty()){
+				matchStore.add(newMatch);
+			}else{
+				// Check if it is a new Match
+				Boolean match = false;
+				for(Matches oldMatch: matchStore){
+					// Compare ECOMPName
+					if(oldMatch.getEcompName().equals(newMatch.getEcompName())){
+						// Compare ConfigName if it exists. 
+						if(newMatch.getConfigName()!=null && oldMatch.getConfigName()!=null){
+							if(oldMatch.getConfigName().equals(newMatch.getConfigName())){
+								// Compare the Config Attributes if they exist.
+								if(newMatch.getConfigAttributes()!= null && oldMatch.getConfigAttributes()!=null) {
+									//Simple thing would be comparing their size. 
+									if(newMatch.getConfigAttributes().size()==oldMatch.getConfigAttributes().size()){
+										// Now need to compare each of them..
+										int count= 0;
+										for(String oldkey: oldMatch.getConfigAttributes().keySet()){
+											boolean check = false;
+											for(String newKey: newMatch.getConfigAttributes().keySet()){
+												if(oldkey.equals(newKey)){
+													if(oldMatch.getConfigAttributes().get(oldkey).equals(newMatch.getConfigAttributes().get(newKey))){
+														check = true;
+													}
+												}
+											}
+											if(check){
+												count++;
+											}else{
+												break;
+											}
+										}
+										if(count==oldMatch.getConfigAttributes().size()){
+											match = true;
+											break;
+										}
+									}
+								}else if(newMatch.getConfigAttributes()== null && oldMatch.getConfigAttributes()==null){
+									match = true;
+									break;
+								}
+							}
+						}else if(newMatch.getConfigName()==null && oldMatch.getConfigName()==null){
+							match = true;
+							break;
+						}	
+					}
+					
+				}
+				// IF not a match then add it to the MatchStore
+				if(match==false){
+					matchStore.add(newMatch);
+				}
+			}
+		}
+	}
+	
+	//TODO Logic changes for Requested Policies notifications.. 
+	public static PDPNotification checkMatch(PDPNotification oldNotification) {
+		boolean removed = false, updated = false;
+		if(oldNotification==null){
+			return null;
+		}
+		StdPDPNotification newNotification = new StdPDPNotification();
+		if(matchStore.isEmpty()) {
+			logger.debug("No Success Config Calls made yet.. ");
+			System.out.println("No success Config calls made yet. ");
+			return null;
+		} 
+		if(oldNotification.getRemovedPolicies()!=null && !oldNotification.getRemovedPolicies().isEmpty()){
+			// send all removed policies to client.
+			Collection<StdRemovedPolicy> removedPolicies = new HashSet<StdRemovedPolicy>();
+			StdRemovedPolicy newRemovedPolicy;
+			for(RemovedPolicy removedPolicy: oldNotification.getRemovedPolicies()){
+				newRemovedPolicy = new StdRemovedPolicy();
+				newRemovedPolicy.setPolicyName(removedPolicy.getPolicyName());
+				newRemovedPolicy.setVersionNo(removedPolicy.getVersionNo());
+				removedPolicies.add(newRemovedPolicy);
+			}
+			newNotification.setRemovedPolicies(removedPolicies);
+			removed = true;
+		}
+		if(oldNotification.getLoadedPolicies()!=null && !oldNotification.getLoadedPolicies().isEmpty()){
+			Collection<StdLoadedPolicy> updatedPolicies = new HashSet<StdLoadedPolicy>();
+			StdLoadedPolicy newUpdatedPolicy;
+			for(LoadedPolicy updatedPolicy: oldNotification.getLoadedPolicies()){
+				// if it is config policies check their matches..
+				if(updatedPolicy.getMatches()!=null && !updatedPolicy.getMatches().isEmpty()){
+					boolean matched = false;
+					for(Matches match : matchStore){
+						matched = false;
+						// Again Better way would be comparing sizes first.
+						// Matches are different need to check if has configAttributes
+						if(match.getConfigAttributes()!=null && !match.getConfigAttributes().isEmpty()){
+							// adding ecomp and config to config-attributes. 
+							int compValues = match.getConfigAttributes().size() + 2;
+							if(updatedPolicy.getMatches().size()== compValues){
+								// Comparing both the values.. 
+								boolean matchAttributes = false;
+								for(String newKey: updatedPolicy.getMatches().keySet()){
+									if(newKey.equals("ECOMPName")){
+										if(updatedPolicy.getMatches().get(newKey).equals(match.getEcompName())){
+											matchAttributes = true;
+										}else {
+											matchAttributes = false;
+											break;
+										}
+									}else if(newKey.equals("ConfigName")) {
+										if(updatedPolicy.getMatches().get(newKey).equals(match.getConfigName())){
+											matchAttributes = true;
+										}else{
+											matchAttributes = false;
+											break;
+										}
+									}else {
+										if(match.getConfigAttributes().containsKey(newKey)){
+											if(updatedPolicy.getMatches().get(newKey).equals(match.getConfigAttributes().get(newKey))){
+												matchAttributes = true;
+											}else{
+												matchAttributes = false;
+												break;
+											}
+										}else{
+											matchAttributes = false;
+											break;
+										}
+									}
+								}
+								if(matchAttributes){
+									// Match..
+									matched = true;
+								}else{
+									break;
+								}
+							}else {
+								break;
+							}
+						}else if(match.getConfigName()!=null){
+							// If there are no config Attributes then check if it has Config Name
+							if(updatedPolicy.getMatches().size()== 2){
+								if(updatedPolicy.getMatches().get("ECOMPName").equals(match.getEcompName())){
+									if(updatedPolicy.getMatches().get("ConfigName").equals(match.getConfigName())){
+										// Match..
+										matched = true;
+									}else{
+										break;
+									}
+								}else {
+									break;
+								}
+							}else{
+								break;
+							}
+						}else {
+							// If non exist then assuming the ECOMP Name to be there. 
+							if(updatedPolicy.getMatches().size()== 1){
+								if(updatedPolicy.getMatches().get("ECOMPName").equals(match.getEcompName())){
+									// Match.. 
+									matched = true;
+								}else {
+									break;
+								}
+							}else{
+								break;
+							}
+						}
+						// Add logic to add the policy. 
+						if(matched){
+							newUpdatedPolicy = new StdLoadedPolicy();
+							newUpdatedPolicy.setPolicyName(updatedPolicy.getPolicyName());
+							newUpdatedPolicy.setVersionNo(updatedPolicy.getVersionNo());
+							newUpdatedPolicy.setMatches(updatedPolicy.getMatches());
+							updatedPolicies.add(newUpdatedPolicy);
+							updated = true;
+						}
+					}
+					
+				}else {
+					//send all non config notifications to client.
+					newUpdatedPolicy = new StdLoadedPolicy();
+					newUpdatedPolicy.setPolicyName(updatedPolicy.getPolicyName());
+					newUpdatedPolicy.setVersionNo(updatedPolicy.getVersionNo());
+					updatedPolicies.add(newUpdatedPolicy);
+					updated = true;
+				}
+			}
+			newNotification.setLoadedPolicies(updatedPolicies);
+		}
+		// Need to set the type of Update.. 
+		if(removed && updated) {
+			newNotification.setNotificationType(NotificationType.BOTH);
+		}else if(removed){
+			newNotification.setNotificationType(NotificationType.REMOVE);
+		}else if(updated){
+			newNotification.setNotificationType(NotificationType.UPDATE);
+		}
+		return newNotification;
+	}
+	
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/Matches.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/Matches.java
new file mode 100644
index 0000000..8e6a8ee
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/Matches.java
@@ -0,0 +1,48 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std;
+
+import java.util.Map;
+
+public class Matches {
+	private String ecompName = null;
+	private String configName = null;
+	private Map<String,String> configAttributes = null;
+	public String getEcompName() {
+		return ecompName;
+	}
+	public void setEcompName(String ecompName) {
+		this.ecompName = ecompName;
+	}
+	public String getConfigName() {
+		return configName;
+	}
+	public void setConfigName(String configName) {
+		this.configName = configName;
+	}
+	public Map<String,String> getConfigAttributes() {
+		return configAttributes;
+	}
+	public void setConfigAttributes(Map<String,String> configAttributes) {
+		this.configAttributes = configAttributes;
+	}
+	
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/NotificationUnMarshal.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/NotificationUnMarshal.java
new file mode 100644
index 0000000..a09391b
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/NotificationUnMarshal.java
@@ -0,0 +1,69 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.openecomp.policy.api.LoadedPolicy;
+import org.openecomp.policy.api.RemovedPolicy;
+import org.openecomp.policy.api.UpdateType;
+import org.openecomp.policy.std.StdLoadedPolicy;
+import org.openecomp.policy.std.StdPDPNotification;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class NotificationUnMarshal {
+	private static StdPDPNotification notification;
+	
+	public static StdPDPNotification notificationJSON(String json) throws Exception{
+		ObjectMapper mapper = new ObjectMapper();
+		notification = mapper.readValue(json, StdPDPNotification.class);
+		if(notification!=null){
+			if(notification.getLoadedPolicies()!=null){
+				Collection<StdLoadedPolicy> stdLoadedPolicies = new ArrayList<StdLoadedPolicy>();
+				for(LoadedPolicy loadedPolicy: notification.getLoadedPolicies()){
+					StdLoadedPolicy stdLoadedPolicy = (StdLoadedPolicy) loadedPolicy;
+					if(notification.getRemovedPolicies()!=null){
+						Boolean updated = false;
+						for(RemovedPolicy removedPolicy: notification.getRemovedPolicies()){
+							String regex = ".(\\d)*.xml";
+							if(removedPolicy.getPolicyName().replaceAll(regex, "").equals(stdLoadedPolicy.getPolicyName().replaceAll(regex, ""))){
+								updated  = true;
+								break;
+							}
+						}
+						if(updated){
+							stdLoadedPolicy.setUpdateType(UpdateType.UPDATE);
+						}else{
+							stdLoadedPolicy.setUpdateType(UpdateType.NEW);
+						}
+					}else{
+						stdLoadedPolicy.setUpdateType(UpdateType.NEW);
+					}
+					stdLoadedPolicies.add(stdLoadedPolicy);
+				}
+				notification.setLoadedPolicies(stdLoadedPolicies);
+			}
+		}
+		return notification;
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdDecisionResponse.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdDecisionResponse.java
new file mode 100644
index 0000000..1f4cf65
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdDecisionResponse.java
@@ -0,0 +1,55 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+
+package org.openecomp.policy.std;
+
+import org.openecomp.policy.api.DecisionResponse;
+import org.openecomp.policy.api.PolicyDecision;
+
+/**
+ * Decision Response Implementation Class. 
+ * 
+ * @version 0.1
+ */
+public class StdDecisionResponse implements DecisionResponse {
+
+	private PolicyDecision decision = PolicyDecision.DENY;
+	private String details;
+	
+	@Override
+	public PolicyDecision getDecision() {
+		return decision;
+	}
+
+	@Override
+	public String getDetails() {
+		return details;
+	}
+	
+	public void setDecision(PolicyDecision decision){
+		this.decision = decision;
+	}
+	
+	public void setDetails(String details) {
+		this.details = details;
+	}
+
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdPolicyChangeResponse.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdPolicyChangeResponse.java
new file mode 100644
index 0000000..2fec860
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdPolicyChangeResponse.java
@@ -0,0 +1,47 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std;
+
+import org.openecomp.policy.api.PolicyChangeResponse;
+
+public class StdPolicyChangeResponse implements PolicyChangeResponse{
+	private String responseMessage = null;
+	private int responseCode;
+	
+	@Override
+	public String getResponseMessage() {
+		return responseMessage;
+	}
+
+	@Override
+	public int getResponseCode() {
+		return responseCode;
+	}
+	
+	public void setResponseMessage(String responseMessage){
+		this.responseMessage = responseMessage;
+	}
+	
+	public void setResponseCode(int responseCode){
+		this.responseCode = responseCode;
+	}
+
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdPolicyConfig.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdPolicyConfig.java
new file mode 100644
index 0000000..ec205da
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdPolicyConfig.java
@@ -0,0 +1,168 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+
+package org.openecomp.policy.std;
+
+import java.util.Map;
+import java.util.Properties;
+
+import javax.json.JsonObject;
+
+import org.openecomp.policy.api.PolicyConfig;
+import org.openecomp.policy.api.PolicyConfigStatus;
+import org.openecomp.policy.api.PolicyType;
+import org.w3c.dom.Document;
+
+/**
+ * PolicyConfig Implementation. 
+ * 
+ * @version 0.3
+ *
+ */
+
+public class StdPolicyConfig implements PolicyConfig{
+	private PolicyType policyType;
+	private Properties properties;
+	private JsonObject jsonObject;
+	private Document document;
+	private String other;
+	private PolicyConfigStatus policyConfigStatus;
+	private String configStatus;
+	private String policyName;
+	private String policyVersion;
+	private Map<String,String> matchingConditions; 
+	private Map<String,String> responseAttributes;
+	
+	@Override
+	public PolicyType getType() {
+		return policyType;
+	}
+
+	@Override
+	public Properties toProperties() {
+		return properties;
+	}
+
+	@Override
+	public JsonObject toJSON() {
+		return jsonObject;
+	}
+
+	@Override
+	public Document toXML() {
+		return document;
+	}
+	
+	@Override
+	public String toOther() {
+		return other;
+	}
+
+	@Override
+	public PolicyConfigStatus getPolicyConfigStatus() {
+		return policyConfigStatus;
+	}
+
+	@Override
+	public String getPolicyConfigMessage() {
+		return configStatus;
+	}
+	
+	@Override
+	public String getPolicyName() {
+		if(policyName!=null && policyName.contains(".xml")){
+			return (policyName.substring(0, policyName.substring(0, policyName.lastIndexOf(".")).lastIndexOf(".")));
+		}
+		return policyName;
+	}
+	
+	@Override
+	public String getPolicyVersion() {
+		return policyVersion;
+	}
+	
+	@Override
+	public Map<String,String> getMatchingConditions(){
+		return matchingConditions;
+	}
+	
+	@Override
+	public Map<String,String> getResponseAttributes(){
+		return responseAttributes;
+	}
+	
+	public void setPolicyType(PolicyType policyType) {
+		this.policyType = policyType;
+	}
+	
+	public void setPolicyName(String policyName) {
+		this.policyName = policyName;
+	}
+	
+	public void setPolicyVersion(String policyVersion) {
+		this.policyVersion = policyVersion;
+	}
+	
+	public void setProperties(Properties properties) {
+		this.properties = properties;
+	}
+
+	public void setJsonObject(JsonObject jsonObject) {
+		this.jsonObject = jsonObject;
+	}
+	
+	public void setDocument(Document document) {
+		this.document = document;
+	}
+	
+	public void setOther(String other) {
+		this.other = other;
+	}
+	
+	public void setConfigStatus(String configStatus) {
+		this.configStatus = configStatus;
+	}
+	
+	public void setPolicyConfigStatus(PolicyConfigStatus policyConfigStatus) {
+		this.policyConfigStatus = policyConfigStatus;
+	}
+	
+	public void setConfigStatus(String configStatus, PolicyConfigStatus policyConfigStatus) {
+		this.configStatus = configStatus;
+		this.policyConfigStatus = policyConfigStatus;
+	}
+	
+	public void setMatchingConditions(Map<String,String> matchingConditions){
+		this.matchingConditions = matchingConditions;
+	}
+	
+	public void setResponseAttributes(Map<String,String> responseAttributes){
+		this.responseAttributes = responseAttributes;
+	}
+	
+	@Override
+	public String toString() {
+		return "PolicyConfig [ policyConfigStatus=" + policyConfigStatus + ", policyConfigMessage=" + configStatus + ", policyName=" + policyName + 
+				""
+				+ "]";
+	}
+
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdPolicyEngine.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdPolicyEngine.java
new file mode 100644
index 0000000..11e4e4f
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdPolicyEngine.java
@@ -0,0 +1,4227 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+
+package org.openecomp.policy.std;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.StringReader;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Base64;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.UUID;
+
+import javax.json.Json;
+import javax.json.JsonArrayBuilder;
+import javax.json.JsonObject;
+import javax.json.JsonObjectBuilder;
+import javax.json.JsonReader;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.http.entity.ContentType;
+//import org.apache.log4j.Logger;
+import org.json.JSONObject;
+import org.openecomp.policy.api.AttributeType;
+import org.openecomp.policy.api.ConfigRequestParameters;
+import org.openecomp.policy.api.DecisionRequestParameters;
+import org.openecomp.policy.api.DecisionResponse;
+import org.openecomp.policy.api.DeletePolicyParameters;
+import org.openecomp.policy.api.DictionaryParameters;
+import org.openecomp.policy.api.EventRequestParameters;
+import org.openecomp.policy.api.ImportParameters;
+import org.openecomp.policy.api.NotificationHandler;
+import org.openecomp.policy.api.NotificationScheme;
+import org.openecomp.policy.api.PDPNotification;
+import org.openecomp.policy.api.PolicyChangeResponse;
+import org.openecomp.policy.api.PolicyClass;
+import org.openecomp.policy.api.PolicyConfig;
+import org.openecomp.policy.api.PolicyConfigException;
+import org.openecomp.policy.api.PolicyConfigStatus;
+import org.openecomp.policy.api.PolicyConfigType;
+import org.openecomp.policy.api.PolicyDecision;
+import org.openecomp.policy.api.PolicyDecisionException;
+import org.openecomp.policy.api.PolicyEngineException;
+import org.openecomp.policy.api.PolicyEventException;
+import org.openecomp.policy.api.PolicyParameters;
+import org.openecomp.policy.api.PolicyResponse;
+import org.openecomp.policy.api.PolicyResponseStatus;
+import org.openecomp.policy.api.PolicyType;
+import org.openecomp.policy.api.PushPolicyParameters;
+import org.openecomp.policy.api.RuleProvider;
+//import org.openecomp.policy.utils.AAFPolicyClient;
+//import org.openecomp.policy.utils.AAFPolicyException;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+
+import org.openecomp.policy.common.logging.flexlogger.FlexLogger;
+import org.openecomp.policy.common.logging.flexlogger.Logger;
+
+import com.att.research.xacml.api.Advice;
+import com.att.research.xacml.api.AttributeAssignment;
+import com.att.research.xacml.api.Decision;
+import com.att.research.xacml.api.Obligation;
+import com.att.research.xacml.api.Request;
+import com.att.research.xacml.api.Response;
+import com.att.research.xacml.api.Result;
+import org.openecomp.policy.xacml.api.XACMLErrorConstants;
+import org.openecomp.policy.xacml.std.pap.StdPAPPolicy;
+import org.openecomp.policy.xacml.std.pap.StdPDPPolicy;
+
+import com.att.research.xacml.api.pap.PAPException;
+import com.att.research.xacml.api.pap.PDPPolicy;
+import com.att.research.xacml.std.json.JSONRequest;
+import com.att.research.xacml.std.json.JSONResponse;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.base.CharMatcher;
+
+
+
+/**
+ * PolicyEngine Implementation class
+ * 
+ * @version 1.0
+ */
+public class StdPolicyEngine {
+	// Change the default Priority value here. 
+	private static final int defaultPriority = 9999;
+	
+	private String propertyFilePath = null;
+	private static List<String> pdps = null;
+	private static List<String> paps = null;
+	private static String environment= null; 
+	private static String userName = null;
+	private static String pass = null; 
+	private static List<String> encoding = null;
+	private static List<String> encodingPAP = null;
+	private List<String> pdp_default = null;
+	private List<String> pap_default = null;
+	private List<String> type_default = null;
+	private List<String> notificationType = new ArrayList<String>();
+	private List<String> uebURLList = new ArrayList<String>();
+	private NotificationScheme scheme = null;
+	private NotificationHandler handler = null;
+	private Matches match = null;
+	private Boolean decide = false;
+	private AutoClientUEB UEBClientThread = null;
+	private Thread registerUEBThread = null;
+	private boolean UEBThread = false;
+	private String policyId = null;	
+	private String description = null;	
+	private String pushVersion = null;
+	private boolean isValid = false;
+	private int responseCode = 0;
+	private boolean unique = false;
+	private boolean junit = false;
+	//private AAFPolicyClient aafClient = null;
+	// Backward code. 
+	private String pyPDPClientFile = null;
+	
+	final private static String uniqueID = UUID.randomUUID ().toString ();
+	
+	private static Logger logger = FlexLogger.getLogger(StdPolicyConfig.class.getName());
+	
+	/*
+	 * Taking the Property file even if it null.
+	 */
+	public StdPolicyEngine(String propertyFilePath)
+			throws PolicyEngineException {
+		setProperty(propertyFilePath);
+	}
+
+	/*
+	 * Taking the Notification Constructor.
+	 */
+	public StdPolicyEngine(String propertyFilePath, NotificationScheme scheme,
+			NotificationHandler handler) throws PolicyEngineException {
+		setProperty(propertyFilePath);
+		this.scheme = scheme;
+		this.handler = handler;
+		if (!notificationType.get(0).equals("ueb")){
+			AutoClientEnd.setAuto(scheme, handler);
+		}
+		notification(scheme, handler);
+	}
+
+	/*
+	 * Taking the Notification Constructor.
+	 */
+	public StdPolicyEngine(String propertyFilePath, NotificationScheme scheme)
+			throws PolicyEngineException {
+		setProperty(propertyFilePath);
+		this.scheme = scheme;
+		setScheme(scheme);
+	}
+
+	// This Call will be used by PyPDP Requests
+	public StdPolicyEngine(List<String> configURL, List<String> configPapURL, List<String> encodingPAP, List<String> encoding, NotificationScheme scheme, NotificationHandler handler, String environment, String clientProperties, Boolean isTest) {
+		StdPolicyEngine.pdps = configURL;
+		StdPolicyEngine.paps = configPapURL;
+		StdPolicyEngine.encoding = encoding;
+		StdPolicyEngine.encodingPAP = encodingPAP;
+		StdPolicyEngine.environment = environment;
+		Properties props = new Properties();
+		props.setProperty("ENVIRONMENT", environment);
+		//Not Supported for 1610 Open Source
+		/*try {
+			aafClient = AAFPolicyClient.getInstance(props);
+		} catch (AAFPolicyException e) {
+			logger.error(XACMLErrorConstants.ERROR_UNKNOWN + e.getMessage());
+		}*/
+		pyPDPClientFile = clientProperties;
+		// Default Notification Type for PyPDPServers. 
+		notificationType.add("websocket");
+		if(!isTest){
+			notification(scheme, handler);
+		}
+	}
+
+	/*
+	 * sendEvent API Implementation
+	 */
+	public Collection<PolicyResponse> event(Map<String, String> eventAttributes, UUID requestID)
+			throws PolicyEventException {
+		Collection<PolicyResponse> policyResponse = null;
+		policyResponse = event(eventAttributes, requestID, userName, pass);
+		return policyResponse;
+	}
+	
+	/*
+	 * sendEvent API Implementation for eventRequestParameters 
+	 */
+	public Collection<PolicyResponse> event(EventRequestParameters eventRequestParameters) throws PolicyEventException{
+		Collection<PolicyResponse> response = event(eventRequestParameters.getEventAttributes(), eventRequestParameters.getRequestID());
+		return response;
+	}
+
+	/*
+	 * getConfig API Implementation
+	 */
+	public Collection<PolicyConfig> config(String eCOMPComponentName,
+			String configName, Map<String, String> configAttributes, UUID requestID)
+			throws PolicyConfigException {
+		Collection<PolicyConfig> policyConfig = null;
+		policyConfig = config(eCOMPComponentName, configName, configAttributes, requestID, userName, pass);
+		return policyConfig;
+	}
+
+	/*
+	 * getConfig API Implementation
+	 */
+	public Collection<PolicyConfig> config(String eCOMPComponentName,
+			String configName, UUID requestID) throws PolicyConfigException {
+		Collection<PolicyConfig> policyConfig = null;
+		policyConfig = config(eCOMPComponentName, configName,null, requestID, userName, pass);
+		return policyConfig;
+	}
+
+	/*
+	 * getConfig API Implementation
+	 */
+	public Collection<PolicyConfig> config(String eCOMPComponentName, UUID requestID)
+			throws PolicyConfigException {
+		Collection<PolicyConfig> policyConfig = null;
+		policyConfig = config(eCOMPComponentName, requestID, userName, pass);
+		return policyConfig;
+	}
+
+	/*
+	 * getConfig using the PolicyFileName Implementation
+	 */
+	public Collection<PolicyConfig> policyName(String policyName, UUID requestID)
+			throws PolicyConfigException {
+		Collection<PolicyConfig> policyConfig = null;
+		policyConfig = configPolicyName(policyName, requestID, userName, pass);
+		return policyConfig;
+	}
+	
+	/*
+	 * getConfig using configRequestParameters Implementation 
+	 */
+	public Collection<PolicyConfig> config(ConfigRequestParameters configRequestParameters) throws PolicyConfigException{
+		Collection<PolicyConfig> response = null;
+		response = configRequest(configRequestParameters, userName, pass);
+		return response;
+	}
+	
+	/*
+	 * listPolicies using configRequestParameters Implementation
+	 */
+	public Collection<String> listConfig(ConfigRequestParameters listPolicyRequestParameters) throws PolicyConfigException{
+		Collection<String> policyList = new ArrayList<String>();
+		policyList = listConfigRequest(listPolicyRequestParameters, userName, pass);
+		return policyList;
+	}
+
+	/*
+	 * getDecision using the decision Attributes.
+	 */
+	public DecisionResponse decide(String eCOMPComponentName,
+			Map<String, String> decisionAttributes, UUID requestID)
+			throws PolicyDecisionException {
+		DecisionResponse policyDecision = policyDecide(eCOMPComponentName,
+				decisionAttributes, requestID, userName, pass);
+		return policyDecision;
+	}
+	
+	/*
+	 * getDecision Using decisionRequestParameters.  
+	 */
+	public DecisionResponse decide(DecisionRequestParameters decisionRequestParameters) throws PolicyDecisionException{
+		DecisionResponse decision = decide(decisionRequestParameters.getECOMPComponentName(), decisionRequestParameters.getDecisionAttributes(), decisionRequestParameters.getRequestID());
+		return decision;
+	}
+	
+	/*
+	 * PushPolicy using pushPolicyParameters. 
+	 */
+	public PolicyChangeResponse pushPolicy(PushPolicyParameters pushPolicyParameters) throws Exception{
+		return pushPolicy(pushPolicyParameters, userName, pass);
+	}
+	
+	public PolicyChangeResponse pushPolicy(PushPolicyParameters pushPolicyParameters, String userID, String passcode) throws Exception{
+		StdPolicyChangeResponse response = new StdPolicyChangeResponse();
+		String resource= "pushPolicy";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			response.setResponseMessage(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			response.setResponseCode(401);
+			return response;
+		}
+		String plainName = null;
+		String scope = null;
+		try{
+			if(pushPolicyParameters.getPolicyName()!=null){
+				plainName = pushPolicyParameters.getPolicyName().substring(pushPolicyParameters.getPolicyName().lastIndexOf(".")+1, pushPolicyParameters.getPolicyName().length());
+				scope = pushPolicyParameters.getPolicyName().substring(0, pushPolicyParameters.getPolicyName().lastIndexOf("."));
+				logger.info("Name is "+ plainName +"   scope is "+ scope);
+			}
+		}catch(Exception e){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+			response.setResponseMessage(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+		}
+
+		// check incoming requestID, if null then generate one here so the same id can be used for the multiple transactions for the same Push Policy request  (i.e. POST, PUT)
+		UUID requestID = pushPolicyParameters.getRequestID();
+		if (requestID == null) {
+			requestID = UUID.randomUUID();
+			logger.info("Request ID was not provided from input, so sending generated ID: " + requestID.toString());
+		} else {	
+			logger.info("Request ID was provided from input: " + requestID.toString());
+		}
+		// now use the local requestID field derived above to pass to the rest of the Push Policy process (below)
+		// response.setResponseMessage(pushPolicy(scope, plainName, pushPolicyParameters.getPolicyType(), pushPolicyParameters.getPdpGroup(), pushPolicyParameters.getRequestID()));
+		response.setResponseMessage(pushPolicy(scope, plainName, pushPolicyParameters.getPolicyType(), pushPolicyParameters.getPdpGroup(), requestID));
+		response.setResponseCode(responseCode);
+		return response;
+	}
+	
+	/*
+	 * Delete a Policy using deletePolicyParameters
+	 */
+	public PolicyChangeResponse deletePolicy(DeletePolicyParameters parameters) throws Exception {
+		return deletePolicy(parameters, userName, pass);
+	}
+	
+	public PolicyChangeResponse deletePolicy(DeletePolicyParameters parameters, String userID,String passcode) throws Exception {
+		StdPolicyChangeResponse response = new StdPolicyChangeResponse();
+		String resource= "deletePolicy";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			response.setResponseMessage(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			response.setResponseCode(401);
+			return response;
+		}
+		if (parameters.getPolicyComponent()!=null) {
+			if (parameters.getPolicyComponent().equalsIgnoreCase("PAP")) {
+				response.setResponseMessage(deletePolicyFromPAP(parameters));
+			} else if (parameters.getPolicyComponent().equalsIgnoreCase("PDP")) {
+				response.setResponseMessage(deletePolicyFromPDP(parameters));
+			} else {
+				logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Policy Component does not exist.");
+				response.setResponseMessage(XACMLErrorConstants.ERROR_DATA_ISSUE + "Policy Component does not exist. Please enter either PAP or PDP to delete the policy from a specified Policy Component.");
+			}
+		} else {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Component given.");
+			response.setResponseMessage(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Component given.");
+		}
+
+		response.setResponseCode(responseCode);
+		return response;
+	}
+	
+	/*
+	 * createDictionaryItem using dictionaryParameters.
+	 */
+	public PolicyChangeResponse createDictionaryItem(DictionaryParameters parameters) throws Exception{
+		StdPolicyChangeResponse response = new StdPolicyChangeResponse();
+		
+		if(parameters.getDictionaryType()!=null || parameters.getDictionaryType().equals("")){
+			if(parameters.getDictionary()!=null || parameters.getDictionary().equals("")){
+				if(parameters.getDictionaryFields()!=null){
+					logger.info("Parameters are good... start create dictionary item API...");
+					
+					Map<String,String> dictionaryFields = parameters.getDictionaryFields().get(AttributeType.DICTIONARY);
+					
+					StdPAPPolicy newDictionaryItem = new StdPAPPolicy(parameters.getDictionaryType().toString(), parameters.getDictionary(), dictionaryFields);
+
+					String result = (String) callPAP(newDictionaryItem, new String[] {"operation=createDictionary", "apiflag=dictionaryApi"}, parameters.getRequestID(), "dictionaryItem");
+					
+					response.setResponseCode(responseCode);
+					response.setResponseMessage(result);
+
+				}else{
+					logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Dictionary Fields given.");
+					response.setResponseMessage(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Dictionary Fields given.");
+				}
+			}else{
+				logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Dictionary given.");
+				response.setResponseMessage(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Dictionary given.");
+			}
+		}else{
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Dictionary Type given.");
+			response.setResponseMessage(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Dictionary Type given.");
+		}
+		try{
+			
+		}catch(Exception e){
+
+		}
+		
+		return response;
+	}
+	
+	/*
+	 * createPolicy Using policyParameters. 
+	 */
+	public PolicyChangeResponse createPolicy(PolicyParameters policyParameters) throws Exception{
+		return createPolicy(policyParameters, userName, pass);
+	}
+	
+	public PolicyChangeResponse createPolicy(PolicyParameters policyParameters, String userID, String passcode) throws Exception{
+		StdPolicyChangeResponse response = new StdPolicyChangeResponse();
+		String resource= "createPolicy";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			response.setResponseMessage(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			response.setResponseCode(401);
+			return response;
+		}
+		String plainName = null;
+		String scope = null;
+		String date = "NA";
+		if (policyParameters.getTtlDate()!=null){
+			date = ConvertDate(policyParameters.getTtlDate());
+		}
+		try{
+			if(policyParameters.getPolicyName()!=null){
+				plainName = policyParameters.getPolicyName().substring(policyParameters.getPolicyName().lastIndexOf(".")+1, policyParameters.getPolicyName().length());
+				scope = policyParameters.getPolicyName().substring(0, policyParameters.getPolicyName().lastIndexOf("."));
+				logger.info("Name is "+ plainName +"   scope is "+ scope);
+			}
+		}catch(Exception e){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+			response.setResponseMessage(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+		}
+		if(policyParameters.getPolicyConfigType()!=null){
+			// This is Config Class Policy. 
+			// Firewall
+			if(policyParameters.getPolicyConfigType().equals(PolicyConfigType.Firewall)){
+				if(policyParameters.getConfigBody()!=null){
+					JsonObject json = null;
+					try{
+						json = stringToJsonObject(policyParameters.getConfigBody());
+					}catch(Exception e){
+						String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " improper JSON object : " + policyParameters.getConfigBody();
+						logger.error(message);
+						throw new Exception(message);
+					}
+					response.setResponseMessage(createConfigFirewallPolicy(plainName, json, scope, policyParameters.getRequestID(), userID, passcode,
+							policyParameters.getRiskLevel(), policyParameters.getRiskType(), String.valueOf(policyParameters.getGuard()), date));
+				}else{
+					String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ "No Config Body given.";
+					logger.error(message);
+					response.setResponseMessage(message);
+				}
+			}
+			//Base
+			else if(policyParameters.getPolicyConfigType().equals(PolicyConfigType.Base)){
+				if(policyParameters.getConfigBody()!=null) {
+					if(policyParameters.getConfigBodyType()!=null){
+						response.setResponseMessage(createConfigPolicy(plainName, policyParameters.getPolicyDescription(), policyParameters.getEcompName(), policyParameters.getConfigName(),
+								policyParameters.getAttributes().get(AttributeType.MATCHING), policyParameters.getConfigBodyType().toString(), policyParameters.getConfigBody(), scope, policyParameters.getRequestID(), userID, passcode,
+								policyParameters.getRiskLevel(), policyParameters.getRiskType(), String.valueOf(policyParameters.getGuard()), date));
+					} else {
+						String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ "No Config Body Type given.";
+						logger.error(message);
+						response.setResponseMessage(message);
+					}
+				} else {
+					String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ "No Config Body given.";
+					logger.error(message);
+					response.setResponseMessage(message);
+				}
+			}
+			//BRMS Raw
+			else if(policyParameters.getPolicyConfigType().equals(PolicyConfigType.BRMS_RAW)){
+				if(policyParameters.getConfigBody()!=null){
+					
+					/*public String createUpdateBRMSRawPolicy(String policyName, String policyDescription, Map<String,String> dyanamicFieldConfigAttributes,
+					 * String brmsRawBody, String policyScope, Boolean isEdit, UUID requestID)*/
+					response.setResponseMessage(createUpdateBRMSRawPolicy(plainName, policyParameters.getPolicyDescription(),policyParameters.getAttributes(),
+							policyParameters.getConfigBody(),scope, false, 
+							policyParameters.getRequestID(),policyParameters.getRiskLevel(), policyParameters.getRiskType(), String.valueOf(policyParameters.getGuard()), 
+							date));
+				}else{
+					String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " No Config Body Present";
+					logger.error(message);
+					throw new Exception(message);
+				}
+			}
+			//BRMS Param
+			else if(policyParameters.getPolicyConfigType().equals(PolicyConfigType.BRMS_PARAM)){
+				if(policyParameters.getConfigBody()!=null){
+			
+					response.setResponseMessage(createUpdateBRMSParamPolicy(plainName, policyParameters.getPolicyDescription(),policyParameters.getAttributes(),
+							policyParameters.getConfigBody(),scope, false, 
+							policyParameters.getRequestID(),policyParameters.getAttributes(),policyParameters.getRiskLevel(), policyParameters.getRiskType(), 
+							String.valueOf(policyParameters.getGuard()), date));
+				}else{
+					response.setResponseMessage(createUpdateBRMSParamPolicy(plainName, policyParameters.getPolicyDescription(),policyParameters.getAttributes(),
+							null,scope, false, 
+							policyParameters.getRequestID(),policyParameters.getAttributes(),policyParameters.getRiskLevel(), policyParameters.getRiskType(), 
+							String.valueOf(policyParameters.getGuard()), date));
+				}
+			}
+			// Micro Services Policy
+			else if(policyParameters.getPolicyConfigType().equals(PolicyConfigType.MicroService)){
+				if(policyParameters.getConfigBody()!=null){
+					JsonObject json = null;
+					try{
+						json = stringToJsonObject(policyParameters.getConfigBody());
+					}catch(Exception e){
+						String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " improper JSON object : " + policyParameters.getConfigBody();
+						logger.error(message);
+						throw new Exception(message);
+					}
+					//call Micro Services Create API here
+					response.setResponseMessage(createUpdateMicroServicesPolicy(plainName, json, policyParameters.getEcompName(),
+													scope, false, policyParameters.getRequestID(),policyParameters.getRiskLevel(), policyParameters.getRiskType(), 
+													String.valueOf(policyParameters.getGuard()), date));
+					
+				}else{
+					String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " No Micro Service or Attributes Config Body Present";
+					logger.error(message);
+					throw new Exception(message);
+				}
+			}
+			// ClosedLoop_Fault Policy
+			else if(policyParameters.getPolicyConfigType().equals(PolicyConfigType.ClosedLoop_Fault)){
+				if(policyParameters.getConfigBody()!=null){
+					JsonObject json = null;
+					try{
+						if(validateNONASCIICharactersAndAllowSpaces(policyParameters.getConfigBody())){
+							json = stringToJsonObject(policyParameters.getConfigBody());
+						} else {
+							String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ "The ClosedLoop JSON Contains Non ASCII Characters.";
+							logger.error(message);
+							response.setResponseCode(400);
+							response.setResponseMessage(message);
+							return response;
+						}
+						
+					}catch(Exception e){
+						String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " improper JSON object : " + policyParameters.getConfigBody();
+						logger.error(message);
+						response.setResponseCode(400);
+						response.setResponseMessage(message);
+						return response;
+						
+					}
+					//call ClosedLoop_Fault Create API here
+					response.setResponseMessage(createUpdateClosedLoopPolicy(plainName, json, policyParameters.getPolicyDescription(),
+													scope, false, policyParameters.getRequestID(),policyParameters.getRiskLevel(), policyParameters.getRiskType(), 
+													String.valueOf(policyParameters.getGuard()), date));
+					
+				}else{
+					String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " No Config Body Present";
+					logger.error(message);
+					response.setResponseMessage(message);
+					response.setResponseCode(400);
+					return response;
+				}
+			}
+			// ClosedLoop_PM Policy
+			else if(policyParameters.getPolicyConfigType().equals(PolicyConfigType.ClosedLoop_PM)){
+				if(policyParameters.getConfigBody()!=null){
+					JsonObject json = null;
+					try{
+						if(validateNONASCIICharactersAndAllowSpaces(policyParameters.getConfigBody())){
+							json = stringToJsonObject(policyParameters.getConfigBody());
+						} else {
+							String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ "The ClosedLoop PM JSON Contains Non ASCII Characters.";
+							logger.error(message);
+							response.setResponseMessage(message);
+							response.setResponseCode(400);
+							return response;
+							
+						}
+						
+					}catch(Exception e){
+						String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " improper JSON object : " + policyParameters.getConfigBody();
+						logger.error(message);
+						response.setResponseMessage(message);
+						response.setResponseCode(400);
+						return response;
+						
+					}
+					//call ClosedLoop_Fault Create API here
+					response.setResponseMessage(createUpdateClosedLoopPmPolicy(plainName, json, policyParameters.getPolicyDescription(),
+													scope, false, policyParameters.getRequestID(),policyParameters.getRiskLevel(), policyParameters.getRiskType(), 
+													String.valueOf(policyParameters.getGuard()), date));
+					
+				}else{
+					String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " No Config Body Present";
+					logger.error(message);
+					response.setResponseMessage(message);
+					response.setResponseCode(400);
+					return response;
+					
+				}
+			}
+			
+		} else if (policyParameters.getPolicyClass()!=null){ 
+			if(policyParameters.getPolicyClass().equals(PolicyClass.Action)){
+				// call Action Create API here. 
+				response.setResponseMessage(createUpdateActionPolicy(plainName, policyParameters.getPolicyDescription(), policyParameters.getAttributes().get(AttributeType.MATCHING), 
+						policyParameters.getDynamicRuleAlgorithmLabels(), policyParameters.getDynamicRuleAlgorithmField1(), policyParameters.getDynamicRuleAlgorithmFunctions(), policyParameters.getDynamicRuleAlgorithmField2(), 
+						policyParameters.getActionPerformer(), policyParameters.getActionAttribute(), scope, false, policyParameters.getRequestID()));
+			}else if(policyParameters.getPolicyClass().equals(PolicyClass.Decision)){
+				// Call Decision Create API here. 
+				if (policyParameters.getAttributes()!=null && policyParameters.getAttributes().containsKey(AttributeType.MATCHING) && policyParameters.getAttributes().containsKey(AttributeType.SETTINGS)) {
+					response.setResponseMessage(createUpdateDecisionPolicy(plainName, policyParameters.getPolicyDescription(), policyParameters.getEcompName(), policyParameters.getRuleProvider(),
+							policyParameters.getAttributes().get(AttributeType.MATCHING), policyParameters.getAttributes().get(AttributeType.SETTINGS), policyParameters.getDynamicRuleAlgorithmLabels(), 
+							policyParameters.getDynamicRuleAlgorithmField1(), policyParameters.getDynamicRuleAlgorithmFunctions(), policyParameters.getDynamicRuleAlgorithmField2(), 
+							scope, false, policyParameters.getRequestID()));
+				}else if(policyParameters.getAttributes()!=null && !policyParameters.getAttributes().containsKey(AttributeType.MATCHING) && policyParameters.getAttributes().containsKey(AttributeType.SETTINGS)){
+					response.setResponseMessage(createUpdateDecisionPolicy(plainName, policyParameters.getPolicyDescription(), policyParameters.getEcompName(), policyParameters.getRuleProvider(),
+							null, policyParameters.getAttributes().get(AttributeType.SETTINGS), policyParameters.getDynamicRuleAlgorithmLabels(), 
+							policyParameters.getDynamicRuleAlgorithmField1(), policyParameters.getDynamicRuleAlgorithmFunctions(), policyParameters.getDynamicRuleAlgorithmField2(), 
+							scope, false, policyParameters.getRequestID()));
+				}else if(policyParameters.getAttributes()!=null && policyParameters.getAttributes().containsKey(AttributeType.MATCHING) && !policyParameters.getAttributes().containsKey(AttributeType.SETTINGS)){
+					response.setResponseMessage(createUpdateDecisionPolicy(plainName, policyParameters.getPolicyDescription(), policyParameters.getEcompName(), policyParameters.getRuleProvider(),
+							policyParameters.getAttributes().get(AttributeType.MATCHING), null, policyParameters.getDynamicRuleAlgorithmLabels(), 
+							policyParameters.getDynamicRuleAlgorithmField1(), policyParameters.getDynamicRuleAlgorithmFunctions(), policyParameters.getDynamicRuleAlgorithmField2(), 
+							scope, false, policyParameters.getRequestID()));
+				}else{
+					response.setResponseMessage(createUpdateDecisionPolicy(plainName, policyParameters.getPolicyDescription(), policyParameters.getEcompName(), policyParameters.getRuleProvider(),
+							null, null, policyParameters.getDynamicRuleAlgorithmLabels(), 
+							policyParameters.getDynamicRuleAlgorithmField1(), policyParameters.getDynamicRuleAlgorithmFunctions(), policyParameters.getDynamicRuleAlgorithmField2(), 
+							scope, false, policyParameters.getRequestID()));
+				}
+			}
+		} else {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Class found.");
+			response.setResponseMessage(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Class found.");
+		}
+		response.setResponseCode(responseCode);
+		return response;
+	}
+	
+	/*
+	 * updatePolicy using policyParameters. 
+	 */
+	public PolicyChangeResponse updatePolicy(PolicyParameters policyParameters) throws Exception{
+		return updatePolicy(policyParameters, userName, pass);
+	}
+	
+	public PolicyChangeResponse updatePolicy(PolicyParameters policyParameters,String userID, String passcode) throws Exception{
+		StdPolicyChangeResponse response = new StdPolicyChangeResponse();
+		String resource= "updatePolicy";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			response.setResponseMessage(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			response.setResponseCode(401);
+			return response;
+		}
+		String plainName = null;
+		String scope = null;
+		String date = "NA";
+		if (policyParameters.getTtlDate()!=null){
+			date = ConvertDate(policyParameters.getTtlDate());
+		}
+		try{
+			if(policyParameters.getPolicyName()!=null){
+				plainName = policyParameters.getPolicyName().substring(policyParameters.getPolicyName().lastIndexOf(".")+1, policyParameters.getPolicyName().length());
+				scope = policyParameters.getPolicyName().substring(0, policyParameters.getPolicyName().lastIndexOf("."));
+				logger.info("Name is "+ plainName +"   scope is "+ scope);
+			}
+		}catch(Exception e){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+			response.setResponseMessage(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+		}
+		if(policyParameters.getPolicyConfigType()!=null){
+			// This is Config Class Policy.
+			//Firewall
+			if(policyParameters.getPolicyConfigType().equals(PolicyConfigType.Firewall)){
+				if(policyParameters.getConfigBody()!=null){
+					JsonObject json = null;
+					try{
+						json = stringToJsonObject(policyParameters.getConfigBody());
+					}catch(Exception e){
+						String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " improper JSON object : " + policyParameters.getConfigBody();
+						logger.error(message);
+						throw new Exception(message);
+					}
+					response.setResponseMessage(updateConfigFirewallPolicy(plainName, json, scope, policyParameters.getRequestID(), userID, passcode,policyParameters.getRiskLevel(), 
+							policyParameters.getRiskType(), String.valueOf(policyParameters.getGuard()), date));
+				}else{
+					String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ "No Config Body given.";
+					logger.error(message);
+					response.setResponseMessage(message);
+				}
+			}
+			//Base Policy
+			else if(policyParameters.getPolicyConfigType().equals(PolicyConfigType.Base)){
+				if(policyParameters.getConfigBody()!=null) {
+					if(policyParameters.getConfigBodyType()!=null){
+						response.setResponseMessage(updateConfigPolicy(plainName, policyParameters.getPolicyDescription(), policyParameters.getEcompName(), policyParameters.getConfigName(),
+								policyParameters.getAttributes().get(AttributeType.MATCHING), policyParameters.getConfigBodyType().toString(), policyParameters.getConfigBody(), scope, 
+								policyParameters.getRequestID(), userID, passcode, policyParameters.getRiskLevel(), policyParameters.getRiskType(), String.valueOf(policyParameters.getGuard()), date));
+					} else {
+						String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ "No Config Body Type given.";
+						logger.error(message);
+						response.setResponseMessage(message);
+					}
+				} else {
+					String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ "No Config Body given.";
+					logger.error(message);
+					response.setResponseMessage(message);
+				}
+			}
+			//BRMS Raw
+			else if(policyParameters.getPolicyConfigType().equals(PolicyConfigType.BRMS_RAW)){
+				if(policyParameters.getConfigBody()!=null){
+					/*public String createUpdateBRMSRawPolicy(String policyName, String policyDescription, Map<String,String> dyanamicFieldConfigAttributes,
+					 * String brmsRawBody, String policyScope, Boolean isEdit, UUID requestID)*/
+					response.setResponseMessage(createUpdateBRMSRawPolicy(plainName, policyParameters.getPolicyDescription(),policyParameters.getAttributes(),
+							policyParameters.getConfigBody(),scope, true, 
+							policyParameters.getRequestID(),policyParameters.getRiskLevel(), policyParameters.getRiskType(), String.valueOf(policyParameters.getGuard()), date));
+				}else{
+					String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " No Config Body Present";
+					logger.error(message);
+					throw new Exception(message);
+				}
+			}
+			//BRMS Param
+			else if(policyParameters.getPolicyConfigType().equals(PolicyConfigType.BRMS_PARAM)){
+				if(policyParameters.getConfigBody()!=null){
+					
+				/*	public String createUpdateBRMSParamPolicy(String policyName, String policyDescription, Map<AttributeType, Map<String, String>>  dyanamicFieldConfigAttributes,
+							String brmsRawBody, String policyScope, Boolean isEdit, 
+							UUID requestID,Map<String,String> drlRuleAndUIParams)*/
+					response.setResponseMessage(createUpdateBRMSParamPolicy(plainName, policyParameters.getPolicyDescription(),policyParameters.getAttributes(),
+							policyParameters.getConfigBody(),scope, true, 
+							policyParameters.getRequestID(),policyParameters.getAttributes(),policyParameters.getRiskLevel(), policyParameters.getRiskType(), String.valueOf(policyParameters.getGuard()), date));
+				}else{
+					response.setResponseMessage(createUpdateBRMSParamPolicy(plainName, policyParameters.getPolicyDescription(),policyParameters.getAttributes(),
+							null,scope, true, 
+							policyParameters.getRequestID(),policyParameters.getAttributes(),policyParameters.getRiskLevel(), policyParameters.getRiskType(), String.valueOf(policyParameters.getGuard()), date));
+				}
+			}
+			// Micro Services Policy
+			else if(policyParameters.getPolicyConfigType().equals(PolicyConfigType.MicroService)){
+				if(policyParameters.getConfigBody()!=null){
+					JsonObject json = null;
+					try{
+						json = stringToJsonObject(policyParameters.getConfigBody());
+					}catch(Exception e){
+						String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " improper JSON object : " + policyParameters.getConfigBody();
+						logger.error(message);
+						throw new Exception(message);
+					}
+					//call Micro Services Create API here
+					response.setResponseMessage(createUpdateMicroServicesPolicy(plainName, json, policyParameters.getEcompName(),
+							scope, true, policyParameters.getRequestID(),policyParameters.getRiskLevel(), policyParameters.getRiskType(), String.valueOf(policyParameters.getGuard()), date));
+					
+				}else{
+					String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " No Micro Service or Attributes Config Body Present";
+					logger.error(message);
+					throw new Exception(message);
+				}
+			}
+			// ClosedLoop_Fault Policy
+			else if(policyParameters.getPolicyConfigType().equals(PolicyConfigType.ClosedLoop_Fault)){
+				if(policyParameters.getConfigBody()!=null){
+					JsonObject json = null;
+					try{
+						if(validateNONASCIICharactersAndAllowSpaces(policyParameters.getConfigBody())){
+							json = stringToJsonObject(policyParameters.getConfigBody());
+						} else {
+							String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ "The ClosedLoop JSON Contains Non ASCII Characters.";
+							logger.error(message);
+							response.setResponseMessage(message);
+							return response;
+						}
+						
+					}catch(Exception e){
+						String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " improper JSON object : " + policyParameters.getConfigBody();
+						logger.error(message);
+						response.setResponseMessage(message);
+						return response;
+					}
+					//call ClosedLoop_Fault Create API here
+					response.setResponseMessage(createUpdateClosedLoopPolicy(plainName, json, policyParameters.getPolicyDescription(),
+													scope, true, policyParameters.getRequestID(),policyParameters.getRiskLevel(), policyParameters.getRiskType(), String.valueOf(policyParameters.getGuard()), date));
+					
+				}else{
+					String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " No Config Body Present";
+					logger.error(message);
+					response.setResponseMessage(message);
+				}
+			}
+			// ClosedLoop_PM Policy
+			else if(policyParameters.getPolicyConfigType().equals(PolicyConfigType.ClosedLoop_PM)){
+				if(policyParameters.getConfigBody()!=null){
+					JsonObject json = null;
+					try{
+						if(validateNONASCIICharactersAndAllowSpaces(policyParameters.getConfigBody())){
+							json = stringToJsonObject(policyParameters.getConfigBody());
+						} else {
+							String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ "The ClosedLoop PM JSON Contains Non ASCII Characters.";
+							logger.error(message);
+							response.setResponseMessage(message);
+							return response;
+						}
+						
+					}catch(Exception e){
+						String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " improper JSON object : " + policyParameters.getConfigBody();
+						logger.error(message);
+						response.setResponseMessage(message);
+						return response;
+					}
+					//call ClosedLoop_Fault Create API here
+					response.setResponseMessage(createUpdateClosedLoopPmPolicy(plainName, json, policyParameters.getPolicyDescription(),
+													scope, true, policyParameters.getRequestID(),policyParameters.getRiskLevel(), policyParameters.getRiskType(), 
+													String.valueOf(policyParameters.getGuard()), date));
+					
+				}else{
+					String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " No Config Body Present";
+					logger.error(message);
+					response.setResponseMessage(message);
+				}
+			}
+			
+		}else{
+			
+			if(policyParameters.getPolicyClass().equals(PolicyClass.Action)){
+				// call Action Update API here. 
+				response.setResponseMessage(createUpdateActionPolicy(plainName, policyParameters.getPolicyDescription(), policyParameters.getAttributes().get(AttributeType.MATCHING), 
+						policyParameters.getDynamicRuleAlgorithmLabels(), policyParameters.getDynamicRuleAlgorithmField1(), policyParameters.getDynamicRuleAlgorithmFunctions(), policyParameters.getDynamicRuleAlgorithmField2(), 
+						policyParameters.getActionPerformer(), policyParameters.getActionAttribute(), scope, true, policyParameters.getRequestID()));
+			
+			}else if(policyParameters.getPolicyClass().equals(PolicyClass.Decision)){
+				// Call Decision Create API here. 
+				if (policyParameters.getAttributes()!=null && policyParameters.getAttributes().containsKey(AttributeType.MATCHING) && policyParameters.getAttributes().containsKey(AttributeType.SETTINGS)) {
+					response.setResponseMessage(createUpdateDecisionPolicy(plainName, policyParameters.getPolicyDescription(), policyParameters.getEcompName(), policyParameters.getRuleProvider(),
+							policyParameters.getAttributes().get(AttributeType.MATCHING), policyParameters.getAttributes().get(AttributeType.SETTINGS), policyParameters.getDynamicRuleAlgorithmLabels(), 
+							policyParameters.getDynamicRuleAlgorithmField1(), policyParameters.getDynamicRuleAlgorithmFunctions(), policyParameters.getDynamicRuleAlgorithmField2(), 
+							scope, true, policyParameters.getRequestID()));
+				}else if(policyParameters.getAttributes()!=null && !policyParameters.getAttributes().containsKey(AttributeType.MATCHING) && policyParameters.getAttributes().containsKey(AttributeType.SETTINGS)){
+					response.setResponseMessage(createUpdateDecisionPolicy(plainName, policyParameters.getPolicyDescription(), policyParameters.getEcompName(), policyParameters.getRuleProvider(),
+							null, policyParameters.getAttributes().get(AttributeType.SETTINGS), policyParameters.getDynamicRuleAlgorithmLabels(), 
+							policyParameters.getDynamicRuleAlgorithmField1(), policyParameters.getDynamicRuleAlgorithmFunctions(), policyParameters.getDynamicRuleAlgorithmField2(), 
+							scope, true, policyParameters.getRequestID()));
+				}else if(policyParameters.getAttributes()!=null && policyParameters.getAttributes().containsKey(AttributeType.MATCHING) && !policyParameters.getAttributes().containsKey(AttributeType.SETTINGS)){
+					response.setResponseMessage(createUpdateDecisionPolicy(plainName, policyParameters.getPolicyDescription(), policyParameters.getEcompName(), policyParameters.getRuleProvider(),
+							policyParameters.getAttributes().get(AttributeType.MATCHING), null, policyParameters.getDynamicRuleAlgorithmLabels(), 
+							policyParameters.getDynamicRuleAlgorithmField1(), policyParameters.getDynamicRuleAlgorithmFunctions(), policyParameters.getDynamicRuleAlgorithmField2(), 
+							scope, true, policyParameters.getRequestID()));
+				}else{
+					response.setResponseMessage(createUpdateDecisionPolicy(plainName, policyParameters.getPolicyDescription(), policyParameters.getEcompName(), policyParameters.getRuleProvider(),
+							null, null, policyParameters.getDynamicRuleAlgorithmLabels(), 
+							policyParameters.getDynamicRuleAlgorithmField1(), policyParameters.getDynamicRuleAlgorithmFunctions(), policyParameters.getDynamicRuleAlgorithmField2(), 
+							scope, true, policyParameters.getRequestID()));
+				}
+			}
+		}
+		response.setResponseCode(responseCode);
+		return response;
+	}
+	
+	public DecisionResponse policyDecide(String eCOMPComponentName,
+			Map<String, String> decisionAttributes, UUID requestID, String userID, String passcode)
+			throws PolicyDecisionException {
+		String resource= "getDecision";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			throw new PolicyDecisionException(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+		}
+		DecisionResponse policyDecision;
+		if (eCOMPComponentName == null || eCOMPComponentName.isEmpty()) {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No eCOMPComponentName given : " + eCOMPComponentName);
+			throw new PolicyDecisionException(XACMLErrorConstants.ERROR_DATA_ISSUE + "No eCOMPComponentName given.");
+		}
+		if (decisionAttributes != null && !decisionAttributes.isEmpty()) {
+			JsonArrayBuilder resourceArray = Json.createArrayBuilder();
+			for (String key : decisionAttributes.keySet()) {
+				if (key.isEmpty()) {
+					logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot have an Empty Key");
+					throw new PolicyDecisionException(XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot have an empty Key");
+				}
+				JsonObjectBuilder resourceBuilder = Json.createObjectBuilder();
+				if (decisionAttributes.get(key).matches("[0-9]+")) {
+					int val = Integer.parseInt(decisionAttributes.get(key));
+					resourceBuilder.add("Value", val);
+				} else {
+					resourceBuilder.add("Value", decisionAttributes.get(key));
+				}
+				resourceBuilder.add("AttributeId", key);
+				resourceArray.add(resourceBuilder);
+			}
+			JsonObject model = Json
+					.createObjectBuilder()
+					.add("Request",
+							Json.createObjectBuilder()
+									.add("AccessSubject",
+											Json.createObjectBuilder()
+													.add("Attribute",
+															Json.createObjectBuilder()
+																	.add("Value",
+																			eCOMPComponentName)
+																	.add("AttributeId",
+																			"ECOMPName")))
+									.add("Resource",
+											Json.createObjectBuilder().add(
+													"Attribute", resourceArray))
+									.add("Action",
+											Json.createObjectBuilder()
+													.add("Attribute",
+															Json.createObjectBuilder()
+																	.add("Value",
+																			"DECIDE")
+																	.add("AttributeId",
+																			"urn:oasis:names:tc:xacml:1.0:action:action-id"))))
+					.build();
+			try {
+				decide = true;
+				policyDecision = decisionResult(generateRequest(model
+						.toString(), requestID));
+			} catch (Exception e) {
+				logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
+				decide = false;
+				throw new PolicyDecisionException(e);
+			}
+		} else {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Decision Attributes Given. ");
+			throw new PolicyDecisionException(XACMLErrorConstants.ERROR_DATA_ISSUE +"No DecisionAttributes Given.");
+		}
+		decide = false;
+		return policyDecision;
+	}
+
+	public Collection<PolicyConfig> configPolicyName(String policyName, UUID requestID, String userID, String passcode)
+			throws PolicyConfigException {
+		String resource= "getConfigByPolicyName";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+		}
+		Collection<PolicyConfig> policyConfig = null;
+		if (policyName == null || policyName.isEmpty()) {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE+ "No Policy FileName specified!! : " + policyName);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE+"No Policy FileName specified!!");
+		}
+		if(policyName!= null && !policyName.trim().equals("") && !policyName.endsWith("xml")){
+			policyName = policyName + ".[\\d].*";
+		}
+		JsonObject model = Json
+				.createObjectBuilder()
+				.add("Request",
+						Json.createObjectBuilder()
+								.add("AccessSubject",
+										Json.createObjectBuilder().add(
+												"Attribute",
+												Json.createObjectBuilder()
+														.add("Value",
+																policyName)
+														.add("AttributeId",
+																"PolicyName")))
+								.add("Action",
+										Json.createObjectBuilder()
+												.add("Attribute",
+														Json.createObjectBuilder()
+																.add("Value",
+																		"ACCESS")
+																.add("AttributeId",
+																		"urn:oasis:names:tc:xacml:1.0:action:action-id")))
+								.add("Resource",
+										Json.createObjectBuilder()
+												.add("Attribute",
+														Json.createObjectBuilder()
+																.add("Value",
+																		"Config")
+																.add("AttributeId",
+																		"urn:oasis:names:tc:xacml:1.0:resource:resource-id"))))
+				.build();
+		try {
+			policyConfig = configResult(generateRequest(model.toString(), requestID));
+		} catch (Exception e) {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE +e);
+		}
+		return policyConfig;
+	}
+
+	public Collection<PolicyConfig> config(String eCOMPComponentName, UUID requestID, String userID, String passcode)
+			throws PolicyConfigException {
+		String resource= "getConfig";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+		}
+		Collection<PolicyConfig> policyConfig = null;
+		if (eCOMPComponentName == null || eCOMPComponentName.isEmpty()) {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No eCOMPComponentName given : " + eCOMPComponentName);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE + "No eCOMPComponentName given.");
+		}
+		JsonObject model = Json
+				.createObjectBuilder()
+				.add("Request",
+						Json.createObjectBuilder()
+								.add("AccessSubject",
+										Json.createObjectBuilder()
+												.add("Attribute",
+														Json.createObjectBuilder()
+																.add("Value",
+																		eCOMPComponentName)
+																.add("AttributeId",
+																		"ECOMPName")))
+								.add("Action",
+										Json.createObjectBuilder()
+												.add("Attribute",
+														Json.createObjectBuilder()
+																.add("Value",
+																		"ACCESS")
+																.add("AttributeId",
+																		"urn:oasis:names:tc:xacml:1.0:action:action-id")))
+								.add("Resource",
+										Json.createObjectBuilder()
+												.add("Attribute",
+														Json.createObjectBuilder()
+																.add("Value",
+																		"Config")
+																.add("AttributeId",
+																		"urn:oasis:names:tc:xacml:1.0:resource:resource-id"))))
+				.build();
+		try {
+			policyConfig = configResult(generateRequest(model.toString(), requestID));
+		} catch (Exception e) {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE +e);
+		}
+		return policyConfig;
+	}
+
+	public Collection<PolicyConfig> config(String eCOMPComponentName,
+			String configName, UUID requestID, String userID, String passcode) throws PolicyConfigException {
+		String resource= "getConfig";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+		}
+		Collection<PolicyConfig> policyConfig = null;
+		if (eCOMPComponentName == null || eCOMPComponentName.isEmpty()) {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No eCOMPComponentName given : " + eCOMPComponentName);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE + "No eCOMPComponentName given.");
+		}
+		if (configName == null || configName.isEmpty()) {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No configName given : " + configName);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE +"No configName given.");
+		}
+		JsonObject model = Json
+				.createObjectBuilder()
+				.add("Request",
+						Json.createObjectBuilder()
+								.add("AccessSubject",
+										Json.createObjectBuilder()
+												.add("Attribute",
+														Json.createArrayBuilder()
+																.add(Json
+																		.createObjectBuilder()
+																		.add("Value",
+																				eCOMPComponentName)
+																		.add("AttributeId",
+																				"ECOMPName"))
+																.add(Json
+																		.createObjectBuilder()
+																		.add("Value",
+																				configName)
+																		.add("AttributeId",
+																				"ConfigName"))))
+								.add("Action",
+										Json.createObjectBuilder()
+												.add("Attribute",
+														Json.createObjectBuilder()
+																.add("Value",
+																		"ACCESS")
+																.add("AttributeId",
+																		"urn:oasis:names:tc:xacml:1.0:action:action-id")))
+								.add("Resource",
+										Json.createObjectBuilder()
+												.add("Attribute",
+														Json.createObjectBuilder()
+																.add("Value",
+																		"Config")
+																.add("AttributeId",
+																		"urn:oasis:names:tc:xacml:1.0:resource:resource-id"))))
+				.build();
+		try {
+			policyConfig = configResult(generateRequest(model.toString(), requestID));
+		} catch (Exception e) {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE +e);
+		}
+
+		return policyConfig;
+	}
+
+	public Collection<PolicyConfig> config(String eCOMPComponentName,
+			String configName, Map<String, String> configAttributes, UUID requestID, String userID, String passcode)
+			throws PolicyConfigException {
+		String resource= "getConfig";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+		}
+		Collection<PolicyConfig> policyConfig = null;
+		if (eCOMPComponentName == null || eCOMPComponentName.isEmpty()) {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No eCOMPComponentName given : " + eCOMPComponentName);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE + "No eCOMPComponentName given.");
+		}
+		if (configName == null || configName.isEmpty()) {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No configName given : " + configName);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE +"No configName given.");
+		}
+		if (configAttributes != null && !configAttributes.isEmpty()) {
+			if(!configAttributes.containsKey("RiskType")){
+				configAttributes.put("RiskType", ".*");
+			}
+			if(!configAttributes.containsKey("RiskLevel")){
+				configAttributes.put("RiskLevel", ".*");
+			}
+			if(!configAttributes.containsKey("guard")){
+				configAttributes.put("guard", ".*");
+			}
+			if(!configAttributes.containsKey("TTLDate")){
+				configAttributes.put("TTLDate", ".*");
+			}
+		}else{
+			// ConfigAttributes is Null. So add basic values. 
+			configAttributes = new HashMap<String,String>();
+			configAttributes.put("RiskType", ".*");
+			configAttributes.put("RiskLevel", ".*");
+			configAttributes.put("guard", ".*");
+			configAttributes.put("TTLDate", ".*");
+		}
+		JsonArrayBuilder resourceArray = Json.createArrayBuilder();
+		for (String key : configAttributes.keySet()) {
+			if (key.isEmpty()) {
+				logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot have an empty Key");
+				throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE +"Cannot have an empty Key");
+			}
+			JsonObjectBuilder resourceBuilder = Json.createObjectBuilder();
+			/*if (configAttributes.get(key).matches("[0-9]+")) {
+				int val = Integer.parseInt(configAttributes.get(key));
+				resourceBuilder.add("Value", val);
+			} else {*/
+			resourceBuilder.add("Value", configAttributes.get(key));
+			resourceBuilder.add("AttributeId", key);
+			resourceArray.add(resourceBuilder);
+		}
+		JsonObject model = Json
+			.createObjectBuilder()
+			.add("Request",
+					Json.createObjectBuilder()						
+							.add("AccessSubject",
+									Json.createObjectBuilder()
+												.add("Attribute",
+													Json.createArrayBuilder()
+															.add(Json
+																	.createObjectBuilder()
+																	.add("Value",
+																			eCOMPComponentName)
+																	.add("AttributeId",
+																			"ECOMPName"))
+															.add(Json
+																	.createObjectBuilder()
+																	.add("Value",
+																			configName)
+																	.add("AttributeId",
+																			"ConfigName"))))
+							.add("Action",
+									Json.createObjectBuilder()
+												.add("Attribute",
+													Json.createObjectBuilder()
+															.add("Value",
+																		"ACCESS")
+															.add("AttributeId",
+																		"urn:oasis:names:tc:xacml:1.0:action:action-id")))
+							.add("Resource",
+									Json.createObjectBuilder()
+												.add("Attribute",
+														resourceArray
+																.add(Json.createObjectBuilder()
+																		.add("Value",
+																				"Config")
+																		.add("AttributeId",
+																				"urn:oasis:names:tc:xacml:1.0:resource:resource-id")))))
+				.build();
+		try {
+			policyConfig = configResult(generateRequest(model.toString(), requestID));
+		} catch (Exception e) {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE +e);
+		}
+		return policyConfig;
+	}
+	
+	public Collection<PolicyConfig> configRequest(ConfigRequestParameters configRequestParameters, String userID, String passcode) throws PolicyConfigException{
+		String resource= "getConfig";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+		}
+		Collection<PolicyConfig> policyConfig = null;
+		unique = false;
+		if(configRequestParameters==null){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No config Request Parameters given ");
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE + "No config Request Parameters given.");
+		}
+		if(configRequestParameters.getEcompName() == null && configRequestParameters.getPolicyName() == null){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot proceed without eCOMPComponentName or PolicyName");
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE + "No eCOMPComponentName or PolicyName given.");
+		}
+		String policyName = configRequestParameters.getPolicyName();
+		if(policyName!= null && !policyName.trim().equals("") && !policyName.endsWith("xml")){
+			policyName = policyName + ".[\\d].*";
+		}
+		JsonArrayBuilder subjectArray = Json.createArrayBuilder();
+		JsonArrayBuilder resourceArray = Json.createArrayBuilder();
+		if(configRequestParameters.getPolicyName()!=null){
+			JsonObjectBuilder subjectBuilder = Json.createObjectBuilder();
+			subjectBuilder.add("Value", policyName);
+			subjectBuilder.add("AttributeId", "PolicyName");
+			subjectArray.add(subjectBuilder);
+		}else{
+			logger.info("PolicyName values are not given. ");
+		}
+		if(configRequestParameters.getEcompName()!=null){
+			JsonObjectBuilder subjectBuilder = Json.createObjectBuilder();
+			subjectBuilder.add("Value", configRequestParameters.getEcompName());
+			subjectBuilder.add("AttributeId", "ECOMPName");
+			subjectArray.add(subjectBuilder);
+			if(configRequestParameters.getConfigName()!=null){
+				subjectBuilder = Json.createObjectBuilder();
+				subjectBuilder.add("Value", configRequestParameters.getConfigName());
+				subjectBuilder.add("AttributeId", "ConfigName");
+				subjectArray.add(subjectBuilder);
+				Map<String,String> configAttributes = configRequestParameters.getConfigAttributes();
+				if (configAttributes != null && !configAttributes.isEmpty()) {
+					if(!configAttributes.containsKey("RiskType")){
+						configAttributes.put("RiskType", ".*");
+					}
+					if(!configAttributes.containsKey("RiskLevel")){
+						configAttributes.put("RiskLevel", ".*");
+					}
+					if(!configAttributes.containsKey("guard")){
+						configAttributes.put("guard", ".*");
+					}
+					if(!configAttributes.containsKey("TTLDate")){
+						configAttributes.put("TTLDate", ".*");
+					}
+				}else{
+					// ConfigAttributes is Null. So add basic values. 
+					configAttributes = new HashMap<String,String>();
+					configAttributes.put("RiskType", ".*");
+					configAttributes.put("RiskLevel", ".*");
+					configAttributes.put("guard", ".*");
+					configAttributes.put("TTLDate", ".*");
+				}
+				for (String key : configAttributes.keySet()) {
+					if (key.isEmpty()) {
+						logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot have an empty Key");
+						throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE +"Cannot have an empty Key");
+					}
+					JsonObjectBuilder resourceBuilder = Json.createObjectBuilder();
+					/*if (configAttributes.get(key).matches("[0-9]+")) {
+						int val = Integer.parseInt(configAttributes.get(key));
+						resourceBuilder.add("Value", val);
+					} else {*/
+					resourceBuilder.add("Value", configAttributes.get(key));
+					resourceBuilder.add("AttributeId", key);
+					resourceArray.add(resourceBuilder);
+				}
+			}else{
+				logger.info("Config Name is not given. ");
+			}
+		}else{
+			logger.info("Ecomp Name is not given. ");
+		}
+		JsonObject model = Json
+				.createObjectBuilder()
+				.add("Request",
+						Json.createObjectBuilder()
+								.add("AccessSubject",
+										Json.createObjectBuilder()
+												.add("Attribute",subjectArray))
+								.add("Action",
+										Json.createObjectBuilder()
+												.add("Attribute",
+														Json.createObjectBuilder()
+																.add("Value",
+																		"ACCESS")
+																.add("AttributeId",
+																		"urn:oasis:names:tc:xacml:1.0:action:action-id")))
+								.add("Resource",
+										Json.createObjectBuilder()
+												.add("Attribute",
+														resourceArray
+																.add(Json
+																		.createObjectBuilder()
+																		.add("Value",
+																				"Config")
+																		.add("AttributeId",
+																				"urn:oasis:names:tc:xacml:1.0:resource:resource-id")))))
+				.build();
+		logger.debug("Generated JSON Request is: " + model.toString());
+		if(configRequestParameters.getUnique()){
+			logger.info("Requested for Unique Result only. ");
+			unique = true;
+		}
+		try {
+			policyConfig = configResult(generateRequest(model.toString(), configRequestParameters.getRequestID()));
+		} catch (Exception e) {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE +e);
+		}
+		return policyConfig;
+	}
+	
+	public Collection<String> listConfigRequest(ConfigRequestParameters listRequestParameters, String userID, String passcode) throws PolicyConfigException{
+		String resource= "listConfig";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+		}
+		Collection<PolicyConfig> policyConfig = null;
+		Collection<String> policyList = new ArrayList<String>();
+		
+		unique = false;
+		if(listRequestParameters==null){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Request Parameters given ");
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Request Parameters given.");
+		}
+		
+		if (junit){
+			policyList.add("Policy Name: listConfigTest");
+			return policyList;
+		}
+
+		String policyName = listRequestParameters.getPolicyName();
+		if(policyName!= null && !policyName.trim().equals("") && !policyName.endsWith("xml")){
+			policyName = policyName + ".[\\d].*";
+		}
+		JsonArrayBuilder subjectArray = Json.createArrayBuilder();
+		JsonArrayBuilder resourceArray = Json.createArrayBuilder();
+		if(listRequestParameters.getPolicyName()!=null){
+			JsonObjectBuilder subjectBuilder = Json.createObjectBuilder();
+			subjectBuilder.add("Value", policyName);
+			subjectBuilder.add("AttributeId", "PolicyName");
+			subjectArray.add(subjectBuilder);
+		}else{
+			logger.info("PolicyName values are not given. ");
+		}
+		if(listRequestParameters.getEcompName()!=null){
+			JsonObjectBuilder subjectBuilder = Json.createObjectBuilder();
+			subjectBuilder.add("Value", listRequestParameters.getEcompName());
+			subjectBuilder.add("AttributeId", "ECOMPName");
+			subjectArray.add(subjectBuilder);
+			if(listRequestParameters.getConfigName()!=null){
+				subjectBuilder = Json.createObjectBuilder();
+				subjectBuilder.add("Value", listRequestParameters.getConfigName());
+				subjectBuilder.add("AttributeId", "ConfigName");
+				subjectArray.add(subjectBuilder);
+				Map<String,String> configAttributes = listRequestParameters.getConfigAttributes();
+				if (configAttributes != null && !configAttributes.isEmpty()) {
+					if(!configAttributes.containsKey("RiskType")){
+						configAttributes.put("RiskType", ".*");
+					}
+					if(!configAttributes.containsKey("RiskLevel")){
+						configAttributes.put("RiskLevel", ".*");
+					}
+					if(!configAttributes.containsKey("guard")){
+						configAttributes.put("guard", ".*");
+					}
+					if(!configAttributes.containsKey("TTLDate")){
+						configAttributes.put("TTLDate", ".*");
+					}
+				}else{
+					// ConfigAttributes is Null. So add basic values. 
+					configAttributes = new HashMap<String,String>();
+					configAttributes.put("RiskType", ".*");
+					configAttributes.put("RiskLevel", ".*");
+					configAttributes.put("guard", ".*");
+					configAttributes.put("TTLDate", ".*");
+				}
+				for (String key : configAttributes.keySet()) {
+					if (key.isEmpty()) {
+						logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot have an empty Key");
+						throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE +"Cannot have an empty Key");
+					}
+					JsonObjectBuilder resourceBuilder = Json.createObjectBuilder();
+					/*if (configAttributes.get(key).matches("[0-9]+")) {
+						int val = Integer.parseInt(configAttributes.get(key));
+						resourceBuilder.add("Value", val);
+					} else {*/
+					resourceBuilder.add("Value", configAttributes.get(key));
+					resourceBuilder.add("AttributeId", key);
+					resourceArray.add(resourceBuilder);
+				}
+			}else{
+				logger.info("Config Name is not given. ");
+			}
+		}else{
+			logger.info("Ecomp Name is not given. ");
+		}
+		JsonObject model = Json
+				.createObjectBuilder()
+				.add("Request",
+						Json.createObjectBuilder()
+								.add("AccessSubject",
+										Json.createObjectBuilder()
+												.add("Attribute",subjectArray))
+								.add("Action",
+										Json.createObjectBuilder()
+												.add("Attribute",
+														Json.createObjectBuilder()
+																.add("Value",
+																		"ACCESS")
+																.add("AttributeId",
+																		"urn:oasis:names:tc:xacml:1.0:action:action-id")))
+								.add("Resource",
+										Json.createObjectBuilder()
+												.add("Attribute",
+														resourceArray
+																.add(Json
+																		.createObjectBuilder()
+																		.add("Value",
+																				"Config")
+																		.add("AttributeId",
+																				"urn:oasis:names:tc:xacml:1.0:resource:resource-id")))))
+				.build();
+		logger.debug("Generated JSON Request is: " + model.toString());
+		if(listRequestParameters.getUnique()){
+			logger.info("Requested for Unique Result only. ");
+			unique = true;
+		}
+		try {
+			policyConfig = configResult(generateRequest(model.toString(), listRequestParameters.getRequestID()));
+		} catch (Exception e) {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
+			throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE +e);
+		}
+		for(PolicyConfig policy : policyConfig){
+			if(policy.getPolicyConfigMessage()!=null && policy.getPolicyConfigMessage().contains("PE300")){
+				policyList.add(policy.getPolicyConfigMessage());
+			} else {
+				policyList.add("Policy Name: " + policy.getPolicyName());
+			}
+		}
+		return policyList;
+	}
+	
+
+
+	public Collection<PolicyResponse> event(Map<String, String> eventAttributes, UUID requestID, String userID, String passcode)
+			throws PolicyEventException {
+		String resource= "sendEvent";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			throw new PolicyEventException(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+		}
+		Collection<PolicyResponse> policyResponse = null;
+		if (eventAttributes != null && !eventAttributes.isEmpty()) {
+			JsonArrayBuilder resourceArray = Json.createArrayBuilder();
+			for (String key : eventAttributes.keySet()) {
+				if (key.isEmpty()) {
+					logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot have an Empty Key");
+					throw new PolicyEventException(XACMLErrorConstants.ERROR_DATA_ISSUE +"Cannot have an empty Key");
+				}
+				JsonObjectBuilder resourceBuilder = Json.createObjectBuilder();
+				if (eventAttributes.get(key).matches("[0-9]+")) {
+					int val = Integer.parseInt(eventAttributes.get(key));
+					resourceBuilder.add("Value", val);
+				} else {
+					resourceBuilder.add("Value", eventAttributes.get(key));
+				}
+				resourceBuilder.add("AttributeId", key);
+				resourceArray.add(resourceBuilder);
+			}
+			JsonObject model = Json
+					.createObjectBuilder()
+					.add("Request",
+							Json.createObjectBuilder().add(
+									"Resource",
+									Json.createObjectBuilder().add("Attribute",
+											resourceArray))).build();
+			// Removed Part can be Useful in Future.
+			/*
+			 * .add("AccessSubject",Json.createObjectBuilder() .add("Attribute",
+			 * subjectArray)) .add("Action", Json.createObjectBuilder()
+			 * .add("Attribute", actionArray))
+			 */
+			// System.out.println(model.toString());
+			try {
+				// StdPolicyResponse stdPolicyResponse =
+				// generateRequest(model.toString());
+				// stdPolicyResponse.setRequestAttributes(eventAttributes);
+				policyResponse = eventResult(generateRequest(model.toString(), requestID),
+						eventAttributes);
+			} catch (Exception e) {
+				logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
+				throw new PolicyEventException(XACMLErrorConstants.ERROR_DATA_ISSUE +e);
+			}
+		} else {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No event Attributes Given. ");
+			throw new PolicyEventException(XACMLErrorConstants.ERROR_DATA_ISSUE +"No EventAttributes Given.");
+		}
+		return policyResponse;
+	}
+
+	private Collection<StdStatus> generateRequest(String Json, UUID requestID) throws Exception {
+		Collection<StdStatus> results = null;
+		
+		Response response = null;
+		// Create Request. We need XACML API here.
+		try {
+			Request request = JSONRequest.load(Json);
+			String jRequest = JSONRequest.toString(request);
+				
+			// Call the PDP
+			logger.debug("--- Generating Request: ---\n" + jRequest );
+			response = callPDP(new ByteArrayInputStream(jRequest.getBytes()), requestID);
+
+		} catch (Exception e) {
+			logger.error(XACMLErrorConstants.ERROR_SCHEMA_INVALID + e);
+			StdStatus stdStatus = new StdStatus();
+			results = new HashSet<StdStatus>();
+			stdStatus.setStatus("Unable to Call PDP. Error with the URL",
+					PolicyResponseStatus.NO_ACTION_REQUIRED,
+					PolicyConfigStatus.CONFIG_NOT_FOUND);
+			results.add(stdStatus);
+			throw new Exception(e);
+		}
+
+		if(this.UEBThread){
+			this.UEBThread = registerUEBThread.isAlive();
+		}
+		if (response != null) {
+			results = checkResponse(response);
+			// TODO Starting Auto Client Here.
+			if (notificationType.get(0).equals("ueb") && !this.UEBThread){
+				this.UEBClientThread = new AutoClientUEB(pdps.get(0), uebURLList); 
+				this.registerUEBThread = new Thread(this.UEBClientThread);
+				this.registerUEBThread.start();
+				this.UEBThread = true;
+				
+			}else {
+				if(AutoClientEnd.getURL()==null){
+					AutoClientEnd.start(pdps.get(0));
+				}else if(AutoClientEnd.getURL()!=pdps.get(0)){
+					AutoClientEnd.stop();
+					AutoClientEnd.start(pdps.get(0));
+				}
+			}
+		} else {
+			logger.debug("No Response Received from PDP");
+			StdStatus stdStatus = new StdStatus();
+			results = new HashSet<StdStatus>();
+			stdStatus.setStatus("No Response Received",
+					PolicyResponseStatus.NO_ACTION_REQUIRED,
+					PolicyConfigStatus.CONFIG_NOT_FOUND);
+			results.add(stdStatus);
+		}
+
+		return results;
+	}
+	
+	private Response callPDP(ByteArrayInputStream input, UUID requestID) throws Exception {
+		Response response = null;
+		HttpURLConnection connection = null;
+		responseCode = 0;
+		// Checking for the available PDPs is done during the first Request and
+		// the List is going to have the connected PDP as first element.
+		// This makes it Real-Time to change the list depending on their
+		// availability.
+		if (pdps == null || pdps.isEmpty()) {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "PDPs List is Empty.");
+			throw new Exception(XACMLErrorConstants.ERROR_DATA_ISSUE +"PDPs List is empty.");
+		} else {
+			int pdpsCount = 0;
+			boolean connected = false;
+			while (pdpsCount < pdps.size()) {
+				input.reset();
+				try {
+					String urlValue = pdps.get(0);
+					URL url = new URL(urlValue);
+					logger.debug("--- Sending Request to PDP : "+ url.toString() + " ---");
+					connection = (HttpURLConnection) url.openConnection();
+					// Setting Content-Type
+					connection.setRequestProperty("Content-Type","application/json");
+					// Adding Authorization
+					connection.setRequestProperty("Authorization", "Basic "	+ encoding.get(0));
+					// Adding Environment. 
+					connection.setRequestProperty("Environment", environment);
+					// Adding RequestID
+					if (requestID == null) {
+						requestID = UUID.randomUUID();
+						logger.info("No request ID provided, sending generated ID: " + requestID.toString());
+					} else {
+						logger.info("Using provided request ID: " + requestID.toString());
+					}
+					connection.setRequestProperty("X-ECOMP-RequestID", requestID.toString());
+					// Setting up connection method and headers.
+					connection.setRequestMethod("POST");
+					connection.setUseCaches(false);
+					connection.setInstanceFollowRedirects(false);
+					connection.setDoOutput(true);
+					connection.setDoInput(true);
+					OutputStream os = connection.getOutputStream();
+					IOUtils.copy(input, os);
+					
+					
+					connection.connect();
+					responseCode = connection.getResponseCode();
+					// If Connected to a PDP Then break from the loop and
+					// continue with the Request.
+					if (connection.getResponseCode() == 200 || junit) {
+						connected = true;
+						break;
+					} else {
+						logger.debug(XACMLErrorConstants.ERROR_PERMISSIONS+ "PDP Response Code : "	+ connection.getResponseCode());
+						Collections.rotate(pdps, -1);
+						Collections.rotate(encoding, -1);
+					}
+				} catch (Exception e) {
+					// This means that the PDP is not working and needs to
+					// Re-Order our List and Connect to the next one.
+					logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "PDP connection Error : " + e);
+					Collections.rotate(pdps, -1);
+					Collections.rotate(encoding, -1);
+				}
+				pdpsCount++;
+			}
+			if (connected) {
+				// Read the Response
+				// System.out.println("connected to PDP : " + pdps.get(0));
+				logger.debug("connected to PDP : " + pdps.get(0));
+				logger.debug("--- Response:  ---");
+				Map<String,List<String>> headers = connection.getHeaderFields();
+				for(String key : headers.keySet()){
+					logger.debug("Header : " + key + "   Value: " + headers.get(key));
+				}
+				try {
+					if (connection.getResponseCode() == 200 || junit) {
+						// Read the Response
+						ContentType contentType = null;
+						try {
+							contentType = ContentType.parse(connection
+									.getContentType());
+							if (contentType.getMimeType().equalsIgnoreCase(
+									ContentType.APPLICATION_JSON.getMimeType())) {
+								if(junit){
+									response = JSONResponse.load(getJsonResponseString());
+								} else {
+									response = JSONResponse.load(connection.getInputStream());
+								}
+								logger.debug(response + "\n---");
+							} else {
+								logger.error(XACMLErrorConstants.ERROR_SCHEMA_INVALID + "Unknown Content-Type: "
+										+ contentType);
+								throw new Exception(XACMLErrorConstants.ERROR_SCHEMA_INVALID + "Unknown Content-Type: "
+										+ contentType);
+							}
+						} catch (Exception e) {
+							String message = XACMLErrorConstants.ERROR_SCHEMA_INVALID + "Parsing Content-Type: "
+									+ connection.getContentType() + ", error="
+									+ e;
+							logger.error(XACMLErrorConstants.ERROR_SCHEMA_INVALID + e);
+							throw new Exception(message, e);
+						}
+					} else {
+						throw new Exception(XACMLErrorConstants.ERROR_PERMISSIONS+ "ERROR response code of the URL " + pdps.get(0) + " is "
+								+ connection.getResponseCode());
+					}
+				} catch (IOException e) {
+					logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
+					throw new Exception(XACMLErrorConstants.ERROR_DATA_ISSUE +"Error in Connecting to the  PDP ", e);
+				}
+				return response;
+			} else {
+				if(junit){
+					response = JSONResponse.load(getJsonResponseString());
+					return response;
+				}
+				throw new Exception(XACMLErrorConstants.ERROR_PERMISSIONS+ "Unable to get valid Response from  PDP(s) " + pdps);
+			}
+		}
+	}
+	
+	private Collection<StdStatus> checkResponse(Response response)
+			throws Exception {
+
+		String pdpConfigURL = null;
+
+		Collection<StdStatus> combinedResult = new HashSet<StdStatus>();
+		int priority = defaultPriority;
+		Map<Integer, StdStatus> uniqueResult = new HashMap<Integer, StdStatus>();
+		for (Result result : response.getResults()) {
+			if (!result.getDecision().equals(Decision.PERMIT)) {
+				logger.debug("Decision not a Permit. "	+ result.getDecision().toString());
+				StdStatus stdStatus = new StdStatus();
+				if (decide) {
+					stdStatus.setDecision(PolicyDecision.DENY);
+					for(Advice advice: result.getAssociatedAdvice()){
+						for(AttributeAssignment attribute: advice.getAttributeAssignments()){
+							stdStatus.setDetails(attribute.getAttributeValue().getValue().toString());
+							break;
+						}
+					}
+					combinedResult.add(stdStatus);
+					return combinedResult;
+				}
+				stdStatus.setStatus(XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Params passed: Decision not a Permit.",PolicyResponseStatus.NO_ACTION_REQUIRED,PolicyConfigStatus.CONFIG_NOT_FOUND);
+				combinedResult.add(stdStatus);
+				return combinedResult;
+			} else {
+				if (decide) {
+					// check for Decision for decision based calls.
+					StdStatus stdStatus = new StdStatus();
+					stdStatus.setDecision(PolicyDecision.PERMIT);
+					stdStatus.setDetails("Decision Permit. OK!");
+					combinedResult.add(stdStatus);
+					return combinedResult;
+				}
+				if (!result.getAssociatedAdvice().isEmpty()) {
+					// @ TODO Add advice actions
+					// Configurations should be in advice. + Also PDP took
+					// actions could be here.
+					for (Advice advice : result.getAssociatedAdvice()) {
+						int config = 0, uri = 0;
+						String configURL = null;
+						String policyName = null;
+						String policyVersion = null;
+						Map<String, String> matchingConditions = new HashMap<String, String>();
+						match = new Matches();
+						Map<String, String> configAttributes = new HashMap<String, String>();
+						Map<String, String> responseAttributes = new HashMap<String,String>();
+						Map<String, String> actionTaken = new HashMap<String, String>();
+						StdStatus stdStatus = new StdStatus();
+						Map<String, String> adviseAttributes = new HashMap<String, String>();
+						for (AttributeAssignment attribute : advice.getAttributeAssignments()) {
+							adviseAttributes.put(attribute.getAttributeId().stringValue(), attribute.getAttributeValue().getValue().toString());
+							if (attribute.getAttributeValue().getValue().toString().equalsIgnoreCase("CONFIGURATION")) {
+								config++;
+							} else if (attribute.getDataTypeId().stringValue().endsWith("anyURI")) {
+								uri++;
+								if (uri == 1) {
+									configURL = attribute.getAttributeValue().getValue().toString();
+									String currentUsedPDP = pdps.get(0);
+									int pos = (pdps.get(0)).lastIndexOf("/");
+									String configURLPath = currentUsedPDP.substring(0, pos);
+									int pos1 = configURLPath.lastIndexOf("/");
+									String pdpConfigURLPath = configURLPath.substring(0, pos1 + 1);
+									pdpConfigURL = configURL.replace("$URL", pdpConfigURLPath);
+								} else {
+									if (!(attribute.getIssuer().equalsIgnoreCase("PDP"))) {
+										throw new Exception(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error having multiple URI in the Policy");
+									}
+								}
+							} else if (attribute.getAttributeId().stringValue()
+									.equalsIgnoreCase("PolicyName")) {
+								policyName = attribute.getAttributeValue()
+										.getValue().toString();
+							} else if (attribute.getAttributeId().stringValue()
+									.equalsIgnoreCase("VersionNumber")) {
+								policyVersion = attribute.getAttributeValue()
+										.getValue().toString();
+							} else if (attribute.getAttributeId().stringValue().equalsIgnoreCase("Priority")){
+								try{
+									priority = Integer.parseInt(attribute.getAttributeValue().getValue().toString());
+								} catch(Exception e){
+									logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE+ "Unable to Parse Integer for Priority. Setting to default value");
+									priority = defaultPriority;
+								}
+							} else if (attribute.getAttributeId().stringValue()
+									.startsWith("matching")) {
+								matchingConditions.put(attribute
+										.getAttributeId().stringValue()
+										.replaceFirst("(matching).", ""),
+										attribute.getAttributeValue()
+												.getValue().toString());
+								if (attribute.getAttributeId().stringValue()
+										.replaceFirst("(matching).", "")
+										.equals("ECOMPName")) {
+									match.setEcompName(attribute
+											.getAttributeValue().getValue()
+											.toString());
+								} else if (attribute.getAttributeId()
+										.stringValue()
+										.replaceFirst("(matching).", "")
+										.equals("ConfigName")) {
+									match.setConfigName(attribute
+											.getAttributeValue().getValue()
+											.toString());
+								} else {
+									configAttributes.put(attribute
+											.getAttributeId().stringValue()
+											.replaceFirst("(matching).", ""),
+											attribute.getAttributeValue()
+													.getValue().toString());
+								}
+							} else if (attribute.getAttributeId().stringValue().startsWith("key:")) {
+								responseAttributes.put(attribute
+										.getAttributeId().stringValue()
+										.replaceFirst("(key).", ""),
+										attribute.getAttributeValue()
+												.getValue().toString());
+							}
+						}
+						if (!configAttributes.isEmpty()) {
+							match.setConfigAttributes(configAttributes);
+						}
+						if ((config == 1) && (uri == 1)) {
+							// If there is a configuration.
+							try {
+								logger.debug("Configuration Call to : "
+										+ configURL);
+								stdStatus = ConfigCall(pdpConfigURL);
+							} catch (Exception e) {
+								logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW+ e);
+								stdStatus
+										.setStatus(
+												"Error in Calling the Configuration URL "
+														+ e,
+												PolicyResponseStatus.NO_ACTION_REQUIRED,
+												PolicyConfigStatus.CONFIG_NOT_FOUND);
+							}
+							stdStatus.setPolicyName(policyName);
+							stdStatus.setPolicyVersion(policyVersion);
+							stdStatus.setMatchingConditions(matchingConditions);
+							stdStatus.setResposneAttributes(responseAttributes);
+							if(!unique){
+								combinedResult.add(stdStatus);
+							}else{
+								if(!uniqueResult.isEmpty()){
+									if(uniqueResult.containsKey(priority)){
+										// Not any more unique, check the matching conditions size
+										int oldSize = uniqueResult.get(priority).getMatchingConditions().size();
+										int newSize = matchingConditions.size();
+										if(oldSize < newSize){
+											uniqueResult.put(priority, stdStatus);
+										}else if(oldSize == newSize){
+											stdStatus = new StdStatus();
+											stdStatus.setStatus("Two/more Policies have Same Priority and matching conditions, Please correct your policies.", PolicyResponseStatus.NO_ACTION_REQUIRED,
+													PolicyConfigStatus.CONFIG_NOT_FOUND);
+											combinedResult.add(stdStatus);
+											unique = false;
+											return combinedResult;
+										}
+									}else{
+										uniqueResult.put(priority, stdStatus);
+									}
+								}else{
+									uniqueResult.put(priority, stdStatus);
+								}
+							}
+						} else {
+							// Else it is Action Taken.
+							logger.info("Action Taken by PDP. ");
+							actionTaken.putAll(adviseAttributes);
+							stdStatus.setActionTaken(actionTaken);
+							stdStatus.setPolicyResponseStatus(
+									"Action Taken by the PDP",
+									PolicyResponseStatus.ACTION_TAKEN);
+							combinedResult.add(stdStatus);
+						}
+					}
+				}
+				if (!result.getObligations().isEmpty()) {
+					// @ TODO add Obligation actions
+					// Action advised should be in obligations.
+					for (Obligation obligation : result.getObligations()) {
+						Map<String, String> actionAdvised = new HashMap<String, String>();
+						StdStatus stdStatus = new StdStatus();
+						for (AttributeAssignment attribute : obligation
+								.getAttributeAssignments()) {
+							actionAdvised.put(attribute.getAttributeId()
+									.stringValue(), attribute
+									.getAttributeValue().getValue().toString());
+						}
+						stdStatus.setActionAdvised(actionAdvised);
+						stdStatus.setPolicyResponseStatus(
+								"Action has been Advised ",
+								PolicyResponseStatus.ACTION_ADVISED);
+						combinedResult.add(stdStatus);
+					}
+				}
+			}
+		}
+		if(unique){
+			// Select Unique policy. 
+			int minNum = defaultPriority;
+			for(int num: uniqueResult.keySet()){
+				if(num < minNum){
+					minNum = num;
+				}
+			}
+			combinedResult.add(uniqueResult.get(minNum));
+			// Turn off Unique
+			unique = false;
+		}
+		
+		return combinedResult;
+	}
+
+	private StdStatus ConfigCall(String stringURL) throws Exception {
+		StdStatus stdStatus = new StdStatus();
+		try {
+			URL configURL = new URL(stringURL);
+			URLConnection connection = null;
+			try {
+				connection = configURL.openConnection();
+				if (stringURL.endsWith("json")) {
+					stdStatus.setPolicyType(PolicyType.JSON);
+					JsonReader jsonReader = Json.createReader(connection
+							.getInputStream());
+					stdStatus.setJsonObject(jsonReader.readObject());
+					jsonReader.close();
+					logger.info("config Retrieved ");
+					stdStatus.setStatus("Config Retrieved from: " + configURL,
+							PolicyResponseStatus.NO_ACTION_REQUIRED,
+							PolicyConfigStatus.CONFIG_RETRIEVED);
+					try {
+						MatchStore.storeMatch(match);
+					} catch (Exception e) {
+						logger.info("StoreMatch failed for Ecomp:"
+								+ match.getEcompName() + " Config: "
+								+ match.getConfigName());
+					}
+					return stdStatus;
+				} else if (stringURL.endsWith("xml")) {
+					stdStatus.setPolicyType(PolicyType.XML);
+					DocumentBuilderFactory dbf = DocumentBuilderFactory
+							.newInstance();
+					DocumentBuilder db = null;
+					try {
+						db = dbf.newDocumentBuilder();
+						Document config = db.parse(connection.getInputStream());
+						stdStatus.setDocument(config);
+					} catch (ParserConfigurationException e) {
+						logger.error(XACMLErrorConstants.ERROR_SCHEMA_INVALID + e);
+						throw new Exception(XACMLErrorConstants.ERROR_SCHEMA_INVALID + "Unable to create Document Object",
+								e);
+					} catch (SAXException e) {
+						logger.error(XACMLErrorConstants.ERROR_SCHEMA_INVALID+ e);
+						throw new Exception(XACMLErrorConstants.ERROR_SCHEMA_INVALID+ "Unable to parse the XML config", e);
+					}
+					logger.info("config Retrieved ");
+					stdStatus.setStatus("Config Retrieved from: " + configURL,
+							PolicyResponseStatus.NO_ACTION_REQUIRED,
+							PolicyConfigStatus.CONFIG_RETRIEVED);
+					try {
+						MatchStore.storeMatch(match);
+					} catch (Exception e) {
+						logger.info("StoreMatch failed for Ecomp:"
+								+ match.getEcompName() + " Config: "
+								+ match.getConfigName());
+					}
+					return stdStatus;
+				} else if (stringURL.endsWith("properties")) {
+					stdStatus.setPolicyType(PolicyType.PROPERTIES);
+					Properties configProp = new Properties();
+					configProp.load(connection.getInputStream());
+					stdStatus.setProperties(configProp);
+					logger.info("config Retrieved ");
+					stdStatus.setStatus("Config Retrieved from: " + configURL,
+							PolicyResponseStatus.NO_ACTION_REQUIRED,
+							PolicyConfigStatus.CONFIG_RETRIEVED);
+					try {
+						MatchStore.storeMatch(match);
+					} catch (Exception e) {
+						logger.info("StoreMatch failed for Ecomp:"
+								+ match.getEcompName() + " Config: "
+								+ match.getConfigName());
+					}
+					return stdStatus;
+				} else if (stringURL.endsWith("txt")) {
+					stdStatus.setPolicyType(PolicyType.OTHER);
+					InputStream in = connection.getInputStream();
+					String other = IOUtils.toString(in);
+					IOUtils.closeQuietly(in);
+					stdStatus.setOther(other);
+					logger.info("config Retrieved ");
+					stdStatus.setStatus("Config Retrieved from: " + configURL,
+							PolicyResponseStatus.NO_ACTION_REQUIRED,
+							PolicyConfigStatus.CONFIG_RETRIEVED);
+					try {
+						MatchStore.storeMatch(match);
+					} catch (Exception e) {
+						logger.info("StoreMatch failed for Ecomp:"
+								+ match.getEcompName() + " Config: "
+								+ match.getConfigName());
+					}
+					return stdStatus;
+				} else {
+					logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Config Not Found");
+					stdStatus
+							.setPolicyConfigStatus(PolicyConfigStatus.CONFIG_NOT_FOUND);
+					stdStatus
+							.setConfigStatus("Illegal form of Configuration Type Found.");
+					return stdStatus;
+				}
+			} catch (IOException e) {
+				logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
+				throw new Exception(XACMLErrorConstants.ERROR_PROCESS_FLOW +
+						"Cannot open a connection to the configURL", e);
+			}
+		} catch (MalformedURLException e) {
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
+			throw new Exception(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error in ConfigURL", e);
+		}
+	}
+
+	private void setProperty(String propertyFilePath)
+			throws PolicyEngineException {
+		this.propertyFilePath = propertyFilePath;
+		if (this.propertyFilePath == null) {
+			// This is only for testing purpose. Or We will add a default PDP
+			// address here.
+			// url_default = "http://localhost:8080/pdp/";
+			// The General Error Message is Below.
+			throw new PolicyEngineException(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error NO PropertyFile Path provided");
+		} else {
+			// Adding logic for remote Properties file.
+			Properties prop = new Properties();
+			if (propertyFilePath.startsWith("http")) {
+				URL configURL;
+				try {
+					configURL = new URL(propertyFilePath);
+					URLConnection connection = null;
+					connection = configURL.openConnection();
+					prop.load(connection.getInputStream());
+				} catch (IOException e) {
+					logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
+					throw new PolicyEngineException(XACMLErrorConstants.ERROR_DATA_ISSUE + "Maformed property URL "+ e.getMessage());
+				}
+			} else {
+				Path file = Paths.get(propertyFilePath);
+				if (Files.notExists(file)) {
+					throw new PolicyEngineException(XACMLErrorConstants.ERROR_DATA_ISSUE + "File doesn't exist in the specified Path "	+ file.toString());
+				} 
+				if (file.toString().endsWith(".properties")) {
+					InputStream in;
+					prop = new Properties();
+					try {
+						in = new FileInputStream(file.toFile());
+						prop.load(in);
+					} catch (IOException e) {
+						logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + e);
+						throw new PolicyEngineException(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Cannot Load the Properties file", e);
+					}
+				} else {
+					logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Not a .properties file " + propertyFilePath);
+					throw new PolicyEngineException(XACMLErrorConstants.ERROR_SYSTEM_ERROR  + "Not a .properties file");
+				}
+			}
+			// UEB Settings
+			String check_type = prop.getProperty("NOTIFICATION_TYPE");
+			String serverList = prop.getProperty("NOTIFICATION_UEB_SERVERS");
+			if(check_type==null) {
+				notificationType.add("websocket");
+				logger.info("Properties file doesn't have the NOTIFICATION_TYPE parameter system will use defualt websockets");	
+			}else{
+				if(check_type.contains(",")) {
+					type_default = new ArrayList<String>(Arrays.asList(prop.getProperty("NOTIFICATION_TYPE").split(",")));
+					notificationType = type_default; 
+				} else {
+						notificationType = new ArrayList<String>();
+						notificationType.add(check_type);
+				}
+			}
+			if(serverList==null) {
+				notificationType.clear();
+				notificationType.add("websocket");
+				logger.info("Properties file doesn't have the NOTIFICATION_UEB_SERVERS parameter system will use defualt websockets");	
+			}else{
+				if(serverList.contains(",")) {
+					uebURLList = new ArrayList<String>(Arrays.asList(prop.getProperty("NOTIFICATION_UEB_SERVERS").split(","))); 
+				} else {
+					uebURLList = new ArrayList<String>();
+					uebURLList.add(serverList);
+				}
+			}
+			// Client ID Authorization Settings. 
+			String clientID = prop.getProperty("CLIENT_ID");
+			String clientKey = prop.getProperty("CLIENT_KEY");
+			userName = clientID;
+			pass = clientKey;
+			pyPDPClientFile = prop.getProperty("CLIENT_FILE");
+			environment = prop.getProperty("ENVIRONMENT", "DEVL");
+			/*try {
+				aafClient = AAFPolicyClient.getInstance(prop);
+			} catch (AAFPolicyException e) {
+				logger.error(XACMLErrorConstants.ERROR_UNKNOWN + e.getMessage());
+				throw new PolicyEngineException(XACMLErrorConstants.ERROR_UNKNOWN + e);
+			}*/
+			// Initializing the values.
+			pdps = new ArrayList<String>();
+			paps = new ArrayList<String>(); 
+			encoding = new ArrayList<String>();
+			encodingPAP = new ArrayList<String>();
+			// Check the Keys for PDP_URLs
+			Collection<Object> unsorted = prop.keySet();
+			@SuppressWarnings({ "rawtypes", "unchecked" })
+			List<String> sorted = new ArrayList(unsorted);
+			Collections.sort(sorted);
+			for (String propKey : sorted) {
+				if (propKey.startsWith("PDP_URL")) {
+					String check_val = prop.getProperty(propKey);
+					if (check_val == null) {
+						throw new PolicyEngineException(XACMLErrorConstants.ERROR_DATA_ISSUE + "Properties file doesn't have the PDP_URL parameter");
+					}
+					if (check_val.contains(";")) {
+						pdp_default = new ArrayList<String>(Arrays.asList(check_val.split("\\s*;\\s*")));
+						int pdpCount = 0;
+						while (pdpCount < pdp_default.size()) {
+							String pdpVal = pdp_default.get(pdpCount);
+							readPDPParam(pdpVal);
+							pdpCount++;
+						}
+					} else {
+						readPDPParam(check_val);
+					}
+				} else if (propKey.startsWith("PAP_URL")) {
+					String check_val = prop.getProperty(propKey);
+					if (check_val == null) {
+						throw new PolicyEngineException(XACMLErrorConstants.ERROR_DATA_ISSUE + "Properties file doesn't have the PAP_URL parameter");
+					}
+					if (check_val.contains(";")) {
+						pap_default = new ArrayList<String>(Arrays.asList(check_val.split("\\s*;\\s*")));
+						int papCount = 0;
+						while (papCount < pap_default.size()) {
+							String papVal = pap_default.get(papCount);
+							readPAPParam(papVal);
+							papCount++;
+						}
+					} else {
+						readPAPParam(check_val);
+					}
+				}
+			}
+			if (pdps == null || pdps.isEmpty()) {
+				logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot Proceed without PDP_URLs");
+				throw new PolicyEngineException(XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot Proceed without PDP_URLs");
+			}
+			
+			if (paps == null || paps.isEmpty()) {
+				logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot Proceed without PAP_URLs");
+				throw new PolicyEngineException(XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot Proceed with out PAP_URLs");
+			}
+			
+			// Get JUNIT property from properties file when running tests
+			String junit = prop.getProperty("JUNIT");
+			if(junit == null || junit.isEmpty()){
+				logger.info("No JUNIT property provided, this will not be executed as a test.");
+			}else{
+				if(junit.equals("test")){
+					this.junit = true;
+				} else {
+					this.junit = false;
+				}
+			}
+		}
+	}
+	
+	/*
+	 * Read the PDP_URL parameter
+	 */
+	private void readPDPParam(String pdpVal) throws PolicyEngineException{
+		if(pdpVal.contains(",")){
+			List<String> pdpValues = new ArrayList<String>(Arrays.asList(pdpVal.split("\\s*,\\s*")));
+			if(pdpValues.size()==3){
+				// 0 - PDPURL
+				pdps.add(pdpValues.get(0));
+				// 1:2 will be UserID:Password
+				String userID = pdpValues.get(1);
+				String pass = pdpValues.get(2);
+				Base64.Encoder encoder = Base64.getEncoder();
+				encoding.add(encoder.encodeToString((userID+":"+pass).getBytes(StandardCharsets.UTF_8)));
+			}else{
+				logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Credentials to send Request: " + pdpValues);
+				throw new PolicyEngineException(XACMLErrorConstants.ERROR_DATA_ISSUE + "No enough Credentials to send Request. " + pdpValues);
+			}
+		}else{
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "PDP value is improper/missing required values: " + pdpVal);
+			throw new PolicyEngineException(XACMLErrorConstants.ERROR_DATA_ISSUE + "PDP value is improper/missing required values.");
+		}
+	}
+	
+	/*
+	 * Read the PAP_URL parameter
+	 */
+	private void readPAPParam(String papVal) throws PolicyEngineException{
+		if(papVal.contains(",")){
+			List<String> papValues = new ArrayList<String>(Arrays.asList(papVal.split("\\s*,\\s*")));
+			if(papValues.size()==3){
+				// 0 - PAPURL
+				paps.add(papValues.get(0));
+				// 1:2 will be UserID:Password
+				String userID = papValues.get(1);
+				String pass = papValues.get(2);
+				Base64.Encoder encoder = Base64.getEncoder();
+				encodingPAP.add(encoder.encodeToString((userID+":"+pass).getBytes(StandardCharsets.UTF_8)));
+			}else{
+				logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Credentials to send Request: " + papValues);
+				throw new PolicyEngineException(XACMLErrorConstants.ERROR_DATA_ISSUE + "No enough Credentials to send Request. " + papValues);
+			}
+		}else{
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Credentials to send Request: " + papVal);
+			throw new PolicyEngineException(XACMLErrorConstants.ERROR_DATA_ISSUE + "No enough Credentials to send Request.");
+		}
+	}
+	/*
+	 * Allowing changes to the scheme and Handler.
+	 */
+	public void notification(NotificationScheme scheme, NotificationHandler handler) {
+		this.scheme = scheme;
+		this.handler = handler;
+		logger.debug("Scheme is : " + scheme.toString());
+		logger.debug("Handler is : " + handler.getClass().getName());
+		if (!notificationType.get(0).equals("ueb")){
+			AutoClientEnd.setAuto(scheme, handler);
+		}else {
+			if (this.UEBThread){
+				UEBClientThread.setAuto(scheme, handler);
+				this.UEBThread = registerUEBThread.isAlive();
+			}
+		}
+	
+		//TODO This could also be a Start point for Auto Notifications..
+		if(pdps!=null){
+			if (notificationType.get(0).equals("ueb")  && !this.UEBThread){
+				this.UEBClientThread = new AutoClientUEB(pdps.get(0), uebURLList); 
+				this.UEBClientThread.setAuto(scheme, handler);
+				this.registerUEBThread = new Thread(this.UEBClientThread);
+				this.registerUEBThread.start();
+				this.UEBThread = true;
+			}
+			if (!notificationType.get(0).equals("ueb")){
+				if(pdps.get(0)!=null){
+					if(AutoClientEnd.getURL()==null){
+						AutoClientEnd.start(pdps.get(0));
+					}else {
+						AutoClientEnd.stop();
+						AutoClientEnd.start(pdps.get(0));
+					}
+				}
+			}
+		}
+	}
+
+	/*
+	 * Gets the Notification if one exists. Used only for Manual Polling
+	 * purposes.
+	 */
+	public PDPNotification getNotification(){
+		//TODO manual Polling
+		//Check if there is proper scheme.. 
+		PDPNotification notification = null;
+		if(this.scheme.equals(NotificationScheme.MANUAL_ALL_NOTIFICATIONS) || this.scheme.equals(NotificationScheme.MANUAL_NOTIFICATIONS)) {
+			if (notificationType.get(0).equals("ueb")){
+				ManualClientEndUEB.start(pdps.get(0), uebURLList, uniqueID);
+				notification = ManualClientEndUEB.result(scheme);
+			}else{
+				ManualClientEnd.start(pdps.get(0));
+				logger.debug("manual notification requested.. : " + scheme.toString());
+				notification = ManualClientEnd.result(scheme);
+			}
+			
+			if (notification == null){
+				logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Notification yet..");
+				return null;
+			} else {
+				return notification;
+			}
+			
+		}else {
+			return null;
+		}
+	}
+
+	/*
+	 * Setting the Scheme.
+	 */
+	public void setScheme(NotificationScheme scheme) {
+		this.scheme = scheme;
+		if (notificationType.get(0).equals("ueb")){
+			AutoClientUEB.setScheme(this.scheme);
+			if (this.scheme.equals(NotificationScheme.MANUAL_ALL_NOTIFICATIONS)){
+				ManualClientEndUEB.createTopic(pdps.get(0), uniqueID, uebURLList);
+			}
+		}else{
+			AutoClientEnd.setScheme(this.scheme);
+		}	
+	}
+
+	/*
+	 * Returns the Scheme
+	 */
+	public NotificationScheme getScheme() {
+		return this.scheme;
+	}
+
+	/*
+	 * Returns the NotificationHandler
+	 */
+	public NotificationHandler getNotificationHandler() {
+		return this.handler;
+	}
+
+	private Collection<PolicyConfig> configResult(
+			Collection<StdStatus> generateRequest) {
+		Collection<PolicyConfig> result = new HashSet<PolicyConfig>();
+		if (generateRequest == null) {
+			return null;
+		}
+		if (!generateRequest.isEmpty()) {
+			for (StdStatus stdStatus : generateRequest) {
+				PolicyConfig policyConfig = new StdPolicyConfig();
+				policyConfig = stdStatus;
+				result.add(policyConfig);
+			}
+		}
+		return result;
+	}
+
+	private Collection<PolicyResponse> eventResult(
+			Collection<StdStatus> generateRequest,
+			Map<String, String> eventAttributes) {
+		Collection<PolicyResponse> result = new HashSet<PolicyResponse>();
+		if (generateRequest == null) {
+			return null;
+		}
+		if (!generateRequest.isEmpty()) {
+			for (StdStatus stdStatus : generateRequest) {
+				StdPolicyResponse policyResponse = new StdPolicyResponse();
+				policyResponse = stdStatus;
+				policyResponse.setRequestAttributes(eventAttributes);
+				result.add(policyResponse);
+			}
+		}
+		return result;
+	}
+
+	private DecisionResponse decisionResult(Collection<StdStatus> generateRequest) {
+		StdDecisionResponse policyDecision = new StdDecisionResponse();
+		if (generateRequest == null) {
+			return policyDecision;
+		}
+		if (!generateRequest.isEmpty()) {
+			for (StdStatus stdStatus : generateRequest) {
+				policyDecision.setDecision(stdStatus.getDecision());
+				policyDecision.setDetails(stdStatus.getDetails());
+			}
+		}
+		return policyDecision;
+	}
+
+	/*
+	 * Stop the Notification Service if its running.
+	 */
+	public void stopNotification() {
+		if (this.scheme != null && this.handler != null) {
+			if (this.scheme.equals(NotificationScheme.AUTO_ALL_NOTIFICATIONS)
+					|| this.scheme
+							.equals(NotificationScheme.AUTO_NOTIFICATIONS)) {
+				logger.info("Clear Notification called.. ");
+				if (notificationType.get(0).equals("ueb")){
+					this.UEBClientThread.terminate();
+					this.UEBThread = false;
+				}else{
+					AutoClientEnd.stop();
+				}
+			}
+		}
+	}
+	
+	/*
+	 * Create Config Policy API Implementation
+	 */
+	public String createConfigPolicy(String policyName, String policyDescription, String ecompName, String configName,
+			Map<String, String> configAttributes, String configType, String body, String policyScope, UUID requestID,
+			String riskLevel, String riskType, String guard, String ttlDate) throws Exception {
+		return createConfigPolicy(policyName,policyDescription, ecompName, configName,
+				configAttributes, configType, body, policyScope, requestID, userName , pass, riskLevel, riskType, guard, ttlDate);
+	}
+	
+	public String createConfigPolicy(String policyName, String policyDescription, String ecompName, String configName,
+										Map<String, String> configAttributes, String configType, String body, String policyScope, UUID requestID, String userID, String passcode,
+										String riskLevel, String riskType, String guard, String ttlDate) throws Exception {
+		
+		String response = null;
+		String configBody = null;
+		String resource= "createPolicy";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			response = XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource;
+			return response;
+		}
+		
+		//check body for JSON form and remove single quotes if present
+		if (configType.equalsIgnoreCase("JSON")) {
+			if (body.contains("'")) {
+				configBody = body.replace("'", "\"");
+			} else {
+				configBody = body;
+			}
+		} else {
+			configBody = body;
+		}
+		
+		boolean levelCheck = isNumeric(riskLevel);
+		
+		if (policyName==null||policyName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.";
+		} else if (ecompName==null||ecompName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No ECOMP Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No ECOMP Name given.";
+		} else if (configName==null||configName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Config Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Config Name given.";
+		} else if (policyScope==null||policyScope.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.";
+		} else if (!levelCheck){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.";
+		}else {
+
+			StdPAPPolicy newPAPPolicy = new StdPAPPolicy("Base", policyName, policyDescription, ecompName, configName, configAttributes, configType, 
+				configBody, false, policyScope,0, riskLevel, riskType, guard, ttlDate);
+
+			//send JSON object to PAP
+			response = (String) callPAP(newPAPPolicy, new String[] {"operation=create", "apiflag=api", "policyType=Config"}, requestID, "Config");
+		}
+		return response;
+
+	}
+	
+	/*
+	 * Create Config Policy API Implementation
+	 */
+	public String updateConfigPolicy(String policyName, String policyDescription, String ecompName, String configName,
+			Map<String, String> configAttributes, String configType, String body, String policyScope, UUID requestID,
+			String riskLevel, String riskType, String guard, String ttlDate) throws Exception {
+		return updateConfigPolicy(policyName, policyDescription, ecompName, configName,
+				configAttributes, configType, body, policyScope, requestID, userName, pass, riskLevel, riskType, guard, ttlDate);
+	}
+	
+	public String updateConfigPolicy(String policyName, String policyDescription, String ecompName, String configName,
+										Map<String, String> configAttributes, String configType, String body, String policyScope, 
+										UUID requestID, String userID, String passcode,String riskLevel, String riskType, String guard, 
+										String ttlDate) throws Exception {
+		
+		String response = null;
+		String configBody = null;
+		String resource= "updatePolicy";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			response = XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource;
+			return response;
+		}
+		//check body for JSON form and remove single quotes if present
+		if (configType.equalsIgnoreCase("JSON")) {
+			if (body.contains("'")) {
+				configBody = body.replace("'", "\"");
+			} else {
+				configBody = body;
+			}
+		} else {
+			configBody = body;
+		}
+		
+		boolean levelCheck = isNumeric(riskLevel);
+		
+		if (policyName==null||policyName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.";
+		} else if (ecompName==null||ecompName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No ECOMP Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No ECOMP Name given.";
+		} else if (configName==null||configName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Config Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Config Name given.";
+		} else if (policyScope==null||policyScope.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.";
+		} else if (!levelCheck){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.";
+		} else {
+
+			//set values for basic policy information
+			String policyType = "Config";
+			String configPolicyType = "base";
+
+			StdPAPPolicy newPAPPolicy = new StdPAPPolicy(configPolicyType, policyName, policyDescription, ecompName, configName, configAttributes, configType, 
+				configBody, true, policyScope,0, riskLevel, riskType, guard, ttlDate);
+
+			//send JSON object to PAP
+			response = (String) callPAP(newPAPPolicy, new String[] {"operation=update", "apiflag=api", "policyType=" + policyType}, requestID, "Config");
+		
+		}
+		return response;
+
+	}
+	
+	
+	/*
+	 * Create Config Firewall Policy API implementation
+	 */
+	public String createConfigFirewallPolicy(String policyName, JsonObject firewallJson, String policyScope, UUID requestID,
+			String riskLevel, String riskType, String guard, String ttlDate) throws Exception {
+		return createConfigFirewallPolicy(policyName, firewallJson, policyScope, requestID, userName, pass, riskLevel, riskType, guard, ttlDate);
+	}
+	
+	public String createConfigFirewallPolicy(String policyName, JsonObject firewallJson, String policyScope, UUID requestID, String userID, String passcode,
+			String riskLevel, String riskType, String guard, String ttlDate) throws Exception {		
+       		
+		String response = null;
+		String resource= "createPolicy";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			response = XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource;
+			return response;
+		}
+		
+		//set values for basic policy information
+		String configName = firewallJson.get("configName").toString();
+        //String configDescription = firewallJson.get("configDescription").toString();
+		String configDescription = "";
+		String json = firewallJson.toString();
+		
+		boolean levelCheck = isNumeric(riskLevel);
+
+		if (!isJSONValid(json)) {
+			logger.error(XACMLErrorConstants.ERROR_SCHEMA_INVALID + "Invalid JSON for firewallJson: " + json);
+			throw new PolicyDecisionException(XACMLErrorConstants.ERROR_SCHEMA_INVALID + "Invalid JSON for firewallJson: " + json);
+		}
+		
+		if (policyName==null||policyName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.";
+		} else if (policyScope==null||policyScope.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.";
+		} else if (!levelCheck){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.";
+		} else {
+			
+			StdPAPPolicy newPAPPolicy = new StdPAPPolicy("Firewall Config", policyName, configDescription, configName, false, policyScope, json, 0, 
+					riskLevel, riskType, guard, ttlDate);
+			
+			//send JSON object to PAP
+			response = (String) callPAP(newPAPPolicy, new String[] {"operation=create", "apiflag=api", "policyType=Config"}, requestID, "ConfigFirewall");
+		}
+
+		return response;
+	} 
+	
+	/*
+	 * Update Config Firewall Policy API implementation
+	 */
+	public String updateConfigFirewallPolicy(String policyName, JsonObject firewallJson, String policyScope, UUID requestID, String riskLevel, String riskType, 
+			String guard, String ttlDate) throws Exception {
+		return updateConfigFirewallPolicy(policyName, firewallJson, policyScope, requestID, userName, pass, riskLevel, riskType, guard, ttlDate);
+	}
+	
+	public String updateConfigFirewallPolicy(String policyName, JsonObject firewallJson, String policyScope, UUID requestID, String userID, String passcode,
+			String riskLevel, String riskType, String guard, String ttlDate) throws Exception {
+		
+		String response = null;
+		String resource= "updatePolicy";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			response = XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource;
+			return response;
+		}
+		String configName = firewallJson.get("configName").toString();
+	    //String configDescription = firewallJson.get("configDescription").toString();
+		String configDescription = "";  //ASK Lak about this...****
+		String json = firewallJson.toString();
+		boolean levelCheck = isNumeric(riskLevel);
+		
+		if (policyName==null||policyName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.";
+		} else if (policyScope==null||policyScope.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.";
+		} else if (!levelCheck){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.";
+		} else {
+			
+			StdPAPPolicy newPAPPolicy = new StdPAPPolicy("Firewall Config", policyName, configDescription, configName, true, policyScope, json, 0,
+														  riskLevel, riskType, guard, ttlDate);
+		
+			//send JSON object to PAP
+			response = (String) callPAP(newPAPPolicy, new String[] {"operation=update", "apiflag=api", "policyType=Config"}, requestID, "ConfigFirewall");
+		}
+		
+		return response;
+	}
+	
+	/*
+	 * Create or Update BRMS Raw Config Policy API implementation
+	 */
+	public String createUpdateBRMSRawPolicy(String policyName, 
+			String policyDescription, 
+			Map<AttributeType, Map<String, String>>  dyanamicFieldConfigAttributes,
+			String brmsRawBody, 
+			String policyScope, 
+			Boolean isEdit, 
+			UUID requestID,
+			String riskLevel, 
+			String riskType, 
+			String guard, 
+			String ttlDate) {
+		
+		String response = null;
+		String operation = null;
+		
+		
+		if (isEdit){
+			operation = "update";
+		} else {
+			operation = "create";
+		}
+		
+		boolean levelCheck = isNumeric(riskLevel);
+		
+		if (policyName==null||policyName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.";
+		} else if(policyDescription==null || policyDescription.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No policyDescription given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No policyDescription given.";
+		} else if (policyScope==null||policyScope.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.";
+		} else if (brmsRawBody==null ||brmsRawBody.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No rule body given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No rule body given.";
+		}  else if (!levelCheck){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.";
+		} else {
+			/*String configPolicyType, String policyName, String description, 
+					String configName, Boolean editPolicy, String domain, 
+					Map<String,String> dyanamicFieldConfigAttributes, Integer highestVersion, String eCompName, 
+					String configBodyData*/
+			
+			StdPAPPolicy newPAPPolicy = new StdPAPPolicy("BRMS_Raw",policyName,policyDescription,
+															"BRMS_RAW_RULE",isEdit,policyScope, 
+															dyanamicFieldConfigAttributes.get(AttributeType.RULE), 0, "DROOLS", 
+															brmsRawBody, riskLevel, riskType, guard, ttlDate);
+		
+			//send JSON object to PAP
+			try {
+				response = (String) callPAP(newPAPPolicy, new String[] {"operation="+operation, "apiflag=api", "policyType=Config"}, requestID, "ConfigBrmsRaw");
+			} catch (Exception e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+		
+		return response;
+	}
+	
+	/*
+	 * Create or Update BRMS Param Config Policy API implementation
+	 */
+	public String createUpdateBRMSParamPolicy(String policyName, 
+			String policyDescription, 
+			Map<AttributeType, Map<String, String>>  dyanamicFieldConfigAttributes,
+			String brmsRawBody, 
+			String policyScope, 
+			Boolean isEdit, 
+			UUID requestID,
+			Map<AttributeType, Map<String, String>> drlRuleAndUIParams,
+			String riskLevel, String riskType, String guard, String ttlDate) {
+		
+		String response = null;
+		String operation = null;
+		
+		
+		if (isEdit){
+			operation = "update";
+		} else {
+			operation = "create";
+		}
+		
+		boolean levelCheck = isNumeric(riskLevel);
+		
+		if (policyName==null||policyName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.";
+		} else if(policyDescription==null || policyDescription.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No policyDescription given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No policyDescription given.";
+		} else if (policyScope==null||policyScope.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.";
+		} else if ((dyanamicFieldConfigAttributes==null)){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Rule Attributes given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Rule Attributes given.";
+		} else if (!levelCheck){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.";
+		}else {
+			/*public StdPAPPolicy (String configPolicyType, String policyName, String description, 
+					String configName, Boolean editPolicy, String domain, 
+					Map<String,String> dyanamicFieldConfigAttributes, Integer highestVersion, String eCompName, 
+					String configBodyData,Map<String,String> drlRuleAndUIParams) */
+			
+			StdPAPPolicy newPAPPolicy = new StdPAPPolicy("BRMS_Param",policyName,policyDescription,
+															"BRMS_PARAM_RULE",isEdit,policyScope, 
+															drlRuleAndUIParams.get(AttributeType.MATCHING), 0, "DROOLS", 
+															brmsRawBody, drlRuleAndUIParams.get(AttributeType.RULE), riskLevel, riskType, guard, ttlDate);
+		
+			//send JSON object to PAP
+			try {
+				response = (String) callPAP(newPAPPolicy, new String[] {"operation="+operation, "apiflag=api", "policyType=Config"}, requestID, "ConfigBrmsParam");
+			} catch (Exception e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+		
+		return response;
+	}
+	
+	/*
+	 * Create or Update Action Policy API implementation
+	 */
+	public String createUpdateActionPolicy(String policyName, String policyDescription, Map<String,String> componentAttributes, List<String> dynamicRuleAlgorithmLabels,
+								List<String> dynamicRuleAlgorithmField1, List<String> dynamicRuleAlgorithmFunctions, List<String> dynamicRuleAlgorithmField2,
+								String actionPerformer, String actionAttribute, String policyScope, Boolean isEdit, UUID requestID) {
+		
+		String response = null;
+		String operation = null;
+		
+		if (isEdit){
+			operation = "update";
+		} else {
+			operation = "create";
+		}
+		
+		if (policyName==null||policyName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.";
+			return response;
+		} else if (componentAttributes==null||componentAttributes.equals("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Component Attributes given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Component Attributes given.";
+			return response;
+		} else if (actionAttribute==null||actionAttribute.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Action Attribute given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Action Attribute given.";
+			return response;
+		} else if (policyScope==null||policyScope.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.";
+			return response;
+		} else if (actionPerformer==null||actionPerformer.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Action Performer given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Action Performer given.";
+			return response;
+		} else if (!actionPerformer.equals("PEP")) {
+			if (!actionPerformer.equals("PDP")) {
+				logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid Action Performer given.");
+				response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid Action Performer given.";
+				return response;
+			}
+		}
+		
+		StdPAPPolicy newPAPPolicy = new StdPAPPolicy(policyName, policyDescription, componentAttributes, dynamicRuleAlgorithmLabels, dynamicRuleAlgorithmFunctions, 
+					dynamicRuleAlgorithmField1, dynamicRuleAlgorithmField2, actionPerformer, actionAttribute, isEdit, policyScope, 0);
+
+			//send JSON object to PAP
+		try {
+			response = (String) callPAP(newPAPPolicy, new String[] {"operation="+operation, "apiflag=api", "policyType=Action"}, requestID, "Action");
+		} catch (Exception e) {
+				// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+			
+		return response;
+
+	}
+	
+	/*
+	 * Create or Update Decision Policy implementation
+	 */
+	private String createUpdateDecisionPolicy(String policyName, String policyDescription, String ecompName, RuleProvider ruleProvider, Map<String,String> componentAttributes, Map<String,String> settings,
+			List<String> dynamicRuleAlgorithmLabels, List<String> dynamicRuleAlgorithmField1, List<String> dynamicRuleAlgorithmFunctions, List<String> dynamicRuleAlgorithmField2,
+			String policyScope, Boolean isEdit, UUID requestID) {
+		
+		String response = null;
+		String operation = null;
+		
+		if (isEdit){
+			operation = "update";
+		} else {
+			operation = "create";
+		}
+		
+		if (policyName==null||policyName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.";
+		} else if (ecompName==null||ecompName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No ECOMP Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No ECOMP Name given.";
+		} else if (policyScope==null||policyScope.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.";
+		} else {
+			
+			if (ruleProvider==null) {
+				ruleProvider = RuleProvider.CUSTOM ;
+			}
+			
+			StdPAPPolicy newPAPPolicy = new StdPAPPolicy(policyName, policyDescription, ecompName, ruleProvider.toString(), componentAttributes, settings, dynamicRuleAlgorithmLabels, dynamicRuleAlgorithmFunctions, 
+									dynamicRuleAlgorithmField1, dynamicRuleAlgorithmField2, null, null, null, isEdit, policyScope, 0);
+		
+			//send JSON object to PAP
+			try {
+				response = (String) callPAP(newPAPPolicy, new String[] {"operation="+operation, "apiflag=api", "policyType=Decision"}, requestID, "Decision");
+			} catch (Exception e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+		
+		return response;
+	}
+	
+	/*
+	 * Create or Update ClosedLoop_Fault policy implementation
+	 */
+	private String createUpdateClosedLoopPolicy(String policyName, JsonObject configBody, String policyDescription, String policyScope, Boolean isEdit, 
+			UUID requestID,String riskLevel, String riskType, String guard, String ttlDate) {
+		
+		String response = null;
+		String operation = null;
+		String oldPolicyName = null;
+		
+		if (isEdit){
+			operation = "update";
+			if (policyName.endsWith("_Draft")) {
+				oldPolicyName = policyName + "_Draft.1";
+			}
+		} else {
+			operation = "create";
+		}
+		
+		boolean levelCheck = isNumeric(riskLevel);
+		
+		// get values and attributes from the JsonObject
+		String ecompName = configBody.get("ecompname").toString().replace("\"", "");
+		String jsonBody = configBody.toString();
+
+		
+		if (policyName==null||policyName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.";
+		} else if (ecompName==null||ecompName.equals("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Ecomp Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Ecomp Name given.";
+		} else if (policyScope==null||policyScope.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.";
+		} else if (!levelCheck){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.";
+		} else {
+			
+
+			StdPAPPolicy newPAPPolicy = new StdPAPPolicy("ClosedLoop_Fault", policyName, policyDescription, ecompName, 
+					jsonBody, false, oldPolicyName, null, isEdit, policyScope, 0, riskLevel, riskType, guard, ttlDate); 
+
+			//send JSON object to PAP
+			try {
+				response = (String) callPAP(newPAPPolicy, new String[] {"operation="+operation, "apiflag=api", "policyType=Config"}, requestID, "ConfigClosedLoop");
+			} catch (Exception e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+
+		return response;
+		
+	}
+	
+	private String createUpdateClosedLoopPmPolicy(String policyName, JsonObject configBody, String policyDescription, String policyScope, Boolean isEdit, 
+			UUID requestID, String riskLevel, String riskType, String guard, String ttlDate) {
+		
+		String response = null;
+		String operation = null;
+		String oldPolicyName = null;
+		
+		if (isEdit){
+			operation = "update";
+		} else {
+			operation = "create";
+		}
+		
+		boolean levelCheck = isNumeric(riskLevel);
+		
+		// get values and attributes from the JsonObject
+		String ecompName = configBody.get("ecompname").toString().replace("\"", "");
+		String serviceType = configBody.get("serviceTypePolicyName").toString().replace("\"", "");
+		String jsonBody = configBody.toString();
+
+		
+		if (policyName==null||policyName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.";
+		} else if (ecompName==null||ecompName.equals("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Ecomp Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Ecomp Name given.";
+		} else if (policyScope==null||policyScope.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.";
+		} else if (!levelCheck){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.";
+		} else {
+			
+
+			StdPAPPolicy newPAPPolicy = new StdPAPPolicy("ClosedLoop_PM", policyName, policyDescription, ecompName, 
+					jsonBody, false, oldPolicyName, serviceType, isEdit, policyScope, 0, riskLevel, riskType, guard, ttlDate); 
+
+			//send JSON object to PAP
+			try {
+				response = (String) callPAP(newPAPPolicy, new String[] {"operation="+operation, "apiflag=api", "policyType=Config"}, requestID, "ConfigClosedLoop");
+			} catch (Exception e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+
+		return response;
+		
+	}
+	
+	public Boolean validateNONASCIICharactersAndAllowSpaces(Object json){
+		Boolean isValidForm = false;
+		if (json instanceof String) {
+			String jsonString = (String)json;
+			if (jsonString.isEmpty()) {
+				logger.info("JSON String is empty so cannot validate NON ACSII Characters.");
+			} else {
+				if(CharMatcher.ASCII.matchesAllOf((CharSequence) jsonString)){
+					logger.info("The Value does not contain ASCII Characters");
+				   	 isValidForm = true;
+				}else{
+					logger.error("The Value Contains Non ASCII Characters");
+					isValidForm = false;
+				}	
+			}
+		} else if (json instanceof JsonObject) {
+			JsonObject jsonObj = (JsonObject)json;
+			if (jsonObj.isEmpty()){
+				logger.info("JSON object is empty so cannot validate NON ACSII Characters.");
+			} else {
+				if(CharMatcher.ASCII.matchesAllOf((CharSequence) jsonObj.toString())){
+					logger.info("The Value does not contain ASCII Characters");
+				   	 isValidForm = true;
+				}else{
+					logger.error("The Value Contains Non ASCII Characters");
+					isValidForm = false;
+				}	
+			}
+			
+		}
+		
+		return isValidForm;
+	}
+	
+	private String createUpdateMicroServicesPolicy(String policyName, JsonObject microServiceAttributes, String ecompName, String policyScope, Boolean isEdit, UUID requestID,
+			String riskLevel, String riskType, String guard, String ttlDate) {
+		
+		String response = null;
+		String operation = null;
+		
+		if (isEdit){
+			operation = "update";
+		} else {
+			operation = "create";
+		}
+		
+		boolean levelCheck = isNumeric(riskLevel);
+		
+		// get values and attributes from the JsonObject
+		String microService = microServiceAttributes.get("service").toString().replace("\"", "");
+		String uuid = microServiceAttributes.get("uuid").toString().replace("\"", "");
+		String msLocation = microServiceAttributes.get("location").toString().replace("\"", "");;
+		String policyDescription = microServiceAttributes.get("description").toString().replace("\"", "");
+		String configName = microServiceAttributes.get("configName").toString().replace("\"", "");
+		String priority = microServiceAttributes.get("priority").toString().replace("\"", "");
+		String version = microServiceAttributes.get("version").toString().replace("\"", "");
+
+		
+		if (policyName==null||policyName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.";
+		} else if (ecompName==null||ecompName.equals("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Ecomp Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Ecomp Name given.";
+		} else if (configName==null||configName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Configuration Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Configuration Name given.";
+		} else if (policyScope==null||policyScope.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.";
+		} else if (!levelCheck){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.";
+		} else {
+			
+
+			StdPAPPolicy newPAPPolicy = new StdPAPPolicy("DCAE Micro Service", policyName, policyDescription, ecompName, 
+							configName, microService, uuid, msLocation, microServiceAttributes.toString(), priority, 
+							version, isEdit, policyScope, 0, riskLevel, riskType, guard, ttlDate); 
+
+			//send JSON object to PAP
+			try {
+				response = (String) callPAP(newPAPPolicy, new String[] {"operation="+operation, "apiflag=api", "policyType=Config"}, requestID, "ConfigMS");
+			} catch (Exception e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+
+		return response;
+		
+	}
+	
+	
+	/*
+	 * Push a policy to the PDP API implementation
+	 */
+	public String pushPolicy(String policyScope, String policyName, String policyType, String pdpGroup, UUID requestID) throws Exception {
+		return pushPolicy(policyScope, policyName, policyType, pdpGroup, requestID, userName, pass);
+	}
+	
+	public String pushPolicy(String policyScope, String policyName, String policyType, String pdpGroup, UUID requestID, String userID, String passcode) throws Exception {
+		String resource= "pushPolicy";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			return (XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+		}
+		String response = null;
+		String filePrefix = null;
+		String clientScope = null;
+		String activeVersion = null;
+		
+		//get the client scope based policy type
+		if (policyType.equalsIgnoreCase("Firewall")){
+			clientScope = "ConfigFirewall";
+			filePrefix = "Config_FW_";
+		} else if (policyType.equalsIgnoreCase("Action")) {
+			clientScope = "Action";
+			filePrefix = "Action_";
+		} else if (policyType.equalsIgnoreCase("Decision")){
+			clientScope = "Decision";
+			filePrefix = "Decision_";
+		} else if (policyType.equalsIgnoreCase("Base")){
+			clientScope = "Config";
+			filePrefix = "Config_";
+		} else if (policyType.equalsIgnoreCase("ClosedLoop_Fault")){
+			clientScope = "ConfigClosedLoop";
+			filePrefix = "Config_Fault_";
+		} else if (policyType.equalsIgnoreCase("ClosedLoop_PM")){
+			clientScope = "ConfigClosedLoop";
+			filePrefix = "Config_PM_";
+		} else if (policyType.equalsIgnoreCase("MicroService")) {
+			clientScope = "ConfigMS";
+			filePrefix = "Config_MS_";
+		}else if (policyType.equalsIgnoreCase("BRMS_RAW")){
+			clientScope = "ConfigBrmsRaw";
+			filePrefix = "Config_BRMS_Raw_";
+		} else if (policyType.equalsIgnoreCase("BRMS_PARAM")){
+			clientScope = "ConfigBrmsParam";
+			filePrefix = "Config_BRMS_Param_";
+		} else {
+			clientScope = null;
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + policyType + " is not a valid Policy Type.");
+			return XACMLErrorConstants.ERROR_DATA_ISSUE + policyType + " is not a valid Policy Type.";
+		}
+		
+		logger.debug("clientScope is " + clientScope);
+		logger.debug("filePrefix is " + filePrefix);
+		
+		if (pdpGroup == null) {
+			pdpGroup = "default";
+		}
+		
+		if (policyName==null||policyName.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.";
+		} else if (policyScope==null||policyScope.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.";
+		} else if (policyType==null||policyType.equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Type given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Type given.";
+		} else {
+			// requestID null check. 
+			if(requestID==null){
+				requestID =  UUID.randomUUID();
+				logger.debug("Request ID not provided.  Generating request ID " + requestID.toString());
+			}
+
+			// change call to getActiveVersion to pass requestID for PAP to receive on the GET process so PAP won't generate another 
+	//		activeVersion = getActiveVersion(policyScope, filePrefix, policyName, clientScope);
+			activeVersion = getActiveVersion(policyScope, filePrefix, policyName, clientScope, requestID);
+			logger.debug("The active version of " + policyScope + File.separator + filePrefix + policyName + " is " + activeVersion);
+			
+			String id = null;
+			if (activeVersion.equalsIgnoreCase("pe100")) {
+				logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "response code of the URL is 403. PEP is not Authorized for making this Request!! "
+						+ "\n Contact Administrator for this Scope. ");
+				return XACMLErrorConstants.ERROR_PERMISSIONS + "response code of the URL is 403. PEP is not Authorized for making this Request!! "
+						+ "Contact Administrator for this Scope. ";
+						
+			} else if (activeVersion.equalsIgnoreCase("pe300")) {
+				logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "response code of the URL is 404.  "
+						+ "This indicates a problem with getting the version from the PAP or the policy does not exist.");
+				return XACMLErrorConstants.ERROR_DATA_ISSUE + "response code of the URL is 404.  "
+						+ "This indicates a problem with getting the version from the PAP or the policy does not exist.";
+			}
+			
+			
+			if (!activeVersion.equalsIgnoreCase("0")) {
+				id = policyScope + "." + filePrefix + policyName + "." + activeVersion + ".xml";
+				logger.debug("The policyId is " + id);
+			} else {
+				logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "could not retrieve the activeVersion for this policy.  "
+						+ "This indicates the policy does not exist, please verify the policy exists.");
+				return XACMLErrorConstants.ERROR_DATA_ISSUE + "could not retrieve the activeVersion for this policy. could not retrieve the activeVersion for this policy.  "
+						+ "This indicates the policy does not exist, please verify the policy exists.";
+			}
+
+			// change call to getgitPath to pass requestID for PAP to receive on the GET process so PAP won't generate another 
+			// String gitPath = getGitPath(policyScope, filePrefix, policyName, activeVersion, clientScope);
+			String gitPath = getGitPath(policyScope, filePrefix, policyName, activeVersion, clientScope, requestID);
+			logger.debug("Full gitPath policy xml file: " + gitPath);
+
+			// change call to getSelectedURI to pass requestID for PAP to receive on the GET process so PAP won't generate another 
+			// URI selectedURI = getSelectedURI(gitPath, clientScope);
+			URI selectedURI = getSelectedURI(gitPath, clientScope, requestID);
+			
+			logger.debug("The selectedURI is : " + selectedURI.toString());
+			String name = filePrefix+policyName;
+					
+			StdPDPPolicy selectedPolicy = new StdPDPPolicy(id, true, name, selectedURI, isValid, policyId, description, pushVersion);
+			
+			logger.debug("StdPDPPolicy object contains: " + selectedPolicy.getId() + ", " + selectedPolicy.getName() + ", " + selectedPolicy.getLocation().toString());
+			
+			response = copyPolicy(selectedPolicy, pdpGroup, clientScope, requestID);
+			
+			logger.debug("copyPolicy response:  " + response);
+			
+			if(response.contains("successfully")){
+				response = (String) callPAP(selectedPolicy, new String[]{"groupId=" + pdpGroup, "policyId="+id, "apiflag=addPolicyToGroup", "operation=PUT"}, requestID, clientScope);
+			}
+			
+			logger.debug("Final API response: " + response);
+		}
+		
+		return response;
+		
+	}
+	
+	private String deletePolicyFromPAP(DeletePolicyParameters parameters) {
+		String response = null;
+		String clientScope = null;
+		String pdpGroup = parameters.getPdpGroup();
+		
+		if (pdpGroup==null){
+			pdpGroup="NA";
+		}
+		
+		//get the client scope based policy type
+		if (parameters.getPolicyName().contains("Config_FW")){
+			clientScope = "ConfigFirewall";
+		} else if (parameters.getPolicyName().contains("Action")) {
+			clientScope = "Action";
+		} else if (parameters.getPolicyName().contains("Decision")){
+			clientScope = "Decision";
+		} else if (parameters.getPolicyName().contains("Config_Fault")){
+			clientScope = "ConfigClosedLoop";
+		} else if (parameters.getPolicyName().contains("Config_PM")){
+			clientScope = "ConfigClosedLoop";
+		} else if (parameters.getPolicyName().contains("Config_MS")){
+			clientScope = "ConfigMS";
+		} else if (parameters.getPolicyName().contains("Config_BRMS_Raw")){
+			clientScope = "ConfigBrmsRaw";
+		} else if (parameters.getPolicyName().contains("Config_BRMS_Param")){
+			clientScope = "ConfigBrmsParam";
+		} else {
+			clientScope = "Config";
+		}
+		
+		logger.debug("clientScope is " + clientScope);
+		
+		if (clientScope==null||clientScope.equals("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + parameters.getPolicyName() + " is not a valid Policy Name.");
+			return XACMLErrorConstants.ERROR_DATA_ISSUE + parameters.getPolicyName() + " is not a valid Policy Name.";
+		}
+		
+		if (parameters.getPolicyName()==null||parameters.getPolicyName().equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.";
+		} else if (parameters.getDeleteCondition()==null||parameters.getDeleteCondition().equals("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Delete Condition given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Delete Condition given.";
+		} else {
+			
+			StdPAPPolicy deletePapPolicy = new StdPAPPolicy(parameters.getPolicyName(), parameters.getDeleteCondition().toString()); 
+
+			//send JSON object to PAP
+			try {
+				response = (String) callPAP(deletePapPolicy, new String[] {"groupId="+pdpGroup, "apiflag=deletePapApi", "operation=delete" }, parameters.getRequestID(), clientScope);
+			} catch (Exception e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}		
+			
+		}
+		
+		return response;
+	}
+	
+	private String deletePolicyFromPDP(DeletePolicyParameters parameters) {
+		String response = null;
+		String clientScope = null;
+		String pdpGroup = parameters.getPdpGroup();
+		
+		if (pdpGroup==null){
+			pdpGroup="NA";
+		}
+		
+		//get the client scope based policy type
+		if (parameters.getPolicyName().contains("Config_FW")){
+			clientScope = "ConfigFirewall";
+		} else if (parameters.getPolicyName().contains("Action")) {
+			clientScope = "Action";
+		} else if (parameters.getPolicyName().contains("Decision")){
+			clientScope = "Decision";
+		} else if (parameters.getPolicyName().contains("Config_Fault")){
+			clientScope = "ConfigClosedLoop";
+		} else if (parameters.getPolicyName().contains("Config_PM")){
+			clientScope = "ConfigClosedLoop";
+		} else if (parameters.getPolicyName().contains("Config_MS")){
+			clientScope = "ConfigMS";
+		}else if (parameters.getPolicyName().contains("Config_BRMS_Raw")){
+			clientScope = "ConfigBrmsRaw";
+		} else if (parameters.getPolicyName().contains("Config_BRMS_Param")){
+			clientScope = "ConfigBrmsParam";
+		} else {
+			clientScope = "Config";
+		}
+		
+		logger.debug("clientScope is " + clientScope);
+		
+		if (clientScope==null||clientScope.equals("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + parameters.getPolicyName() + " is not a valid Policy Name.");
+			return XACMLErrorConstants.ERROR_DATA_ISSUE + parameters.getPolicyName() + " is not a valid Policy Name.";
+		}
+		
+		if (parameters.getPolicyName()==null||parameters.getPolicyName().equalsIgnoreCase("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.";
+		} else if (parameters.getPdpGroup()==null||parameters.getPdpGroup().equals("")){
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No PDP Group given.");
+			response = XACMLErrorConstants.ERROR_DATA_ISSUE + "No PDP Group given.";
+		} else {
+			
+			//send JSON object to PAP
+			try {
+				response = (String) callPAP(null, new String[] {"policyName="+parameters.getPolicyName(), "groupId="+pdpGroup, "apiflag=deletePdpApi", "operation=delete" }, parameters.getRequestID(), clientScope);
+			} catch (Exception e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}		
+			
+		}
+		
+		return response;
+	}
+	
+	/*
+	 * Copy a single Policy file from the input stream to the PAP Servlet.
+	 * Either this works (silently) or it throws an exception.
+	 * 
+	 */
+	public String copyFile(String policyId, String group, StdPAPPolicy location, String clientScope, UUID requestID) throws PAPException {
+		String response = null;
+		//String clientScope = null;
+		
+		// send the policy file to the PAP Servlet
+		try {
+			response = (String) callPAP(location, new String[] {"groupId=" + group, "policyId="+policyId, "apiflag=api", "operation=post"}, requestID, clientScope);
+		} catch (Exception e) {
+			String message = "Unable to PUT policy '" + policyId + "', e:" + e;
+			logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + message, e);
+			throw new PAPException(message);
+		}
+		
+		return response;
+	}
+	
+	public String copyPolicy(PDPPolicy policy, String group, String policyType, UUID requestID) throws PAPException {
+		String response = null;
+		
+		if (policy == null || group == null) {
+			throw new PAPException("Null input policy="+policy+"  group="+group);
+		}
+		try {
+			StdPAPPolicy location = new StdPAPPolicy(policy.getLocation());
+			response = copyFile(policy.getId(), group, location, policyType, requestID);
+		} catch (Exception e) {
+			String message = "Unable to PUT policy '" + policy.getId() + "', e:" + e;
+			logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + message, e);
+			throw new PAPException(message);
+		}
+		
+		return response;
+	}
+
+	public Object callPAP(Object content, String[] parameters, UUID requestID, String clientScope) throws Exception {
+		String response = null;
+		HttpURLConnection connection = null;
+		String requestMethod = null;
+		String operation = null;
+		responseCode = 0; 
+		// Checking for the available PDPs is done during the first Request and the List is going to have the connected PDP as first element.
+		// This makes it Real-Time to change the list depending on their availability.
+		if (paps == null || paps.isEmpty()) {
+		logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "PAPs List is Empty.");
+		throw new Exception(XACMLErrorConstants.ERROR_DATA_ISSUE +"PAPs List is empty.");
+		}else {
+			int papsCount = 0;
+			boolean connected = false;
+			while (papsCount < paps.size()) {
+				try {
+					String fullURL = paps.get(0);
+					if (parameters != null && parameters.length > 0) {
+						String queryString = "";
+						for (String p : parameters) {
+							queryString += "&" + p;
+							if (p.equalsIgnoreCase("operation=post")){
+								requestMethod = "POST";
+							} else if (p.equalsIgnoreCase("operation=delete")){
+								requestMethod = "DELETE";
+								operation = "delete";
+							} else {
+								requestMethod = "PUT";
+								if (p.equalsIgnoreCase("operation=create")){
+									operation = "create";
+								} else if (p.equalsIgnoreCase("operation=update")){
+									operation = "update";
+								} else if (p.equalsIgnoreCase("operation=createDictionary")){
+									operation = "createDictionary";
+								}
+							}
+						}
+						fullURL += "?" + queryString.substring(1);
+					}
+	
+					URL url = new URL (fullURL);
+					
+					//Open the connection
+					connection = (HttpURLConnection)url.openConnection();
+					
+					// Setting Content-Type
+					connection.setRequestProperty("Content-Type",
+							"application/json");
+					
+					// Adding Authorization
+					connection.setRequestProperty("Authorization", "Basic "
+							+ encodingPAP.get(0));
+					
+					connection.setRequestProperty("Environment", environment);
+					connection.setRequestProperty("ClientScope", clientScope);
+					
+					//set the method and headers
+					connection.setRequestMethod(requestMethod);
+					connection.setUseCaches(false);
+					connection.setInstanceFollowRedirects(false);
+					connection.setDoOutput(true);
+					connection.setDoInput(true);
+					// Adding RequestID
+					if (requestID == null) {
+						requestID = UUID.randomUUID();
+						logger.info("No request ID provided, sending generated ID: " + requestID.toString());
+					} else {
+						logger.info("Using provided request ID: " + requestID.toString());
+					}
+					connection.setRequestProperty("X-ECOMP-RequestID", requestID.toString());
+
+					if (content != null) {
+						if (content instanceof InputStream) {
+							try {
+								//send  current configuration
+								try (OutputStream os = connection.getOutputStream()) {
+									int count = IOUtils.copy((InputStream)content, os);
+									if (logger.isDebugEnabled()) {
+										logger.debug("copied to output, bytes=" + count);
+									}
+								}
+							} catch (Exception e) {
+								logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Failed to write content in 'PUT'", e);
+								throw e;
+							}
+						} else {
+							// the content is an object to be encoded in JSON
+							ObjectMapper mapper = new ObjectMapper();
+							if(!junit){
+								mapper.writeValue(connection.getOutputStream(), content);
+							}
+						}
+					}
+	
+					//DO the connect
+					connection.connect();
+					responseCode = connection.getResponseCode();
+					// If Connected to PAP then break from the loop and continue with the Request 
+					if (connection.getResponseCode() > 0 || junit) {
+						connected = true;
+						break;
+
+					} else {
+						logger.debug(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "PAP connection Error");
+					}
+				} catch (Exception e) {
+					// This means that the PAP is not working 
+					if (junit) {
+						connected = true;
+						break;
+					}
+					logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "PAP connection Error : " + e);
+				}
+				papsCount++;
+			}
+	
+			if (connected) {
+				//Read the Response
+				logger.debug("connected to the PAP : " + paps.get(0));
+				logger.debug("--- Response: ---");
+				Map<String, List<String>> headers = connection.getHeaderFields();
+				for (String key : headers.keySet()) {
+					logger.debug("Header :" + key + "  Value: " + headers.get(key));
+				}
+				try {
+					if (responseCode == 200 || junit) {
+						
+						// Check for successful creation of policy
+						String isSuccess = null;
+						if(!junit){ //is this a junit test?
+							isSuccess = connection.getHeaderField("successMapKey");
+							operation = connection.getHeaderField("operation");
+						} else {
+							isSuccess = "success";
+						}
+						
+						if (isSuccess.equals("success")) {
+							if (operation.equals("update")) {
+								logger.info("Transaction ID: " + requestID + " --Policy Updated Successfully!" );
+								response = "Transaction ID: " + requestID + " --Policy with the name " + connection.getHeaderField("policyName") + " was successfully updated.";
+							} else if (operation.equals("delete")) {
+								logger.info("Transaction ID: " + requestID + " --Policy Deleted Successfully!");
+								response = "Transaction ID: " + requestID + " --The policy was successfully deleted.";    
+							} else if (operation.equals("import")) {
+								logger.info("Transaction ID: " + requestID + " --Policy Engine Import Successful!");
+								response = "Transaction ID: " + requestID + " --The policy engine import for " + connection.getHeaderField("service") +  " was successfull.";    
+							}else {
+								logger.info("Transaction ID: " + requestID + " --Policy Created Successfully!" );
+								response = "Transaction ID: " + requestID + " --Policy with the name " + connection.getHeaderField("policyName") + " was successfully created.";
+							}
+									
+						} else {
+							logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Unable to Create/Update the Policy!");
+							response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Unable to Create/Update the Policy!";
+						}
+					} else if (connection.getResponseCode() == 202) {
+						if (connection.getHeaderField("operation")!=null && connection.getHeaderField("operation").equalsIgnoreCase("delete")){
+							if (connection.getHeaderField("lockdown")!=null && connection.getHeaderField("lockdown").equals("true")){
+								logger.warn("Transaction ID: " + requestID + "Policies are locked down.");
+								response = "Transaction ID: " + requestID + " --Policies are locked down, please try again later.";
+							}
+						}
+					} else if (connection.getResponseCode() == 204) {
+						if (connection.getHeaderField("operation")!=null && connection.getHeaderField("operation").equals("push")){
+							logger.info("Transaction ID: " + requestID + " --Policy '" + connection.getHeaderField("policyId") +
+									"' was successfully pushed to the PDP group '" + connection.getHeaderField("groupId") + "'.");
+							response = "Transaction ID: " + requestID + " --Policy '" + connection.getHeaderField("policyId") +
+									"' was successfully pushed to the PDP group '" + connection.getHeaderField("groupId") + "'.";
+						}
+					} else if (connection.getResponseCode() == 400 && connection.getHeaderField("error")!=null){
+						if (connection.getHeaderField("error").equals("noPolicyExist")) {
+							logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Policy does not exist on the PDP.");
+							response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Policy does not exist on the PDP.";
+						} else if (connection.getHeaderField("error").equals("invalidPolicyName")) {
+							logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid policyName... "
+        				+ "policyName must be the full name of the file to be deleted including version and extension");
+							response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid policyName... "
+			        				+ "policyName must be the full name of the file to be deleted including version and extension";
+						} else if (connection.getHeaderField("error").equals("actionPolicyDB")){
+							logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Could not find " + connection.getHeaderField("actionAttribute") + " in the ActionPolicyDict table.");
+							response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid actionAttribute given.";
+						} else if (connection.getHeaderField("error").equals("serviceModelDB")){
+							logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid Service or Version.  The Service Model, " 
+									+ connection.getHeaderField("modelName") + " of version " + connection.getHeaderField("modelVersion") 
+									+ " was not found in the dictionary.");
+							response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid Service or Version.  The Service Model, " 
+									+ connection.getHeaderField("modelName") + " of version " + connection.getHeaderField("modelVersion") 
+									+ " was not found in the dictionary.";
+						} else if (connection.getHeaderField("error").equals("FWDBError")){
+							logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error when inserting Firewall ConfigBody data into database.");
+							response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Error when inserting Firewall ConfigBody data into the database.";
+						} else if (connection.getHeaderField("error").equals("savePolicy")){
+							logger.error(connection.getHeaderField("message"));
+							response = connection.getHeaderField("message");
+						}
+					} else if (connection.getResponseCode() == 403) {
+						logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "response code of the URL is " 
+									+ connection.getResponseCode() + ". PEP is not Authorized for making this Request!! \n Contact Administrator for this Scope. ");
+						response = XACMLErrorConstants.ERROR_PERMISSIONS + "response code of the URL is " 
+								+ connection.getResponseCode() + ". PEP is not Authorized for making this Request!! \n Contact Administrator for this Scope. ";	
+					} else if (connection.getResponseCode() == 404 && connection.getHeaderField("error")!=null) {
+						if (connection.getHeaderField("error").equals("unknownGroupId")){
+							logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + connection.getHeaderField("message"));
+							response = XACMLErrorConstants.ERROR_DATA_ISSUE + connection.getHeaderField("message") +  
+									" Please check the pdpGroup you are requesting to move the policy to.";
+						}
+					} else if (connection.getResponseCode() == 409 && connection.getHeaderField("error")!=null) {
+						if (connection.getHeaderField("error").equals("modelExistsDB")) {
+							logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Import Value Exist Error");
+							response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Import Value Exist Error:  The import value "+connection.getHeaderField("service")+" already exist on the PAP. "
+									+ "Please create a new import value.";
+						}else if (connection.getHeaderField("error").equals("policyExists")){
+							logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Policy Exist Error");
+							response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Policy Exist Error:  The Policy "+connection.getHeaderField("policyName")+" already exist on the PAP. "
+									+ "Please create a new policy or use the update API to modify the existing one.";
+						}
+					} else if (connection.getResponseCode() == 500 && connection.getHeaderField("error")!=null) {
+						if (connection.getHeaderField("error").equals("jpautils")){
+							logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Could not create JPAUtils instance on the PAP");
+							response = XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Could not create JPAUtils instance on the PAP";
+						} else if (connection.getHeaderField("error").equals("deleteDB")){
+							logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Failed to delete Policy from database.");
+							response = XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Failed to delete Policy from database.";
+						} else if (connection.getHeaderField("error").equals("deleteFile")){
+							logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot delete the policy file.");
+							response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot delete the policy file";
+						} else if (connection.getHeaderField("error").equals("groupUpdate")){
+							logger.error(connection.getHeaderField("message"));
+							response = connection.getHeaderField("message");
+						}else if (connection.getHeaderField("error").equals("unknown")){
+							logger.error(XACMLErrorConstants.ERROR_UNKNOWN + "Failed to delete the policy for an unknown reason.  Check the file system and other logs for further information.");
+							response = XACMLErrorConstants.ERROR_UNKNOWN + "Failed to delete the policy for an unknown reason.  Check the file system and other logs for further information.";
+						} else if (connection.getHeaderField("error").equals("deleteConfig")){
+							logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot delete the configuration or action body file in specified location");
+							response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot delete the configuration or action body file in specified location.";
+						}else if (connection.getHeaderField("error").equals("missing")){
+							logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Failed to create value in database because service does match a value in file");
+							response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Failed to create value in database because service does match a value in file";
+						}else if (connection.getHeaderField("error").equals("importDB")){
+							logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Database errors during policy engine import");
+							response = XACMLErrorConstants.ERROR_DATA_ISSUE + "Database errors during policy engine import";
+						}else if (connection.getHeaderField("error").equals("policyCopyError")){
+							logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + connection.getHeaderField("message"));
+							response = XACMLErrorConstants.ERROR_PROCESS_FLOW + connection.getHeaderField("message");
+						}else if (connection.getHeaderField("error").equals("addGroupError")){
+							logger.error(connection.getHeaderField("message"));
+							response = connection.getHeaderField("message");
+						}else if (connection.getHeaderField("error").equals("error")){
+							logger.error(XACMLErrorConstants.ERROR_UNKNOWN + "Could not create or update the policy for and unknown reason");
+							response = XACMLErrorConstants.ERROR_UNKNOWN + "Could not create or update the policy for and unknown reason";
+						}
+					} else {
+						logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "BAD REQUEST:  Error occured while attempting perform this operation.. the request may be incorrect.");
+						response = XACMLErrorConstants.ERROR_DATA_ISSUE + "BAD REQUEST:  Error occured while attempting perform this operation.. the request may be incorrect.";
+					}
+				} catch (IOException e) {
+					logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + e);
+					response = XACMLErrorConstants.ERROR_SYSTEM_ERROR + e;
+					throw new Exception(XACMLErrorConstants.ERROR_SYSTEM_ERROR +"ERROR in connecting to the PAP ", e);
+				} 
+				
+				if (junit){
+					response = "success";
+				}
+				return response;
+	
+			} else {
+				response = XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Unable to get valid response from PAP(s) " + paps;
+				return response;
+			}	
+		}
+	
+	}
+	
+	// change getSelectedURI method to receive requestID to be used to send to PAP on the GET request so PAP won't generate another
+	// private URI getSelectedURI(String gitPath, String clientScope){
+	private URI getSelectedURI(String gitPath, String clientScope, UUID requestID){
+		//Connect to the PAP
+		URI selectedURI = null;
+		HttpURLConnection connection = null;
+		String [] parameters = {"apiflag=uri", "gitPath="+gitPath};
+
+
+		// Checking for the available PDPs is done during the first Request and the List is going to have the connected PDP as first element.
+		// This makes it Real-Time to change the list depending on their availability.
+		if (paps == null || paps.isEmpty()) {
+		logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "PAPs List is Empty.");
+		try {
+			throw new Exception(XACMLErrorConstants.ERROR_DATA_ISSUE +"PAPs List is empty.");
+		} catch (Exception e) {
+			logger.error(e.getMessage());
+		}
+		}else {
+			int papsCount = 0;
+			boolean connected = false;
+			while (papsCount < paps.size()) {
+				try {
+					String fullURL = paps.get(0);
+					if (parameters != null && parameters.length > 0) {
+						String queryString = "";
+						for (String p : parameters) {
+							queryString += "&" + p;
+						}
+						fullURL += "?" + queryString.substring(1);
+					}
+	
+					URL url = new URL (fullURL);
+					
+					//Open the connection
+					connection = (HttpURLConnection)url.openConnection();
+					
+					// Setting Content-Type
+					connection.setRequestProperty("Content-Type",
+							"application/json");
+					
+					// Adding Authorization
+					connection.setRequestProperty("Authorization", "Basic "
+							+ encodingPAP.get(0));
+					
+					connection.setRequestProperty("Environment", environment);
+					connection.setRequestProperty("ClientScope", clientScope);
+					
+					//set the method and headers
+					connection.setRequestMethod("GET");
+					connection.setUseCaches(false);
+					connection.setInstanceFollowRedirects(false);
+					connection.setDoOutput(true);
+					connection.setDoInput(true);
+
+					// set requestID in header properties to be used to send to PAP on the GET request so PAP won't generate another
+					connection.setRequestProperty("X-ECOMP-RequestID", requestID.toString());
+	
+					//DO the connect
+					connection.connect();
+					responseCode = connection.getResponseCode();
+					// If Connected to PAP then break from the loop and continue with the Request 
+					if (connection.getResponseCode() > 0) {
+						connected = true;
+						break;
+
+					} else {
+						logger.debug(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "PAP connection Error");
+					}
+				} catch (Exception e) {
+					// This means that the PAP is not working 
+					logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "PAP connection Error : " + e);
+				}
+				papsCount++;
+			}
+	
+			if (connected) {
+				//Read the Response
+				logger.debug("connected to the PAP : " + paps.get(0));
+				logger.debug("--- Response: ---");
+				Map<String, List<String>> headers = connection.getHeaderFields();
+				for (String key : headers.keySet()) {
+					logger.debug("Header :" + key + "  Value: " + headers.get(key));
+				}
+				try {
+					if (connection.getResponseCode() == 200) {
+						// Check for successful creation of policy
+						String uri = connection.getHeaderField("selectedURI");
+						logger.debug("URI from Header: " + uri);
+						if (uri != null && !uri.equalsIgnoreCase("")) {
+							selectedURI = URI.create(uri);
+							return selectedURI;
+						} else {
+							logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "could not retrieve the gitPath from the PAP");
+						}
+					} else if (connection.getResponseCode() == 404) {
+						logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "response code of the URL is " 
+									+ connection.getResponseCode() + ". This indicates a problem with getting the gitPath from the PAP");
+					} else {
+						logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "BAD REQUEST:  Error occured while getting the gitPath from the PAP. The request may be incorrect.");
+					}
+				} catch (IOException e) {
+					logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
+					try {
+						throw new Exception(XACMLErrorConstants.ERROR_DATA_ISSUE +"ERROR in connecting to the PAP ", e);
+					} catch (Exception e1) {
+						logger.error(e1.getMessage());
+					}
+				} 
+	
+			} else {
+				logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Unable to get valid response from PAP(s) " + paps);
+				try {
+					throw new Exception(XACMLErrorConstants.ERROR_DATA_ISSUE +"ERROR in connecting to the PAP ");
+				} catch (Exception e) {
+					logger.error(e.getMessage());
+				}
+			}	
+		}
+		return selectedURI;
+						
+	}
+	
+	// Make a call to the PAP to get the gitPath
+	// change getGitPath method to receive requestID to be used to send to PAP on the GET request so PAP won't generate another
+	// private String getGitPath(String policyScope, String filePrefix, String policyName, String activeVersion, String clientScope){
+	private String getGitPath(String policyScope, String filePrefix, String policyName, String activeVersion, String clientScope, UUID requestID){
+
+		//Connect to the PAP
+		String gitPath = null;
+		HttpURLConnection connection = null;
+		String [] parameters = {"apiflag=gitPath", "policyScope="+policyScope, "filePrefix="+filePrefix, 
+									"policyName="+policyName, "activeVersion="+activeVersion};
+		
+
+		// Checking for the available PDPs is done during the first Request and the List is going to have the connected PDP as first element.
+		// This makes it Real-Time to change the list depending on their availability.
+		if (paps == null || paps.isEmpty()) {
+		logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "PAPs List is Empty.");
+		try {
+			throw new Exception(XACMLErrorConstants.ERROR_DATA_ISSUE +"PAPs List is empty.");
+		} catch (Exception e) {
+			logger.error(e.getMessage());
+		}
+		}else {
+			int papsCount = 0;
+			boolean connected = false;
+			while (papsCount < paps.size()) {
+				try {
+					String fullURL = paps.get(0);
+					if (parameters != null && parameters.length > 0) {
+						String queryString = "";
+						for (String p : parameters) {
+							queryString += "&" + p;
+						}
+						fullURL += "?" + queryString.substring(1);
+					}
+	
+					URL url = new URL (fullURL);
+					
+					//Open the connection
+					connection = (HttpURLConnection)url.openConnection();
+					
+					// Setting Content-Type
+					connection.setRequestProperty("Content-Type",
+							"application/json");
+					
+					// Adding Authorization
+					connection.setRequestProperty("Authorization", "Basic "
+							+ encodingPAP.get(0));
+					
+					connection.setRequestProperty("Environment", environment);
+					connection.setRequestProperty("ClientScope", clientScope);
+					
+					//set the method and headers
+					connection.setRequestMethod("GET");
+					connection.setUseCaches(false);
+					connection.setInstanceFollowRedirects(false);
+					connection.setDoOutput(true);
+					connection.setDoInput(true);
+
+					// set requestID in header properties to be used to send to PAP on the GET request so PAP won't generate another
+					connection.setRequestProperty("X-ECOMP-RequestID", requestID.toString());
+	
+					//DO the connect
+					connection.connect();
+	
+					// If Connected to PAP then break from the loop and continue with the Request 
+					if (connection.getResponseCode() > 0) {
+						connected = true;
+						break;
+
+					} else {
+						logger.debug(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "PAP connection Error");
+					}
+				} catch (Exception e) {
+					// This means that the PAP is not working 
+					logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "PAP connection Error : " + e);
+				}
+				papsCount++;
+			}
+	
+			if (connected) {
+				//Read the Response
+				logger.debug("connected to the PAP : " + paps.get(0));
+				logger.debug("--- Response: ---");
+				Map<String, List<String>> headers = connection.getHeaderFields();
+				for (String key : headers.keySet()) {
+					logger.debug("Header :" + key + "  Value: " + headers.get(key));
+				}
+				try {
+					if (connection.getResponseCode() == 200) {
+						// Check for successful creation of policy
+						gitPath = connection.getHeaderField("gitPath");
+						this.policyId = connection.getHeaderField("policyId");
+						this.description = connection.getHeaderField("description");
+						this.pushVersion = connection.getHeaderField("version");
+						String isValid = connection.getHeaderField("isValid");
+						this.isValid = Boolean.parseBoolean(isValid);
+						
+						logger.debug("GitPath from Header: " + gitPath);
+						logger.debug("policyId from Header: " + policyId);
+						logger.debug("description from Header: " + description);
+						logger.debug("version from Header: " + pushVersion);
+						logger.debug("isValid from Header: " + isValid);
+						
+						if (gitPath != null && !gitPath.equalsIgnoreCase("")) {
+							return gitPath;
+						} else {
+							logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "could not retrieve the gitPath from the PAP");
+						}
+					} else if (connection.getResponseCode() == 404) {
+						logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "response code of the URL is " 
+									+ connection.getResponseCode() + ". This indicates a problem with getting the gitPath from the PAP");
+					} else {
+						logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "BAD REQUEST:  Error occured while getting the gitPath from the PAP. The request may be incorrect.");
+					}
+				} catch (IOException e) {
+					logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
+					try {
+						throw new Exception(XACMLErrorConstants.ERROR_DATA_ISSUE +"ERROR in connecting to the PAP ", e);
+					} catch (Exception e1) {
+						logger.error(e1.getMessage());
+					}
+				} 
+	
+			} else {
+				logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Unable to get valid response from PAP(s) " + paps);
+				try {
+					throw new Exception(XACMLErrorConstants.ERROR_DATA_ISSUE +"ERROR in connecting to the PAP ");
+				} catch (Exception e) {
+					logger.error(e.getMessage());
+				}
+			}	
+		}
+		return gitPath;
+						
+	}
+
+	// change getActiveVersion method to receive requestID to be used to send to PAP on the GET request so PAP won't generate another
+//	private String getActiveVersion(String policyScope, String filePrefix, String policyName, String clientScope) {
+	private String getActiveVersion(String policyScope, String filePrefix, String policyName, String clientScope, UUID requestID) {		
+
+		//Connect to the PAP
+		String version = null;
+		HttpURLConnection connection = null;
+		String [] parameters = {"apiflag=version","policyScope="+policyScope, "filePrefix="+filePrefix, "policyName="+policyName};
+		
+
+		// Checking for the available PDPs is done during the first Request and the List is going to have the connected PDP as first element.
+		// This makes it Real-Time to change the list depending on their availability.
+		if (paps == null || paps.isEmpty()) {
+		logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "PAPs List is Empty.");
+		try {
+			throw new Exception(XACMLErrorConstants.ERROR_DATA_ISSUE +"PAPs List is empty.");
+		} catch (Exception e) {
+			logger.error(e.getMessage());
+		}
+		}else {
+			int papsCount = 0;
+			boolean connected = false;
+			while (papsCount < paps.size()) {
+				try {
+					String fullURL = paps.get(0);
+					if (parameters != null && parameters.length > 0) {
+						String queryString = "";
+						for (String p : parameters) {
+							queryString += "&" + p;
+						}
+						fullURL += "?" + queryString.substring(1);
+					}
+	
+					URL url = new URL (fullURL);
+					
+					//Open the connection
+					connection = (HttpURLConnection)url.openConnection();
+					
+					// Setting Content-Type
+					connection.setRequestProperty("Content-Type",
+							"application/json");
+					
+					// Adding Authorization
+					connection.setRequestProperty("Authorization", "Basic "
+							+ encodingPAP.get(0));
+					
+					connection.setRequestProperty("Environment", environment);
+					connection.setRequestProperty("ClientScope", clientScope);
+
+					
+					//set the method and headers
+					connection.setRequestMethod("GET");
+					connection.setUseCaches(false);
+					connection.setInstanceFollowRedirects(false);
+					connection.setDoOutput(true);
+					connection.setDoInput(true);
+
+					// set requestID in header properties to be used to send to PAP on the GET request so PAP won't generate another
+					connection.setRequestProperty("X-ECOMP-RequestID", requestID.toString());
+	
+					//DO the connect
+					connection.connect();
+	
+					// If Connected to PAP then break from the loop and continue with the Request 
+					if (connection.getResponseCode() > 0) {
+						connected = true;
+						break;
+
+					} else {
+						logger.debug(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "PAP connection Error");
+					}
+				} catch (Exception e) {
+					// This means that the PAP is not working 
+					logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "PAP connection Error : " + e);
+				}
+				papsCount++;
+			}
+	
+			if (connected) {
+				//Read the Response
+				logger.debug("connected to the PAP : " + paps.get(0));
+				logger.debug("--- Response: ---");
+				Map<String, List<String>> headers = connection.getHeaderFields();
+				for (String key : headers.keySet()) {
+					logger.debug("Header :" + key + "  Value: " + headers.get(key));
+				}
+				try {
+					if (connection.getResponseCode() == 200) {
+						// Check for successful creation of policy
+						version = connection.getHeaderField("version");
+						logger.debug("ActiveVersion from the Header: " + version);
+					} else if (connection.getResponseCode() == 403) {
+						logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "response code of the URL is " 
+								+ connection.getResponseCode() + ". PEP is not Authorized for making this Request!! \n Contact Administrator for this Scope. ");
+						version = "pe100";
+					} else if (connection.getResponseCode() == 404) {
+						logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "response code of the URL is " 
+									+ connection.getResponseCode() + ". This indicates a problem with getting the version from the PAP");
+						version = "pe300";
+					} else {
+						logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "BAD REQUEST:  Error occured while getting the version from the PAP. The request may be incorrect.");
+					}
+				} catch (IOException e) {
+					logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
+					try {
+						throw new Exception(XACMLErrorConstants.ERROR_DATA_ISSUE +"ERROR in connecting to the PAP ", e);
+					} catch (Exception e1) {
+						logger.error(e1.getMessage());
+					}
+				} 
+	
+			} else {
+				logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Unable to get valid response from PAP(s) " + paps);
+				try {
+					throw new Exception(XACMLErrorConstants.ERROR_DATA_ISSUE +"ERROR in connecting to the PAP ");
+				} catch (Exception e) {
+					logger.error(e.getMessage());
+				}
+			}	
+		}
+		return version;
+	}
+	
+	// Validation for json inputs
+	public static boolean isJSONValid(String data) {
+		try {
+			new JSONObject(data);
+			InputStream stream = new ByteArrayInputStream(data.getBytes(StandardCharsets.UTF_8));
+			JsonReader jsonReader = Json.createReader(stream);
+			logger.debug("Json Value is: " + jsonReader.read().toString() );
+		} catch (Exception e) {
+			return false;
+		}
+		return true;
+	}
+	
+	/*
+	 * Rotate the PDP list upon WEBsocket Failures
+	 */
+	public static void rotateList() {
+		Collections.rotate(pdps, -1);
+		Collections.rotate(encoding, -1);
+		/* not required for 1510. //TODO uncomment when PAP API has been implemented
+		 * This Broke the PyPDP :( Since there is no PAP LIST yet. 
+		Collections.rotate(paps,  -1);
+		Collections.rotate(encodingPAP, -1);
+		*/
+	}
+
+	/*
+	 * Get the latest PDP
+	 */
+	public static String getPDPURL() {
+		return pdps.get(0);
+	}
+	
+	/*
+	 * Get the latest PAP
+	 */
+	public static String getPAPURL() {
+		return paps.get(0);
+	}
+	
+	private JsonObject stringToJsonObject(String value) throws Exception{
+		JsonReader jsonReader = Json.createReader(new StringReader(value));
+		JsonObject object = jsonReader.readObject();
+		jsonReader.close();
+		return object;
+	}
+	
+	private String getJsonResponseString() {
+		String jsonString = "{\"Response\":[{\"Status\":{\"StatusCode\":{\"Value\":\"urn:oasis:names:tc:xacml:1.0:status:ok\"}},"
+				+ "\"AssociatedAdvice\":[{\"AttributeAssignment\":[{\"Category\":\"urn:oasis:names:tc:xacml:3.0:attribute-category:resource\","
+				+ "\"Issuer\":\"\",\"AttributeId\":\"type\",\"Value\":\"Configuration\",\"DataType\":\"http://www.w3.org/2001/XMLSchema#string\"},"
+				+ "{\"Category\":\"urn:oasis:names:tc:xacml:3.0:attribute-category:resource\",\"Issuer\":\"\",\"AttributeId\":\"URLID\",\"Value\":"
+				+ "\"$URL/Config/JunitTest.Config_testing.1.json\",\"DataType\":\"http://www.w3.org/2001/XMLSchema#anyURI\"},{\"Category\":"
+				+ "\"urn:oasis:names:tc:xacml:3.0:attribute-category:resource\",\"Issuer\":\"\",\"AttributeId\":\"PolicyName\",\"Value\":"
+				+ "\"JunitTest.Config_testing.1.xml\",\"DataType\":\"http://www.w3.org/2001/XMLSchema#string\"},{\"Category\":"
+				+ "\"urn:oasis:names:tc:xacml:3.0:attribute-category:resource\",\"Issuer\":\"\",\"AttributeId\":\"VersionNumber\",\"Value\":"
+				+ "\"1\",\"DataType\":\"http://www.w3.org/2001/XMLSchema#string\"},{\"Category\":\"urn:oasis:names:tc:xacml:3.0:attribute-category:resource\","
+				+ "\"Issuer\":\"\",\"AttributeId\":\"matching:ECOMPName\",\"Value\":\"test\",\"DataType\":\"http://www.w3.org/2001/XMLSchema#string\"},"
+				+ "{\"Category\":\"urn:oasis:names:tc:xacml:3.0:attribute-category:resource\",\"Issuer\":\"\",\"AttributeId\":\"matching:ConfigName\","
+				+ "\"Value\":\"TestName\",\"DataType\":\"http://www.w3.org/2001/XMLSchema#string\"},{\"Category\":"
+				+ "\"urn:oasis:names:tc:xacml:3.0:attribute-category:resource\",\"Issuer\":\"\",\"AttributeId\":\"matching:service\","
+				+ "\"Value\":\"ControllerServiceOpendcaeCapsuleServiceInstance\",\"DataType\":\"http://www.w3.org/2001/XMLSchema#string\"},"
+				+ "{\"Category\":\"urn:oasis:names:tc:xacml:3.0:attribute-category:resource\",\"Issuer\":\"\",\"AttributeId\":\"matching:uuid\","
+				+ "\"Value\":\"TestUUID\",\"DataType\":\"http://www.w3.org/2001/XMLSchema#string\"},{\"Category\":"
+				+ "\"urn:oasis:names:tc:xacml:3.0:attribute-category:resource\",\"Issuer\":\"\",\"AttributeId\":\"matching:Location\","
+				+ "\"Value\":\"Edge\",\"DataType\":\"http://www.w3.org/2001/XMLSchema#string\"},{\"Category\":"
+				+ "\"urn:oasis:names:tc:xacml:3.0:attribute-category:resource\",\"Issuer\":\"\",\"AttributeId\":\"Priority\",\"Value\":\"1\",\"DataType\":"
+				+ "\"http://www.w3.org/2001/XMLSchema#string\"}],\"Id\":\"MSID\"}],\"Decision\":\"Permit\"}]}";
+		
+		return jsonString;
+	}
+	
+	public PolicyChangeResponse policyEngineImport(ImportParameters importParameters) throws Exception {
+		return policyEngineImport(importParameters, userName,  pass);
+	}
+	
+	public PolicyChangeResponse policyEngineImport(ImportParameters importParameters, String userID, String passcode) throws Exception {
+		StdPolicyChangeResponse response = new StdPolicyChangeResponse();
+		String resource= "policyEngineImport";
+		if(!checkPermissions(userID, passcode, resource)){
+			logger.error(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			response.setResponseMessage(XACMLErrorConstants.ERROR_PERMISSIONS + "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to:" + resource);
+			response.setResponseCode(401);
+			return response;
+		}
+		InputStream targetStream = null;
+		if(importParameters.getServiceName()!=null && importParameters.getVersion()!=null && importParameters.getServiceType()!=null){
+			// This is Config Class Policy. 
+			if(importParameters.getFilePath()!=null){
+				File input = new File(importParameters.getFilePath());
+				if (input.getName().endsWith(".xmi") ||  input.getName().endsWith(".zip")){
+				    try {
+				    	if (input.exists()){
+				    		targetStream = new FileInputStream(input);
+				    	}else {
+							logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "File provided in ImportParameters does not exists.");
+							response.setResponseMessage(XACMLErrorConstants.ERROR_DATA_ISSUE + "File provided in ImportParameters does not exist.");		
+							return response;
+				    	}
+					} catch (Exception e) {
+						logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error reading in File");
+						response.setResponseMessage(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error in reading in the file provided");
+					}	
+				}else{
+					logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect File Data type.");
+					response.setResponseMessage(XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect File Type Given. Please use a file of type .xmi or .zip.");		
+					return response;
+				}
+				String[] parameters = new String[] {"importService=" + importParameters.getServiceType(), "serviceName=" 
+						+ importParameters.getServiceName(), "fileName=" + input.getName(), "version=" + importParameters.getVersion()};
+				String responseMessage =  (String) callPAP(targetStream, parameters, importParameters.getRequestID(), "importMS");
+				response.setResponseMessage(responseMessage);
+			}else{
+				logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Missing required ImportParameters value.");
+				response.setResponseMessage(XACMLErrorConstants.ERROR_DATA_ISSUE + "Missing required ImportParameters value.");		
+			}
+		}else{
+			logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Missing required ImportParameters value.");
+			response.setResponseMessage(XACMLErrorConstants.ERROR_DATA_ISSUE + "Missing required ImportParameters value.");		
+		}	
+		return response;
+	}
+	
+	/*
+	 * Give userID, Passcode and the Resoruce they are requesting for. 
+	 */
+	private boolean checkPermissions(String userID, String passcode, String resource){
+		Boolean result = false;
+		if(pyPDPClientFile!=null){
+			// Backward compatible pyPDP called us. So validate the user names and scope.
+			Path clientPath = Paths.get(pyPDPClientFile);
+			if (Files.notExists(clientPath)) {
+				result = false;
+			}else if(clientPath.toString().endsWith(".properties")) {
+				try {
+					HashMap<String, ArrayList<String>> clientMap = readProps(clientPath);
+					if (clientMap.containsKey(userID) && clientMap.get(userID).get(0).equals(passcode)) {
+						result= true;
+					}
+				} catch (Exception e) {
+					result = false;
+				}
+			}
+		}else{
+			//Allowing Every Client who ever don't have access for AAF and Backup Client file
+			result = true;
+		}
+		return result;
+	}
+	
+	private HashMap<String, ArrayList<String>> readProps(Path clientPath) throws Exception{
+		InputStream in;
+		Properties clientProp = new Properties();
+		try {
+			in = new FileInputStream(clientPath.toFile());
+			clientProp.load(in);
+		} catch (IOException e) {
+			logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + e);
+			throw new Exception(XACMLErrorConstants.ERROR_SYSTEM_ERROR +"Cannot Load the Properties file", e);
+		}
+		// Read the Properties and Load the Clients and their scopes.
+		HashMap<String, ArrayList<String>>clientMap = new HashMap<String, ArrayList<String>>();
+		// 
+		for (Object propKey : clientProp.keySet()) {
+			String clientID = (String)propKey; 
+			String clientValue = clientProp.getProperty(clientID);
+			if (clientValue != null) {
+				if (clientValue.contains(",")) {
+					ArrayList<String> clientValues = new ArrayList<String>(Arrays.asList(clientValue.split("\\s*,\\s*")));
+					if(clientValues.get(0)!=null || clientValues.get(1)!=null || clientValues.get(0).isEmpty() || clientValues.get(1).isEmpty()){
+						clientMap.put(clientID, clientValues);
+					}
+				} 
+			}
+		}
+		if (clientMap == null || clientMap.isEmpty()) {
+			logger.debug(XACMLErrorConstants.ERROR_PERMISSIONS + "No Clients ID , Client Key and Scopes are available. Cannot serve any Clients !!");
+			throw new Exception("Empty Client file");
+		}
+		return clientMap;
+	}
+	
+	protected boolean isNumeric(String str)
+	{
+		for (char c : str.toCharArray())
+		{
+			if (!Character.isDigit(c)) return false;
+		}
+		return true;
+	} 
+	
+	private String ConvertDate(Date date){
+		String strDate = null;
+		if (date!=null)
+		{
+			SimpleDateFormat dateformatJava = new SimpleDateFormat("dd-MM-yyyy");
+			strDate = dateformatJava.format(date);
+		}
+		
+		return strDate;
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdPolicyResponse.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdPolicyResponse.java
new file mode 100644
index 0000000..eed40ba
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdPolicyResponse.java
@@ -0,0 +1,98 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+
+package org.openecomp.policy.std;
+
+import java.util.Map;
+
+import org.openecomp.policy.api.PolicyResponse;
+import org.openecomp.policy.api.PolicyResponseStatus;
+
+/**
+ * PolicyResponse Implementation class. 
+ * 
+ * @version 0.1 
+ *
+ */
+public class StdPolicyResponse implements PolicyResponse{
+	private PolicyResponseStatus policyResponseStatus; 
+	private Map<String,String> actionAdvised;
+	private Map<String,String> actionTaken;
+	private Map<String,String> requestAttributes;
+	private String policyResponseMessage; 
+	
+	@Override
+	public PolicyResponseStatus getPolicyResponseStatus() {
+		return policyResponseStatus;
+	}
+
+	@Override
+	public Map<String, String> getActionAdvised() {
+		return actionAdvised;
+	}
+
+	@Override
+	public Map<String, String> getActionTaken() {
+		return actionTaken;
+	}
+
+	@Override
+	public Map<String, String> getRequestAttributes() {
+		return requestAttributes;
+	}
+
+	@Override
+	public String getPolicyResponseMessage() {
+		return policyResponseMessage;
+	}
+
+	public void setPolicyResponseStatus(PolicyResponseStatus policyResponseStatus) {
+		this.policyResponseStatus = policyResponseStatus;
+	}
+
+	public void setActionAdvised(Map<String, String> actionAdvised) {
+		this.actionAdvised = actionAdvised;
+	}
+
+	public void setActionTaken(Map<String, String> actionTaken) {
+		this.actionTaken = actionTaken;
+	}
+
+	public void setRequestAttributes(Map<String, String> requestAttributes) {
+		this.requestAttributes = requestAttributes;
+	}
+
+	public void setPolicyResponseMessage(String policyResponseMessage) {
+		this.policyResponseMessage = policyResponseMessage;
+	}
+	
+	public void setPolicyResponseStatus(String policyResponseMessage, PolicyResponseStatus policyResponseStatus) {
+		this.policyResponseMessage = policyResponseMessage;
+		this.policyResponseStatus = policyResponseStatus;
+	}
+	
+	@Override
+	public String toString() {
+		return "PolicyResponse [ policyResponseStatus=" + policyResponseStatus + ", policyResponseMessage=" + policyResponseMessage + ", " +
+				""
+				+ "]";
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdStatus.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdStatus.java
new file mode 100644
index 0000000..a7d22b7
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/StdStatus.java
@@ -0,0 +1,235 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+
+package org.openecomp.policy.std;
+
+import java.util.Map;
+import java.util.Properties;
+
+import javax.json.JsonObject;
+
+import org.openecomp.policy.api.DecisionResponse;
+import org.openecomp.policy.api.PolicyConfig;
+import org.openecomp.policy.api.PolicyConfigStatus;
+import org.openecomp.policy.api.PolicyDecision;
+import org.openecomp.policy.api.PolicyResponse;
+import org.openecomp.policy.api.PolicyResponseStatus;
+import org.openecomp.policy.api.PolicyType;
+import org.w3c.dom.Document;
+
+public class StdStatus extends StdPolicyResponse implements PolicyConfig, PolicyResponse, DecisionResponse{
+	private PolicyType policyType;
+	private Properties properties;
+	private JsonObject jsonObject;
+	private Document document;
+	private String other;
+	private PolicyConfigStatus policyConfigStatus;
+	private String configStatus;
+	private PolicyResponseStatus policyResponseStatus; 
+	private Map<String,String> actionAdvised;
+	private Map<String,String> actionTaken;
+	private Map<String,String> requestAttributes;
+	private String policyResponseMessage; 
+	private String policyName;
+	private String policyVersion;
+	private Map<String,String> matchingConditions;
+	private Map<String,String> responseAttributes;
+	private PolicyDecision policyDecision;
+	private String details;
+	
+	public void setStatus(String message, PolicyResponseStatus policyResponseStatus, PolicyConfigStatus policyConfigStatus) {
+		this.configStatus = message; 
+		this.policyResponseMessage = message;
+		this.policyResponseStatus = policyResponseStatus;
+		this.policyConfigStatus = policyConfigStatus;
+	}
+	@Override
+	public PolicyResponseStatus getPolicyResponseStatus() {
+		return policyResponseStatus;
+	}
+
+	@Override
+	public Map<String, String> getActionAdvised() {
+		return actionAdvised;
+	}
+	
+	@Override
+	public Map<String, String> getActionTaken() {
+		return actionTaken;
+	}
+
+	@Override
+	public Map<String, String> getRequestAttributes() {
+		return requestAttributes;
+	}
+
+	@Override
+	public String getPolicyResponseMessage() {
+		return policyResponseMessage;
+	}
+
+	public void setPolicyResponseStatus(PolicyResponseStatus policyResponseStatus) {
+		this.policyResponseStatus = policyResponseStatus;
+	}
+	
+	public void setActionAdvised(Map<String, String> actionAdvised) {
+		this.actionAdvised = actionAdvised;
+	}
+
+	public void setActionTaken(Map<String, String> actionTaken) {
+		this.actionTaken = actionTaken;
+	}
+
+	public void setRequestAttributes(Map<String, String> requestAttributes) {
+		this.requestAttributes = requestAttributes;
+	}
+
+	public void setPolicyResponseMessage(String policyResponseMessage) {
+		this.policyResponseMessage = policyResponseMessage;
+	}
+	
+	public void setPolicyResponseStatus(String policyResponseMessage, PolicyResponseStatus policyResponseStatus) {
+		this.policyResponseMessage = policyResponseMessage;
+		this.policyResponseStatus = policyResponseStatus;
+	}
+	
+	@Override
+	public PolicyType getType() {
+		return policyType;
+	}
+
+	@Override
+	public Properties toProperties() {
+		return properties;
+	}
+
+	@Override
+	public JsonObject toJSON() {
+		return jsonObject;
+	}
+
+	@Override
+	public Document toXML() {
+		return document;
+	}
+
+	@Override
+	public PolicyConfigStatus getPolicyConfigStatus() {
+		return policyConfigStatus;
+	}
+
+	@Override
+	public String getPolicyConfigMessage() {
+		return configStatus;
+	}
+	
+	@Override
+	public String getPolicyName() {
+		if(policyName!=null && policyName.contains(".xml")){
+			return (policyName.substring(0, policyName.substring(0, policyName.lastIndexOf(".")).lastIndexOf(".")));
+		}
+		return policyName;
+	}
+	
+	@Override
+	public String getPolicyVersion() {
+		return policyVersion;
+	}
+	
+	@Override
+	public Map<String,String> getMatchingConditions(){
+		return matchingConditions;
+	}
+	
+	@Override
+	public Map<String,String> getResponseAttributes(){
+		return responseAttributes;
+	}
+
+	public void setPolicyType(PolicyType policyType) {
+		this.policyType = policyType;
+	}
+
+	public void setProperties(Properties properties) {
+		this.properties = properties;
+	}
+
+	public void setJsonObject(JsonObject jsonObject) {
+		this.jsonObject = jsonObject;
+	}
+
+	public void setDocument(Document document) {
+		this.document = document;
+	}
+	
+	public void setConfigStatus(String configStatus) {
+		this.configStatus = configStatus;
+	}
+	
+	public void setPolicyName(String policyName) {
+		this.policyName = policyName;
+	}
+	
+	public void setPolicyVersion(String policyVersion) {
+		this.policyVersion = policyVersion;
+	}
+	
+	public void setMatchingConditions(Map<String,String> matchingConditions){
+		this.matchingConditions = matchingConditions;
+	}
+	
+	public void setResposneAttributes(Map<String,String> responseAttributes){
+		this.responseAttributes = responseAttributes;
+	}
+	
+	public void setPolicyConfigStatus(PolicyConfigStatus policyConfigStatus) {
+		this.policyConfigStatus = policyConfigStatus;
+	}
+	
+	public void setPolicyConfigStatus(String configStatus, PolicyConfigStatus policyConfigStatus) {
+		this.policyConfigStatus = policyConfigStatus;
+		this.configStatus = configStatus;
+	}
+	
+	@Override
+	public String toOther() {
+		return other;
+	}
+	
+	public void setOther(String other) {
+		this.other = other;
+	}
+	
+	public PolicyDecision getDecision() {
+		return policyDecision;
+	}
+	public void setDecision(PolicyDecision policyDecision) {
+		this.policyDecision = policyDecision;
+	}
+	
+	public void setDetails(String details){
+		this.details = details;
+	}
+	
+	public String getDetails(){
+		return details;
+	}
+}
diff --git a/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/package-info.java b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/package-info.java
new file mode 100644
index 0000000..a10f347
--- /dev/null
+++ b/PolicyEngineAPI/src/main/java/org/openecomp/policy/std/package-info.java
@@ -0,0 +1,27 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std;
+/**
+ * Provides standard implementations of the interfaces from the {@link org.openecomp.policy.api} package.
+ *
+ * @version 0.3 
+ *
+ */
diff --git a/PolicyEngineAPI/src/main/resources/log4j.properties b/PolicyEngineAPI/src/main/resources/log4j.properties
new file mode 100644
index 0000000..83a68a7
--- /dev/null
+++ b/PolicyEngineAPI/src/main/resources/log4j.properties
@@ -0,0 +1,56 @@
+###
+# ============LICENSE_START=======================================================
+# PolicyEngineAPI
+# ================================================================================
+# 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=========================================================
+###
+
+#
+# Use this properties for debugging and development.
+#
+#
+# Set root logger level to DEBUG and its only appender to A1.
+log4j.rootLogger=INFO, FILE
+
+# A1 is set to be a DailyRollingFileAppender.
+log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
+
+# Set the name of the file
+log4j.appender.FILE.File=policyEngineLog.log
+
+# Set the immediate flush to true (default)
+log4j.appender.FILE.ImmediateFlush=true
+
+# Set the threshold to debug mode
+log4j.appender.FILE.Threshold=debug
+
+# Set the append to false, should not overwrite
+log4j.appender.FILE.Append=true
+
+# Set the DatePattern
+log4j.appender.FILE.DatePattern='.'yyyy-MM-dd
+
+# A1 uses PatternLayout.
+log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
+log4j.appender.FILE.layout.ConversionPattern=%d{yyyy_MM_dd_HH_mm_ss_SSS} [%t] %-5p %l- %m%n
+
+# For AstraGW feature. 
+log4j.appender.astra=org.apache.log4j.FileAppender
+log4j.appender.astra.File=astragw.log
+log4j.appender.astra.layout=org.apache.log4j.PatternLayout
+log4j.appender.astra.layout.ConversionPattern=%d{yyyy_MM_dd_HH_mm_ss_SSS} [%t] %-5p %l- %m%n
+log4j.category.astraLogger=TRACE, astra
+log4j.additivity.astraLogger=false
diff --git a/PolicyEngineAPI/src/main/resources/logback.xml b/PolicyEngineAPI/src/main/resources/logback.xml
new file mode 100644
index 0000000..dd36a50
--- /dev/null
+++ b/PolicyEngineAPI/src/main/resources/logback.xml
@@ -0,0 +1,252 @@
+<!--
+  ============LICENSE_START=======================================================
+  PolicyEngineAPI
+  ================================================================================
+  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=========================================================
+  -->
+
+<configuration scan="true" scanPeriod="3 seconds" debug="true">
+  <!--<jmxConfigurator /> -->
+  <!-- directory path for all other type logs -->
+  <property name="logDir" value="logs" />
+  
+  <!-- directory path for debugging type logs -->
+  <property name="debugDir" value="logs" />
+  
+  <!--  specify the component name 
+    <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC"  -->
+  <property name="componentName" value="Policy"></property>
+  <property name="subComponentName" value="PolicyEngineAPI"></property>
+  
+  <!--  log file names -->
+  <property name="errorLogName" value="error" />
+  <property name="metricsLogName" value="metrics" />
+  <property name="auditLogName" value="audit" />
+  <property name="debugLogName" value="debug" />
+  
+  
+      <!-- modified time stamp format -->
+ 
+   <!--    A U D I T 
+           <property name="defaultAuditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}||%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" />
+           <property name="defaultAuditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{requestId}|%X{serviceInstanceId}|%t|%X{serverName}|%X{serviceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{instanceUuid}|%p|%X{severity}|%X{serverIpAddress}|%X{ElapsedTime}|%X{server}|%X{clientIpAddress}|%c||%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" />
+   -->
+   <property name="defaultAuditPattern" value="%X{TransactionBeginTimestamp}|%X{TransactionEndTimestamp}|%X{requestId}|%X{serviceInstanceId}|%t|%X{serverName}|%X{serviceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{instanceUuid}|%p|%X{severity}|%X{serverIpAddress}|%X{TransactionElapsedTime}|%X{server}|%X{clientIpAddress}|%c||%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" />
+  
+  
+  
+   <!--    M E T R I C 
+          <property name="defaultMetricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}||%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" />
+   -->
+   <property name="defaultMetricPattern" value="%X{MetricBeginTimestamp}|%X{MetricEndTimestamp}|%X{requestId}|%X{serviceInstanceId}|%t|%X{serverName}|%X{serviceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%p|%X{severity}|%X{serverIpAddress}|%X{MetricElapsedTime}|%X{server}|%X{clientIpAddress}|%c||%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" />
+  
+     
+   
+   <!--   E R R O R
+          <property name="defaultErrorPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ErrorCategory}|%X{ErrorCode}|%X{ErrorDesciption}|%msg%n" />
+   -->
+   <property name="defaultErrorPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%X{requestId}|%t|%X{serviceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ErrorCategory}|%X{ErrorCode}|%X{ErrorDesciption}|%msg%n" />
+  
+  
+  
+   <!--   D E B U G
+          <property name="debugLoggerPatternOld" value="%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|[%caller{3}]|%msg%n" />
+          <property name="debugLoggerPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}||%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" /> -->
+   -->
+   <property name="debugLoggerPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%X{RequestId}|%msg%n" />  
+   
+ 
+   
+   <!--   D E F A U L T 
+          <property name="defaultPatternOld" value="%d{MM/dd-HH:mm:ss.SSS}|%logger|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Timer}|%msg%n" />
+          <property name="defaultPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}||%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" />
+   -->
+   <property name="defaultPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{requestId}|%X{serviceInstanceId}|%t|%X{serverName}|%X{serviceName}|%X{instanceUuid}|%p|%X{severity}|%X{serverIpAddress}|%X{server}|%X{clientIpAddress}|%c||%msg%n" />
+   
+ 
+ 
+   <!--   P A T H
+          <property name="logDirectory" value="${catalina.base}/${logDir}/${componentName}/${subComponentName}" />
+          <property name="debugLogDirectory" value="${catalina.base}/${debugDir}/${componentName}/${subComponentName}" />   
+   -->   
+   <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
+   <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" />
+   
+
+ 
+ 
+  <!-- Example evaluator filter applied against console appender -->
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <encoder>
+      <pattern>${defaultPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <!-- ============================================================================ -->
+  <!-- EELF Appenders -->
+  <!-- ============================================================================ -->
+
+  <!-- The EELFAppender is used to record events to the general application 
+    log -->
+        
+  <!-- EELF Audit Appender. This appender is used to record audit engine 
+    related logging events. The audit logger and appender are specializations 
+    of the EELF application root logger and appender. This can be used to segregate 
+    Policy engine events from other components, or it can be eliminated to record 
+    these events as part of the application root log. -->
+    
+  <appender name="EELFAudit"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/${auditLogName}.log</file>
+    <rollingPolicy
+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+      <fileNamePattern>${logDirectory}/${auditLogName}.%i.log.zip
+      </fileNamePattern>
+      <minIndex>1</minIndex>
+      <maxIndex>9</maxIndex>
+    </rollingPolicy>
+    <triggeringPolicy
+      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+      <maxFileSize>5MB</maxFileSize>
+    </triggeringPolicy>
+    <encoder>
+         <pattern>${defaultAuditPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>256</queueSize>
+    <appender-ref ref="EELFAudit" />
+  </appender>
+
+
+
+
+<appender name="EELFMetrics"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/${metricsLogName}.log</file>
+    <rollingPolicy
+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+      <fileNamePattern>${logDirectory}/${metricsLogName}.%i.log.zip
+      </fileNamePattern>
+      <minIndex>1</minIndex>
+      <maxIndex>9</maxIndex>
+    </rollingPolicy>
+    <triggeringPolicy
+      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+      <maxFileSize>5MB</maxFileSize>
+    </triggeringPolicy>
+    <encoder>
+      <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - 
+        %msg%n"</pattern> -->
+      <pattern>${defaultMetricPattern}</pattern>
+    </encoder>
+  </appender>
+  
+  <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>256</queueSize>
+    <appender-ref ref="EELFMetrics"/>
+  </appender>
+
+
+
+   
+  <appender name="EELFError"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/${errorLogName}.log</file>
+    <rollingPolicy
+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+      <fileNamePattern>${logDirectory}/${errorLogName}.%i.log.zip
+      </fileNamePattern>
+      <minIndex>1</minIndex>
+      <maxIndex>9</maxIndex>
+    </rollingPolicy>
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+     <level>ERROR</level>
+     </filter>
+    <triggeringPolicy
+      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+      <maxFileSize>5MB</maxFileSize>
+    </triggeringPolicy>
+    <encoder>
+      <pattern>${defaultErrorPattern}</pattern>
+    </encoder>
+  </appender>
+  
+  <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>256</queueSize>
+    <appender-ref ref="EELFError"/>
+  </appender>
+
+
+  
+  <appender name="EELFDebug"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${debugLogDirectory}/${debugLogName}.log</file>
+    <rollingPolicy
+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+      <fileNamePattern>${debugLogDirectory}/${debugLogName}.%i.log.zip
+      </fileNamePattern>
+      <minIndex>1</minIndex>
+      <maxIndex>9</maxIndex>
+    </rollingPolicy>
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+     <level>INFO</level>
+     </filter>
+    <triggeringPolicy
+      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+      <maxFileSize>5MB</maxFileSize>
+    </triggeringPolicy>
+    <encoder>
+      <pattern>${debugLoggerPattern}</pattern>
+    </encoder>
+  </appender>
+  
+  <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>256</queueSize>
+    <appender-ref ref="EELFDebug" />
+    <includeCallerData>true</includeCallerData>
+  </appender>
+ 
+  
+  <!-- ============================================================================ -->
+  <!--  EELF loggers -->
+  <!-- ============================================================================ -->
+ 
+  <logger name="com.att.eelf.audit" level="info" additivity="false">
+    <appender-ref ref="asyncEELFAudit" />
+  </logger>
+  
+  <logger name="com.att.eelf.metrics" level="info" additivity="false">
+        <appender-ref ref="asyncEELFMetrics" />
+  </logger>
+ 
+    <logger name="com.att.eelf.error" level="error" additivity="false">
+  <appender-ref ref="asyncEELFError" />
+  </logger>
+  
+   <logger name="com.att.eelf.debug" level="info" additivity="false">
+        <appender-ref ref="asyncEELFDebug" />
+  </logger>
+  
+  
+  
+  <root level="INFO">
+        <appender-ref ref="asyncEELFDebug" />
+        <appender-ref ref="asyncEELFError" />
+  </root>
+
+</configuration>
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/AutoClientEndTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/AutoClientEndTest.java
new file mode 100644
index 0000000..af36d6d
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/AutoClientEndTest.java
@@ -0,0 +1,312 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std.test;
+
+import javax.websocket.Session;
+
+import org.junit.*;
+import org.mockito.Mockito;
+import org.openecomp.policy.api.NotificationHandler;
+import org.openecomp.policy.api.NotificationScheme;
+import org.openecomp.policy.std.AutoClientEnd;
+import org.openecomp.policy.std.StdPolicyEngine;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>AutoClientEndTest</code> contains tests for the class <code>{@link AutoClientEnd}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class AutoClientEndTest {
+	/**
+	 * Run the AutoClientEnd() constructor test.
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testAutoClientEnd_1()
+		throws Exception {
+		AutoClientEnd result = new AutoClientEnd();
+		assertNotNull(result);
+		// add additional test code here
+	}
+
+	/**
+	 * Run the boolean getStatus() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetStatus_1()
+		throws Exception {
+
+		boolean result = AutoClientEnd.getStatus();
+
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the String getURL() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetURL_1()
+		throws Exception {
+
+		String result = AutoClientEnd.getURL();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientEnd
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the void onClose(Session) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testOnClose()
+		throws Exception {
+		AutoClientEnd fixture = new AutoClientEnd();
+		Session mockSession = Mockito.mock(Session.class);
+		fixture.onClose(mockSession);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientEnd
+	}
+
+
+	/**
+	 * Run the void onError(Session,Throwable) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testOnError()
+		throws Exception {
+		AutoClientEnd fixture = new AutoClientEnd();
+		Session mockSession = Mockito.mock(Session.class);
+		Throwable e = new Throwable();
+
+		fixture.onError(mockSession, e);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientEnd
+	}
+
+	/**
+	 * Run the void onMessage(String,Session) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testOnMessage()
+		throws Exception {
+		AutoClientEnd fixture = new AutoClientEnd();
+		Session mockSession = Mockito.mock(Session.class);
+		String message = "";
+		//Session session = null;
+
+		fixture.onMessage(message, mockSession);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientEnd
+	}
+
+
+	/**
+	 * Run the void onOpen(Session) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testOnOpen()
+		throws Exception {
+		AutoClientEnd fixture = new AutoClientEnd();
+		Session mockSession = Mockito.mock(Session.class);
+
+		fixture.onOpen(mockSession);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientEnd
+	}
+
+	/**
+	 * Run the void setAuto(NotificationScheme,NotificationHandler) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetAuto()
+		throws Exception {
+		NotificationScheme scheme = NotificationScheme.AUTO_ALL_NOTIFICATIONS;
+		NotificationHandler handler = null;
+
+		AutoClientEnd.setAuto(scheme, handler);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.ExceptionInInitializerError
+		//       at org.apache.log4j.Logger.getLogger(Logger.java:104)
+		//       at org.openecomp.policy.std.AutoClientEnd.<clinit>(AutoClientEnd.java:39)
+	}
+
+	/**
+	 * Run the void setScheme(NotificationScheme) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetScheme()
+		throws Exception {
+		
+		NotificationScheme scheme = NotificationScheme.AUTO_ALL_NOTIFICATIONS;
+		AutoClientEnd.setScheme(scheme);
+
+	}
+
+	/**
+	 * Run the void start(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testStart()
+		throws Exception {
+		String url = "http://test.com";
+
+		AutoClientEnd.start(url);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientEnd
+	}
+
+
+	/**
+	 * Run the void start(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testStart_2()
+		throws Exception {
+		String url = null;
+
+		AutoClientEnd.start(url);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientEnd
+	}
+
+	/**
+	 * Run the void stop() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testStop_1()
+		throws Exception {
+
+		AutoClientEnd.stop();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientEnd
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add set up code here
+		StdPolicyEngine policyEngine = new StdPolicyEngine("Test/config_pass.properties");
+		
+		NotificationHandler handler = policyEngine.getNotificationHandler();
+		AutoClientEnd.setAuto(NotificationScheme.AUTO_ALL_NOTIFICATIONS, handler);
+		AutoClientEnd.start("http://testurl.com");
+		
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(AutoClientEndTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/AutoClientUEBTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/AutoClientUEBTest.java
new file mode 100644
index 0000000..f676005
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/AutoClientUEBTest.java
@@ -0,0 +1,569 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std.test;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.junit.*;
+import org.openecomp.policy.api.NotificationHandler;
+import org.openecomp.policy.api.NotificationScheme;
+import org.openecomp.policy.std.AutoClientEnd;
+import org.openecomp.policy.std.AutoClientUEB;
+import org.openecomp.policy.std.StdPolicyEngine;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>AutoClientUEBTest</code> contains tests for the class <code>{@link AutoClientUEB}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class AutoClientUEBTest {
+	/**
+	 * Run the AutoClientUEB(String,List<String>) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testAutoClientUEB_1()
+		throws Exception {
+		String url = "";
+		List<String> uebURLList = new LinkedList();
+
+		AutoClientUEB result = new AutoClientUEB(url, uebURLList);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.ExceptionInInitializerError
+		//       at org.apache.log4j.Logger.getLogger(Logger.java:104)
+		//       at org.openecomp.policy.std.AutoClientUEB.<clinit>(AutoClientUEB.java:39)
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the String getNotficationType() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetNotficationType_1()
+		throws Exception {
+
+		String result = AutoClientUEB.getNotficationType();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+		assertNull(result);
+	}
+
+	/**
+	 * Run the boolean getStatus() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetStatus_1()
+		throws Exception {
+
+		boolean result = AutoClientUEB.getStatus();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+		assertFalse(result);
+	}
+
+	/**
+	 * Run the String getURL() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetURL_1()
+		throws Exception {
+
+		String result = AutoClientUEB.getURL();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the boolean isRunning() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testIsRunning_1()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		boolean result = fixture.isRunning();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+		assertTrue(result);
+	}
+
+	/**
+	 * Run the void run() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRun_1()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		fixture.run();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void run() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRun_2()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		fixture.run();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void run() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRun_3()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		fixture.run();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void run() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRun_4()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		fixture.run();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void run() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRun_5()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		fixture.run();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void run() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRun_6()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		fixture.run();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void run() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRun_7()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		fixture.run();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void run() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRun_8()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		fixture.run();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void run() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRun_9()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		fixture.run();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void run() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRun_10()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		fixture.run();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void run() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRun_11()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		fixture.run();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void run() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRun_12()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		fixture.run();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void run() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRun_13()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		fixture.run();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void run() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRun_14()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		fixture.run();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void run() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRun_15()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		fixture.run();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void run() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRun_16()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		fixture.run();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void setAuto(NotificationScheme,NotificationHandler) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetAuto_1()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+		NotificationScheme scheme = NotificationScheme.AUTO_ALL_NOTIFICATIONS;
+		NotificationHandler handler = null;
+
+		fixture.setAuto(scheme, handler);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void setScheme(NotificationScheme) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetScheme_1()
+		throws Exception {
+		NotificationScheme scheme = NotificationScheme.AUTO_ALL_NOTIFICATIONS;
+
+		AutoClientUEB.setScheme(scheme);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Run the void terminate() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testTerminate_1()
+		throws Exception {
+		AutoClientUEB fixture = new AutoClientUEB("", new LinkedList());
+		fixture.isRunning = true;
+
+		fixture.terminate();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.AutoClientUEB
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add set up code here
+		StdPolicyEngine policyEngine = new StdPolicyEngine("Test/config_pass.properties");
+		List<String> urlList = new LinkedList<String>();
+		urlList.add("test2.com");
+		AutoClientUEB client = new AutoClientUEB("test.com", urlList);
+		NotificationHandler handler = null;
+		//AutoClientEnd.setAuto(NotificationScheme.AUTO_ALL_NOTIFICATIONS, handler);
+		client.setAuto(NotificationScheme.AUTO_ALL_NOTIFICATIONS, handler);
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(AutoClientUEBTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/Handler.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/Handler.java
new file mode 100644
index 0000000..e1e398e
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/Handler.java
@@ -0,0 +1,120 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std.test;
+
+import java.util.Collection;
+
+import org.openecomp.policy.api.LoadedPolicy;
+import org.openecomp.policy.api.NotificationHandler;
+import org.openecomp.policy.api.NotificationType;
+import org.openecomp.policy.api.PDPNotification;
+import org.openecomp.policy.api.PolicyConfig;
+import org.openecomp.policy.api.PolicyConfigException;
+import org.openecomp.policy.api.PolicyConfigStatus;
+import org.openecomp.policy.api.PolicyEngine;
+import org.openecomp.policy.api.PolicyEngineException;
+import org.openecomp.policy.api.RemovedPolicy;
+
+public class Handler implements NotificationHandler{
+	
+	@Override
+	public void notificationReceived(PDPNotification notification) {
+		System.out.println("Notification Received...");
+		System.out.println(notification.getNotificationType());
+		if(notification.getNotificationType().equals(NotificationType.REMOVE)){                                                                                             
+			System.out.println("Removed Policies: \n");
+			for(RemovedPolicy removedPolicy: notification.getRemovedPolicies()){
+				System.out.println(removedPolicy.getPolicyName());
+				System.out.println(removedPolicy.getVersionNo());
+			}
+		}else if(notification.getNotificationType().equals(NotificationType.UPDATE)){
+			System.out.println("Updated Policies: \n");
+			for(LoadedPolicy updatedPolicy: notification.getLoadedPolicies()){
+				System.out.println("policyName : " + updatedPolicy.getPolicyName());
+				System.out.println("policyVersion :" + updatedPolicy.getVersionNo());
+				if(updatedPolicy.getPolicyName().contains(".Config_")){
+					System.out.println("Matches: " + updatedPolicy.getMatches());
+					System.out.println("UpdateType: "+ updatedPolicy.getUpdateType());
+					// Checking the Name is correct or not. 
+					try {
+						PolicyEngine policyEngine = new PolicyEngine("config.properties");
+						Collection<PolicyConfig> policyConfigs = policyEngine.getConfigByPolicyName(updatedPolicy.getPolicyName());
+						for(PolicyConfig policyConfig: policyConfigs){
+							if(policyConfig.getPolicyConfigStatus().equals(PolicyConfigStatus.CONFIG_RETRIEVED)){
+								System.out.println("Policy Retrieved with this Name notified. ");
+							}else{
+								System.err.println("\n\n Fail to retrieve policy !!!!\n\n");
+							}
+							// Also Test this case. 
+							if(policyConfig.getPolicyName().equals(updatedPolicy.getPolicyName())){
+								System.out.println("Policy Name is good. ");
+							}else{
+								System.err.println("\n\n Fail to check Name \n\n");
+							}
+						}
+					} catch (PolicyEngineException e) {
+						e.printStackTrace();
+					} catch (PolicyConfigException e) {
+						e.printStackTrace();
+					}
+				}
+			}
+		}else if(notification.getNotificationType().equals(NotificationType.BOTH)){
+			System.out.println("Both updated and Removed Notification: \n");
+			System.out.println("Removed Policies: \n");
+			for(RemovedPolicy removedPolicy: notification.getRemovedPolicies()){
+				System.out.println(removedPolicy.getPolicyName());
+				System.out.println(removedPolicy.getVersionNo());
+			}
+			System.out.println("Updated Policies: \n");
+			for(LoadedPolicy updatedPolicy: notification.getLoadedPolicies()){
+				System.out.println("policyName : " + updatedPolicy.getPolicyName());
+				System.out.println("policyVersion :" + updatedPolicy.getVersionNo());
+				System.out.println("Matches: " + updatedPolicy.getMatches());
+				System.out.println("UpdateType: "+ updatedPolicy.getUpdateType());
+				// Checking the Name is correct or not. 
+				try {
+					PolicyEngine policyEngine = new PolicyEngine("config.properties");
+					Collection<PolicyConfig> policyConfigs = policyEngine.getConfigByPolicyName(updatedPolicy.getPolicyName());
+					for(PolicyConfig policyConfig: policyConfigs){
+						if(policyConfig.getPolicyConfigStatus().equals(PolicyConfigStatus.CONFIG_RETRIEVED)){
+							System.out.println("Policy Retrieved with this Name notified. ");
+						}else{
+							System.err.println("\n\n Fail to retrieve policy !!!!\n\n");
+						}
+						// Also Test this case. 
+						if(policyConfig.getPolicyName().equals(updatedPolicy.getPolicyName())){
+							System.out.println("Policy Name is good. ");
+						}else{
+							System.err.println("\n\n Fail to check Name \n\n");
+						}
+					}
+				} catch (PolicyEngineException e) {
+					e.printStackTrace();
+				} catch (PolicyConfigException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+	}
+
+
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/ManualClientEndTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/ManualClientEndTest.java
new file mode 100644
index 0000000..21cb14f
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/ManualClientEndTest.java
@@ -0,0 +1,195 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std.test;
+
+import javax.websocket.Session;
+
+import org.junit.*;
+import org.mockito.Mockito;
+import org.openecomp.policy.api.NotificationScheme;
+import org.openecomp.policy.api.PDPNotification;
+import org.openecomp.policy.std.ManualClientEnd;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>ManualClientEndTest</code> contains tests for the class <code>{@link ManualClientEnd}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class ManualClientEndTest {
+	/**
+	 * Run the ManualClientEnd() constructor test.
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testManualClientEnd_1()
+		throws Exception {
+		ManualClientEnd result = new ManualClientEnd();
+		assertNotNull(result);
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void onClose(Session) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testOnClose()
+		throws Exception {
+		ManualClientEnd fixture = Mockito.mock(ManualClientEnd.class);
+		Session mockSession = Mockito.mock(Session.class);
+
+		fixture.onClose(mockSession);
+
+	}
+
+	/**
+	 * Run the void onError(Session,Throwable) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testOnError()
+		throws Exception {
+		ManualClientEnd fixture = Mockito.mock(ManualClientEnd.class);
+		Session mockSession = Mockito.mock(Session.class);
+		Throwable e = new Throwable();
+
+		fixture.onError(mockSession, e);
+	}
+
+	/**
+	 * Run the void onMessage(String,Session) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testOnMessage()
+		throws Exception {
+		ManualClientEnd fixture = new ManualClientEnd();
+		ManualClientEnd mockclient = Mockito.mock(ManualClientEnd.class);
+		String message = "";
+		Session mockSession = Mockito.mock(Session.class);
+		
+		Mockito.doNothing().when(mockclient).onMessage(message,mockSession);
+		mockclient.onMessage(message,mockSession);
+	}
+
+	/**
+	 * Run the void onOpen(Session) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testOnOpen()
+		throws Exception {
+		ManualClientEnd fixture = Mockito.mock(ManualClientEnd.class);
+		Session mockSession = Mockito.mock(Session.class);
+
+		fixture.onOpen(mockSession);
+
+	}
+
+	/**
+	 * Run the PDPNotification result(NotificationScheme) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testResult_1()
+		throws Exception {
+		NotificationScheme scheme = NotificationScheme.AUTO_ALL_NOTIFICATIONS;
+
+		PDPNotification result = ManualClientEnd.result(scheme);
+
+		assertNull(result);
+	}
+
+
+	/**
+	 * Run the void start(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStart_1()
+		throws Exception {
+		String url = "";
+
+		ManualClientEnd.start(url);
+
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(ManualClientEndTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/ManualClientEndUEBTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/ManualClientEndUEBTest.java
new file mode 100644
index 0000000..fedcc99
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/ManualClientEndUEBTest.java
@@ -0,0 +1,164 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std.test;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.junit.*;
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+import org.openecomp.policy.api.NotificationScheme;
+import org.openecomp.policy.api.PDPNotification;
+import org.openecomp.policy.std.ManualClientEndUEB;
+import org.openecomp.policy.std.NotificationUnMarshal;
+import org.openecomp.policy.std.StdPDPNotification;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>ManualClientEndUEBTest</code> contains tests for the class <code>{@link ManualClientEndUEB}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class ManualClientEndUEBTest {
+	
+	String resultJson = "{'test':'testing'}";
+	String json = "{\"test\":\"testing\"}";
+	StdPDPNotification notification = new StdPDPNotification();
+	ManualClientEndUEB mockManualClient = null;
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		String url = "http://test.com";
+		String uniqueID = "test";
+		List<String> uebURLList = new LinkedList<String>();
+		uebURLList.add(url);
+				
+	}
+	/**
+	 * Run the ManualClientEndUEB() constructor test.
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testManualClientEndUEB_1()
+		throws Exception {
+		ManualClientEndUEB result = new ManualClientEndUEB();
+		assertNotNull(result);
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void createTopic(String,String,List<String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testCreateTopic_1()
+		throws Exception {
+		String url = "http://test.com";
+		String uniqueID = "test";
+		List<String> uebURLList = new LinkedList<String>();
+		uebURLList.add(url);
+
+		ManualClientEndUEB.createTopic(url, uniqueID, uebURLList);
+
+	}
+
+	/**
+	 * Run the PDPNotification result(NotificationScheme) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testResult_1()
+		throws Exception {
+		NotificationScheme scheme = NotificationScheme.AUTO_ALL_NOTIFICATIONS;
+
+		PDPNotification result = ManualClientEndUEB.result(scheme);
+
+		assertNull(result);
+	}
+
+
+	/**
+	 * Run the void start(String,List<String>,String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testStart_1()
+		throws Exception {
+		String url = "http://test.com";
+		List<String> uebURLList = new LinkedList<String>();
+		String uniqueID = "test";
+		uebURLList.add(url);
+
+		ManualClientEndUEB.start(url, uebURLList, uniqueID);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.ManualClientEndUEB
+	}
+
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(ManualClientEndUEBTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/MatchStoreTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/MatchStoreTest.java
new file mode 100644
index 0000000..917e9d5
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/MatchStoreTest.java
@@ -0,0 +1,774 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std.test;
+
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Map;
+
+import org.junit.*;
+import org.openecomp.policy.api.PDPNotification;
+import org.openecomp.policy.std.MatchStore;
+import org.openecomp.policy.std.Matches;
+import org.openecomp.policy.std.StdPDPNotification;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>MatchStoreTest</code> contains tests for the class <code>{@link MatchStore}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class MatchStoreTest {
+	/**
+	 * Run the MatchStore() constructor test.
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testMatchStore_1()
+		throws Exception {
+		MatchStore result = new MatchStore();
+		assertNotNull(result);
+		// add additional test code here
+	}
+
+	/**
+	 * Run the PDPNotification checkMatch(PDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testCheckMatch_1()
+		throws Exception {
+		PDPNotification oldNotification = null;
+
+		PDPNotification result = MatchStore.checkMatch(oldNotification);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+		assertNull(result);
+	}
+
+	/**
+	 * Run the PDPNotification checkMatch(PDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testCheckMatch_2()
+		throws Exception {
+		PDPNotification oldNotification = new StdPDPNotification();
+
+		PDPNotification result = MatchStore.checkMatch(oldNotification);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the PDPNotification checkMatch(PDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testCheckMatch_3()
+		throws Exception {
+		PDPNotification oldNotification = new StdPDPNotification();
+
+		PDPNotification result = MatchStore.checkMatch(oldNotification);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the PDPNotification checkMatch(PDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testCheckMatch_4()
+		throws Exception {
+		PDPNotification oldNotification = new StdPDPNotification();
+
+		PDPNotification result = MatchStore.checkMatch(oldNotification);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the PDPNotification checkMatch(PDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testCheckMatch_5()
+		throws Exception {
+		PDPNotification oldNotification = new StdPDPNotification();
+
+		PDPNotification result = MatchStore.checkMatch(oldNotification);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the PDPNotification checkMatch(PDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testCheckMatch_6()
+		throws Exception {
+		PDPNotification oldNotification = new StdPDPNotification();
+
+		PDPNotification result = MatchStore.checkMatch(oldNotification);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the PDPNotification checkMatch(PDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testCheckMatch_7()
+		throws Exception {
+		PDPNotification oldNotification = new StdPDPNotification();
+
+		PDPNotification result = MatchStore.checkMatch(oldNotification);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the PDPNotification checkMatch(PDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testCheckMatch_8()
+		throws Exception {
+		PDPNotification oldNotification = new StdPDPNotification();
+
+		PDPNotification result = MatchStore.checkMatch(oldNotification);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the PDPNotification checkMatch(PDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testCheckMatch_9()
+		throws Exception {
+		PDPNotification oldNotification = new StdPDPNotification();
+
+		PDPNotification result = MatchStore.checkMatch(oldNotification);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the PDPNotification checkMatch(PDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testCheckMatch_10()
+		throws Exception {
+		PDPNotification oldNotification = new StdPDPNotification();
+
+		PDPNotification result = MatchStore.checkMatch(oldNotification);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the PDPNotification checkMatch(PDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testCheckMatch_11()
+		throws Exception {
+		PDPNotification oldNotification = new StdPDPNotification();
+
+		PDPNotification result = MatchStore.checkMatch(oldNotification);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the PDPNotification checkMatch(PDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testCheckMatch_12()
+		throws Exception {
+		PDPNotification oldNotification = new StdPDPNotification();
+
+		PDPNotification result = MatchStore.checkMatch(oldNotification);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the PDPNotification checkMatch(PDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testCheckMatch_13()
+		throws Exception {
+		PDPNotification oldNotification = new StdPDPNotification();
+
+		PDPNotification result = MatchStore.checkMatch(oldNotification);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the PDPNotification checkMatch(PDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testCheckMatch_14()
+		throws Exception {
+		PDPNotification oldNotification = new StdPDPNotification();
+
+		PDPNotification result = MatchStore.checkMatch(oldNotification);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the PDPNotification checkMatch(PDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testCheckMatch_15()
+		throws Exception {
+		PDPNotification oldNotification = new StdPDPNotification();
+
+		PDPNotification result = MatchStore.checkMatch(oldNotification);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the PDPNotification checkMatch(PDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testCheckMatch_16()
+		throws Exception {
+		PDPNotification oldNotification = new StdPDPNotification();
+
+		PDPNotification result = MatchStore.checkMatch(oldNotification);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the HashSet<Matches> getMatchStore() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetMatchStore_1()
+		throws Exception {
+
+		HashSet<Matches> result = MatchStore.getMatchStore();
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.ExceptionInInitializerError
+		//       at org.apache.log4j.Logger.getLogger(Logger.java:104)
+		//       at org.openecomp.policy.std.MatchStore.<clinit>(MatchStore.java:15)
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the void storeMatch(Matches) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStoreMatch_1()
+		throws Exception {
+		Matches newMatch = new Matches();
+		newMatch.setConfigName("");
+		newMatch.setEcompName("");
+
+		MatchStore.storeMatch(newMatch);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+	}
+
+	/**
+	 * Run the void storeMatch(Matches) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStoreMatch_2()
+		throws Exception {
+		Matches newMatch = new Matches();
+		newMatch.setConfigName("");
+		newMatch.setEcompName("");
+
+		MatchStore.storeMatch(newMatch);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+	}
+
+	/**
+	 * Run the void storeMatch(Matches) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStoreMatch_3()
+		throws Exception {
+		Matches newMatch = new Matches();
+		newMatch.setConfigName("");
+		newMatch.setEcompName("");
+
+		MatchStore.storeMatch(newMatch);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+	}
+
+	/**
+	 * Run the void storeMatch(Matches) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStoreMatch_4()
+		throws Exception {
+		Matches newMatch = new Matches();
+		newMatch.setConfigAttributes(new Hashtable());
+		newMatch.setConfigName("");
+		newMatch.setEcompName("");
+
+		MatchStore.storeMatch(newMatch);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+	}
+
+	/**
+	 * Run the void storeMatch(Matches) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStoreMatch_5()
+		throws Exception {
+		Matches newMatch = new Matches();
+		newMatch.setConfigAttributes(new Hashtable());
+		newMatch.setConfigName("");
+		newMatch.setEcompName("");
+
+		MatchStore.storeMatch(newMatch);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+	}
+
+	/**
+	 * Run the void storeMatch(Matches) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStoreMatch_6()
+		throws Exception {
+		Matches newMatch = new Matches();
+		newMatch.setConfigAttributes(new Hashtable());
+		newMatch.setConfigName("");
+		newMatch.setEcompName("");
+
+		MatchStore.storeMatch(newMatch);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+	}
+
+	/**
+	 * Run the void storeMatch(Matches) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStoreMatch_7()
+		throws Exception {
+		Matches newMatch = new Matches();
+		newMatch.setConfigAttributes(new Hashtable());
+		newMatch.setConfigName("");
+		newMatch.setEcompName("");
+
+		MatchStore.storeMatch(newMatch);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+	}
+
+	/**
+	 * Run the void storeMatch(Matches) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStoreMatch_8()
+		throws Exception {
+		Matches newMatch = new Matches();
+		newMatch.setConfigName("");
+		newMatch.setEcompName("");
+
+		MatchStore.storeMatch(newMatch);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+	}
+
+	/**
+	 * Run the void storeMatch(Matches) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStoreMatch_9()
+		throws Exception {
+		Matches newMatch = new Matches();
+		newMatch.setEcompName("");
+
+		MatchStore.storeMatch(newMatch);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+	}
+
+	/**
+	 * Run the void storeMatch(Matches) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStoreMatch_10()
+		throws Exception {
+		Matches newMatch = new Matches();
+		newMatch.setConfigAttributes(new Hashtable());
+		newMatch.setConfigName("");
+		newMatch.setEcompName("");
+
+		MatchStore.storeMatch(newMatch);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+	}
+
+	/**
+	 * Run the void storeMatch(Matches) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStoreMatch_11()
+		throws Exception {
+		Matches newMatch = new Matches();
+		newMatch.setConfigAttributes(new Hashtable());
+		newMatch.setConfigName("");
+		newMatch.setEcompName("");
+
+		MatchStore.storeMatch(newMatch);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+	}
+
+	/**
+	 * Run the void storeMatch(Matches) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStoreMatch_12()
+		throws Exception {
+		Matches newMatch = new Matches();
+		newMatch.setConfigAttributes(new Hashtable());
+		newMatch.setConfigName("");
+		newMatch.setEcompName("");
+
+		MatchStore.storeMatch(newMatch);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+	}
+
+	/**
+	 * Run the void storeMatch(Matches) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStoreMatch_13()
+		throws Exception {
+		Matches newMatch = new Matches();
+		newMatch.setConfigAttributes(new Hashtable());
+		newMatch.setConfigName("");
+		newMatch.setEcompName("");
+
+		MatchStore.storeMatch(newMatch);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+	}
+
+	/**
+	 * Run the void storeMatch(Matches) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStoreMatch_14()
+		throws Exception {
+		Matches newMatch = new Matches();
+		newMatch.setConfigAttributes(new Hashtable());
+		newMatch.setConfigName("");
+		newMatch.setEcompName("");
+
+		MatchStore.storeMatch(newMatch);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+	}
+
+	/**
+	 * Run the void storeMatch(Matches) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStoreMatch_15()
+		throws Exception {
+		Matches newMatch = new Matches();
+
+		MatchStore.storeMatch(newMatch);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+	}
+
+	/**
+	 * Run the void storeMatch(Matches) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStoreMatch_16()
+		throws Exception {
+		Matches newMatch = null;
+
+		MatchStore.storeMatch(newMatch);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.MatchStore
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(MatchStoreTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/MatchesTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/MatchesTest.java
new file mode 100644
index 0000000..735d125
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/MatchesTest.java
@@ -0,0 +1,216 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std.test;
+
+import java.util.Hashtable;
+import java.util.Map;
+
+import org.junit.*;
+import org.openecomp.policy.std.Matches;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>MatchesTest</code> contains tests for the class <code>{@link Matches}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class MatchesTest {
+	/**
+	 * Run the Matches() constructor test.
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testMatches_1()
+		throws Exception {
+		Matches result = new Matches();
+		assertNotNull(result);
+		// add additional test code here
+	}
+
+	/**
+	 * Run the Map<String, String> getConfigAttributes() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetConfigAttributes_1()
+		throws Exception {
+		Matches fixture = new Matches();
+		fixture.setEcompName("");
+		fixture.setConfigAttributes(new Hashtable());
+		fixture.setConfigName("");
+
+		Map<String, String> result = fixture.getConfigAttributes();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the String getConfigName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetConfigName_1()
+		throws Exception {
+		Matches fixture = new Matches();
+		fixture.setEcompName("");
+		fixture.setConfigAttributes(new Hashtable());
+		fixture.setConfigName("");
+
+		String result = fixture.getConfigName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getEcompName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetEcompName_1()
+		throws Exception {
+		Matches fixture = new Matches();
+		fixture.setEcompName("");
+		fixture.setConfigAttributes(new Hashtable());
+		fixture.setConfigName("");
+
+		String result = fixture.getEcompName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the void setConfigAttributes(Map<String,String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetConfigAttributes_1()
+		throws Exception {
+		Matches fixture = new Matches();
+		fixture.setEcompName("");
+		fixture.setConfigAttributes(new Hashtable());
+		fixture.setConfigName("");
+		Map<String, String> configAttributes = new Hashtable();
+
+		fixture.setConfigAttributes(configAttributes);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setConfigName(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetConfigName_1()
+		throws Exception {
+		Matches fixture = new Matches();
+		fixture.setEcompName("");
+		fixture.setConfigAttributes(new Hashtable());
+		fixture.setConfigName("");
+		String configName = "";
+
+		fixture.setConfigName(configName);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setEcompName(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetEcompName_1()
+		throws Exception {
+		Matches fixture = new Matches();
+		fixture.setEcompName("");
+		fixture.setConfigAttributes(new Hashtable());
+		fixture.setConfigName("");
+		String ecompName = "";
+
+		fixture.setEcompName(ecompName);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(MatchesTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/NotificationStoreTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/NotificationStoreTest.java
new file mode 100644
index 0000000..d54c4f4
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/NotificationStoreTest.java
@@ -0,0 +1,359 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std.test;
+
+import org.junit.*;
+import org.openecomp.policy.std.NotificationStore;
+import org.openecomp.policy.std.StdPDPNotification;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>NotificationStoreTest</code> contains tests for the class <code>{@link NotificationStore}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class NotificationStoreTest {
+	/**
+	 * Run the NotificationStore() constructor test.
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testNotificationStore_1()
+		throws Exception {
+		NotificationStore result = new NotificationStore();
+		assertNotNull(result);
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void recordNotification(StdPDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRecordNotification_1()
+		throws Exception {
+		StdPDPNotification notification = new StdPDPNotification();
+
+		NotificationStore.recordNotification(notification);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void recordNotification(StdPDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRecordNotification_2()
+		throws Exception {
+		StdPDPNotification notification = new StdPDPNotification();
+
+		NotificationStore.recordNotification(notification);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void recordNotification(StdPDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRecordNotification_3()
+		throws Exception {
+		StdPDPNotification notification = new StdPDPNotification();
+
+		NotificationStore.recordNotification(notification);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void recordNotification(StdPDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRecordNotification_4()
+		throws Exception {
+		StdPDPNotification notification = new StdPDPNotification();
+
+		NotificationStore.recordNotification(notification);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void recordNotification(StdPDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRecordNotification_5()
+		throws Exception {
+		StdPDPNotification notification = new StdPDPNotification();
+
+		NotificationStore.recordNotification(notification);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void recordNotification(StdPDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRecordNotification_6()
+		throws Exception {
+		StdPDPNotification notification = new StdPDPNotification();
+
+		NotificationStore.recordNotification(notification);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void recordNotification(StdPDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRecordNotification_7()
+		throws Exception {
+		StdPDPNotification notification = new StdPDPNotification();
+
+		NotificationStore.recordNotification(notification);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void recordNotification(StdPDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRecordNotification_8()
+		throws Exception {
+		StdPDPNotification notification = new StdPDPNotification();
+
+		NotificationStore.recordNotification(notification);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void recordNotification(StdPDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRecordNotification_9()
+		throws Exception {
+		StdPDPNotification notification = new StdPDPNotification();
+
+		NotificationStore.recordNotification(notification);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void recordNotification(StdPDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRecordNotification_10()
+		throws Exception {
+		StdPDPNotification notification = new StdPDPNotification();
+
+		NotificationStore.recordNotification(notification);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void recordNotification(StdPDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRecordNotification_11()
+		throws Exception {
+		StdPDPNotification notification = new StdPDPNotification();
+
+		NotificationStore.recordNotification(notification);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void recordNotification(StdPDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRecordNotification_12()
+		throws Exception {
+		StdPDPNotification notification = new StdPDPNotification();
+
+		NotificationStore.recordNotification(notification);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void recordNotification(StdPDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRecordNotification_13()
+		throws Exception {
+		StdPDPNotification notification = new StdPDPNotification();
+
+		NotificationStore.recordNotification(notification);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void recordNotification(StdPDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRecordNotification_14()
+		throws Exception {
+		StdPDPNotification notification = new StdPDPNotification();
+
+		NotificationStore.recordNotification(notification);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void recordNotification(StdPDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRecordNotification_15()
+		throws Exception {
+		StdPDPNotification notification = new StdPDPNotification();
+
+		NotificationStore.recordNotification(notification);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void recordNotification(StdPDPNotification) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testRecordNotification_16()
+		throws Exception {
+		StdPDPNotification notification = null;
+
+		NotificationStore.recordNotification(notification);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(NotificationStoreTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/NotificationUnMarshalTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/NotificationUnMarshalTest.java
new file mode 100644
index 0000000..7a93a7b
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/NotificationUnMarshalTest.java
@@ -0,0 +1,256 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std.test;
+
+import org.junit.*;
+import org.openecomp.policy.std.NotificationUnMarshal;
+import org.openecomp.policy.std.StdPDPNotification;
+
+import static org.junit.Assert.*;
+
+import com.fasterxml.jackson.databind.JsonMappingException;
+
+/**
+ * The class <code>NotificationUnMarshalTest</code> contains tests for the class <code>{@link NotificationUnMarshal}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class NotificationUnMarshalTest {
+	/**
+	 * Run the StdPDPNotification notificationJSON(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test(expected = com.fasterxml.jackson.databind.JsonMappingException.class)
+	public void testNotificationJSON_1()
+		throws Exception {
+		String json = "";
+
+		StdPDPNotification result = NotificationUnMarshal.notificationJSON(json);
+
+		// add additional test code here
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the StdPDPNotification notificationJSON(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test(expected = com.fasterxml.jackson.databind.JsonMappingException.class)
+	public void testNotificationJSON_2()
+		throws Exception {
+		String json = "";
+
+		StdPDPNotification result = NotificationUnMarshal.notificationJSON(json);
+
+		// add additional test code here
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the StdPDPNotification notificationJSON(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test(expected = com.fasterxml.jackson.databind.JsonMappingException.class)
+	public void testNotificationJSON_3()
+		throws Exception {
+		String json = "";
+
+		StdPDPNotification result = NotificationUnMarshal.notificationJSON(json);
+
+		// add additional test code here
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the StdPDPNotification notificationJSON(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test(expected = com.fasterxml.jackson.databind.JsonMappingException.class)
+	public void testNotificationJSON_4()
+		throws Exception {
+		String json = "";
+
+		StdPDPNotification result = NotificationUnMarshal.notificationJSON(json);
+
+		// add additional test code here
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the StdPDPNotification notificationJSON(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test(expected = com.fasterxml.jackson.databind.JsonMappingException.class)
+	public void testNotificationJSON_5()
+		throws Exception {
+		String json = "";
+
+		StdPDPNotification result = NotificationUnMarshal.notificationJSON(json);
+
+		// add additional test code here
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the StdPDPNotification notificationJSON(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test(expected = com.fasterxml.jackson.databind.JsonMappingException.class)
+	public void testNotificationJSON_6()
+		throws Exception {
+		String json = "";
+
+		StdPDPNotification result = NotificationUnMarshal.notificationJSON(json);
+
+		// add additional test code here
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the StdPDPNotification notificationJSON(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test(expected = com.fasterxml.jackson.databind.JsonMappingException.class)
+	public void testNotificationJSON_7()
+		throws Exception {
+		String json = "";
+
+		StdPDPNotification result = NotificationUnMarshal.notificationJSON(json);
+
+		// add additional test code here
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the StdPDPNotification notificationJSON(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test(expected = com.fasterxml.jackson.databind.JsonMappingException.class)
+	public void testNotificationJSON_8()
+		throws Exception {
+		String json = "";
+
+		StdPDPNotification result = NotificationUnMarshal.notificationJSON(json);
+
+		// add additional test code here
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the StdPDPNotification notificationJSON(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test(expected = com.fasterxml.jackson.databind.JsonMappingException.class)
+	public void testNotificationJSON_9()
+		throws Exception {
+		String json = "";
+
+		StdPDPNotification result = NotificationUnMarshal.notificationJSON(json);
+
+		// add additional test code here
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the StdPDPNotification notificationJSON(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test(expected = com.fasterxml.jackson.databind.JsonMappingException.class)
+	public void testNotificationJSON_10()
+		throws Exception {
+		String json = "";
+
+		StdPDPNotification result = NotificationUnMarshal.notificationJSON(json);
+
+		// add additional test code here
+		assertNotNull(result);
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(NotificationUnMarshalTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdLoadedPolicyTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdLoadedPolicyTest.java
new file mode 100644
index 0000000..ce6d361
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdLoadedPolicyTest.java
@@ -0,0 +1,314 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std.test;
+
+import java.util.Hashtable;
+import java.util.Map;
+
+import org.junit.*;
+import org.openecomp.policy.api.UpdateType;
+import org.openecomp.policy.std.StdLoadedPolicy;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>StdLoadedPolicyTest</code> contains tests for the class <code>{@link StdLoadedPolicy}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class StdLoadedPolicyTest {
+	/**
+	 * Run the StdLoadedPolicy() constructor test.
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testStdLoadedPolicy_1()
+		throws Exception {
+		StdLoadedPolicy result = new StdLoadedPolicy();
+		assertNotNull(result);
+		// add additional test code here
+	}
+
+	/**
+	 * Run the Map<String, String> getMatches() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetMatches_1()
+		throws Exception {
+		StdLoadedPolicy fixture = new StdLoadedPolicy();
+		fixture.setPolicyName("");
+		fixture.setVersionNo("");
+		fixture.setUpdateType(UpdateType.NEW);
+		fixture.setMatches(new Hashtable());
+
+		Map<String, String> result = fixture.getMatches();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the String getPolicyName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyName_1()
+		throws Exception {
+		StdLoadedPolicy fixture = new StdLoadedPolicy();
+		fixture.setPolicyName("");
+		fixture.setVersionNo("");
+		fixture.setUpdateType(UpdateType.NEW);
+		fixture.setMatches(new Hashtable());
+
+		String result = fixture.getPolicyName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getPolicyName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyName_2()
+		throws Exception {
+		StdLoadedPolicy fixture = new StdLoadedPolicy();
+		fixture.setPolicyName((String) null);
+		fixture.setVersionNo("");
+		fixture.setUpdateType(UpdateType.NEW);
+		fixture.setMatches(new Hashtable());
+
+		String result = fixture.getPolicyName();
+
+		// add additional test code here
+		assertEquals(null, result);
+	}
+
+	/**
+	 * Run the String getPolicyName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyName_3()
+		throws Exception {
+		StdLoadedPolicy fixture = new StdLoadedPolicy();
+		fixture.setPolicyName("");
+		fixture.setVersionNo("");
+		fixture.setUpdateType(UpdateType.NEW);
+		fixture.setMatches(new Hashtable());
+
+		String result = fixture.getPolicyName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the UpdateType getUpdateType() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetUpdateType_1()
+		throws Exception {
+		StdLoadedPolicy fixture = new StdLoadedPolicy();
+		fixture.setPolicyName("");
+		fixture.setVersionNo("");
+		fixture.setUpdateType(UpdateType.NEW);
+		fixture.setMatches(new Hashtable());
+
+		UpdateType result = fixture.getUpdateType();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("new", result.toString());
+		assertEquals("NEW", result.name());
+		assertEquals(1, result.ordinal());
+	}
+
+	/**
+	 * Run the String getVersionNo() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetVersionNo_1()
+		throws Exception {
+		StdLoadedPolicy fixture = new StdLoadedPolicy();
+		fixture.setPolicyName("");
+		fixture.setVersionNo("");
+		fixture.setUpdateType(UpdateType.NEW);
+		fixture.setMatches(new Hashtable());
+
+		String result = fixture.getVersionNo();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the void setMatches(Map<String,String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetMatches_1()
+		throws Exception {
+		StdLoadedPolicy fixture = new StdLoadedPolicy();
+		fixture.setPolicyName("");
+		fixture.setVersionNo("");
+		fixture.setUpdateType(UpdateType.NEW);
+		fixture.setMatches(new Hashtable());
+		Map<String, String> matches = new Hashtable();
+
+		fixture.setMatches(matches);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyName(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyName_1()
+		throws Exception {
+		StdLoadedPolicy fixture = new StdLoadedPolicy();
+		fixture.setPolicyName("");
+		fixture.setVersionNo("");
+		fixture.setUpdateType(UpdateType.NEW);
+		fixture.setMatches(new Hashtable());
+		String policyName = "";
+
+		fixture.setPolicyName(policyName);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setUpdateType(UpdateType) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetUpdateType_1()
+		throws Exception {
+		StdLoadedPolicy fixture = new StdLoadedPolicy();
+		fixture.setPolicyName("");
+		fixture.setVersionNo("");
+		fixture.setUpdateType(UpdateType.NEW);
+		fixture.setMatches(new Hashtable());
+		UpdateType updateType = UpdateType.NEW;
+
+		fixture.setUpdateType(updateType);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setVersionNo(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetVersionNo_1()
+		throws Exception {
+		StdLoadedPolicy fixture = new StdLoadedPolicy();
+		fixture.setPolicyName("");
+		fixture.setVersionNo("");
+		fixture.setUpdateType(UpdateType.NEW);
+		fixture.setMatches(new Hashtable());
+		String versionNo = "";
+
+		fixture.setVersionNo(versionNo);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(StdLoadedPolicyTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdPDPNotificationTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdPDPNotificationTest.java
new file mode 100644
index 0000000..490120f
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdPDPNotificationTest.java
@@ -0,0 +1,311 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std.test;
+
+import java.util.Collection;
+import java.util.LinkedList;
+
+import org.junit.*;
+import org.openecomp.policy.api.LoadedPolicy;
+import org.openecomp.policy.api.NotificationType;
+import org.openecomp.policy.api.RemovedPolicy;
+import org.openecomp.policy.std.StdLoadedPolicy;
+import org.openecomp.policy.std.StdPDPNotification;
+import org.openecomp.policy.std.StdRemovedPolicy;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>StdPDPNotificationTest</code> contains tests for the class <code>{@link StdPDPNotification}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class StdPDPNotificationTest {
+	/**
+	 * Run the StdPDPNotification() constructor test.
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testStdPDPNotification_1()
+		throws Exception {
+		StdPDPNotification result = new StdPDPNotification();
+		assertNotNull(result);
+		// add additional test code here
+	}
+
+	/**
+	 * Run the Collection<LoadedPolicy> getLoadedPolicies() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetLoadedPolicies_1()
+		throws Exception {
+		StdPDPNotification fixture = new StdPDPNotification();
+		fixture.setRemovedPolicies(new LinkedList());
+		fixture.setNotificationType(NotificationType.BOTH);
+		fixture.setLoadedPolicies(new LinkedList());
+
+		Collection<LoadedPolicy> result = fixture.getLoadedPolicies();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the Collection<LoadedPolicy> getLoadedPolicies() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetLoadedPolicies_2()
+		throws Exception {
+		StdPDPNotification fixture = new StdPDPNotification();
+		fixture.setRemovedPolicies(new LinkedList());
+		fixture.setNotificationType(NotificationType.BOTH);
+		fixture.setLoadedPolicies(new LinkedList());
+
+		Collection<LoadedPolicy> result = fixture.getLoadedPolicies();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the Collection<LoadedPolicy> getLoadedPolicies() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetLoadedPolicies_3()
+		throws Exception {
+		StdPDPNotification fixture = new StdPDPNotification();
+		fixture.setRemovedPolicies(new LinkedList());
+		fixture.setNotificationType(NotificationType.BOTH);
+		fixture.setLoadedPolicies(null);
+
+		Collection<LoadedPolicy> result = fixture.getLoadedPolicies();
+
+		// add additional test code here
+		assertEquals(null, result);
+	}
+
+	/**
+	 * Run the NotificationType getNotificationType() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetNotificationType_1()
+		throws Exception {
+		StdPDPNotification fixture = new StdPDPNotification();
+		fixture.setRemovedPolicies(new LinkedList());
+		fixture.setNotificationType(NotificationType.BOTH);
+		fixture.setLoadedPolicies(new LinkedList());
+
+		NotificationType result = fixture.getNotificationType();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("both", result.toString());
+		assertEquals("BOTH", result.name());
+		assertEquals(2, result.ordinal());
+	}
+
+	/**
+	 * Run the Collection<RemovedPolicy> getRemovedPolicies() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetRemovedPolicies_1()
+		throws Exception {
+		StdPDPNotification fixture = new StdPDPNotification();
+		fixture.setRemovedPolicies(new LinkedList());
+		fixture.setNotificationType(NotificationType.BOTH);
+		fixture.setLoadedPolicies(new LinkedList());
+
+		Collection<RemovedPolicy> result = fixture.getRemovedPolicies();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the Collection<RemovedPolicy> getRemovedPolicies() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetRemovedPolicies_2()
+		throws Exception {
+		StdPDPNotification fixture = new StdPDPNotification();
+		fixture.setRemovedPolicies(new LinkedList());
+		fixture.setNotificationType(NotificationType.BOTH);
+		fixture.setLoadedPolicies(new LinkedList());
+
+		Collection<RemovedPolicy> result = fixture.getRemovedPolicies();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the Collection<RemovedPolicy> getRemovedPolicies() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetRemovedPolicies_3()
+		throws Exception {
+		StdPDPNotification fixture = new StdPDPNotification();
+		fixture.setRemovedPolicies(null);
+		fixture.setNotificationType(NotificationType.BOTH);
+		fixture.setLoadedPolicies(new LinkedList());
+
+		Collection<RemovedPolicy> result = fixture.getRemovedPolicies();
+
+		// add additional test code here
+		assertEquals(null, result);
+	}
+
+	/**
+	 * Run the void setNotificationType(NotificationType) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetNotificationType_1()
+		throws Exception {
+		StdPDPNotification fixture = new StdPDPNotification();
+		fixture.setRemovedPolicies(new LinkedList());
+		fixture.setNotificationType(NotificationType.BOTH);
+		fixture.setLoadedPolicies(new LinkedList());
+		NotificationType notificationType = NotificationType.BOTH;
+
+		fixture.setNotificationType(notificationType);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setRemovedPolicies(Collection<StdRemovedPolicy>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetRemovedPolicies_1()
+		throws Exception {
+		StdPDPNotification fixture = new StdPDPNotification();
+		fixture.setRemovedPolicies(new LinkedList());
+		fixture.setNotificationType(NotificationType.BOTH);
+		fixture.setLoadedPolicies(new LinkedList());
+		Collection<StdRemovedPolicy> removedPolicies = new LinkedList();
+
+		fixture.setRemovedPolicies(removedPolicies);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setUpdatedPolicies(Collection<StdLoadedPolicy>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetUpdatedPolicies_1()
+		throws Exception {
+		StdPDPNotification fixture = new StdPDPNotification();
+		fixture.setRemovedPolicies(new LinkedList());
+		fixture.setNotificationType(NotificationType.BOTH);
+		fixture.setLoadedPolicies(new LinkedList());
+		Collection<StdLoadedPolicy> updatedPolicies = new LinkedList();
+
+		fixture.setLoadedPolicies(updatedPolicies);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(StdPDPNotificationTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdPolicyChangeResponseTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdPolicyChangeResponseTest.java
new file mode 100644
index 0000000..45c7018
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdPolicyChangeResponseTest.java
@@ -0,0 +1,166 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std.test;
+
+import org.junit.*;
+import org.openecomp.policy.std.StdPolicyChangeResponse;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>StdPolicyChangeResponseTest</code> contains tests for the class <code>{@link StdPolicyChangeResponse}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class StdPolicyChangeResponseTest {
+	/**
+	 * Run the StdPolicyChangeResponse() constructor test.
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testStdPolicyChangeResponse_1()
+		throws Exception {
+		StdPolicyChangeResponse result = new StdPolicyChangeResponse();
+		assertNotNull(result);
+		// add additional test code here
+	}
+
+	/**
+	 * Run the int getResponseCode() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetResponseCode_1()
+		throws Exception {
+		StdPolicyChangeResponse fixture = new StdPolicyChangeResponse();
+		fixture.setResponseMessage("");
+		fixture.setResponseCode(1);
+
+		int result = fixture.getResponseCode();
+
+		// add additional test code here
+		assertEquals(1, result);
+	}
+
+	/**
+	 * Run the String getResponseMessage() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetResponseMessage_1()
+		throws Exception {
+		StdPolicyChangeResponse fixture = new StdPolicyChangeResponse();
+		fixture.setResponseMessage("");
+		fixture.setResponseCode(1);
+
+		String result = fixture.getResponseMessage();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the void setResponseCode(int) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetResponseCode_1()
+		throws Exception {
+		StdPolicyChangeResponse fixture = new StdPolicyChangeResponse();
+		fixture.setResponseMessage("");
+		fixture.setResponseCode(1);
+		int responseCode = 1;
+
+		fixture.setResponseCode(responseCode);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setResponseMessage(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetResponseMessage_1()
+		throws Exception {
+		StdPolicyChangeResponse fixture = new StdPolicyChangeResponse();
+		fixture.setResponseMessage("");
+		fixture.setResponseCode(1);
+		String responseMessage = "";
+
+		fixture.setResponseMessage(responseMessage);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(StdPolicyChangeResponseTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdPolicyConfigTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdPolicyConfigTest.java
new file mode 100644
index 0000000..88a22c3
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdPolicyConfigTest.java
@@ -0,0 +1,821 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std.test;
+
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Properties;
+
+import javax.json.JsonObject;
+
+import org.junit.*;
+import org.openecomp.policy.api.PolicyConfigStatus;
+import org.openecomp.policy.api.PolicyType;
+import org.openecomp.policy.std.StdPolicyConfig;
+
+import static org.junit.Assert.*;
+
+import org.w3c.dom.Document;
+
+/**
+ * The class <code>StdPolicyConfigTest</code> contains tests for the class <code>{@link StdPolicyConfig}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class StdPolicyConfigTest {
+	/**
+	 * Run the Map<String, String> getMatchingConditions() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetMatchingConditions_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+
+		Map<String, String> result = fixture.getMatchingConditions();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the String getPolicyConfigMessage() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetPolicyConfigMessage_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+
+		String result = fixture.getPolicyConfigMessage();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the PolicyConfigStatus getPolicyConfigStatus() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetPolicyConfigStatus_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+
+		PolicyConfigStatus result = fixture.getPolicyConfigStatus();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("not_found", result.toString());
+		assertEquals("CONFIG_NOT_FOUND", result.name());
+		assertEquals(1, result.ordinal());
+	}
+
+	/**
+	 * Run the String getPolicyName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetPolicyName_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+
+		String result = fixture.getPolicyName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getPolicyName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetPolicyName_2()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName((String) null);
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+
+		String result = fixture.getPolicyName();
+
+		// add additional test code here
+		assertEquals(null, result);
+	}
+
+	/**
+	 * Run the String getPolicyName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetPolicyName_3()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+
+		String result = fixture.getPolicyName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getPolicyVersion() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetPolicyVersion_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+
+		String result = fixture.getPolicyVersion();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the Map<String, String> getResponseAttributes() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetResponseAttributes_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+
+		Map<String, String> result = fixture.getResponseAttributes();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the PolicyType getType() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetType_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+
+		PolicyType result = fixture.getType();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("json", result.toString());
+		assertEquals("JSON", result.name());
+		assertEquals(1, result.ordinal());
+	}
+
+	/**
+	 * Run the void setConfigStatus(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetConfigStatus_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+		String configStatus = "";
+
+		fixture.setConfigStatus(configStatus);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setConfigStatus(String,PolicyConfigStatus) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetConfigStatus_2()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+		String configStatus = "";
+		PolicyConfigStatus policyConfigStatus = PolicyConfigStatus.CONFIG_NOT_FOUND;
+
+		fixture.setConfigStatus(configStatus, policyConfigStatus);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setDocument(Document) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetDocument_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+		Document document = null;
+
+		fixture.setDocument(document);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setJsonObject(JsonObject) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetJsonObject_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+		JsonObject jsonObject = null;
+
+		fixture.setJsonObject(jsonObject);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setMatchingConditions(Map<String,String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetMatchingConditions_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+		Map<String, String> matchingConditions = new Hashtable();
+
+		fixture.setMatchingConditions(matchingConditions);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setOther(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetOther_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+		String other = "";
+
+		fixture.setOther(other);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyConfigStatus(PolicyConfigStatus) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetPolicyConfigStatus_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+		PolicyConfigStatus policyConfigStatus = PolicyConfigStatus.CONFIG_NOT_FOUND;
+
+		fixture.setPolicyConfigStatus(policyConfigStatus);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyName(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetPolicyName_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+		String policyName = "";
+
+		fixture.setPolicyName(policyName);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyType(PolicyType) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetPolicyType_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+		PolicyType policyType = PolicyType.JSON;
+
+		fixture.setPolicyType(policyType);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyVersion(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetPolicyVersion_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+		String policyVersion = "";
+
+		fixture.setPolicyVersion(policyVersion);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setProperties(Properties) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetProperties_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+		Properties properties = new Properties();
+
+		fixture.setProperties(properties);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setResponseAttributes(Map<String,String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetResponseAttributes_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+		Map<String, String> responseAttributes = new Hashtable();
+
+		fixture.setResponseAttributes(responseAttributes);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the JsonObject toJSON() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testToJSON_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+
+		JsonObject result = fixture.toJSON();
+
+		// add additional test code here
+		assertEquals(null, result);
+	}
+
+	/**
+	 * Run the String toOther() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testToOther_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+
+		String result = fixture.toOther();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the Properties toProperties() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testToProperties_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+
+		Properties result = fixture.toProperties();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the String toString() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testToString_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("test");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+
+		String result = fixture.toString();
+
+		// add additional test code here
+		assertEquals("PolicyConfig [ policyConfigStatus=not_found, policyConfigMessage=, policyName=test]", result);
+	}
+
+	/**
+	 * Run the Document toXML() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testToXML_1()
+		throws Exception {
+		StdPolicyConfig fixture = new StdPolicyConfig();
+		fixture.setConfigStatus("", PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setDocument((Document) null);
+		fixture.setResponseAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setOther("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setPolicyName("");
+		fixture.setProperties(new Properties());
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setMatchingConditions(new Hashtable());
+
+		Document result = fixture.toXML();
+
+		// add additional test code here
+		assertEquals(null, result);
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(StdPolicyConfigTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdPolicyEngineTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdPolicyEngineTest.java
new file mode 100644
index 0000000..c2fee2f
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdPolicyEngineTest.java
@@ -0,0 +1,1002 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.StringReader;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.UUID;
+
+import javax.json.Json;
+import javax.json.JsonObject;
+import javax.json.JsonReader;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.openecomp.policy.api.AttributeType;
+import org.openecomp.policy.api.ConfigRequestParameters;
+import org.openecomp.policy.api.DecisionRequestParameters;
+import org.openecomp.policy.api.DecisionResponse;
+import org.openecomp.policy.api.DeletePolicyCondition;
+import org.openecomp.policy.api.DeletePolicyParameters;
+import org.openecomp.policy.api.DictionaryParameters;
+import org.openecomp.policy.api.DictionaryType;
+import org.openecomp.policy.api.EventRequestParameters;
+import org.openecomp.policy.api.ImportParameters;
+import org.openecomp.policy.api.NotificationHandler;
+import org.openecomp.policy.api.NotificationScheme;
+import org.openecomp.policy.api.PolicyChangeResponse;
+import org.openecomp.policy.api.PolicyClass;
+import org.openecomp.policy.api.PolicyConfig;
+import org.openecomp.policy.api.PolicyConfigStatus;
+import org.openecomp.policy.api.PolicyConfigType;
+import org.openecomp.policy.api.PolicyDecision;
+import org.openecomp.policy.api.PolicyParameters;
+import org.openecomp.policy.api.PolicyResponse;
+import org.openecomp.policy.api.PolicyType;
+import org.openecomp.policy.api.PushPolicyParameters;
+import org.openecomp.policy.api.ImportParameters.IMPORT_TYPE;
+import org.openecomp.policy.std.StdDecisionResponse;
+import org.openecomp.policy.std.StdPolicyChangeResponse;
+import org.openecomp.policy.std.StdPolicyConfig;
+import org.openecomp.policy.std.StdPolicyEngine;
+import org.openecomp.policy.std.StdPolicyResponse;
+
+import org.openecomp.policy.common.logging.flexlogger.FlexLogger;
+import org.openecomp.policy.common.logging.flexlogger.Logger;
+
+/**
+ * The class <code>StdPolicyEngineTest</code> contains tests for the class <code>{@link StdPolicyEngine}</code>.
+ *
+ * @generatedBy CodePro at 6/3/16 2:03 PM
+ * @version $Revision: 1.0 $
+ */
+public class StdPolicyEngineTest {
+	
+	private static final Logger logger = FlexLogger.getLogger(StdPolicyEngine.class);
+
+	private StdPolicyEngine fixture = null;
+	private StdPolicyEngine mockEngine = null;
+	
+	PolicyChangeResponse result = null;
+	StdPolicyChangeResponse response = new StdPolicyChangeResponse();
+	PolicyParameters policyParameters = new PolicyParameters();
+	String json = null;
+	
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		fixture = new StdPolicyEngine("Test/config_pass.properties");
+		
+		//Mocks
+		mockEngine = Mockito.mock(StdPolicyEngine.class);
+	}
+	
+    private static JsonObject buildJSON(String jsonString) {
+        JsonObject json = null;;
+        if (jsonString != null) {
+            StringReader in = null;
+             
+            in = new StringReader(jsonString);
+             
+            JsonReader jsonReader = Json.createReader(in);
+            json = jsonReader.readObject();        
+        } 
+        
+        return json;
+    }
+    
+	//Reads a File and converts into a String. 
+	private static String readFile( String file ) throws IOException {
+	    BufferedReader reader = new BufferedReader( new FileReader (file));
+	    String         line = null;
+	    StringBuilder  stringBuilder = new StringBuilder();
+	    String         ls = System.getProperty("line.separator");
+
+	    try {
+	        while( ( line = reader.readLine() ) != null ) {
+	            stringBuilder.append( line );
+	            stringBuilder.append( ls );
+	        }
+
+	        return stringBuilder.toString();
+	    } finally {
+	        reader.close();
+	    }
+	}
+
+	/**
+	 * Run the StdPolicyEngine(String) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testStdPolicyEngine()
+		throws Exception {
+		String propertyFilePath = "Test/config_pass.properties";
+
+		StdPolicyEngine result = new StdPolicyEngine(propertyFilePath);
+
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the StdPolicyEngine(String) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+/*	@Test
+	public void testStdPolicyEngine_2()
+		throws Exception {
+		String propertyFilePath = "http";
+
+		StdPolicyEngine result = new StdPolicyEngine(propertyFilePath);
+
+		assertNull(result);
+	}
+*/
+	/**
+	 * Run the StdPolicyEngine(String,NotificationScheme) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testStdPolicyEngine_3()
+		throws Exception {
+		String propertyFilePath = "Test/config_pass.properties";
+		NotificationScheme scheme = NotificationScheme.AUTO_ALL_NOTIFICATIONS;
+
+		StdPolicyEngine result = new StdPolicyEngine(propertyFilePath, scheme);
+
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the StdPolicyEngine(String,NotificationScheme) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+/*	@Test
+	public void testStdPolicyEngine_4()
+		throws Exception {
+		String propertyFilePath = "http";
+		NotificationScheme scheme = NotificationScheme.AUTO_ALL_NOTIFICATIONS;
+
+		StdPolicyEngine result = new StdPolicyEngine(propertyFilePath, scheme);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.StdPolicyEngine
+		assertNull(result);
+	}*/
+
+	/**
+	 * Run the StdPolicyEngine(String,NotificationScheme,NotificationHandler) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+/*	@Test
+	public void testStdPolicyEngine_5()
+		throws Exception {
+		String propertyFilePath = "Test/config_pass.properties";
+		NotificationScheme scheme = NotificationScheme.AUTO_ALL_NOTIFICATIONS;
+		NotificationHandler handler = new Handler();
+
+		StdPolicyEngine result = new StdPolicyEngine(propertyFilePath, scheme, handler);
+
+		assertNull(result);
+	}*/
+
+	/**
+	 * Run the StdPolicyEngine(String,NotificationScheme,NotificationHandler) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+/*	@Test
+	public void testStdPolicyEngine_6()
+		throws Exception {
+		String propertyFilePath = "http";
+		NotificationScheme scheme = NotificationScheme.AUTO_ALL_NOTIFICATIONS;
+		NotificationHandler handler = new Handler();
+
+		StdPolicyEngine result = new StdPolicyEngine(propertyFilePath, scheme, handler);
+
+		assertNull(result);
+	}
+*/
+	/**
+	 * Run the StdPolicyEngine(List<String>,List<String>,List<String>,List<String>,NotificationScheme,NotificationHandler,String) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+/*	@Test
+	public void testStdPolicyEngine_8()
+		throws Exception {
+		List<String> configURL = new LinkedList();
+		List<String> configPapURL = new LinkedList();
+		List<String> encodingPAP = new LinkedList();
+		List<String> encoding = new LinkedList();
+		NotificationScheme scheme = NotificationScheme.AUTO_ALL_NOTIFICATIONS;
+		NotificationHandler handler = new Handler();
+		String clientAuth = "TEST";
+
+		StdPolicyEngine result = new StdPolicyEngine(configURL, configPapURL, encodingPAP, encoding, scheme, handler, clientAuth);
+
+		// add additional test code here
+		// An unexpected exception was thrown in user code while executing this test:
+		//    java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.std.StdPolicyEngine
+		assertNull(result);
+	}
+*/
+	/**
+	 * Run the Collection<PolicyConfig> config(ConfigRequestParameters) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testConfig()
+		throws Exception {
+		String configMessage = "Error in Calling the Configuration URL java.lang.Exception: PE500 - Process Flow Issue: Cannot open a connection to the configURL";
+		PolicyConfigStatus configStatus = PolicyConfigStatus.CONFIG_NOT_FOUND;
+		String policyName = "JunitTest.Config_testing";
+		String policyVersion = "1";
+				
+		ConfigRequestParameters configRequestParameters = new ConfigRequestParameters();
+		configRequestParameters.setPolicyName(".*");
+		Collection<PolicyConfig> result = fixture.config(configRequestParameters);		
+		
+		//assertEquals(response, result);
+		for(PolicyConfig policyConfig: result){
+			assertEquals(policyName, policyConfig.getPolicyName());
+			assertEquals(policyVersion, policyConfig.getPolicyVersion());
+			assertEquals(configStatus, policyConfig.getPolicyConfigStatus());
+			assertEquals(configMessage, policyConfig.getPolicyConfigMessage());
+		}
+	}
+	
+	
+	/**
+	 * Run the Collection<String> listConfig(ConfigRequestParameters) method test.
+	 *
+	 * @throws Exception
+	 *
+	 */
+	@Test
+	public void testListConfig()
+		throws Exception {
+		
+		Collection<String> response = new ArrayList<String>();
+		response.add("Policy Name: listConfigTest");
+
+		ConfigRequestParameters configRequestParameters = new ConfigRequestParameters();
+		configRequestParameters.setPolicyName(".*");
+		Collection<String> result = fixture.listConfig(configRequestParameters);
+
+		assertEquals(result, response);
+	}
+
+	/**
+	 * Run the String copyFile(String,String,StdPAPPolicy,String,UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+/*	@Test
+	public void testCopyFile()
+		throws Exception {
+		String policyId = "test.testing";
+		String group = "default";
+		URI selectedURI = null;
+		StdPDPPolicy policy = new StdPDPPolicy("testing", true, "test", selectedURI, true, "test", "testing", "1");	
+		StdPAPPolicy location = new StdPAPPolicy(policy.getLocation());
+		String clientScope = "Config";
+		UUID requestID = UUID.randomUUID();
+
+		String result = fixture.copyFile(policyId, group, location, clientScope, requestID);
+
+		assertNotNull(result);
+	}*/
+
+	/**
+	 * Run the String copyPolicy(PDPPolicy,String,String,UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+/*	@Test
+	public void testCopyPolicy()
+		throws Exception {
+		//StdPolicyEngine fixture = new StdPolicyEngine("http", NotificationScheme.AUTO_ALL_NOTIFICATIONS, (NotificationHandler) null);
+		URI selectedURI = null;
+		
+		StdPDPPolicy policy = new StdPDPPolicy("testing", true, "test", selectedURI, true, "test", "testing", "1");
+		String group = "default";
+		String policyType = "Base";
+		UUID requestID = UUID.randomUUID();
+
+		String result = fixture.copyPolicy(policy, group, policyType, requestID);
+		
+		assertNotNull(result);
+	}
+*/
+	/**
+	 * Run the String createConfigFirewallPolicy(String,JsonObject,String,UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testCreateConfigFirewallPolicy()
+		throws Exception {
+		
+		response.setResponseMessage("success");
+		PolicyParameters policyParameters = new PolicyParameters();
+		policyParameters.setPolicyConfigType(PolicyConfigType.Firewall); 
+
+		String json= "{\"serviceTypeId\": \"/v0/firewall/pan\",\"configName\": \"rule1607\",\"deploymentOption\":{\"deployNow\": false},\"securityZoneId\": \"/v0/firewall/pan\",\"serviceGroups\": [{\"name\": \"1607Group\",\"description\": null,\"members\": [{\"type\": \"REFERENCE\",\"name\": \"SList\"},{\"type\": \"REFERENCE\",\"name\": \"Syslog\"}]}, {\"name\": \"Syslog\",\"description\": \"NA\",\"type\": \"SERVICE\",\"transportProtocol\": \"udp\",\"appProtocol\": null,\"ports\": \"514\"}, {\"name\": \"SList\",\"description\": \"Service List\",\"type\": \"SERVICE\",\"transportProtocol\": \"tcp\",\"appProtocol\": null,\"ports\": \"8080\"}],\"addressGroups\": [{\"name\": \"1607Group\",\"description\": null,\"members\": [{\"type\": \"REFERENCE\",\"name\": \"10.11.12.13/14\"},{\"type\": \"REFERENCE\",\"name\": \"10.11.12.13/14\"}]},{\"name\": \"PL_CCE3\",\"description\": \"CCE Routers\",\"members\":[{\"type\": \"REFERENCE\",\"name\": \"10.11.12.13/14\"}]}],\"firewallRuleList\": [{\"position\": \"1\",\"ruleName\": \"1607Rule\",\"fromZones\": [\"Trusted\"],\"toZones\": [\"Untrusted\"],\"negateSource\": false,\"negateDestination\": false,\"sourceList\": [{\"type\": \"REFERENCE\",\"name\": \"PL_CCE3\"}, {\"type\": \"REFERENCE\",\"name\": \"1607Group\"}],\"destinationList\": [{\"type\": \"REFERENCE\",\"name\": \"1607Group\"}],\"sourceServices\": [],\"destServices\": [{\"type\": \"REFERENCE\",\"name\": \"1607Group\"}],\"action\": \"accept\",\"description\": \"Rule for 1607 templates\",\"enabled\": true,\"log\": true}]}";
+		policyParameters.setConfigBody(json);
+		policyParameters.setPolicyName("test.testing");
+
+		PolicyChangeResponse result = fixture.createPolicy(policyParameters);
+
+		assertEquals(response.getResponseMessage(), result.getResponseMessage());
+	}
+
+	/**
+	 * Run the String createConfigPolicy(String,String,String,String,Map<String,String>,String,String,String,UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testCreateConfigPolicy()
+		throws Exception {
+		response.setResponseMessage("success");
+		PolicyParameters policyParameters = new PolicyParameters();
+		policyParameters.setPolicyConfigType(PolicyConfigType.Base);
+		policyParameters.setPolicyName("test.junittest");
+		policyParameters.setPolicyDescription("testing junit");
+		policyParameters.setEcompName("test");
+		policyParameters.setConfigName("testname");
+        Map<String, String> configAttributes = new HashMap<String, String>(); 
+        configAttributes.put("Template", "SampleTemplate");
+        configAttributes.put("controller", "default"); 
+        configAttributes.put("SamPoll", "30");
+        configAttributes.put("value", "abcd"); 
+		Map<AttributeType, Map<String,String>> attributes = new HashMap<AttributeType, Map<String,String>>();
+        attributes.put(AttributeType.MATCHING, configAttributes);
+        policyParameters.setAttributes(attributes);
+		policyParameters.setRequestID(UUID.randomUUID());
+		policyParameters.setConfigBodyType(PolicyType.OTHER);
+		policyParameters.setConfigBody("test");
+		
+		PolicyChangeResponse result = fixture.createPolicy(policyParameters);
+
+		assertEquals(response.getResponseMessage(), result.getResponseMessage());
+	}
+
+
+	/**
+	 * Run the String createUpdateActionPolicy(String,String,Map<String,String>,List<String>,List<String>,List<String>,List<String>,String,String,String,Boolean,UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testCreateUpdateActionPolicy_Create()
+		throws Exception {
+		response.setResponseMessage("success");
+		PolicyParameters policyParameters = new PolicyParameters();
+		policyParameters.setPolicyClass(PolicyClass.Action); 
+		policyParameters.setPolicyName("test.junittest");
+		policyParameters.setPolicyDescription("testing");
+        Map<String, String> configAttributes = new HashMap<String, String>(); 
+        configAttributes.put("Template", "UpdateTemplate");
+        configAttributes.put("controller", "default"); 
+        configAttributes.put("SamPoll", "30");
+        configAttributes.put("value", "abcd"); 
+        Map<AttributeType, Map<String,String>> attributes = new HashMap<AttributeType, Map<String,String>>();
+        attributes.put(AttributeType.MATCHING, configAttributes);
+        policyParameters.setAttributes(attributes);
+        policyParameters.setActionPerformer("PDP");
+        policyParameters.setActionAttribute("test");
+
+		PolicyChangeResponse result = fixture.createPolicy(policyParameters);
+
+		assertEquals(response.getResponseMessage(), result.getResponseMessage());
+	}
+	
+	/**
+	 * Run the String createUpdateActionPolicy(String,String,Map<String,String>,List<String>,List<String>,List<String>,List<String>,String,String,String,Boolean,UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testCreateUpdateActionPolicy_Update()
+		throws Exception {
+		response.setResponseMessage("success");
+		PolicyParameters policyParameters = new PolicyParameters();
+		policyParameters.setPolicyClass(PolicyClass.Action); 
+		policyParameters.setPolicyName("test.junittest");
+		policyParameters.setPolicyDescription("testing");
+        Map<String, String> configAttributes = new HashMap<String, String>(); 
+        configAttributes.put("Template", "UpdateTemplate");
+        configAttributes.put("controller", "default"); 
+        configAttributes.put("SamPoll", "30");
+        configAttributes.put("value", "abcd"); 
+        Map<AttributeType, Map<String,String>> attributes = new HashMap<AttributeType, Map<String,String>>();
+        attributes.put(AttributeType.MATCHING, configAttributes);
+        policyParameters.setAttributes(attributes);
+        policyParameters.setActionPerformer("PDP");
+        policyParameters.setActionAttribute("test");
+
+		PolicyChangeResponse result = fixture.updatePolicy(policyParameters);
+
+		assertEquals(response.getResponseMessage(), result.getResponseMessage());
+	}
+
+
+	/**
+	 * Run the String createUpdateBRMSParamPolicy(String,String,Map<AttributeType,Map<String,String>>,String,String,Boolean,UUID,Map<AttributeType,Map<String,String>>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testCreateUpdateBRMSParamPolicy_Create()
+		throws Exception {
+		response.setResponseMessage("success");
+		PolicyParameters policyParameters = new PolicyParameters();
+		policyParameters.setPolicyConfigType(PolicyConfigType.BRMS_PARAM); 
+		policyParameters.setPolicyName("test.testing");
+		policyParameters.setPolicyDescription("testing");
+        Map<String, String> ruleAttributes = new HashMap<String, String>();
+        ruleAttributes.put("templateName", "Sample"); // This sampleTemplate is the Template name from dictionary. 
+        ruleAttributes.put("controller", "default"); // Set Rule to a PDP Controller, default is the controller name.
+        ruleAttributes.put("SamPoll", "300"); // Template specific key and value set by us. 
+        ruleAttributes.put("value", "abcd"); // Template specific key and value set by us. 
+        Map<AttributeType, Map<String, String>> attributes = new HashMap<AttributeType, Map<String, String>>();
+        attributes.put(AttributeType.RULE, ruleAttributes);
+        policyParameters.setAttributes(attributes);
+        
+		PolicyChangeResponse result = fixture.createPolicy(policyParameters);
+		
+		assertEquals(response.getResponseMessage(), result.getResponseMessage());
+	}
+	
+	/**
+	 * Run the String createUpdateBRMSParamPolicy(String,String,Map<AttributeType,Map<String,String>>,String,String,Boolean,UUID,Map<AttributeType,Map<String,String>>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testCreateUpdateBRMSParamPolicy_Update()
+		throws Exception {
+		response.setResponseMessage("success");
+		PolicyParameters policyParameters = new PolicyParameters();
+		policyParameters.setPolicyConfigType(PolicyConfigType.BRMS_PARAM); 
+		policyParameters.setPolicyName("test.testing");
+		policyParameters.setPolicyDescription("testing");
+        Map<String, String> ruleAttributes = new HashMap<String, String>();
+        ruleAttributes.put("templateName", "Sample"); // This sampleTemplate is the Template name from dictionary. 
+        ruleAttributes.put("controller", "default"); // Set Rule to a PDP Controller, default is the controller name.
+        ruleAttributes.put("SamPoll", "300"); // Template specific key and value set by us. 
+        ruleAttributes.put("value", "abcd"); // Template specific key and value set by us. 
+        Map<AttributeType, Map<String, String>> attributes = new HashMap<AttributeType, Map<String, String>>();
+        attributes.put(AttributeType.RULE, ruleAttributes);
+        policyParameters.setAttributes(attributes);
+        
+		PolicyChangeResponse result = fixture.updatePolicy(policyParameters);
+		
+		assertEquals(response.getResponseMessage(), result.getResponseMessage());
+	}
+
+	/**
+	 * Run the String createUpdateBRMSRawPolicy(String,String,Map<AttributeType,Map<String,String>>,String,String,Boolean,UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testCreateUpdateBRMSRawPolicy_Create()
+		throws Exception {
+		response.setResponseMessage("success");
+		PolicyParameters policyParameters = new PolicyParameters();
+		policyParameters.setPolicyConfigType(PolicyConfigType.BRMS_PARAM); 
+		policyParameters.setPolicyName("test.testing");
+		policyParameters.setPolicyDescription("testing");
+        Map<String, String> attrib= new HashMap<String,String>();
+        attrib.put("cpu","80");
+        attrib.put("memory", "50");
+        Map<AttributeType, Map<String, String>> attributes = new HashMap<AttributeType, Map<String, String>>();
+        attributes.put(AttributeType.RULE, attrib);
+        
+        policyParameters.setAttributes(attributes);
+        
+        File rawBodyFile = null;
+		Path file = Paths.get("Test/test.Config_BRMS_Raw_TestBrmsPolicy.1.txt");
+		rawBodyFile = file.toFile();
+		
+		policyParameters.setConfigBody(readFile(rawBodyFile.toString()));		
+        
+		PolicyChangeResponse result = fixture.updatePolicy(policyParameters);
+		
+		assertEquals(response.getResponseMessage(), result.getResponseMessage());
+	}
+	
+	/** 
+	 * Run the PolicyChangeResponse createDictionaryItem(DictionaryParameters) method test.
+	 * 
+	 * @throws Exception
+	 * 
+	 */
+	@Test
+	public void testCreateDictionaryItem() throws Exception {
+		response.setResponseMessage("success");
+		DictionaryParameters parameters = new DictionaryParameters();
+		
+		parameters.setDictionaryType(DictionaryType.Common);
+		parameters.setDictionary("Attribute");
+		
+		Map<String,String> fields = new HashMap<String,String>();
+		fields.put("ATTRIBUTEID", "A5:");
+		fields.put("DATATYPE", "user");
+		fields.put("DESCRIPTION", "testing something");
+		fields.put("ATTRIBUTEVALUE", "1,2,A,B");
+		fields.put("PRIORITY", "High");
+		Map<AttributeType, Map<String,String>> dictionaryFields = new HashMap<AttributeType, Map<String,String>>();
+		dictionaryFields.put(AttributeType.DICTIONARY, fields);
+		
+		parameters.setDictionaryFields(dictionaryFields);
+
+		PolicyChangeResponse result = fixture.createDictionaryItem(parameters);
+
+		assertEquals(response.getResponseMessage(), result.getResponseMessage());
+	}
+	
+
+	/**
+	 * Run the PolicyDecision decide(DecisionRequestParameters) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testDecide()
+		throws Exception {
+		//StdPolicyEngine fixture = new StdPolicyEngine("http", NotificationScheme.AUTO_ALL_NOTIFICATIONS, (NotificationHandler) null);
+		StdDecisionResponse response = new StdDecisionResponse();
+		response.setDecision(PolicyDecision.PERMIT);
+		
+		DecisionRequestParameters decisionRequestParameters = new DecisionRequestParameters();
+		decisionRequestParameters.setECOMPComponentName("testEcompName");
+		Map<String,String> decisionAttributes = new HashMap<String,String>();
+		decisionAttributes.put("key", "value");
+		decisionRequestParameters.setDecisionAttributes(decisionAttributes);
+		decisionRequestParameters.setRequestID(UUID.randomUUID());
+		
+		Mockito.when(mockEngine.decide(decisionRequestParameters)).thenReturn(response);
+		DecisionResponse result = mockEngine.decide(decisionRequestParameters);
+
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the PolicyChangeResponse deletePolicy(DeletePolicyParameters) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testDeletePolicy()
+		throws Exception {
+		response.setResponseMessage("success");
+		DeletePolicyParameters parameters = new DeletePolicyParameters();
+		parameters.setDeleteCondition(DeletePolicyCondition.ALL);
+		parameters.setPolicyComponent("PAP");
+		parameters.setPolicyName("testing.Config_junittest.1.xml");
+
+		PolicyChangeResponse result = fixture.deletePolicy(parameters);
+
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the Collection<PolicyResponse> event(EventRequestParameters) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testEvent()
+		throws Exception {
+		
+		//StdPolicyEngine fixture = new StdPolicyEngine("http", NotificationScheme.AUTO_ALL_NOTIFICATIONS, (NotificationHandler) null);
+		StdPolicyResponse response = new StdPolicyResponse();
+		response.setPolicyResponseMessage("tested");
+		Collection<PolicyResponse> mockResult = new HashSet<PolicyResponse>();
+		mockResult.add(response);
+		StdPolicyEngine mockEngine = Mockito.mock(StdPolicyEngine.class);
+		
+		Map<String,String> eventAttributes = new HashMap<String,String>();
+		eventAttributes.put("key", "test");
+		EventRequestParameters eventRequestParameters = new EventRequestParameters(eventAttributes, UUID.randomUUID());
+		Mockito.when(mockEngine.event(eventRequestParameters)).thenReturn(mockResult);
+
+		Collection<PolicyResponse> result = mockEngine.event(eventRequestParameters);
+		
+		assertEquals(result, mockResult);
+	}
+
+	/**
+	 * Run the PDPNotification getNotification() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+/*	@Test
+	public void testGetNotification()
+		throws Exception {
+		//StdPolicyEngine fixture = new StdPolicyEngine("http", NotificationScheme.AUTO_ALL_NOTIFICATIONS, (NotificationHandler) null);
+
+		PDPNotification result = fixture.getNotification();
+
+		assertNull(result);
+	}*/
+
+	/**
+	 * Run the NotificationHandler getNotificationHandler() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testGetNotificationHandler()
+		throws Exception {
+		//StdPolicyEngine fixture = new StdPolicyEngine("http", NotificationScheme.AUTO_ALL_NOTIFICATIONS, (NotificationHandler) null);
+
+		NotificationHandler result = fixture.getNotificationHandler();
+
+		assertNull(result);
+	}
+
+	/**
+	 * Run the String getPAPURL() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testGetPAPURL()
+		throws Exception {
+
+		String result = StdPolicyEngine.getPAPURL();
+
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the String getPDPURL() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testGetPDPURL()
+		throws Exception {
+
+		String result = StdPolicyEngine.getPDPURL();
+
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the NotificationScheme getScheme() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testGetScheme()
+		throws Exception {
+		//StdPolicyEngine fixture = new StdPolicyEngine("http", NotificationScheme.AUTO_ALL_NOTIFICATIONS, (NotificationHandler) null);
+
+		NotificationScheme result = fixture.getScheme();
+
+		assertNull(result);
+	}
+
+	/**
+	 * Run the boolean isJSONValid(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testIsJSONValid()
+		throws Exception {
+		String data = "{\"test\": \"testing\"}";
+
+		boolean result = StdPolicyEngine.isJSONValid(data);
+
+		assertTrue(result);
+	}
+
+	/**
+	 * Run the void notification(NotificationScheme,NotificationHandler) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+/*	@Test
+	public void testNotification()
+		throws Exception {
+		//StdPolicyEngine fixture = new StdPolicyEngine("http", NotificationScheme.AUTO_ALL_NOTIFICATIONS, (NotificationHandler) null);
+		NotificationScheme scheme = NotificationScheme.AUTO_ALL_NOTIFICATIONS;
+		Handler handler = new Handler();
+
+		fixture.notification(scheme, handler);
+
+	}
+*/
+	/**
+	 * Run the PolicyChangeResponse policyEngineImport(ImportParameters) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testPolicyEngineImport()
+		throws Exception {
+		response.setResponseMessage("success");
+		ImportParameters importParameters = new ImportParameters();
+		importParameters.setServiceName("ControllerServiceSampleSdnlServiceInstance");
+		importParameters.setVersion("1607-2");
+		importParameters.setFilePath("C:\\Workspaces\\models\\TestingModel\\ControllerServiceSampleSdnlServiceInstance-v0.1.0-SNAPSHOT.zip");
+		importParameters.setServiceType(IMPORT_TYPE.MICROSERVICE);
+		
+		PolicyChangeResponse result = fixture.policyEngineImport(importParameters);
+
+		assertNotNull(result);
+		
+	}
+
+	/**
+	 * Run the Collection<PolicyConfig> policyName(String,UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testPolicyName()
+		throws Exception {
+		//StdPolicyEngine fixture = new StdPolicyEngine("http", NotificationScheme.AUTO_ALL_NOTIFICATIONS, (NotificationHandler) null);
+		StdPolicyConfig config = new StdPolicyConfig();
+		config.setPolicyName("testing");
+		Collection<PolicyConfig> response = new HashSet<PolicyConfig>();
+		response.add(config);
+		String policyName = "test.testing";
+		UUID requestID = UUID.randomUUID();
+		
+		Mockito.when(mockEngine.policyName(policyName, requestID)).thenReturn(response);
+		Collection<PolicyConfig> result = mockEngine.policyName(policyName, requestID);
+
+		assertEquals(result, response);
+	}
+
+	/**
+	 * Run the PolicyChangeResponse pushPolicy(PushPolicyParameters) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testPushPolicy()
+		throws Exception {
+		response.setResponseMessage("success");
+		
+		response.setResponseMessage("success");
+		PolicyChangeResponse result = null;
+		
+		PushPolicyParameters pushPolicyParameters = new PushPolicyParameters();
+		pushPolicyParameters.setPolicyName("test.testPolicy");
+		pushPolicyParameters.setPdpGroup("default");
+		pushPolicyParameters.setPolicyType("Base");
+		
+		try {
+		
+			Mockito.when(mockEngine.pushPolicy(pushPolicyParameters)).thenReturn(response);
+			result = mockEngine.pushPolicy(pushPolicyParameters);
+			
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);
+	}
+
+	/**
+	 * Run the void rotateList() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testRotateList()
+		throws Exception {
+
+		StdPolicyEngine.rotateList();
+
+	}
+
+	/**
+	 * Run the void setScheme(NotificationScheme) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testSetScheme()
+		throws Exception {
+		//StdPolicyEngine fixture = new StdPolicyEngine("http", NotificationScheme.AUTO_ALL_NOTIFICATIONS, (NotificationHandler) null);
+		NotificationScheme scheme = NotificationScheme.AUTO_ALL_NOTIFICATIONS;
+
+		fixture.setScheme(scheme);
+
+	}
+
+	/**
+	 * Run the void stopNotification() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+/*	@Test
+	public void testStopNotification_1()
+		throws Exception {
+		Handler handler = new Handler();
+	
+		Mockito.doNothing().when(mockStdPolicyEngine).notification(NotificationScheme.AUTO_ALL_NOTIFICATIONS, handler);
+		StdPolicyEngine fixture = new StdPolicyEngine("Test/config_pass.properties", NotificationScheme.AUTO_ALL_NOTIFICATIONS, handler);
+		
+		//verify(mockStdPolicyEngine, times(1)).fixture("Test/config_pass.properties", NotificationScheme.AUTO_ALL_NOTIFICATIONS, handler);
+
+		fixture.stopNotification();
+	}*/
+
+	/**
+	 * Run the String updateConfigFirewallPolicy(String,JsonObject,String,UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@Test
+	public void testUpdateConfigFirewallPolicy()
+		throws Exception {
+		response.setResponseMessage("success");
+		String json= "{\"serviceTypeId\": \"/v0/firewall/pan\",\"configName\": \"rule1607\",\"deploymentOption\":{\"deployNow\": false},\"securityZoneId\": \"/v0/firewall/pan\",\"serviceGroups\": [{\"name\": \"1607Group\",\"description\": null,\"members\": [{\"type\": \"REFERENCE\",\"name\": \"SList\"},{\"type\": \"REFERENCE\",\"name\": \"Syslog\"}]}, {\"name\": \"Syslog\",\"description\": \"NA\",\"type\": \"SERVICE\",\"transportProtocol\": \"udp\",\"appProtocol\": null,\"ports\": \"514\"}, {\"name\": \"SList\",\"description\": \"Service List\",\"type\": \"SERVICE\",\"transportProtocol\": \"tcp\",\"appProtocol\": null,\"ports\": \"8080\"}],\"addressGroups\": [{\"name\": \"1607Group\",\"description\": null,\"members\": [{\"type\": \"REFERENCE\",\"name\": \"10.11.12.13/14\"},{\"type\": \"REFERENCE\",\"name\": \"10.11.12.13/14\"}]},{\"name\": \"PL_CCE3\",\"description\": \"CCE Routers\",\"members\":[{\"type\": \"REFERENCE\",\"name\": \"10.11.12.13/14\"}]}],\"firewallRuleList\": [{\"position\": \"1\",\"ruleName\": \"1607Rule\",\"fromZones\": [\"Trusted\"],\"toZones\": [\"Untrusted\"],\"negateSource\": false,\"negateDestination\": false,\"sourceList\": [{\"type\": \"REFERENCE\",\"name\": \"PL_CCE3\"}, {\"type\": \"REFERENCE\",\"name\": \"1607Group\"}],\"destinationList\": [{\"type\": \"REFERENCE\",\"name\": \"1607Group\"}],\"sourceServices\": [],\"destServices\": [{\"type\": \"REFERENCE\",\"name\": \"1607Group\"}],\"action\": \"accept\",\"description\": \"Rule for 1607 templates\",\"enabled\": true,\"log\": true}]}";
+		String policyName = "testing";
+		JsonObject firewallJson = buildJSON(json);
+		String policyScope = "test";
+		UUID requestID = UUID.randomUUID();
+		String riskLevel  = "";
+		String riskType = "";
+		String guard = "";
+		String date = "";
+
+		String result = fixture.updateConfigFirewallPolicy(policyName, firewallJson, policyScope, requestID,riskLevel,  riskType, guard,  date);
+
+		assertNotNull(result);
+	}
+
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/3/16 2:03 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(StdPolicyEngineTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdPolicyResponseTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdPolicyResponseTest.java
new file mode 100644
index 0000000..2cb21ef
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdPolicyResponseTest.java
@@ -0,0 +1,348 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std.test;
+
+import java.util.Hashtable;
+import java.util.Map;
+
+import org.junit.*;
+import org.openecomp.policy.api.PolicyResponseStatus;
+import org.openecomp.policy.std.StdPolicyResponse;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>StdPolicyResponseTest</code> contains tests for the class <code>{@link StdPolicyResponse}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class StdPolicyResponseTest {
+	/**
+	 * Run the Map<String, String> getActionAdvised() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetActionAdvised_1()
+		throws Exception {
+		StdPolicyResponse fixture = new StdPolicyResponse();
+		fixture.setPolicyResponseStatus("", PolicyResponseStatus.ACTION_ADVISED);
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setActionTaken(new Hashtable());
+
+		Map<String, String> result = fixture.getActionAdvised();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the Map<String, String> getActionTaken() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetActionTaken_1()
+		throws Exception {
+		StdPolicyResponse fixture = new StdPolicyResponse();
+		fixture.setPolicyResponseStatus("", PolicyResponseStatus.ACTION_ADVISED);
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setActionTaken(new Hashtable());
+
+		Map<String, String> result = fixture.getActionTaken();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the String getPolicyResponseMessage() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyResponseMessage_1()
+		throws Exception {
+		StdPolicyResponse fixture = new StdPolicyResponse();
+		fixture.setPolicyResponseStatus("", PolicyResponseStatus.ACTION_ADVISED);
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setActionTaken(new Hashtable());
+
+		String result = fixture.getPolicyResponseMessage();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the PolicyResponseStatus getPolicyResponseStatus() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyResponseStatus_1()
+		throws Exception {
+		StdPolicyResponse fixture = new StdPolicyResponse();
+		fixture.setPolicyResponseStatus("", PolicyResponseStatus.ACTION_ADVISED);
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setActionTaken(new Hashtable());
+
+		PolicyResponseStatus result = fixture.getPolicyResponseStatus();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("action_advised", result.toString());
+		assertEquals("ACTION_ADVISED", result.name());
+		assertEquals(1, result.ordinal());
+	}
+
+	/**
+	 * Run the Map<String, String> getRequestAttributes() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetRequestAttributes_1()
+		throws Exception {
+		StdPolicyResponse fixture = new StdPolicyResponse();
+		fixture.setPolicyResponseStatus("", PolicyResponseStatus.ACTION_ADVISED);
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setActionTaken(new Hashtable());
+
+		Map<String, String> result = fixture.getRequestAttributes();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the void setActionAdvised(Map<String,String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetActionAdvised_1()
+		throws Exception {
+		StdPolicyResponse fixture = new StdPolicyResponse();
+		fixture.setPolicyResponseStatus("", PolicyResponseStatus.ACTION_ADVISED);
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setActionTaken(new Hashtable());
+		Map<String, String> actionAdvised = new Hashtable();
+
+		fixture.setActionAdvised(actionAdvised);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setActionTaken(Map<String,String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetActionTaken_1()
+		throws Exception {
+		StdPolicyResponse fixture = new StdPolicyResponse();
+		fixture.setPolicyResponseStatus("", PolicyResponseStatus.ACTION_ADVISED);
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setActionTaken(new Hashtable());
+		Map<String, String> actionTaken = new Hashtable();
+
+		fixture.setActionTaken(actionTaken);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyResponseMessage(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyResponseMessage_1()
+		throws Exception {
+		StdPolicyResponse fixture = new StdPolicyResponse();
+		fixture.setPolicyResponseStatus("", PolicyResponseStatus.ACTION_ADVISED);
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setActionTaken(new Hashtable());
+		String policyResponseMessage = "";
+
+		fixture.setPolicyResponseMessage(policyResponseMessage);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyResponseStatus(PolicyResponseStatus) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyResponseStatus_1()
+		throws Exception {
+		StdPolicyResponse fixture = new StdPolicyResponse();
+		fixture.setPolicyResponseStatus("", PolicyResponseStatus.ACTION_ADVISED);
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setActionTaken(new Hashtable());
+		PolicyResponseStatus policyResponseStatus = PolicyResponseStatus.ACTION_ADVISED;
+
+		fixture.setPolicyResponseStatus(policyResponseStatus);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyResponseStatus(String,PolicyResponseStatus) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyResponseStatus_2()
+		throws Exception {
+		StdPolicyResponse fixture = new StdPolicyResponse();
+		fixture.setPolicyResponseStatus("", PolicyResponseStatus.ACTION_ADVISED);
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setActionTaken(new Hashtable());
+		String policyResponseMessage = "";
+		PolicyResponseStatus policyResponseStatus = PolicyResponseStatus.ACTION_ADVISED;
+
+		fixture.setPolicyResponseStatus(policyResponseMessage, policyResponseStatus);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setRequestAttributes(Map<String,String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetRequestAttributes_1()
+		throws Exception {
+		StdPolicyResponse fixture = new StdPolicyResponse();
+		fixture.setPolicyResponseStatus("", PolicyResponseStatus.ACTION_ADVISED);
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setActionTaken(new Hashtable());
+		Map<String, String> requestAttributes = new Hashtable();
+
+		fixture.setRequestAttributes(requestAttributes);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the String toString() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testToString_1()
+		throws Exception {
+		StdPolicyResponse fixture = new StdPolicyResponse();
+		fixture.setPolicyResponseStatus("", PolicyResponseStatus.ACTION_ADVISED);
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setActionTaken(new Hashtable());
+
+		String result = fixture.toString();
+
+		// add additional test code here
+		assertEquals("PolicyResponse [ policyResponseStatus=action_advised, policyResponseMessage=, ]", result);
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(StdPolicyResponseTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdRemovedPolicyTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdRemovedPolicyTest.java
new file mode 100644
index 0000000..0a0865c
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdRemovedPolicyTest.java
@@ -0,0 +1,206 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std.test;
+
+import org.junit.*;
+import org.openecomp.policy.std.StdRemovedPolicy;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>StdRemovedPolicyTest</code> contains tests for the class <code>{@link StdRemovedPolicy}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class StdRemovedPolicyTest {
+	/**
+	 * Run the StdRemovedPolicy() constructor test.
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testStdRemovedPolicy_1()
+		throws Exception {
+		StdRemovedPolicy result = new StdRemovedPolicy();
+		assertNotNull(result);
+		// add additional test code here
+	}
+
+	/**
+	 * Run the String getPolicyName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyName_1()
+		throws Exception {
+		StdRemovedPolicy fixture = new StdRemovedPolicy();
+		fixture.setVersionNo("");
+		fixture.setPolicyName("");
+
+		String result = fixture.getPolicyName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getPolicyName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyName_2()
+		throws Exception {
+		StdRemovedPolicy fixture = new StdRemovedPolicy();
+		fixture.setVersionNo("");
+		fixture.setPolicyName((String) null);
+
+		String result = fixture.getPolicyName();
+
+		// add additional test code here
+		assertEquals(null, result);
+	}
+
+	/**
+	 * Run the String getPolicyName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyName_3()
+		throws Exception {
+		StdRemovedPolicy fixture = new StdRemovedPolicy();
+		fixture.setVersionNo("");
+		fixture.setPolicyName("");
+
+		String result = fixture.getPolicyName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getVersionNo() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetVersionNo_1()
+		throws Exception {
+		StdRemovedPolicy fixture = new StdRemovedPolicy();
+		fixture.setVersionNo("");
+		fixture.setPolicyName("");
+
+		String result = fixture.getVersionNo();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the void setPolicyName(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyName_1()
+		throws Exception {
+		StdRemovedPolicy fixture = new StdRemovedPolicy();
+		fixture.setVersionNo("");
+		fixture.setPolicyName("");
+		String policyName = "";
+
+		fixture.setPolicyName(policyName);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setVersionNo(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetVersionNo_1()
+		throws Exception {
+		StdRemovedPolicy fixture = new StdRemovedPolicy();
+		fixture.setVersionNo("");
+		fixture.setPolicyName("");
+		String versionNo = "";
+
+		fixture.setVersionNo(versionNo);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(StdRemovedPolicyTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdStatusTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdStatusTest.java
new file mode 100644
index 0000000..4412dbd
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/StdStatusTest.java
@@ -0,0 +1,1433 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.std.test;
+
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Properties;
+
+import javax.json.JsonObject;
+
+import org.junit.*;
+import org.openecomp.policy.api.PolicyConfigStatus;
+import org.openecomp.policy.api.PolicyDecision;
+import org.openecomp.policy.api.PolicyResponseStatus;
+import org.openecomp.policy.api.PolicyType;
+import org.openecomp.policy.std.StdStatus;
+
+import static org.junit.Assert.*;
+
+import org.w3c.dom.Document;
+
+/**
+ * The class <code>StdStatusTest</code> contains tests for the class <code>{@link StdStatus}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class StdStatusTest {
+	/**
+	 * Run the Map<String, String> getActionAdvised() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetActionAdvised_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		Map<String, String> result = fixture.getActionAdvised();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the Map<String, String> getActionTaken() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetActionTaken_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		Map<String, String> result = fixture.getActionTaken();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the Map<String, String> getMatchingConditions() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetMatchingConditions_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		Map<String, String> result = fixture.getMatchingConditions();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the String getPolicyConfigMessage() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyConfigMessage_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		String result = fixture.getPolicyConfigMessage();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the PolicyConfigStatus getPolicyConfigStatus() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyConfigStatus_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		PolicyConfigStatus result = fixture.getPolicyConfigStatus();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("not_found", result.toString());
+		assertEquals("CONFIG_NOT_FOUND", result.name());
+		assertEquals(1, result.ordinal());
+	}
+
+	/**
+	 * Run the PolicyDecision getPolicyDecision() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyDecision_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		PolicyDecision result = fixture.getDecision();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("deny", result.toString());
+		assertEquals("DENY", result.name());
+		assertEquals(1, result.ordinal());
+	}
+
+	/**
+	 * Run the String getPolicyName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyName_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		String result = fixture.getPolicyName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getPolicyName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyName_2()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName((String) null);
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		String result = fixture.getPolicyName();
+
+		// add additional test code here
+		assertEquals(null, result);
+	}
+
+	/**
+	 * Run the String getPolicyName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyName_3()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		String result = fixture.getPolicyName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getPolicyResponseMessage() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyResponseMessage_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		String result = fixture.getPolicyResponseMessage();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the PolicyResponseStatus getPolicyResponseStatus() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyResponseStatus_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		PolicyResponseStatus result = fixture.getPolicyResponseStatus();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("action_advised", result.toString());
+		assertEquals("ACTION_ADVISED", result.name());
+		assertEquals(1, result.ordinal());
+	}
+
+	/**
+	 * Run the String getPolicyVersion() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyVersion_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		String result = fixture.getPolicyVersion();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the Map<String, String> getRequestAttributes() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetRequestAttributes_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		Map<String, String> result = fixture.getRequestAttributes();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the Map<String, String> getResponseAttributes() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetResponseAttributes_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		Map<String, String> result = fixture.getResponseAttributes();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the PolicyType getType() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetType_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		PolicyType result = fixture.getType();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("json", result.toString());
+		assertEquals("JSON", result.name());
+		assertEquals(1, result.ordinal());
+	}
+
+	/**
+	 * Run the void setActionAdvised(Map<String,String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetActionAdvised_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		Map<String, String> actionAdvised = new Hashtable();
+
+		fixture.setActionAdvised(actionAdvised);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setActionTaken(Map<String,String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetActionTaken_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		Map<String, String> actionTaken = new Hashtable();
+
+		fixture.setActionTaken(actionTaken);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setConfigStatus(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetConfigStatus_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		String configStatus = "";
+
+		fixture.setConfigStatus(configStatus);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setDocument(Document) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetDocument_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		Document document = null;
+
+		fixture.setDocument(document);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setJsonObject(JsonObject) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetJsonObject_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		JsonObject jsonObject = null;
+
+		fixture.setJsonObject(jsonObject);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setMatchingConditions(Map<String,String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetMatchingConditions_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		Map<String, String> matchingConditions = new Hashtable();
+
+		fixture.setMatchingConditions(matchingConditions);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setOther(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetOther_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		String other = "";
+
+		fixture.setOther(other);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyConfigStatus(PolicyConfigStatus) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyConfigStatus_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		PolicyConfigStatus policyConfigStatus = PolicyConfigStatus.CONFIG_NOT_FOUND;
+
+		fixture.setPolicyConfigStatus(policyConfigStatus);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyConfigStatus(String,PolicyConfigStatus) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyConfigStatus_2()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		String configStatus = "";
+		PolicyConfigStatus policyConfigStatus = PolicyConfigStatus.CONFIG_NOT_FOUND;
+
+		fixture.setPolicyConfigStatus(configStatus, policyConfigStatus);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyDecision(PolicyDecision) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyDecision_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		PolicyDecision policyDecision = PolicyDecision.DENY;
+
+		fixture.setDecision(policyDecision);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyName(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyName_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		String policyName = "";
+
+		fixture.setPolicyName(policyName);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyResponseMessage(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyResponseMessage_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		String policyResponseMessage = "";
+
+		fixture.setPolicyResponseMessage(policyResponseMessage);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyResponseStatus(PolicyResponseStatus) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyResponseStatus_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		PolicyResponseStatus policyResponseStatus = PolicyResponseStatus.ACTION_ADVISED;
+
+		fixture.setPolicyResponseStatus(policyResponseStatus);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyResponseStatus(String,PolicyResponseStatus) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyResponseStatus_2()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		String policyResponseMessage = "";
+		PolicyResponseStatus policyResponseStatus = PolicyResponseStatus.ACTION_ADVISED;
+
+		fixture.setPolicyResponseStatus(policyResponseMessage, policyResponseStatus);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyType(PolicyType) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyType_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		PolicyType policyType = PolicyType.JSON;
+
+		fixture.setPolicyType(policyType);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyVersion(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyVersion_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		String policyVersion = "";
+
+		fixture.setPolicyVersion(policyVersion);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setProperties(Properties) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetProperties_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		Properties properties = new Properties();
+
+		fixture.setProperties(properties);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setRequestAttributes(Map<String,String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetRequestAttributes_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		Map<String, String> requestAttributes = new Hashtable();
+
+		fixture.setRequestAttributes(requestAttributes);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setResposneAttributes(Map<String,String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetResposneAttributes_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		Map<String, String> responseAttributes = new Hashtable();
+
+		fixture.setResposneAttributes(responseAttributes);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setStatus(String,PolicyResponseStatus,PolicyConfigStatus) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetStatus_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+		String message = "";
+		PolicyResponseStatus policyResponseStatus = PolicyResponseStatus.ACTION_ADVISED;
+		PolicyConfigStatus policyConfigStatus = PolicyConfigStatus.CONFIG_NOT_FOUND;
+
+		fixture.setStatus(message, policyResponseStatus, policyConfigStatus);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the JsonObject toJSON() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testToJSON_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		JsonObject result = fixture.toJSON();
+
+		// add additional test code here
+		assertEquals(null, result);
+	}
+
+	/**
+	 * Run the String toOther() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testToOther_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		String result = fixture.toOther();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the Properties toProperties() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testToProperties_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		Properties result = fixture.toProperties();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the Document toXML() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testToXML_1()
+		throws Exception {
+		StdStatus fixture = new StdStatus();
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setPolicyName("");
+		fixture.setPolicyType(PolicyType.JSON);
+		fixture.setResposneAttributes(new Hashtable());
+		fixture.setMatchingConditions(new Hashtable());
+		fixture.setStatus("", PolicyResponseStatus.ACTION_ADVISED, PolicyConfigStatus.CONFIG_NOT_FOUND);
+		fixture.setJsonObject((JsonObject) null);
+		fixture.setDocument((Document) null);
+		fixture.setProperties(new Properties());
+		fixture.setRequestAttributes(new Hashtable());
+		fixture.setPolicyVersion("");
+		fixture.setActionAdvised(new Hashtable());
+		fixture.setOther("");
+		fixture.setDecision(PolicyDecision.DENY);
+		fixture.setDetails("");
+		fixture.setActionTaken(new Hashtable());
+
+		Document result = fixture.toXML();
+
+		// add additional test code here
+		assertEquals(null, result);
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(StdStatusTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/package-info.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/package-info.java
new file mode 100644
index 0000000..75bfc39
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/std/test/package-info.java
@@ -0,0 +1,27 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+/**
+ * 
+ */
+/**
+ *
+ */
+package org.openecomp.policy.std.test;
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/ActionPolicyApiTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/ActionPolicyApiTest.java
new file mode 100644
index 0000000..d830a1a
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/ActionPolicyApiTest.java
@@ -0,0 +1,240 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.openecomp.policy.api.AttributeType;
+import org.openecomp.policy.api.PolicyChangeResponse;
+import org.openecomp.policy.api.PolicyClass;
+import org.openecomp.policy.api.PolicyEngine;
+import org.openecomp.policy.api.PolicyEngineException;
+import org.openecomp.policy.api.PolicyParameters;
+import org.openecomp.policy.std.StdPolicyChangeResponse;
+
+import junit.framework.TestCase;
+import org.openecomp.policy.common.logging.flexlogger.*; 
+
+public class ActionPolicyApiTest extends TestCase {
+	
+	private static final Logger logger = FlexLogger.getLogger(ActionPolicyApiTest.class);
+
+	private PolicyEngine policyEngine = null;
+	private PolicyEngine mockPolicyEngine = null;
+	
+	PolicyChangeResponse result = null;
+	StdPolicyChangeResponse response = new StdPolicyChangeResponse();
+	PolicyParameters policyParameters = new PolicyParameters();
+	
+	@Before
+	protected void setUp() throws Exception {
+		try {
+			policyEngine = new PolicyEngine("Test/config_pass.properties");
+		} catch (PolicyEngineException e) {
+			logger.error(e.getMessage());
+			fail("PolicyEngine Instantiation Error" + e);
+		}
+		logger.info("Loaded.. PolicyEngine");
+		
+		mockPolicyEngine = Mockito.mock(PolicyEngine.class);
+
+        policyParameters.setPolicyClass(PolicyClass.Action); //required
+        policyParameters.setPolicyName("test.junitTest"); //required
+        policyParameters.setPolicyDescription("testing");  //optional
+        //policyParameters.setPolicyScope("test"); //Directory will be created where the Policies are saved... this displays a a subscope on the GUI
+        
+        //Set the Component Attributes... These are Optional
+        Map<String, String> configAttributes = new HashMap<String, String>(); 
+        configAttributes.put("test", "testing");
+        
+        Map<AttributeType, Map<String,String>> attributes = new HashMap<AttributeType, Map<String,String>>();
+        attributes.put(AttributeType.MATCHING, configAttributes);
+        policyParameters.setAttributes(attributes);
+		
+        policyParameters.setActionPerformer("PEP");
+        policyParameters.setActionAttribute("testing");
+        policyParameters.setRequestID(UUID.randomUUID());
+	}
+
+	protected void tearDown() throws Exception {
+		super.tearDown();
+	}
+	
+	@Test
+	public final void testCreatePolicy() {
+		response.setResponseMessage("success");
+		PolicyChangeResponse result = null;
+		try {
+		
+			Mockito.when(mockPolicyEngine.createPolicy(policyParameters)).thenReturn(response);
+			result = mockPolicyEngine.createPolicy(policyParameters);
+			
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);
+	}
+
+	@Test
+	public final void testUpdatePolicy() {
+		response.setResponseMessage("success");
+		PolicyChangeResponse result = null;
+		try {
+
+			Mockito.when(mockPolicyEngine.updatePolicy(policyParameters)).thenReturn(response);
+			result = mockPolicyEngine.updatePolicy(policyParameters);
+			
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);	
+		
+	}
+	
+	@Test
+	public final void testCreatePolicyNullPolicyName() {
+		response.setResponseMessage("PE300 - Data Issue: No Policy Name given.");
+		policyParameters.setPolicyName(null);
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testCreatePolicyNullPolicyScope() {
+		response.setResponseMessage("PE300 - Data Issue: No Policy Scope given.");
+		policyParameters.setPolicyName("test");
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testCreatePolicyNullActionAttributes() {
+		response.setResponseMessage("PE300 - Data Issue: No Action Attribute given.");
+		policyParameters.setActionAttribute(null);
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testCreatePolicyNullActionPerformer() {
+		response.setResponseMessage("PE300 - Data Issue: No Action Performer given.");
+		policyParameters.setActionPerformer(null);
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testCreatePolicyInvalidActionPerformer() {
+		response.setResponseMessage("PE300 - Data Issue: Invalid Action Performer given.");
+		policyParameters.setActionPerformer("testfail");
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testUpdatePolicyNullPolicyName() {
+		response.setResponseMessage("PE300 - Data Issue: No Policy Name given.");
+		policyParameters.setPolicyName(null);
+		try{
+			result = policyEngine.updatePolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testUpdatePolicyNullPolicyScope() {
+		response.setResponseMessage("PE300 - Data Issue: No Policy Scope given.");
+		policyParameters.setPolicyName("test");
+		try{
+			result = policyEngine.updatePolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testUpdatePolicyNullActionAttributes() {
+		response.setResponseMessage("PE300 - Data Issue: No Action Attribute given.");
+		policyParameters.setActionAttribute(null);
+		try{
+			result = policyEngine.updatePolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testUpdatePolicyNullActionPerformer() {
+		response.setResponseMessage("PE300 - Data Issue: No Action Performer given.");
+		policyParameters.setActionPerformer(null);
+		try{
+			result = policyEngine.updatePolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testUpdatePolicyInvalidActionPerformer() {
+		response.setResponseMessage("PE300 - Data Issue: Invalid Action Performer given.");
+		policyParameters.setActionPerformer("testfail");
+		try{
+			result = policyEngine.updatePolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/AttributeTypeTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/AttributeTypeTest.java
new file mode 100644
index 0000000..df8713a
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/AttributeTypeTest.java
@@ -0,0 +1,81 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.AttributeType;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>AttributeTypeTest</code> contains tests for the class <code>{@link AttributeType}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class AttributeTypeTest {
+	/**
+	 * Run the String toString() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testToString_1()
+		throws Exception {
+		AttributeType fixture = AttributeType.MATCHING;
+
+		String result = fixture.toString();
+
+		// add additional test code here
+		assertEquals("matching", result);
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/ConfigBasePolicyTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/ConfigBasePolicyTest.java
new file mode 100644
index 0000000..c6c624a
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/ConfigBasePolicyTest.java
@@ -0,0 +1,325 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import junit.framework.TestCase;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.openecomp.policy.api.AttributeType;
+import org.openecomp.policy.api.PolicyChangeResponse;
+import org.openecomp.policy.api.PolicyConfigType;
+import org.openecomp.policy.api.PolicyEngine;
+import org.openecomp.policy.api.PolicyEngineException;
+import org.openecomp.policy.api.PolicyParameters;
+import org.openecomp.policy.api.PolicyType;
+import org.openecomp.policy.std.StdPolicyChangeResponse;
+
+import org.openecomp.policy.common.logging.flexlogger.*; 
+
+/**
+ * The class <code>ConfigBasePolicyTest</code> contains tests for the class
+ * {@link <code>PolicyEngine</code>}
+ *
+ * @pattern JUnit Test Case
+ * *
+ */
+public class ConfigBasePolicyTest extends TestCase {
+
+	private static final Logger logger = FlexLogger.getLogger(DecisionPolicyApiTest.class);
+
+	private PolicyEngine policyEngine = null;
+	private PolicyEngine mockPolicyEngine = null;
+	
+	PolicyChangeResponse result = null;
+	StdPolicyChangeResponse response = new StdPolicyChangeResponse();
+	PolicyParameters policyParameters = new PolicyParameters();
+
+	/**
+	 * Perform pre-test initialization
+	 *
+	 * @throws Exception
+	 *
+	 * @see TestCase#setUp()
+	 */
+	protected void setUp() throws Exception {
+		try {
+			policyEngine = new PolicyEngine("Test/config_pass.properties");
+		} catch (PolicyEngineException e) {
+			logger.error(e.getMessage());
+			fail("PolicyEngine Instantiation Error" + e);
+		}
+		logger.info("Loaded.. PolicyEngine");
+		
+		mockPolicyEngine = Mockito.mock(PolicyEngine.class);
+
+        policyParameters.setPolicyConfigType(PolicyConfigType.Base); //required
+        policyParameters.setPolicyName("test.junitTest"); //required
+        policyParameters.setEcompName("test");
+        policyParameters.setConfigName("testBase");
+        policyParameters.setConfigBodyType(PolicyType.OTHER);
+        policyParameters.setConfigBody("testing");
+        policyParameters.setPolicyDescription("testing");  //optional
+        //policyParameters.setPolicyScope("test"); //Directory will be created where the Policies are saved... this displays a a subscope on the GUI
+        
+        //Set the Component Attributes... These are Optional
+        Map<String, String> configAttributes = new HashMap<String, String>(); 
+        configAttributes.put("test", "testing");
+        
+        Map<AttributeType, Map<String,String>> attributes = new HashMap<AttributeType, Map<String,String>>();
+        attributes.put(AttributeType.MATCHING, configAttributes);
+        policyParameters.setAttributes(attributes);
+
+        policyParameters.setRequestID(UUID.randomUUID());
+	}
+
+	/**
+	 * Perform post-test clean up
+	 *
+	 * @throws Exception
+	 *
+	 * @see TestCase#tearDown()
+	 */
+	protected void tearDown() throws Exception {
+		super.tearDown();
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Run the PolicyChangeResponse createPolicy(PolicyParameters) method test
+	 */
+	public void testCreatePolicy() {
+		response.setResponseMessage("success");
+		PolicyChangeResponse result = null;
+		try {
+		
+			Mockito.when(mockPolicyEngine.createPolicy(policyParameters)).thenReturn(response);
+			result = mockPolicyEngine.createPolicy(policyParameters);
+			
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);
+	}
+	
+	/**
+	 * Run the String createConfigPolicy() method test
+	 */
+	@Test
+	public void testCreateConfigPolicy() {
+		String response = "success";
+		String result = null;
+		try {
+		
+			Mockito.when(mockPolicyEngine.createConfigPolicy("testPolicy","test","test","testConfig",null,"OTHER","test","test",null, null, null, null, null)).thenReturn(response);
+			result = mockPolicyEngine.createConfigPolicy("testPolicy","test","test","testConfig",null,"OTHER","test","test",null, null, null, null, null);
+
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);
+	}
+
+	/**
+	 * Run the PolicyChangeResponse updatePolicy(PolicyParameters) method test
+	 */
+	public void testUpdatePolicy() {
+		response.setResponseMessage("success");
+		PolicyChangeResponse result = null;
+		try {
+		
+			Mockito.when(mockPolicyEngine.updatePolicy(policyParameters)).thenReturn(response);
+			result = mockPolicyEngine.updatePolicy(policyParameters);
+			
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);
+	}
+	
+	/**
+	 * Run the String updateConfigPolicy() method test
+	 */
+	@Test
+	public void testUpdateConfigPolicy() {
+		String response = "success";
+		String result = null;
+		try {
+		
+			Mockito.when(mockPolicyEngine.updateConfigPolicy("testPolicy","test","test","testConfig",null,"OTHER","test","test",null, null, null, null, null)).thenReturn(response);
+			result = mockPolicyEngine.updateConfigPolicy("testPolicy","test","test","testConfig",null,"OTHER","test","test",null, null, null, null, null);
+
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);
+	}
+	
+	@Test
+	public final void testCreatePolicyNullPolicyName() {
+		response.setResponseMessage("PE300 - Data Issue: No Policy Name given.");
+		policyParameters.setPolicyName(null);
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testCreatePolicyNullPolicyScope() {
+		response.setResponseMessage("PE300 - Data Issue: No Policy Scope given.");
+		policyParameters.setPolicyName("test");
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testCreatePolicyNullEcompName() {
+		response.setResponseMessage("PE300 - Data Issue: No ECOMP Name given.");
+		policyParameters.setEcompName(null);
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testCreatePolicyNullPolicyConfigName() {
+		response.setResponseMessage("PE300 - Data Issue: No Config Name given.");
+		policyParameters.setConfigName(null);;
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testCreatePolicyNullPolicyConfigBodyType() {
+		response.setResponseMessage("PE300 - Data Issue: No Config Body Type given.");
+		policyParameters.setConfigBodyType(null);
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testCreatePolicyNullPolicyConfigBody() {
+		response.setResponseMessage("PE300 - Data Issue: No Config Body given.");
+		policyParameters.setConfigBody(null);
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testUpdatePolicyNullPolicyName() {
+		response.setResponseMessage("PE300 - Data Issue: No Policy Name given.");
+		policyParameters.setPolicyName(null);
+		try{
+			result = policyEngine.updatePolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testUpdatePolicyNullPolicyScope() {
+		response.setResponseMessage("PE300 - Data Issue: No Policy Scope given.");
+		policyParameters.setPolicyName("test");
+		try{
+			result = policyEngine.updatePolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testUpdatePolicyNullEcompName() {
+		response.setResponseMessage("PE300 - Data Issue: No ECOMP Name given.");
+		policyParameters.setEcompName(null);
+		try{
+			result = policyEngine.updatePolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testUpdatePolicyNullPolicyConfigName() {
+		response.setResponseMessage("PE300 - Data Issue: No Config Name given.");
+		policyParameters.setConfigName(null);;
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testUpdatePolicyNullPolicyConfigBodyType() {
+		response.setResponseMessage("PE300 - Data Issue: No Config Body Type given.");
+		policyParameters.setConfigBodyType(null);
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testUpdatePolicyNullPolicyConfigBody() {
+		response.setResponseMessage("PE300 - Data Issue: No Config Body given.");
+		policyParameters.setConfigBody(null);
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/ConfigFirewallPolicyTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/ConfigFirewallPolicyTest.java
new file mode 100644
index 0000000..4725c17
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/ConfigFirewallPolicyTest.java
@@ -0,0 +1,256 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.io.StringReader;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import javax.json.Json;
+import javax.json.JsonObject;
+import javax.json.JsonReader;
+
+import junit.framework.TestCase;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.openecomp.policy.api.PolicyChangeResponse;
+import org.openecomp.policy.api.PolicyConfigType;
+import org.openecomp.policy.api.PolicyEngine;
+import org.openecomp.policy.api.PolicyEngineException;
+import org.openecomp.policy.api.PolicyParameters;
+import org.openecomp.policy.std.StdPolicyChangeResponse;
+
+import org.openecomp.policy.common.logging.flexlogger.*; 
+
+public class ConfigFirewallPolicyTest extends TestCase {
+
+	private static final Logger logger = FlexLogger.getLogger(DecisionPolicyApiTest.class);
+
+	private PolicyEngine policyEngine = null;
+	private PolicyEngine mockPolicyEngine = null;
+	
+	PolicyChangeResponse result = null;
+	StdPolicyChangeResponse response = new StdPolicyChangeResponse();
+	PolicyParameters policyParameters = new PolicyParameters();
+	String json = null;
+
+	/**
+	 * Perform pre-test initialization
+	 *
+	 * @throws Exception
+	 *
+	 * @see TestCase#setUp()
+	 */
+	protected void setUp() throws Exception {
+		try {
+			policyEngine = new PolicyEngine("Test/config_pass.properties");
+		} catch (PolicyEngineException e) {
+			logger.error(e.getMessage());
+			fail("PolicyEngine Instantiation Error" + e);
+		}
+		logger.info("Loaded.. PolicyEngine");
+		
+		mockPolicyEngine = Mockito.mock(PolicyEngine.class);
+
+        policyParameters.setPolicyConfigType(PolicyConfigType.Firewall); //required
+        policyParameters.setPolicyName("test.junitTest"); //required
+        
+        json = "{\"serviceTypeId\":\"/v0/firewall/pan\",\"configName\":\"rule1607\",\"deploymentOption\":{\"deployNow\":false},\"securityZoneId\":\"/v0/firewall/pan\",\"serviceGroups\":[{\"name\":\"1607Group\",\"description\":null,\"members\":[{\"type\":\"REFERENCE\",\"name\":\"SList\"},{\"type\":\"REFERENCE\",\"name\":\"Syslog\"}]},{\"name\":\"Syslog\",\"description\":\"NA\",\"type\":\"SERVICE\",\"transportProtocol\":\"udp\",\"appProtocol\":null,\"ports\":\"514\"},{\"name\":\"SList\",\"description\":\"Service List\",\"type\":\"SERVICE\",\"transportProtocol\":\"tcp\",\"appProtocol\":null,\"ports\":\"8080\"}],\"addressGroups\":[{\"name\":\"1607Group\",\"description\":null,\"members\":[{\"type\":\"SUBNET\",\"value\":\"10.11.12.13/14\"},{\"type\":\"SUBNET\",\"value\":\"10.11.12.13/14\"}]},{\"name\":\"PL_CCE3\",\"description\":\"CCE Routers\",\"members\":[{\"type\":\"SUBNET\",\"value\":\"10.11.12.13/14\"}]}],\"firewallRuleList\":[{\"position\":\"1\",\"ruleName\":\"1607Rule\",\"fromZones\":[\"Trusted\"],\"toZones\":[\"Untrusted\"],\"negateSource\":false,\"negateDestination\":false,\"sourceList\":[{\"type\":\"REFERENCE\",\"value\":\"PL_CCE3\"},{\"type\":\"REFERENCE\",\"value\":\"1607Group\"}],\"destinationList\":[{\"type\":\"REFERENCE\",\"value\":\"1607Group\"}],\"sourceServices\":[],\"destServices\":[{\"type\":\"REFERENCE\",\"name\":\"1607Group\"}],\"action\":\"accept\",\"description\":\"Rule for 1607 templates\",\"enabled\":true,\"log\":true}]}";
+        
+        policyParameters.setConfigBody(buildJSON(json).toString());
+        
+        //policyParameters.setPolicyScope("test"); //Directory will be created where the Policies are saved... this displays a a subscope on the GUI
+        policyParameters.setRequestID(UUID.randomUUID());
+	}
+
+    private static JsonObject buildJSON(String jsonString) {
+        JsonObject json = null;;
+        if (jsonString != null) {
+            StringReader in = null;
+             
+            in = new StringReader(jsonString);
+             
+            JsonReader jsonReader = Json.createReader(in);
+            json = jsonReader.readObject();        
+        } 
+        
+        return json;
+    }
+	/**
+	 * Perform post-test clean up
+	 *
+	 * @throws Exception
+	 *
+	 * @see TestCase#tearDown()
+	 */
+	protected void tearDown() throws Exception {
+		super.tearDown();
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Run the PolicyChangeResponse createPolicy(PolicyParameters) method test
+	 */
+	public void testCreatePolicy() {
+		response.setResponseMessage("success");
+		PolicyChangeResponse result = null;
+		try {
+		
+			Mockito.when(mockPolicyEngine.createPolicy(policyParameters)).thenReturn(response);
+			result = mockPolicyEngine.createPolicy(policyParameters);
+			
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);
+	}
+	
+	/**
+	 * Run the String createConfigFirewallPolicy() method test
+	 */
+	@Test
+	public void testCreateConfigFirewallPolicy() {
+		String response = "success";
+		String result = null;
+		JsonObject jsonObj = buildJSON(json);
+		try {
+		
+			Mockito.when(mockPolicyEngine.createConfigFirewallPolicy("testPolicy",jsonObj, "test", null, null, null, null, null)).thenReturn(response);
+			result = mockPolicyEngine.createConfigFirewallPolicy("testPolicy",jsonObj, "test", null, null, null, null, null);
+
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);
+	}
+
+	/**
+	 * Run the PolicyChangeResponse updatePolicy(PolicyParameters) method test
+	 */
+	public void testUpdatePolicy() {
+		response.setResponseMessage("success");
+		PolicyChangeResponse result = null;
+		try {
+		
+			Mockito.when(mockPolicyEngine.updatePolicy(policyParameters)).thenReturn(response);
+			result = mockPolicyEngine.updatePolicy(policyParameters);
+			
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);
+	}
+	
+	/**
+	 * Run the String updateConfigFirewallPolicy() method test
+	 */
+	@Test
+	public void testUpdateConfigFirewallPolicy() {
+		String response = "success";
+		String result = null;
+		JsonObject jsonObj = buildJSON(json);
+		try {
+		
+			Mockito.when(mockPolicyEngine.updateConfigFirewallPolicy("testPolicy",jsonObj, "test", null, null, null, null, null)).thenReturn(response);
+			result = mockPolicyEngine.updateConfigFirewallPolicy("testPolicy",jsonObj, "test", null, null, null, null, null);
+
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);
+	}
+	
+	@Test
+	public final void testCreatePolicyNullPolicyName() {
+		response.setResponseMessage("PE300 - Data Issue: No Policy Name given.");
+		policyParameters.setPolicyName(null);
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testCreatePolicyNullPolicyScope() {
+		response.setResponseMessage("PE300 - Data Issue: No Policy Scope given.");
+		policyParameters.setPolicyName("test");
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testCreatePolicyNullPolicyConfigBody() {
+		response.setResponseMessage("PE300 - Data Issue: No Config Body given.");
+		policyParameters.setConfigBody(null);
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testUpdatePolicyNullPolicyName() {
+		response.setResponseMessage("PE300 - Data Issue: No Policy Name given.");
+		policyParameters.setPolicyName(null);
+		try{
+			result = policyEngine.updatePolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testUpdatePolicyNullPolicyScope() {
+		response.setResponseMessage("PE300 - Data Issue: No Policy Scope given.");
+		policyParameters.setPolicyName("test");
+		try{
+			result = policyEngine.updatePolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+
+	@Test
+	public final void testUpdatePolicyNullPolicyConfigBody() {
+		response.setResponseMessage("PE300 - Data Issue: No Config Body given.");
+		policyParameters.setConfigBody(null);
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/ConfigRequestParametersTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/ConfigRequestParametersTest.java
new file mode 100644
index 0000000..c632a00
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/ConfigRequestParametersTest.java
@@ -0,0 +1,362 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.UUID;
+
+import org.junit.*;
+import org.openecomp.policy.api.ConfigRequestParameters;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>ConfigRequestParametersTest</code> contains tests for the class <code>{@link ConfigRequestParameters}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class ConfigRequestParametersTest {
+	/**
+	 * Run the ConfigRequestParameters() constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testConfigRequestParameters_1()
+		throws Exception {
+
+		ConfigRequestParameters result = new ConfigRequestParameters();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(null, result.getPolicyName());
+		assertEquals(null, result.getConfigName());
+		assertEquals(null, result.getConfigAttributes());
+		assertEquals(null, result.getRequestID());
+		assertEquals(null, result.getEcompName());
+		assertEquals(Boolean.FALSE, result.getUnique());
+	}
+
+	/**
+	 * Run the ConfigRequestParameters(String,String,String,Map<String,String>,Boolean,UUID) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testConfigRequestParameters_2()
+		throws Exception {
+		String policyName = "";
+		String eCOMPComponentName = "";
+		String configName = "";
+		Map<String, String> configAttributes = new Hashtable();
+		Boolean unique = new Boolean(true);
+		UUID requestID = UUID.randomUUID();
+
+		ConfigRequestParameters result = createConfigRequest(policyName, eCOMPComponentName, configName, configAttributes, unique, requestID);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("", result.getPolicyName());
+		assertEquals("", result.getConfigName());
+		assertEquals("", result.getEcompName());
+		assertEquals(Boolean.TRUE, result.getUnique());
+	}
+
+	/**
+	 * Run the Map<String, String> getConfigAttributes() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetConfigAttributes_1()
+		throws Exception {
+		ConfigRequestParameters fixture = createConfigRequest("", "", "", new Hashtable(), new Boolean(true), UUID.randomUUID());
+
+		Map<String, String> result = fixture.getConfigAttributes();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the String getConfigName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetConfigName_1()
+		throws Exception {
+		ConfigRequestParameters fixture = createConfigRequest("", "", "", new Hashtable(), new Boolean(true), UUID.randomUUID());
+
+		String result = fixture.getConfigName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getEcompName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetEcompName_1()
+		throws Exception {
+		ConfigRequestParameters fixture = createConfigRequest("", "", "", new Hashtable(), new Boolean(true), UUID.randomUUID());
+
+		String result = fixture.getEcompName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getPolicyName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyName_1()
+		throws Exception {
+		ConfigRequestParameters fixture = createConfigRequest("", "", "", new Hashtable(), new Boolean(true), UUID.randomUUID());
+
+		String result = fixture.getPolicyName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the UUID getRequestID() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetRequestID_1()
+		throws Exception {
+		ConfigRequestParameters fixture = createConfigRequest("", "", "", new Hashtable(), new Boolean(true), UUID.fromString("6b5aa070-90bc-46a6-9a59-e1fe526df7ae"));
+
+		UUID result = fixture.getRequestID();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("6b5aa070-90bc-46a6-9a59-e1fe526df7ae", result.toString());
+		assertEquals(4, result.version());
+		assertEquals(2, result.variant());
+		assertEquals(-7324574836520519762L, result.getLeastSignificantBits());
+		assertEquals(7735671715287287462L, result.getMostSignificantBits());
+	}
+
+	/**
+	 * Run the Boolean getUnique() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetUnique_1()
+		throws Exception {
+		ConfigRequestParameters fixture = createConfigRequest("", "", "", new Hashtable(), new Boolean(true), UUID.randomUUID());
+
+		Boolean result = fixture.getUnique();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("true", result.toString());
+		assertEquals(true, result.booleanValue());
+	}
+
+	/**
+	 * Run the void makeUnique(Boolean) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testMakeUnique_1()
+		throws Exception {
+		ConfigRequestParameters fixture = createConfigRequest("", "", "", new Hashtable(), new Boolean(true), UUID.randomUUID());
+		Boolean unique = new Boolean(true);
+
+		fixture.makeUnique(unique);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setConfigAttributes(Map<String,String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetConfigAttributes_1()
+		throws Exception {
+		ConfigRequestParameters fixture = createConfigRequest("", "", "", new Hashtable(), new Boolean(true), UUID.randomUUID());
+		Map<String, String> configAttributes = new Hashtable();
+
+		fixture.setConfigAttributes(configAttributes);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setConfigName(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetConfigName_1()
+		throws Exception {
+		ConfigRequestParameters fixture = createConfigRequest("", "", "", new Hashtable(), new Boolean(true), UUID.randomUUID());
+		String configName = "";
+
+		fixture.setConfigName(configName);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setEcompName(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetEcompName_1()
+		throws Exception {
+		ConfigRequestParameters fixture = createConfigRequest("", "", "", new Hashtable(), new Boolean(true), UUID.randomUUID());
+		String eCOMPComponentName = "";
+
+		fixture.setEcompName(eCOMPComponentName);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyName(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyName_1()
+		throws Exception {
+		ConfigRequestParameters fixture = createConfigRequest("", "", "", new Hashtable(), new Boolean(true), UUID.randomUUID());
+		String policyName = "";
+
+		fixture.setPolicyName(policyName);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setRequestID(UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetRequestID_1()
+		throws Exception {
+		ConfigRequestParameters fixture = createConfigRequest("", "", "", new Hashtable(), new Boolean(true), UUID.randomUUID());
+		UUID requestID = UUID.randomUUID();
+
+		fixture.setRequestID(requestID);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(ConfigRequestParametersTest.class);
+	}
+	
+	private ConfigRequestParameters createConfigRequest(String policyName, String eCOMPComponentName, String configName, Map<String,String> configAttributes, Boolean unique, UUID requestID){
+		ConfigRequestParameters configRequestParameters = new ConfigRequestParameters();
+		configRequestParameters.setRequestID(requestID);
+		configRequestParameters.setPolicyName(policyName);
+		configRequestParameters.setEcompName(eCOMPComponentName);
+		configRequestParameters.setConfigName(configName);
+		configRequestParameters.setConfigAttributes(configAttributes);
+		configRequestParameters.makeUnique(unique);
+		return configRequestParameters;
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/DecisionPolicyApiTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/DecisionPolicyApiTest.java
new file mode 100644
index 0000000..70adbe0
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/DecisionPolicyApiTest.java
@@ -0,0 +1,221 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.openecomp.policy.api.AttributeType;
+import org.openecomp.policy.api.PolicyChangeResponse;
+import org.openecomp.policy.api.PolicyClass;
+import org.openecomp.policy.api.PolicyEngine;
+import org.openecomp.policy.api.PolicyEngineException;
+import org.openecomp.policy.api.PolicyParameters;
+import org.openecomp.policy.std.StdPolicyChangeResponse;
+
+import org.openecomp.policy.common.logging.flexlogger.*; 
+
+import junit.framework.TestCase;
+
+/**
+ * The class <code>DecisionPolicyApiTest</code> contains tests for the class
+ * {@link <code>PolicyEngine</code>}
+ *
+ * @pattern JUnit Test Case
+ * *
+ */
+public class DecisionPolicyApiTest extends TestCase {
+
+	private static final Logger logger = FlexLogger.getLogger(DecisionPolicyApiTest.class);
+
+	private PolicyEngine policyEngine = null;
+	private PolicyEngine mockPolicyEngine = null;
+	
+	PolicyChangeResponse result = null;
+	StdPolicyChangeResponse response = new StdPolicyChangeResponse();
+	PolicyParameters policyParameters = new PolicyParameters();
+
+	/**
+	 * Perform pre-test initialization
+	 *
+	 * @throws Exception
+	 *
+	 * @see TestCase#setUp()
+	 */
+	protected void setUp() throws Exception {
+		try {
+			policyEngine = new PolicyEngine("Test/config_pass.properties");
+		} catch (PolicyEngineException e) {
+			logger.error(e.getMessage());
+			fail("PolicyEngine Instantiation Error" + e);
+		}
+		logger.info("Loaded.. PolicyEngine");
+		
+		mockPolicyEngine = Mockito.mock(PolicyEngine.class);
+
+        policyParameters.setPolicyClass(PolicyClass.Decision); //required
+        policyParameters.setPolicyName("test.junitTest"); //required
+        policyParameters.setEcompName("test");
+        policyParameters.setPolicyDescription("testing");  //optional
+        //policyParameters.setPolicyScope("test"); //Directory will be created where the Policies are saved... this displays a a subscope on the GUI
+        
+        //Set the Component Attributes... These are Optional
+        Map<String, String> configAttributes = new HashMap<String, String>(); 
+        configAttributes.put("test", "testing");
+        
+        Map<AttributeType, Map<String,String>> attributes = new HashMap<AttributeType, Map<String,String>>();
+        attributes.put(AttributeType.MATCHING, configAttributes);
+        policyParameters.setAttributes(attributes);
+
+      //Set the settings... These are Optional
+/*        Map<String, String> settingsMap = new HashMap<String, String>();
+        settingsMap.put("server", "5");
+         
+        Map<AttributeType, Map<String,String>> settings = new HashMap<AttributeType, Map<String, String>>();
+        settings.put(AttributeType.SETTINGS, settingsMap);
+        policyParameters.setSettings(settings);*/
+        
+        policyParameters.setRequestID(UUID.randomUUID());
+	}
+
+	/**
+	 * Perform post-test clean up
+	 *
+	 * @throws Exception
+	 *
+	 * @see TestCase#tearDown()
+	 */
+	protected void tearDown() throws Exception {
+		super.tearDown();
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Run the PolicyChangeResponse createPolicy(PolicyParameters) method test
+	 */
+	public void testCreatePolicy() {
+		response.setResponseMessage("success");
+		PolicyChangeResponse result = null;
+		try {
+		
+			Mockito.when(mockPolicyEngine.createPolicy(policyParameters)).thenReturn(response);
+			result = mockPolicyEngine.createPolicy(policyParameters);
+			
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);
+	}
+
+	/**
+	 * Run the PolicyChangeResponse updatePolicy(PolicyParameters) method test
+	 */
+	public void testUpdatePolicy() {
+		response.setResponseMessage("success");
+		PolicyChangeResponse result = null;
+		try {
+		
+			Mockito.when(mockPolicyEngine.updatePolicy(policyParameters)).thenReturn(response);
+			result = mockPolicyEngine.updatePolicy(policyParameters);
+			
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);
+	}
+	
+	@Test
+	public final void testCreatePolicyNullPolicyName() {
+		response.setResponseMessage("PE300 - Data Issue: No Policy Name given.");
+		policyParameters.setPolicyName(null);
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testCreatePolicyNullPolicyScope() {
+		response.setResponseMessage("PE300 - Data Issue: No Policy Scope given.");
+		policyParameters.setPolicyName("test");
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testCreatePolicyNullEcompName() {
+		response.setResponseMessage("PE300 - Data Issue: No ECOMP Name given.");
+		policyParameters.setEcompName(null);
+		try{
+			result = policyEngine.createPolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testUpdatePolicyNullPolicyName() {
+		response.setResponseMessage("PE300 - Data Issue: No Policy Name given.");
+		policyParameters.setPolicyName(null);
+		try{
+			result = policyEngine.updatePolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testUpdatePolicyNullPolicyScope() {
+		response.setResponseMessage("PE300 - Data Issue: No Policy Scope given.");
+		policyParameters.setPolicyName("test");
+		try{
+			result = policyEngine.updatePolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+	
+	@Test
+	public final void testUpdatePolicyNullEcompName() {
+		response.setResponseMessage("PE300 - Data Issue: No ECOMP Name given.");
+		policyParameters.setEcompName(null);
+		try{
+			result = policyEngine.updatePolicy(policyParameters);
+		} catch (Exception e){
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result.getResponseMessage(), response.getResponseMessage());
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/DecisionRequestParametersTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/DecisionRequestParametersTest.java
new file mode 100644
index 0000000..5b87826
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/DecisionRequestParametersTest.java
@@ -0,0 +1,232 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.UUID;
+
+import org.junit.*;
+import org.openecomp.policy.api.DecisionRequestParameters;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>DecisionRequestParametersTest</code> contains tests for the class <code>{@link DecisionRequestParameters}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class DecisionRequestParametersTest {
+	/**
+	 * Run the DecisionRequestParameters() constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testDecisionRequestParameters_1()
+		throws Exception {
+
+		DecisionRequestParameters result = new DecisionRequestParameters();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(null, result.getECOMPComponentName());
+		assertEquals(null, result.getDecisionAttributes());
+		assertEquals(null, result.getRequestID());
+	}
+
+	/**
+	 * Run the DecisionRequestParameters(String,Map<String,String>,UUID) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testDecisionRequestParameters_2()
+		throws Exception {
+		String eCOMPComponentName = "";
+		Map<String, String> decisionAttributes = new Hashtable();
+		UUID requestID = UUID.randomUUID();
+
+		DecisionRequestParameters result = new DecisionRequestParameters(eCOMPComponentName, decisionAttributes, requestID);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("", result.getECOMPComponentName());
+	}
+
+	/**
+	 * Run the Map<String, String> getDecisionAttributes() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetDecisionAttributes_1()
+		throws Exception {
+		DecisionRequestParameters fixture = new DecisionRequestParameters("", new Hashtable(), UUID.randomUUID());
+
+		Map<String, String> result = fixture.getDecisionAttributes();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the String getECOMPComponentName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetECOMPComponentName_1()
+		throws Exception {
+		DecisionRequestParameters fixture = new DecisionRequestParameters("", new Hashtable(), UUID.randomUUID());
+
+		String result = fixture.getECOMPComponentName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the UUID getRequestID() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetRequestID_1()
+		throws Exception {
+		DecisionRequestParameters fixture = new DecisionRequestParameters("", new Hashtable(), UUID.fromString("d1db6a6d-7140-4864-8200-6b541261fdd2"));
+
+		UUID result = fixture.getRequestID();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("d1db6a6d-7140-4864-8200-6b541261fdd2", result.toString());
+		assertEquals(4, result.version());
+		assertEquals(2, result.variant());
+		assertEquals(-9079138839949083182L, result.getLeastSignificantBits());
+		assertEquals(-3324946881598961564L, result.getMostSignificantBits());
+	}
+
+	/**
+	 * Run the void setDecisionAttributes(Map<String,String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetDecisionAttributes_1()
+		throws Exception {
+		DecisionRequestParameters fixture = new DecisionRequestParameters("", new Hashtable(), UUID.randomUUID());
+		Map<String, String> decisionAttributes = new Hashtable();
+
+		fixture.setDecisionAttributes(decisionAttributes);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setECOMPComponentName(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetECOMPComponentName_1()
+		throws Exception {
+		DecisionRequestParameters fixture = new DecisionRequestParameters("", new Hashtable(), UUID.randomUUID());
+		String eCOMPComponentName = "";
+
+		fixture.setECOMPComponentName(eCOMPComponentName);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setRequestID(UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetRequestID_1()
+		throws Exception {
+		DecisionRequestParameters fixture = new DecisionRequestParameters("", new Hashtable(), UUID.randomUUID());
+		UUID requestID = UUID.randomUUID();
+
+		fixture.setRequestID(requestID);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(DecisionRequestParametersTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/DeletePolicyConditionTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/DeletePolicyConditionTest.java
new file mode 100644
index 0000000..c294120
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/DeletePolicyConditionTest.java
@@ -0,0 +1,91 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.DeletePolicyCondition;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>DeletePolicyConditionTest</code> contains tests for the class <code>{@link DeletePolicyCondition}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class DeletePolicyConditionTest {
+	/**
+	 * Run the String toString() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testToString_1()
+		throws Exception {
+		DeletePolicyCondition fixture = DeletePolicyCondition.ALL;
+
+		String result = fixture.toString();
+
+		// add additional test code here
+		assertEquals("All Versions", result);
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(DeletePolicyConditionTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/DeletePolicyParametersTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/DeletePolicyParametersTest.java
new file mode 100644
index 0000000..7723f98
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/DeletePolicyParametersTest.java
@@ -0,0 +1,314 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.util.UUID;
+
+import org.junit.*;
+import org.openecomp.policy.api.DeletePolicyCondition;
+import org.openecomp.policy.api.DeletePolicyParameters;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>DeletePolicyParametersTest</code> contains tests for the class <code>{@link DeletePolicyParameters}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class DeletePolicyParametersTest {
+	/**
+	 * Run the DeletePolicyCondition getDeleteCondition() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetDeleteCondition_1()
+		throws Exception {
+		DeletePolicyParameters fixture = new DeletePolicyParameters();
+		fixture.setPolicyComponent("");
+		fixture.setPolicyName("");
+		fixture.setDeleteCondition(DeletePolicyCondition.ALL);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setPdpGroup("");
+
+		DeletePolicyCondition result = fixture.getDeleteCondition();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("All Versions", result.toString());
+		assertEquals("ALL", result.name());
+		assertEquals(1, result.ordinal());
+	}
+
+	/**
+	 * Run the String getPdpGroup() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPdpGroup_1()
+		throws Exception {
+		DeletePolicyParameters fixture = new DeletePolicyParameters();
+		fixture.setPolicyComponent("");
+		fixture.setPolicyName("");
+		fixture.setDeleteCondition(DeletePolicyCondition.ALL);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setPdpGroup("");
+
+		String result = fixture.getPdpGroup();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getPolicyComponent() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyComponent_1()
+		throws Exception {
+		DeletePolicyParameters fixture = new DeletePolicyParameters();
+		fixture.setPolicyComponent("");
+		fixture.setPolicyName("");
+		fixture.setDeleteCondition(DeletePolicyCondition.ALL);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setPdpGroup("");
+
+		String result = fixture.getPolicyComponent();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getPolicyName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyName_1()
+		throws Exception {
+		DeletePolicyParameters fixture = new DeletePolicyParameters();
+		fixture.setPolicyComponent("");
+		fixture.setPolicyName("");
+		fixture.setDeleteCondition(DeletePolicyCondition.ALL);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setPdpGroup("");
+
+		String result = fixture.getPolicyName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the UUID getRequestID() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetRequestID_1()
+		throws Exception {
+		DeletePolicyParameters fixture = new DeletePolicyParameters();
+		fixture.setPolicyComponent("");
+		fixture.setPolicyName("");
+		fixture.setDeleteCondition(DeletePolicyCondition.ALL);
+		fixture.setRequestID(UUID.fromString("482e90e2-2ad7-4265-9893-4cfe08ef1e3d"));
+		fixture.setPdpGroup("");
+
+		UUID result = fixture.getRequestID();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("482e90e2-2ad7-4265-9893-4cfe08ef1e3d", result.toString());
+		assertEquals(4, result.version());
+		assertEquals(2, result.variant());
+		assertEquals(-7452528304412746179L, result.getLeastSignificantBits());
+		assertEquals(5201253920715260517L, result.getMostSignificantBits());
+	}
+
+	/**
+	 * Run the void setDeleteCondition(DeletePolicyCondition) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetDeleteCondition_1()
+		throws Exception {
+		DeletePolicyParameters fixture = new DeletePolicyParameters();
+		fixture.setPolicyComponent("");
+		fixture.setPolicyName("");
+		fixture.setDeleteCondition(DeletePolicyCondition.ALL);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setPdpGroup("");
+		DeletePolicyCondition deleteCondition = DeletePolicyCondition.ALL;
+
+		fixture.setDeleteCondition(deleteCondition);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPdpGroup(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPdpGroup_1()
+		throws Exception {
+		DeletePolicyParameters fixture = new DeletePolicyParameters();
+		fixture.setPolicyComponent("");
+		fixture.setPolicyName("");
+		fixture.setDeleteCondition(DeletePolicyCondition.ALL);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setPdpGroup("");
+		String pdpGroup = "";
+
+		fixture.setPdpGroup(pdpGroup);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyComponent(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyComponent_1()
+		throws Exception {
+		DeletePolicyParameters fixture = new DeletePolicyParameters();
+		fixture.setPolicyComponent("");
+		fixture.setPolicyName("");
+		fixture.setDeleteCondition(DeletePolicyCondition.ALL);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setPdpGroup("");
+		String policyComponent = "";
+
+		fixture.setPolicyComponent(policyComponent);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyName(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyName_1()
+		throws Exception {
+		DeletePolicyParameters fixture = new DeletePolicyParameters();
+		fixture.setPolicyComponent("");
+		fixture.setPolicyName("");
+		fixture.setDeleteCondition(DeletePolicyCondition.ALL);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setPdpGroup("");
+		String policyName = "";
+
+		fixture.setPolicyName(policyName);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setRequestID(UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetRequestID_1()
+		throws Exception {
+		DeletePolicyParameters fixture = new DeletePolicyParameters();
+		fixture.setPolicyComponent("");
+		fixture.setPolicyName("");
+		fixture.setDeleteCondition(DeletePolicyCondition.ALL);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setPdpGroup("");
+		UUID requestID = UUID.randomUUID();
+
+		fixture.setRequestID(requestID);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(DeletePolicyParametersTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/EventRequestParametersTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/EventRequestParametersTest.java
new file mode 100644
index 0000000..c8d9bd4
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/EventRequestParametersTest.java
@@ -0,0 +1,193 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.UUID;
+
+import org.junit.*;
+import org.openecomp.policy.api.EventRequestParameters;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>EventRequestParametersTest</code> contains tests for the class <code>{@link EventRequestParameters}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class EventRequestParametersTest {
+	/**
+	 * Run the EventRequestParameters() constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testEventRequestParameters_1()
+		throws Exception {
+
+		EventRequestParameters result = new EventRequestParameters();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(null, result.getEventAttributes());
+		assertEquals(null, result.getRequestID());
+	}
+
+	/**
+	 * Run the EventRequestParameters(Map<String,String>,UUID) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testEventRequestParameters_2()
+		throws Exception {
+		Map<String, String> eventAttributes = new Hashtable();
+		UUID requestID = UUID.randomUUID();
+
+		EventRequestParameters result = new EventRequestParameters(eventAttributes, requestID);
+
+		// add additional test code here
+		assertNotNull(result);
+	}
+
+	/**
+	 * Run the Map<String, String> getEventAttributes() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetEventAttributes_1()
+		throws Exception {
+		EventRequestParameters fixture = new EventRequestParameters(new Hashtable(), UUID.randomUUID());
+
+		Map<String, String> result = fixture.getEventAttributes();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the UUID getRequestID() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetRequestID_1()
+		throws Exception {
+		EventRequestParameters fixture = new EventRequestParameters(new Hashtable(), UUID.fromString("5b15376d-569b-4772-ac75-9362043f6a6c"));
+
+		UUID result = fixture.getRequestID();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("5b15376d-569b-4772-ac75-9362043f6a6c", result.toString());
+		assertEquals(4, result.version());
+		assertEquals(2, result.variant());
+		assertEquals(-6019743277723456916L, result.getLeastSignificantBits());
+		assertEquals(6563212974706345842L, result.getMostSignificantBits());
+	}
+
+	/**
+	 * Run the void setEventAttributes(Map<String,String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetEventAttributes_1()
+		throws Exception {
+		EventRequestParameters fixture = new EventRequestParameters(new Hashtable(), UUID.randomUUID());
+		Map<String, String> eventAttributes = new Hashtable();
+
+		fixture.setEventAttributes(eventAttributes);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setRequestID(UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetRequestID_1()
+		throws Exception {
+		EventRequestParameters fixture = new EventRequestParameters(new Hashtable(), UUID.randomUUID());
+		UUID requestID = UUID.randomUUID();
+
+		fixture.setRequestID(requestID);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(EventRequestParametersTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/GetConfigByPolicyNameTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/GetConfigByPolicyNameTest.java
new file mode 100644
index 0000000..ccab587
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/GetConfigByPolicyNameTest.java
@@ -0,0 +1,64 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.util.Collection;
+
+import junit.framework.TestCase;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.policy.api.PolicyConfig;
+import org.openecomp.policy.api.PolicyConfigException;
+import org.openecomp.policy.api.PolicyEngine;
+import org.openecomp.policy.api.PolicyEngineException;
+
+import org.openecomp.policy.common.logging.flexlogger.*; 
+
+public class GetConfigByPolicyNameTest extends TestCase {
+	private PolicyEngine policyEngine = null;
+	private String policyName = null;
+	private Collection<PolicyConfig> policyConfig = null;
+	private static final Logger logger = FlexLogger.getLogger(GetConfigByPolicyNameTest.class);
+	@Before
+	public void setUp() {
+		try {
+			policyEngine = new PolicyEngine("Test/config_pass.properties");
+		} catch (PolicyEngineException e) {
+			logger.error(e.getMessage());
+			fail("PolicyEngine Instantiation Error" + e);
+		}
+		logger.info("Loaded.. PolicyEngine");
+	}
+	
+	@Test
+	public void testGetConfigPolicyNameNotValid(){
+		policyName = null;
+		try{
+			policyConfig = policyEngine.getConfigByPolicyName(policyName);
+		} catch (PolicyConfigException e){
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/GetConfigStringStringMapTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/GetConfigStringStringMapTest.java
new file mode 100644
index 0000000..23cce3d
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/GetConfigStringStringMapTest.java
@@ -0,0 +1,251 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.policy.api.PolicyConfig;
+import org.openecomp.policy.api.PolicyConfigException;
+import org.openecomp.policy.api.PolicyConfigStatus;
+import org.openecomp.policy.api.PolicyEngine;
+import org.openecomp.policy.api.PolicyEngineException;
+import org.openecomp.policy.api.PolicyType;
+
+import org.openecomp.policy.common.logging.flexlogger.*; 
+
+public class GetConfigStringStringMapTest {
+
+	private PolicyEngine policyEngine = null;
+	private String eCOMPComponentName = null;
+	private String configName = null;
+	private Map<String,String> configAttributes = new HashMap<String,String>();
+	private Collection<PolicyConfig> policyConfig = null;
+	private static final Logger logger = FlexLogger.getLogger(GetConfigStringStringMapTest.class);
+	@Before
+	public void setUp() {
+		try {
+			policyEngine = new PolicyEngine("Test/config_pass.properties");
+		} catch (PolicyEngineException e) {
+			logger.error(e.getMessage());
+			fail("PolicyEngine Instantiation Error" + e);
+		}
+		logger.info("Loaded.. PolicyEngine");
+	}
+
+	@Test
+	public void testGetConfigStringStringMapFail() {
+		eCOMPComponentName = null;
+		configName = null;
+		configAttributes = null;
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName, configAttributes);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+	
+	@Test
+	public void testGetConfigStringStringMapFail1() {
+		eCOMPComponentName = null;
+		configName = "testFail";
+		configAttributes.put("TestValue", "Fail");
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName, configAttributes);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+	
+	@Test
+	public void testGetConfigStringStringMapFail2() {
+		eCOMPComponentName = "TestFail";
+		configName = null;
+		configAttributes.put("TestValue", "Fail");
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName, configAttributes);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+	
+	@Test
+	public void testGetConfigStringStringMapFail3() {
+		eCOMPComponentName = "TestFail";
+		configName = "configFail";
+		configAttributes= null;
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName, configAttributes);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+	
+	@Test
+	public void testGetConfigStringStringMapfail4() {
+		eCOMPComponentName = "TestFail";
+		configName = "configFail";
+		configAttributes.put("", "");
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName, configAttributes);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+	
+	//@Test
+	public void testGetConfigStringStringMapNotValid() {
+		eCOMPComponentName = "TestFail";
+		configName = "configFail";
+		configAttributes.put("Action:com.test.fail", "Value");
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName, configAttributes);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyConfig policyConfig : this.policyConfig){
+			logger.info(policyConfig.getPolicyConfigMessage() + " , " +policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig);
+			assertEquals(PolicyConfigStatus.CONFIG_NOT_FOUND,policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig.getPolicyConfigMessage());
+			assertNull(policyConfig.getType());
+			assertNull(policyConfig.toJSON());
+			assertNull(policyConfig.toProperties());
+			assertNull(policyConfig.toXML());
+			assertNull(policyConfig.toOther());
+		}
+	}
+	
+	//@Test
+	public void testGetConfigStringStringMapValidJSON() {
+		eCOMPComponentName = "JSON";
+		configName = "JSONconfig";
+		configAttributes.put("Resource.com:test:resource:json", "Test");
+		configAttributes.put("Action.com:test:action:json", "TestJSON");
+		configAttributes.put("Subject.com:test:subject:json", "TestSubject");
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName, configAttributes);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyConfig policyConfig : this.policyConfig){
+			logger.info(policyConfig.getPolicyConfigMessage() + " , " +policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig);
+			assertEquals(PolicyConfigStatus.CONFIG_RETRIEVED,policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig.getPolicyConfigMessage());
+			assertEquals(PolicyType.JSON,policyConfig.getType());
+			assertNotNull(policyConfig.toJSON());
+			assertNull(policyConfig.toProperties());
+			assertNull(policyConfig.toXML());
+			assertNull(policyConfig.toOther());
+		}
+	}
+	
+	//@Test
+	public void testGetConfigStringStringMapValidXML() {
+		eCOMPComponentName = "XML";
+		configName = "XMLconfig";
+		configAttributes.put("Resource.com:test:resource:json", "Test");
+		configAttributes.put("Action.com:test:action:json", "TestJSON");
+		configAttributes.put("Subject.com:test:subject:json", "TestSubject");
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName, configAttributes);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyConfig policyConfig : this.policyConfig){
+			logger.info(policyConfig.getPolicyConfigMessage() + " , " +policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig);
+			assertEquals(PolicyConfigStatus.CONFIG_RETRIEVED,policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig.getPolicyConfigMessage());
+			assertEquals(PolicyType.XML,policyConfig.getType());
+			assertNull(policyConfig.toJSON());
+			assertNull(policyConfig.toProperties());
+			assertNotNull(policyConfig.toXML());
+			assertNull(policyConfig.toOther());
+		}
+	}
+	
+	//@Test
+	public void testGetConfigStringStringMapValidProperties() {
+		eCOMPComponentName = "Properties";
+		configName = "PropConfig" ;
+		configAttributes.put("Resource.com:test:resource:json", "Test");
+		configAttributes.put("Action.com:test:action:json", "TestJSON");
+		configAttributes.put("Subject.com:test:subject:json", "TestSubject");
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName, configAttributes);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyConfig policyConfig : this.policyConfig){
+			logger.info(policyConfig.getPolicyConfigMessage() + " , " +policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig);
+			assertEquals(PolicyConfigStatus.CONFIG_RETRIEVED,policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig.getPolicyConfigMessage());
+			assertEquals(PolicyType.PROPERTIES,policyConfig.getType());
+			assertNull(policyConfig.toJSON());
+			assertNotNull(policyConfig.toProperties());
+			assertNull(policyConfig.toXML());
+			assertNull(policyConfig.toOther());
+		}
+	}
+	
+	//@Test
+	public void testGetConfigStringStringMapValidOther() {
+		eCOMPComponentName = "Other";
+		configName = "OtherConfig" ;
+		configAttributes.put("Resource.com:test:resource:json", "Test");
+		configAttributes.put("Action.com:test:action:json", "TestJSON");
+		configAttributes.put("Subject.com:test:subject:json", "TestSubject");
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName, configAttributes);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyConfig policyConfig : this.policyConfig){
+			logger.info(policyConfig.getPolicyConfigMessage() + " , " +policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig);
+			assertEquals(PolicyConfigStatus.CONFIG_RETRIEVED,policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig.getPolicyConfigMessage());
+			assertEquals(PolicyType.OTHER,policyConfig.getType());
+			assertNull(policyConfig.toJSON());
+			assertNull(policyConfig.toProperties());
+			assertNull(policyConfig.toXML());
+			assertNotNull(policyConfig.toOther());
+		}
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/GetConfigStringStringTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/GetConfigStringStringTest.java
new file mode 100644
index 0000000..fc8302c
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/GetConfigStringStringTest.java
@@ -0,0 +1,207 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+import java.util.Collection;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.policy.api.PolicyConfig;
+import org.openecomp.policy.api.PolicyConfigException;
+import org.openecomp.policy.api.PolicyConfigStatus;
+import org.openecomp.policy.api.PolicyEngine;
+import org.openecomp.policy.api.PolicyEngineException;
+import org.openecomp.policy.api.PolicyType;
+
+import org.openecomp.policy.common.logging.flexlogger.*; 
+
+public class GetConfigStringStringTest {
+	
+	private PolicyEngine policyEngine = null;
+	private String eCOMPComponentName = null;
+	private String configName = null;
+	private Collection<PolicyConfig> policyConfig = null;
+	private static final Logger logger = FlexLogger.getLogger(GetConfigStringStringTest.class);
+	@Before
+	public void setUp() {
+		try {
+			policyEngine = new PolicyEngine("Test/config_pass.properties");
+		} catch (PolicyEngineException e) {
+			logger.error(e.getMessage());
+			fail("PolicyEngine Instantiation Error" + e);
+		}
+		logger.info("Loaded.. PolicyEngine");
+	}
+
+	@Test
+	public void testGetConfigStringStringFail() {
+		eCOMPComponentName = null;
+		configName = null;
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+	
+	@Test
+	public void testGetConfigStringStringFail1() {
+		eCOMPComponentName = null;
+		configName = "";
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+	
+	@Test
+	public void testGetConfigStringStringFail2() {
+		eCOMPComponentName = "";
+		configName = null;
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+	
+	//@Test
+	public void testGetConfigStringStringNotvalid() {
+		eCOMPComponentName = "fail";
+		configName = "fail";
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyConfig policyConfig : this.policyConfig){
+			logger.info(policyConfig.getPolicyConfigMessage() + " , " +policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig);
+			assertEquals(PolicyConfigStatus.CONFIG_NOT_FOUND,policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig.getPolicyConfigMessage());
+			assertNull(policyConfig.getType());
+			assertNull(policyConfig.toJSON());
+			assertNull(policyConfig.toProperties());
+			assertNull(policyConfig.toXML());
+			assertNull(policyConfig.toOther());
+		}
+	}
+	
+	//@Test
+	public void testGetConfigStringStringValidJSON() {
+		eCOMPComponentName = "JSON";
+		configName = "JSONconfig";
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyConfig policyConfig : this.policyConfig){
+			logger.info(policyConfig.getPolicyConfigMessage() + " , " +policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig);
+			assertEquals(PolicyConfigStatus.CONFIG_RETRIEVED,policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig.getPolicyConfigMessage());
+			assertEquals(PolicyType.JSON,policyConfig.getType());
+			assertNotNull(policyConfig.toJSON());
+			assertNull(policyConfig.toProperties());
+			assertNull(policyConfig.toXML());
+			assertNull(policyConfig.toOther());
+		}
+	}
+	
+	//@Test
+	public void testGetConfigStringStringValidXML() {
+		eCOMPComponentName = "XML";
+		configName = "XMLconfig";
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyConfig policyConfig : this.policyConfig){
+			logger.info(policyConfig.getPolicyConfigMessage() + " , " +policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig);
+			assertEquals(PolicyConfigStatus.CONFIG_RETRIEVED,policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig.getPolicyConfigMessage());
+			assertEquals(PolicyType.XML,policyConfig.getType());
+			assertNull(policyConfig.toJSON());
+			assertNull(policyConfig.toProperties());
+			assertNotNull(policyConfig.toXML());
+			assertNull(policyConfig.toOther());
+		}
+	}
+	
+	//@Test
+	public void testGetConfigStringStringValidProperties() {
+		eCOMPComponentName = "Properties";
+		configName = "PropConfig" ; 
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyConfig policyConfig : this.policyConfig){
+			logger.info(policyConfig.getPolicyConfigMessage() + " , " +policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig);
+			assertEquals(PolicyConfigStatus.CONFIG_RETRIEVED,policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig.getPolicyConfigMessage());
+			assertEquals(PolicyType.PROPERTIES,policyConfig.getType());
+			assertNull(policyConfig.toJSON());
+			assertNotNull(policyConfig.toProperties());
+			assertNull(policyConfig.toXML());
+			assertNull(policyConfig.toOther());
+		}
+	}
+	
+	//@Test
+	public void testGetConfigStringStringValidOther() {
+		eCOMPComponentName = "Other";
+		configName = "OtherConfig" ; 
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName, configName);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyConfig policyConfig : this.policyConfig){
+			logger.info(policyConfig.getPolicyConfigMessage() + " , " +policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig);
+			assertEquals(PolicyConfigStatus.CONFIG_RETRIEVED,policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig.getPolicyConfigMessage());
+			assertEquals(PolicyType.OTHER,policyConfig.getType());
+			assertNull(policyConfig.toJSON());
+			assertNull(policyConfig.toProperties());
+			assertNull(policyConfig.toXML());
+			assertNotNull(policyConfig.toOther());
+		}
+	}
+
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/GetConfigStringTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/GetConfigStringTest.java
new file mode 100644
index 0000000..42d3853
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/GetConfigStringTest.java
@@ -0,0 +1,175 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.util.Collection;
+
+import junit.framework.TestCase;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.openecomp.policy.api.PolicyConfig;
+import org.openecomp.policy.api.PolicyConfigException;
+import org.openecomp.policy.api.PolicyConfigStatus;
+import org.openecomp.policy.api.PolicyEngine;
+import org.openecomp.policy.api.PolicyEngineException;
+import org.openecomp.policy.api.PolicyType;
+
+import org.openecomp.policy.common.logging.flexlogger.*; 
+
+public class GetConfigStringTest extends TestCase{
+	
+	private PolicyEngine policyEngine = null;
+	private String eCOMPComponentName = null;
+	private Collection<PolicyConfig> policyConfig = null;
+	private static final Logger logger = FlexLogger.getLogger(GetConfigStringTest.class);
+	@Before
+	public void setUp() {
+		try {
+			policyEngine = new PolicyEngine("Test/config_pass.properties");
+		} catch (PolicyEngineException e) {
+			logger.error(e.getMessage());
+			fail("PolicyEngine Instantiation Error" + e);
+		}
+		logger.info("Loaded.. PolicyEngine");
+	}
+	
+	//@Test
+	public void testGetConfigStringFail() {
+		eCOMPComponentName = null;
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+	
+	/*@Test
+	public void testGetConfigStringNotvalid() {
+		eCOMPComponentName = "fail";
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyConfig policyConfig : this.policyConfig){
+			logger.info(policyConfig.getPolicyConfigMessage() + " , " +policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig);
+			assertEquals(PolicyConfigStatus.CONFIG_NOT_FOUND,policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig.getPolicyConfigMessage());
+			assertNull(policyConfig.getType());
+			assertNull(policyConfig.toJSON());
+			assertNull(policyConfig.toProperties());
+			assertNull(policyConfig.toXML());
+			assertNull(policyConfig.toOther());
+		}
+	}
+	*/
+	
+	/*@Test
+	public void testGetConfigStringValidJSON() {
+		eCOMPComponentName = "JSON";
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyConfig policyConfig : this.policyConfig){
+			logger.info(policyConfig.getPolicyConfigMessage() + " , " +policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig);
+			assertEquals(PolicyConfigStatus.CONFIG_RETRIEVED,policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig.getPolicyConfigMessage());
+			assertEquals(PolicyType.JSON,policyConfig.getType());
+			assertNotNull(policyConfig.toJSON());
+			assertNull(policyConfig.toProperties());
+			assertNull(policyConfig.toXML());
+			assertNull(policyConfig.toOther());
+		}
+	}
+	*/
+	/*@Test
+	public void testGetConfigStringValidXML() {
+		eCOMPComponentName = "XML";
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyConfig policyConfig : this.policyConfig){
+			logger.info(policyConfig.getPolicyConfigMessage() + " , " +policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig);
+			assertEquals(PolicyConfigStatus.CONFIG_RETRIEVED,policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig.getPolicyConfigMessage());
+			assertEquals(PolicyType.XML,policyConfig.getType());
+			assertNull(policyConfig.toJSON());
+			assertNull(policyConfig.toProperties());
+			assertNotNull(policyConfig.toXML());
+			assertNull(policyConfig.toOther());
+		}
+	}
+	*/
+	/*@Test
+	public void testGetConfigStringValidProperties() {
+		eCOMPComponentName = "Properties";
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyConfig policyConfig : this.policyConfig){
+			logger.info(policyConfig.getPolicyConfigMessage() + " , " +policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig);
+			assertEquals(PolicyConfigStatus.CONFIG_RETRIEVED,policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig.getPolicyConfigMessage());
+			assertEquals(PolicyType.PROPERTIES,policyConfig.getType());
+			assertNull(policyConfig.toJSON());
+			assertNotNull(policyConfig.toProperties());
+			assertNull(policyConfig.toXML());
+			assertNull(policyConfig.toOther());
+		}
+	}
+	*/
+	/*@Test
+	public void testGetConfigStringValidOther() {
+		eCOMPComponentName = "Other";
+		try {
+			policyConfig = policyEngine.getConfig(eCOMPComponentName);
+		} catch (PolicyConfigException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyConfig policyConfig : this.policyConfig){
+			logger.info(policyConfig.getPolicyConfigMessage() + " , " +policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig);
+			assertEquals(PolicyConfigStatus.CONFIG_RETRIEVED,policyConfig.getPolicyConfigStatus());
+			assertNotNull(policyConfig.getPolicyConfigMessage());
+			assertEquals(PolicyType.OTHER,policyConfig.getType());
+			assertNull(policyConfig.toJSON());
+			assertNull(policyConfig.toProperties());
+			assertNull(policyConfig.toXML());
+			assertNotNull(policyConfig.toOther());
+		}
+	}
+	*/
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/ImportParametersTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/ImportParametersTest.java
new file mode 100644
index 0000000..f6ceff6
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/ImportParametersTest.java
@@ -0,0 +1,464 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.util.UUID;
+
+import org.junit.*;
+import org.openecomp.policy.api.ImportParameters;
+import org.openecomp.policy.api.ImportParameters.IMPORT_TYPE;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>ImportParametersTest</code> contains tests for the class <code>{@link ImportParameters}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class ImportParametersTest {
+	/**
+	 * Run the String getDescription() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetDescription_1()
+		throws Exception {
+		ImportParameters fixture = new ImportParameters();
+		fixture.setFilePath("");
+		fixture.setVersion("");
+		fixture.setImportBody("");
+		fixture.setServiceType(ImportParameters.IMPORT_TYPE.MICROSERVICE);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setDescription("");
+		fixture.setServiceName("");
+
+		String result = fixture.getDescription();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getFilePath() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetFilePath_1()
+		throws Exception {
+		ImportParameters fixture = new ImportParameters();
+		fixture.setFilePath("");
+		fixture.setVersion("");
+		fixture.setImportBody("");
+		fixture.setServiceType(ImportParameters.IMPORT_TYPE.MICROSERVICE);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setDescription("");
+		fixture.setServiceName("");
+
+		String result = fixture.getFilePath();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getImportBody() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetImportBody_1()
+		throws Exception {
+		ImportParameters fixture = new ImportParameters();
+		fixture.setFilePath("");
+		fixture.setVersion("");
+		fixture.setImportBody("");
+		fixture.setServiceType(ImportParameters.IMPORT_TYPE.MICROSERVICE);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setDescription("");
+		fixture.setServiceName("");
+
+		String result = fixture.getImportBody();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the UUID getRequestID() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetRequestID_1()
+		throws Exception {
+		ImportParameters fixture = new ImportParameters();
+		fixture.setFilePath("");
+		fixture.setVersion("");
+		fixture.setImportBody("");
+		fixture.setServiceType(ImportParameters.IMPORT_TYPE.MICROSERVICE);
+		fixture.setRequestID(UUID.fromString("731dca0a-fe99-456c-8ad2-87cff8437b2f"));
+		fixture.setDescription("");
+		fixture.setServiceName("");
+
+		UUID result = fixture.getRequestID();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("731dca0a-fe99-456c-8ad2-87cff8437b2f", result.toString());
+		assertEquals(4, result.version());
+		assertEquals(2, result.variant());
+		assertEquals(-8443537024073106641L, result.getLeastSignificantBits());
+		assertEquals(8295008237256263020L, result.getMostSignificantBits());
+	}
+
+	/**
+	 * Run the String getServiceName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetServiceName_1()
+		throws Exception {
+		ImportParameters fixture = new ImportParameters();
+		fixture.setFilePath("");
+		fixture.setVersion("");
+		fixture.setImportBody("");
+		fixture.setServiceType(ImportParameters.IMPORT_TYPE.MICROSERVICE);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setDescription("");
+		fixture.setServiceName("");
+
+		String result = fixture.getServiceName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the ImportParameters.IMPORT_TYPE getServiceType() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetServiceType_1()
+		throws Exception {
+		ImportParameters fixture = new ImportParameters();
+		fixture.setFilePath("");
+		fixture.setVersion("");
+		fixture.setImportBody("");
+		fixture.setServiceType(ImportParameters.IMPORT_TYPE.MICROSERVICE);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setDescription("");
+		fixture.setServiceName("");
+
+		ImportParameters.IMPORT_TYPE result = fixture.getServiceType();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("MICROSERVICE", result.name());
+		assertEquals("MICROSERVICE", result.toString());
+		assertEquals(0, result.ordinal());
+	}
+
+	/**
+	 * Run the String getVersion() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetVersion_1()
+		throws Exception {
+		ImportParameters fixture = new ImportParameters();
+		fixture.setFilePath("");
+		fixture.setVersion("");
+		fixture.setImportBody("");
+		fixture.setServiceType(ImportParameters.IMPORT_TYPE.MICROSERVICE);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setDescription("");
+		fixture.setServiceName("");
+
+		String result = fixture.getVersion();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the void setDescription(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetDescription_1()
+		throws Exception {
+		ImportParameters fixture = new ImportParameters();
+		fixture.setFilePath("");
+		fixture.setVersion("");
+		fixture.setImportBody("");
+		fixture.setServiceType(ImportParameters.IMPORT_TYPE.MICROSERVICE);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setDescription("");
+		fixture.setServiceName("");
+		String description = "";
+
+		fixture.setDescription(description);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setFilePath(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetFilePath_1()
+		throws Exception {
+		ImportParameters fixture = new ImportParameters();
+		fixture.setFilePath("");
+		fixture.setVersion("");
+		fixture.setImportBody("");
+		fixture.setServiceType(ImportParameters.IMPORT_TYPE.MICROSERVICE);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setDescription("");
+		fixture.setServiceName("");
+		String filePath = "";
+
+		fixture.setFilePath(filePath);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setImportBody(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetImportBody_1()
+		throws Exception {
+		ImportParameters fixture = new ImportParameters();
+		fixture.setFilePath("");
+		fixture.setVersion("");
+		fixture.setImportBody("");
+		fixture.setServiceType(ImportParameters.IMPORT_TYPE.MICROSERVICE);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setDescription("");
+		fixture.setServiceName("");
+		String importBody = "";
+
+		fixture.setImportBody(importBody);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setImportParameters(String,String,UUID,String,IMPORT_TYPE,String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetImportParameters_1()
+		throws Exception {
+		ImportParameters fixture = new ImportParameters();
+		fixture.setFilePath("");
+		fixture.setVersion("");
+		fixture.setImportBody("");
+		fixture.setServiceType(ImportParameters.IMPORT_TYPE.MICROSERVICE);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setDescription("");
+		fixture.setServiceName("");
+		String serviceName = "";
+		String description = "";
+		UUID requestID = UUID.randomUUID();
+		String filePath = "";
+		ImportParameters.IMPORT_TYPE importType = ImportParameters.IMPORT_TYPE.MICROSERVICE;
+		String version = "";
+
+		fixture.setImportParameters(serviceName, description, requestID, filePath, importType, version);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setRequestID(UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetRequestID_1()
+		throws Exception {
+		ImportParameters fixture = new ImportParameters();
+		fixture.setFilePath("");
+		fixture.setVersion("");
+		fixture.setImportBody("");
+		fixture.setServiceType(ImportParameters.IMPORT_TYPE.MICROSERVICE);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setDescription("");
+		fixture.setServiceName("");
+		UUID requestID = UUID.randomUUID();
+
+		fixture.setRequestID(requestID);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setServiceName(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetServiceName_1()
+		throws Exception {
+		ImportParameters fixture = new ImportParameters();
+		fixture.setFilePath("");
+		fixture.setVersion("");
+		fixture.setImportBody("");
+		fixture.setServiceType(ImportParameters.IMPORT_TYPE.MICROSERVICE);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setDescription("");
+		fixture.setServiceName("");
+		String serviceName = "";
+
+		fixture.setServiceName(serviceName);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setServiceType(IMPORT_TYPE) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetServiceType_1()
+		throws Exception {
+		ImportParameters fixture = new ImportParameters();
+		fixture.setFilePath("");
+		fixture.setVersion("");
+		fixture.setImportBody("");
+		fixture.setServiceType(ImportParameters.IMPORT_TYPE.MICROSERVICE);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setDescription("");
+		fixture.setServiceName("");
+		ImportParameters.IMPORT_TYPE enumImportType = ImportParameters.IMPORT_TYPE.MICROSERVICE;
+
+		fixture.setServiceType(enumImportType);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setVersion(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetVersion_1()
+		throws Exception {
+		ImportParameters fixture = new ImportParameters();
+		fixture.setFilePath("");
+		fixture.setVersion("");
+		fixture.setImportBody("");
+		fixture.setServiceType(ImportParameters.IMPORT_TYPE.MICROSERVICE);
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setDescription("");
+		fixture.setServiceName("");
+		String version = "";
+
+		fixture.setVersion(version);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(ImportParametersTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/LoadedPolicyTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/LoadedPolicyTest.java
new file mode 100644
index 0000000..f750312
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/LoadedPolicyTest.java
@@ -0,0 +1,75 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.util.Map;
+
+import org.junit.*;
+import org.openecomp.policy.api.LoadedPolicy;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>LoadedPolicyTest</code> contains tests for the class <code>{@link LoadedPolicy}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class LoadedPolicyTest {
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(LoadedPolicyTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/NotificationHandlerTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/NotificationHandlerTest.java
new file mode 100644
index 0000000..fe6b53c
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/NotificationHandlerTest.java
@@ -0,0 +1,73 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.NotificationHandler;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>NotificationHandlerTest</code> contains tests for the class <code>{@link NotificationHandler}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class NotificationHandlerTest {
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(NotificationHandlerTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/NotificationSchemeTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/NotificationSchemeTest.java
new file mode 100644
index 0000000..1cb105c
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/NotificationSchemeTest.java
@@ -0,0 +1,91 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.NotificationScheme;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>NotificationSchemeTest</code> contains tests for the class <code>{@link NotificationScheme}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class NotificationSchemeTest {
+	/**
+	 * Run the String toString() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testToString_1()
+		throws Exception {
+		NotificationScheme fixture = NotificationScheme.AUTO_ALL_NOTIFICATIONS;
+
+		String result = fixture.toString();
+
+		// add additional test code here
+		assertEquals("auto_all_notifications", result);
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(NotificationSchemeTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/NotificationTypeTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/NotificationTypeTest.java
new file mode 100644
index 0000000..95dce6a
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/NotificationTypeTest.java
@@ -0,0 +1,91 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.NotificationType;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>NotificationTypeTest</code> contains tests for the class <code>{@link NotificationType}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class NotificationTypeTest {
+	/**
+	 * Run the String toString() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testToString_1()
+		throws Exception {
+		NotificationType fixture = NotificationType.BOTH;
+
+		String result = fixture.toString();
+
+		// add additional test code here
+		assertEquals("both", result);
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(NotificationTypeTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PDPNotificationTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PDPNotificationTest.java
new file mode 100644
index 0000000..4a7cdf5
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PDPNotificationTest.java
@@ -0,0 +1,75 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.util.Collection;
+
+import org.junit.*;
+import org.openecomp.policy.api.PDPNotification;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>PDPNotificationTest</code> contains tests for the class <code>{@link PDPNotification}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class PDPNotificationTest {
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(PDPNotificationTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyChangeResponseTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyChangeResponseTest.java
new file mode 100644
index 0000000..2c8dc04
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyChangeResponseTest.java
@@ -0,0 +1,73 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.PolicyChangeResponse;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>PolicyChangeResponseTest</code> contains tests for the class <code>{@link PolicyChangeResponse}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class PolicyChangeResponseTest {
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(PolicyChangeResponseTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyClassTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyClassTest.java
new file mode 100644
index 0000000..28e5bee
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyClassTest.java
@@ -0,0 +1,91 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.PolicyClass;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>PolicyClassTest</code> contains tests for the class <code>{@link PolicyClass}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class PolicyClassTest {
+	/**
+	 * Run the String toString() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testToString_1()
+		throws Exception {
+		PolicyClass fixture = PolicyClass.Action;
+
+		String result = fixture.toString();
+
+		// add additional test code here
+		assertEquals("Action", result);
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(PolicyClassTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyConfigExceptionTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyConfigExceptionTest.java
new file mode 100644
index 0000000..4134eac
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyConfigExceptionTest.java
@@ -0,0 +1,183 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.PolicyConfigException;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>PolicyConfigExceptionTest</code> contains tests for the class <code>{@link PolicyConfigException}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class PolicyConfigExceptionTest {
+	/**
+	 * Run the PolicyConfigException() constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testPolicyConfigException_1()
+		throws Exception {
+
+		PolicyConfigException result = new PolicyConfigException();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(null, result.getCause());
+		assertEquals("org.openecomp.policy.api.PolicyConfigException", result.toString());
+		assertEquals(null, result.getLocalizedMessage());
+		assertEquals(null, result.getMessage());
+	}
+
+	/**
+	 * Run the PolicyConfigException(String) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testPolicyConfigException_2()
+		throws Exception {
+		String message = "";
+
+		PolicyConfigException result = new PolicyConfigException(message);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(null, result.getCause());
+		assertEquals("org.openecomp.policy.api.PolicyConfigException: ", result.toString());
+		assertEquals("", result.getLocalizedMessage());
+		assertEquals("", result.getMessage());
+	}
+
+	/**
+	 * Run the PolicyConfigException(Throwable) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testPolicyConfigException_3()
+		throws Exception {
+		Throwable cause = new Throwable();
+
+		PolicyConfigException result = new PolicyConfigException(cause);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("org.openecomp.policy.api.PolicyConfigException: java.lang.Throwable", result.toString());
+		assertEquals("java.lang.Throwable", result.getLocalizedMessage());
+		assertEquals("java.lang.Throwable", result.getMessage());
+	}
+
+	/**
+	 * Run the PolicyConfigException(String,Throwable) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testPolicyConfigException_4()
+		throws Exception {
+		String message = "";
+		Throwable cause = new Throwable();
+
+		PolicyConfigException result = new PolicyConfigException(message, cause);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("org.openecomp.policy.api.PolicyConfigException: ", result.toString());
+		assertEquals("", result.getLocalizedMessage());
+		assertEquals("", result.getMessage());
+	}
+
+	/**
+	 * Run the PolicyConfigException(String,Throwable,boolean,boolean) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testPolicyConfigException_5()
+		throws Exception {
+		String message = "";
+		Throwable cause = new Throwable();
+		boolean enableSuppression = true;
+		boolean writableStackTrace = true;
+
+		PolicyConfigException result = new PolicyConfigException(message, cause, enableSuppression, writableStackTrace);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("org.openecomp.policy.api.PolicyConfigException: ", result.toString());
+		assertEquals("", result.getLocalizedMessage());
+		assertEquals("", result.getMessage());
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(PolicyConfigExceptionTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyConfigStatusTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyConfigStatusTest.java
new file mode 100644
index 0000000..c402538
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyConfigStatusTest.java
@@ -0,0 +1,133 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.PolicyConfigStatus;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>PolicyConfigStatusTest</code> contains tests for the class <code>{@link PolicyConfigStatus}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class PolicyConfigStatusTest {
+	/**
+	 * Run the PolicyConfigStatus getStatus(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetStatus_1()
+		throws Exception {
+		String configStatus = "";
+
+		PolicyConfigStatus result = PolicyConfigStatus.getStatus(configStatus);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("not_found", result.toString());
+		assertEquals("CONFIG_NOT_FOUND", result.name());
+		assertEquals(1, result.ordinal());
+	}
+
+	/**
+	 * Run the PolicyConfigStatus getStatus(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetStatus_2()
+		throws Exception {
+		String configStatus = "";
+
+		PolicyConfigStatus result = PolicyConfigStatus.getStatus(configStatus);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("not_found", result.toString());
+		assertEquals("CONFIG_NOT_FOUND", result.name());
+		assertEquals(1, result.ordinal());
+	}
+
+	/**
+	 * Run the String toString() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testToString_1()
+		throws Exception {
+		PolicyConfigStatus fixture = PolicyConfigStatus.CONFIG_NOT_FOUND;
+
+		String result = fixture.toString();
+
+		// add additional test code here
+		assertEquals("not_found", result);
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(PolicyConfigStatusTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyConfigTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyConfigTest.java
new file mode 100644
index 0000000..cbe11f4
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyConfigTest.java
@@ -0,0 +1,80 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.util.Map;
+import java.util.Properties;
+
+import javax.json.JsonObject;
+
+import org.junit.*;
+import org.openecomp.policy.api.PolicyConfig;
+
+import static org.junit.Assert.*;
+
+import org.w3c.dom.Document;
+
+/**
+ * The class <code>PolicyConfigTest</code> contains tests for the class <code>{@link PolicyConfig}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class PolicyConfigTest {
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(PolicyConfigTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyConfigTypeTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyConfigTypeTest.java
new file mode 100644
index 0000000..cd6c6a9
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyConfigTypeTest.java
@@ -0,0 +1,91 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.PolicyConfigType;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>PolicyConfigTypeTest</code> contains tests for the class <code>{@link PolicyConfigType}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class PolicyConfigTypeTest {
+	/**
+	 * Run the String toString() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testToString_1()
+		throws Exception {
+		PolicyConfigType fixture = PolicyConfigType.BRMS_PARAM;
+
+		String result = fixture.toString();
+
+		// add additional test code here
+		assertEquals("BRMS_Param", result);
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(PolicyConfigTypeTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyDecisionExceptionTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyDecisionExceptionTest.java
new file mode 100644
index 0000000..95dfd7a
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyDecisionExceptionTest.java
@@ -0,0 +1,183 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.PolicyDecisionException;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>PolicyDecisionExceptionTest</code> contains tests for the class <code>{@link PolicyDecisionException}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class PolicyDecisionExceptionTest {
+	/**
+	 * Run the PolicyDecisionException() constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testPolicyDecisionException_1()
+		throws Exception {
+
+		PolicyDecisionException result = new PolicyDecisionException();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(null, result.getCause());
+		assertEquals("org.openecomp.policy.api.PolicyDecisionException", result.toString());
+		assertEquals(null, result.getLocalizedMessage());
+		assertEquals(null, result.getMessage());
+	}
+
+	/**
+	 * Run the PolicyDecisionException(String) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testPolicyDecisionException_2()
+		throws Exception {
+		String message = "";
+
+		PolicyDecisionException result = new PolicyDecisionException(message);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(null, result.getCause());
+		assertEquals("org.openecomp.policy.api.PolicyDecisionException: ", result.toString());
+		assertEquals("", result.getLocalizedMessage());
+		assertEquals("", result.getMessage());
+	}
+
+	/**
+	 * Run the PolicyDecisionException(Throwable) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testPolicyDecisionException_3()
+		throws Exception {
+		Throwable cause = new Throwable();
+
+		PolicyDecisionException result = new PolicyDecisionException(cause);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("org.openecomp.policy.api.PolicyDecisionException: java.lang.Throwable", result.toString());
+		assertEquals("java.lang.Throwable", result.getLocalizedMessage());
+		assertEquals("java.lang.Throwable", result.getMessage());
+	}
+
+	/**
+	 * Run the PolicyDecisionException(String,Throwable) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testPolicyDecisionException_4()
+		throws Exception {
+		String message = "";
+		Throwable cause = new Throwable();
+
+		PolicyDecisionException result = new PolicyDecisionException(message, cause);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("org.openecomp.policy.api.PolicyDecisionException: ", result.toString());
+		assertEquals("", result.getLocalizedMessage());
+		assertEquals("", result.getMessage());
+	}
+
+	/**
+	 * Run the PolicyDecisionException(String,Throwable,boolean,boolean) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testPolicyDecisionException_5()
+		throws Exception {
+		String message = "";
+		Throwable cause = new Throwable();
+		boolean enableSuppression = true;
+		boolean writableStackTrace = true;
+
+		PolicyDecisionException result = new PolicyDecisionException(message, cause, enableSuppression, writableStackTrace);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("org.openecomp.policy.api.PolicyDecisionException: ", result.toString());
+		assertEquals("", result.getLocalizedMessage());
+		assertEquals("", result.getMessage());
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(PolicyDecisionExceptionTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyDecisionTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyDecisionTest.java
new file mode 100644
index 0000000..12069ab
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyDecisionTest.java
@@ -0,0 +1,91 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.PolicyDecision;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>PolicyDecisionTest</code> contains tests for the class <code>{@link PolicyDecision}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class PolicyDecisionTest {
+	/**
+	 * Run the String toString() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testToString_1()
+		throws Exception {
+		PolicyDecision fixture = PolicyDecision.DENY;
+
+		String result = fixture.toString();
+
+		// add additional test code here
+		assertEquals("deny", result);
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(PolicyDecisionTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyEngineExceptionTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyEngineExceptionTest.java
new file mode 100644
index 0000000..d21fb12
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyEngineExceptionTest.java
@@ -0,0 +1,183 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.PolicyEngineException;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>PolicyEngineExceptionTest</code> contains tests for the class <code>{@link PolicyEngineException}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class PolicyEngineExceptionTest {
+	/**
+	 * Run the PolicyEngineException() constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testPolicyEngineException_1()
+		throws Exception {
+
+		PolicyEngineException result = new PolicyEngineException();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(null, result.getCause());
+		assertEquals("org.openecomp.policy.api.PolicyEngineException", result.toString());
+		assertEquals(null, result.getLocalizedMessage());
+		assertEquals(null, result.getMessage());
+	}
+
+	/**
+	 * Run the PolicyEngineException(String) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testPolicyEngineException_2()
+		throws Exception {
+		String message = "";
+
+		PolicyEngineException result = new PolicyEngineException(message);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(null, result.getCause());
+		assertEquals("org.openecomp.policy.api.PolicyEngineException: ", result.toString());
+		assertEquals("", result.getLocalizedMessage());
+		assertEquals("", result.getMessage());
+	}
+
+	/**
+	 * Run the PolicyEngineException(Throwable) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testPolicyEngineException_3()
+		throws Exception {
+		Throwable cause = new Throwable();
+
+		PolicyEngineException result = new PolicyEngineException(cause);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("org.openecomp.policy.api.PolicyEngineException: java.lang.Throwable", result.toString());
+		assertEquals("java.lang.Throwable", result.getLocalizedMessage());
+		assertEquals("java.lang.Throwable", result.getMessage());
+	}
+
+	/**
+	 * Run the PolicyEngineException(String,Throwable) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testPolicyEngineException_4()
+		throws Exception {
+		String message = "";
+		Throwable cause = new Throwable();
+
+		PolicyEngineException result = new PolicyEngineException(message, cause);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("org.openecomp.policy.api.PolicyEngineException: ", result.toString());
+		assertEquals("", result.getLocalizedMessage());
+		assertEquals("", result.getMessage());
+	}
+
+	/**
+	 * Run the PolicyEngineException(String,Throwable,boolean,boolean) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testPolicyEngineException_5()
+		throws Exception {
+		String message = "";
+		Throwable cause = new Throwable();
+		boolean enableSuppression = true;
+		boolean writableStackTrace = true;
+
+		PolicyEngineException result = new PolicyEngineException(message, cause, enableSuppression, writableStackTrace);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("org.openecomp.policy.api.PolicyEngineException: ", result.toString());
+		assertEquals("", result.getLocalizedMessage());
+		assertEquals("", result.getMessage());
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(PolicyEngineExceptionTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyEngineInterfaceTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyEngineInterfaceTest.java
new file mode 100644
index 0000000..51a3c20
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyEngineInterfaceTest.java
@@ -0,0 +1,672 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.io.StringReader;
+import java.net.HttpURLConnection;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import javax.json.Json;
+import javax.json.JsonObject;
+import javax.json.JsonReader;
+
+import junit.framework.TestCase;
+
+import org.mockito.Mockito;
+import org.openecomp.policy.api.AttributeType;
+import org.openecomp.policy.api.ConfigRequestParameters;
+import org.openecomp.policy.api.DecisionRequestParameters;
+import org.openecomp.policy.api.DecisionResponse;
+import org.openecomp.policy.api.DeletePolicyCondition;
+import org.openecomp.policy.api.DeletePolicyParameters;
+import org.openecomp.policy.api.EventRequestParameters;
+import org.openecomp.policy.api.ImportParameters;
+import org.openecomp.policy.api.NotificationHandler;
+import org.openecomp.policy.api.NotificationScheme;
+import org.openecomp.policy.api.PDPNotification;
+import org.openecomp.policy.api.PolicyChangeResponse;
+import org.openecomp.policy.api.PolicyClass;
+import org.openecomp.policy.api.PolicyConfig;
+import org.openecomp.policy.api.PolicyConfigException;
+import org.openecomp.policy.api.PolicyDecision;
+import org.openecomp.policy.api.PolicyDecisionException;
+import org.openecomp.policy.api.PolicyEngine;
+import org.openecomp.policy.api.PolicyEngineException;
+import org.openecomp.policy.api.PolicyEventException;
+import org.openecomp.policy.api.PolicyParameters;
+import org.openecomp.policy.api.PolicyResponse;
+import org.openecomp.policy.api.PushPolicyParameters;
+import org.openecomp.policy.api.ImportParameters.IMPORT_TYPE;
+import org.openecomp.policy.std.StdPDPNotification;
+import org.openecomp.policy.std.StdPolicyChangeResponse;
+import org.openecomp.policy.std.StdPolicyEngine;
+import org.openecomp.policy.std.StdPolicyResponse;
+
+import org.openecomp.policy.xacml.std.pap.StdPAPPolicy;
+
+import org.openecomp.policy.common.logging.flexlogger.FlexLogger;
+import org.openecomp.policy.common.logging.flexlogger.Logger;
+
+/**
+ * The class <code>PolicyEngineInterfaceTest</code> contains tests for the
+ * class {@link <code>PolicyEngine</code>}
+ *
+ * @pattern JUnit Test Case
+ *
+ * @generatedBy CodePro at 5/27/16 10:33 AM
+ *
+ *
+ * @version $Revision$
+ */
+public class PolicyEngineInterfaceTest extends TestCase {
+
+	private static final Logger logger = FlexLogger.getLogger(PolicyEngineInterfaceTest.class);
+
+	private PolicyEngine policyEngine = null;
+	private StdPolicyEngine stdPolicyEngine = null;
+	private PolicyEngine mockPolicyEngine = null;
+	private Collection<PolicyConfig> policyConfig = null;
+	private UUID requestID = UUID.randomUUID();
+
+
+	PolicyChangeResponse result = null;
+	StdPolicyChangeResponse response = new StdPolicyChangeResponse();
+	
+	
+	/**
+	 * Construct new test instance
+	 *
+	 * @param name the test name
+	 */
+	public PolicyEngineInterfaceTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Perform pre-test initialization
+	 *
+	 * @throws Exception
+	 *
+	 * @see TestCase#setUp()
+	 */
+	protected void setUp() throws Exception {
+		try {
+			policyEngine = new PolicyEngine("Test/config_pass.properties");
+		} catch (PolicyEngineException e) {
+			logger.error(e.getMessage());
+			fail("PolicyEngine Instantiation Error" + e);
+		}
+		logger.info("Loaded.. PolicyEngine");
+		
+		mockPolicyEngine = Mockito.mock(PolicyEngine.class);
+		HttpURLConnection conn = Mockito.mock(HttpURLConnection.class);
+		Mockito.when(conn.getResponseCode()).thenReturn(HttpURLConnection.HTTP_OK);
+
+	}
+
+	/**
+	 * Perform post-test clean up
+	 *
+	 * @throws Exception
+	 *
+	 * @see TestCase#tearDown()
+	 */
+	protected void tearDown() throws Exception {
+		super.tearDown();
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Run the Collection<PolicyConfig> getConfigByPolicyName(String) method
+	 * test
+	 */
+	public void testGetConfigByPolicyName() {
+		String policyName = null;
+		try{
+			policyConfig = policyEngine.getConfigByPolicyName(policyName);
+		} catch (PolicyConfigException e){
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+	
+	public void testGetConfigByPolicyName2() {
+		String policyName = null;
+		
+		try{
+			policyConfig = policyEngine.getConfigByPolicyName(policyName, requestID);
+		} catch (PolicyConfigException e){
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+
+	/**
+	 * Run the Collection<PolicyConfig> getConfig(String) method test
+	 */
+	public void testGetConfig() {
+		String ecompName = null;
+		
+		try{
+			policyConfig = policyEngine.getConfig(ecompName);
+		} catch (PolicyConfigException e){
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+	
+	public void testGetConfig2() {
+		String ecompName = null;
+
+		try{
+			policyConfig = policyEngine.getConfig(ecompName,requestID);
+		} catch (PolicyConfigException e){
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+
+	
+	public void testGetConfig3() {
+		String ecompName = null;
+		String configName = null;
+
+		try{
+			policyConfig = policyEngine.getConfig(ecompName,configName,requestID);
+		} catch (PolicyConfigException e){
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+
+	public void testGetConfig4() {
+		String ecompName = null;
+		String configName = null;
+		Map<String,String> configAttributes = null;
+		
+		try{
+			policyConfig = policyEngine.getConfig(ecompName,configName,configAttributes);
+		} catch (PolicyConfigException e){
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+	
+	public void testGetConfig5() {
+		String ecompName = null;
+		String configName = null;
+		Map<String,String> configAttributes = null;
+		
+		try{
+			policyConfig = policyEngine.getConfig(ecompName,configName,configAttributes,requestID);
+		} catch (PolicyConfigException e){
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+	
+	public void testGetConfig6() {
+		ConfigRequestParameters parameters = new ConfigRequestParameters();
+		
+		try{
+			policyConfig = policyEngine.getConfig(parameters);
+		} catch (PolicyConfigException e){
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyConfig);
+	}
+
+
+	/**
+	 * Run the Collection<PolicyResponse> sendEvent(Map<String,String>) method
+	 * test
+	 */
+	public void testSendEvent()
+	{
+		Collection<PolicyResponse> result = null;
+		Collection<StdPolicyResponse> response = null;
+		Map<String,String> eventAttributes = null;
+		
+		try {
+			Mockito.when(mockPolicyEngine.sendEvent(eventAttributes)).thenReturn(result);
+			result = mockPolicyEngine.sendEvent(eventAttributes);
+		} catch (PolicyEventException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+		
+		assertEquals(result,response);
+	
+	}
+	
+	public void testSendEvent2()
+	{
+		Collection<PolicyResponse> result = null;
+		Collection<StdPolicyResponse> response = null;
+		Map<String,String> eventAttributes = null;
+		
+		try {
+			Mockito.when(mockPolicyEngine.sendEvent(eventAttributes,requestID)).thenReturn(result);
+			result = mockPolicyEngine.sendEvent(eventAttributes,requestID);
+		} catch (PolicyEventException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+		
+		assertEquals(result,response);
+	
+	}
+	
+	public void testSendEvent3()
+	{
+		Collection<PolicyResponse> result = null;
+		Collection<StdPolicyResponse> response = null;
+		EventRequestParameters parameters = new EventRequestParameters();
+		
+		try {
+			Mockito.when(mockPolicyEngine.sendEvent(parameters)).thenReturn(result);
+			result = mockPolicyEngine.sendEvent(parameters);
+		} catch (PolicyEventException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+		assertEquals(result,response);
+	
+	}
+	
+	
+	
+	/**
+	 * Run the PolicyDecision getDecision(String, Map<String,String>) method
+	 * test
+	 */
+	public void testGetDecision()
+	{
+		String eCOMPComponentName = null;
+		Map<String,String> decisionAttributes = null;
+		
+		DecisionResponse result = null;
+		
+		try {
+			Mockito.when(mockPolicyEngine.getDecision(eCOMPComponentName,decisionAttributes)).thenReturn(null);
+			result = mockPolicyEngine.getDecision(eCOMPComponentName,decisionAttributes);
+		} catch (PolicyDecisionException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+		assertEquals(result,null);
+	}
+	
+	public void testGetDecision2()
+	{
+		String eCOMPComponentName = null;
+		Map<String,String> decisionAttributes = null;
+		
+		DecisionResponse result = null;
+		
+		try {	
+			Mockito.when(mockPolicyEngine.getDecision(eCOMPComponentName,decisionAttributes,requestID)).thenReturn(null);
+			result = mockPolicyEngine.getDecision(eCOMPComponentName,decisionAttributes);
+		} catch (PolicyDecisionException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+		assertEquals(result,null);
+	}
+	
+	public void testGetDecision3()
+	{
+		DecisionRequestParameters parameters = new DecisionRequestParameters();
+		DecisionResponse result = null;
+		
+		try {
+			Mockito.when(mockPolicyEngine.getDecision(parameters)).thenReturn(null);
+			result = mockPolicyEngine.getDecision(parameters);
+		} catch (PolicyDecisionException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+		assertEquals(result,null);
+	}
+	
+	/**
+	 * Run the void setNotification(NotificationScheme, NotificationHandler)
+	 * method test
+	 */
+	public void testSetNotification() {
+		// add test code here
+		
+		NotificationScheme scheme = null;
+		NotificationHandler handler = null;
+
+		Mockito.doNothing().when(mockPolicyEngine).setNotification(scheme, handler);
+		mockPolicyEngine.setNotification(scheme, handler);
+		//assertTrue(true);
+	}
+
+	/**
+	 * Run the void clearNotification() method test
+	 */
+	public void testClearNotification() {
+		// add test code here
+
+		Mockito.doNothing().when(mockPolicyEngine).clearNotification();
+		mockPolicyEngine.clearNotification();
+		//assertTrue(true);
+	}
+
+	/**
+	 * Run the void setScheme(NotificationScheme) method test
+	 */
+	public void testSetScheme() {
+		NotificationScheme scheme = null;
+		
+		Mockito.doNothing().when(mockPolicyEngine).setScheme(scheme);
+		mockPolicyEngine.setScheme(scheme);
+		//assertTrue(true);
+	}
+
+	/**
+	 * Run the PDPNotification getNotification() method test
+	 */
+	public void testGetNotification() {
+		PDPNotification result = null;
+		StdPDPNotification response = null;
+		Mockito.when(mockPolicyEngine.getNotification()).thenReturn(response);
+		result = mockPolicyEngine.getNotification();
+		
+		assertEquals(result,response);
+	}
+
+	/**
+	 * Run the String createConfigPolicy(String, String, String, String,
+	 * Map<String,String>, String, String, String, UUID) method test
+	 */
+	@SuppressWarnings("deprecation")
+	public void testCreateConfigPolicy()
+	{
+		String response = "success";
+		String result = null;
+		try {
+		
+			Mockito.when(mockPolicyEngine.createConfigPolicy("testPolicy","test","test","testConfig",null,"OTHER","test","test",null, null, null, null, null)).thenReturn(response);
+			result = mockPolicyEngine.createConfigPolicy("testPolicy","test","test","testConfig",null,"OTHER","test","test",null, null, null, null, null);
+
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);
+	}
+	
+	/**
+	 * Run the String updateConfigPolicy(String, String, String, String,
+	 * Map<String,String>, String, String, String, UUID) method test
+	 */
+	@SuppressWarnings("deprecation")
+	public void testUpdateConfigPolicy()
+	{
+		String response = "success";
+		String result = null;
+		try {
+		
+			Mockito.when(mockPolicyEngine.updateConfigPolicy("testPolicy","test","test","testConfig",null,"OTHER","test","test",null, null, null, null, null)).thenReturn(response);
+			result = mockPolicyEngine.updateConfigPolicy("testPolicy","test","test","testConfig",null,"OTHER","test","test",null, null, null, null, null);
+
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);
+	}
+	
+	/**
+	 * Run the String createConfigFirewallPolicy(String, JsonObject, String,
+	 * UUID) method test
+	 */
+	@SuppressWarnings("deprecation")
+	public void testCreateConfigFirewallPolicy() {
+		String response = "success";
+		String result = null;
+        String json = "{\"serviceTypeId\":\"/v0/firewall/pan\",\"configName\":\"rule1607\",\"deploymentOption\":{\"deployNow\":false},\"securityZoneId\":\"/v0/firewall/pan\",\"serviceGroups\":[{\"name\":\"1607Group\",\"description\":null,\"members\":[{\"type\":\"REFERENCE\",\"name\":\"SList\"},{\"type\":\"REFERENCE\",\"name\":\"Syslog\"}]},{\"name\":\"Syslog\",\"description\":\"NA\",\"type\":\"SERVICE\",\"transportProtocol\":\"udp\",\"appProtocol\":null,\"ports\":\"514\"},{\"name\":\"SList\",\"description\":\"Service List\",\"type\":\"SERVICE\",\"transportProtocol\":\"tcp\",\"appProtocol\":null,\"ports\":\"8080\"}],\"addressGroups\":[{\"name\":\"1607Group\",\"description\":null,\"members\":[{\"type\":\"SUBNET\",\"value\":\"10.11.12.13/14\"},{\"type\":\"SUBNET\",\"value\":\"10.11.12.13/14\"}]},{\"name\":\"PL_CCE3\",\"description\":\"CCE Routers\",\"members\":[{\"type\":\"SUBNET\",\"value\":\"10.11.12.13/14\"}]}],\"firewallRuleList\":[{\"position\":\"1\",\"ruleName\":\"1607Rule\",\"fromZones\":[\"Trusted\"],\"toZones\":[\"Untrusted\"],\"negateSource\":false,\"negateDestination\":false,\"sourceList\":[{\"type\":\"REFERENCE\",\"value\":\"PL_CCE3\"},{\"type\":\"REFERENCE\",\"value\":\"1607Group\"}],\"destinationList\":[{\"type\":\"REFERENCE\",\"value\":\"1607Group\"}],\"sourceServices\":[],\"destServices\":[{\"type\":\"REFERENCE\",\"name\":\"1607Group\"}],\"action\":\"accept\",\"description\":\"Rule for 1607 templates\",\"enabled\":true,\"log\":true}]}";
+		JsonObject jsonObj = buildJSON(json);
+		try {
+		
+			Mockito.when(mockPolicyEngine.createConfigFirewallPolicy("testPolicy",jsonObj, "test", null, null, null, null, null)).thenReturn(response);
+			result = mockPolicyEngine.createConfigFirewallPolicy("testPolicy",jsonObj, "test", null, null, null, null, null);
+
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);
+	}
+
+	/**
+	 * Run the String updateConfigFirewallPolicy(String, JsonObject, String,
+	 * UUID) method test
+	 */
+	@SuppressWarnings("deprecation")
+	public void testUpdateConfigFirewallPolicy() {
+		String response = "success";
+		String result = null;
+        String json = "{\"serviceTypeId\":\"/v0/firewall/pan\",\"configName\":\"rule1607\",\"deploymentOption\":{\"deployNow\":false},\"securityZoneId\":\"/v0/firewall/pan\",\"serviceGroups\":[{\"name\":\"1607Group\",\"description\":null,\"members\":[{\"type\":\"REFERENCE\",\"name\":\"SList\"},{\"type\":\"REFERENCE\",\"name\":\"Syslog\"}]},{\"name\":\"Syslog\",\"description\":\"NA\",\"type\":\"SERVICE\",\"transportProtocol\":\"udp\",\"appProtocol\":null,\"ports\":\"514\"},{\"name\":\"SList\",\"description\":\"Service List\",\"type\":\"SERVICE\",\"transportProtocol\":\"tcp\",\"appProtocol\":null,\"ports\":\"8080\"}],\"addressGroups\":[{\"name\":\"1607Group\",\"description\":null,\"members\":[{\"type\":\"SUBNET\",\"value\":\"10.11.12.13/14\"},{\"type\":\"SUBNET\",\"value\":\"10.11.12.13/14\"}]},{\"name\":\"PL_CCE3\",\"description\":\"CCE Routers\",\"members\":[{\"type\":\"SUBNET\",\"value\":\"10.11.12.13/14\"}]}],\"firewallRuleList\":[{\"position\":\"1\",\"ruleName\":\"1607Rule\",\"fromZones\":[\"Trusted\"],\"toZones\":[\"Untrusted\"],\"negateSource\":false,\"negateDestination\":false,\"sourceList\":[{\"type\":\"REFERENCE\",\"value\":\"PL_CCE3\"},{\"type\":\"REFERENCE\",\"value\":\"1607Group\"}],\"destinationList\":[{\"type\":\"REFERENCE\",\"value\":\"1607Group\"}],\"sourceServices\":[],\"destServices\":[{\"type\":\"REFERENCE\",\"name\":\"1607Group\"}],\"action\":\"accept\",\"description\":\"Rule for 1607 templates\",\"enabled\":true,\"log\":true}]}";
+		JsonObject jsonObj = buildJSON(json);
+		try {
+		
+			Mockito.when(mockPolicyEngine.updateConfigFirewallPolicy("testPolicy",jsonObj, "test", null, null, null, null, null)).thenReturn(response);
+			result = mockPolicyEngine.updateConfigFirewallPolicy("testPolicy",jsonObj, "test", null, null, null, null, null);
+
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);
+	}
+
+	/**
+	 * Run the PolicyChangeResponse createPolicy(PolicyParameters) method test
+	 */
+	public void testCreatePolicy() {
+		response.setResponseMessage("success");
+		String callPapResponse = "success";
+		PolicyChangeResponse result = null;
+		PolicyParameters policyParameters = new PolicyParameters();
+		StdPAPPolicy newPAPPolicy = null;
+
+        policyParameters.setPolicyClass(PolicyClass.Action); //required
+        policyParameters.setPolicyName("test.junitTest"); //required
+        policyParameters.setPolicyDescription("testing");  //optional
+        
+        //Set the Component Attributes... These are Optional
+        Map<String, String> configAttributes = new HashMap<String, String>(); 
+        configAttributes.put("test", "testing");
+        
+        Map<AttributeType, Map<String,String>> attributes = new HashMap<AttributeType, Map<String,String>>();
+        attributes.put(AttributeType.MATCHING, configAttributes);
+        policyParameters.setAttributes(attributes);
+		
+        policyParameters.setActionPerformer("PEP");
+        policyParameters.setActionAttribute("testing");
+        policyParameters.setRequestID(UUID.randomUUID());
+		
+		try {
+			
+			//stdPolicyEngine = Mockito.mock(StdPolicyEngine.class);
+			//Mockito.when(stdPolicyEngine.callPAP(newPAPPolicy, new String[] {"operation=create", "apiflag=api", "policyType=Action"}, null, "Action")).thenReturn(callPapResponse);
+			Mockito.when(mockPolicyEngine.createPolicy(policyParameters)).thenReturn(response);
+			result = mockPolicyEngine.createPolicy(policyParameters);
+			
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+			e.printStackTrace();
+		}
+		assertEquals(result, response);
+	}
+
+	/**
+	 * Run the PolicyChangeResponse updatePolicy(PolicyParameters) method test
+	 */
+	public void testUpdatePolicy() {
+		response.setResponseMessage("success");
+		PolicyChangeResponse result = null;
+		PolicyParameters policyParameters = new PolicyParameters();
+
+        policyParameters.setPolicyClass(PolicyClass.Action); //required
+        policyParameters.setPolicyName("test.junitTest"); //required
+        policyParameters.setPolicyDescription("testing");  //optional
+        
+        //Set the Component Attributes... These are Optional
+        Map<String, String> configAttributes = new HashMap<String, String>(); 
+        configAttributes.put("test", "testing");
+        
+        Map<AttributeType, Map<String,String>> attributes = new HashMap<AttributeType, Map<String,String>>();
+        attributes.put(AttributeType.MATCHING, configAttributes);
+        policyParameters.setAttributes(attributes);
+		
+        policyParameters.setActionPerformer("PEP");
+        policyParameters.setActionAttribute("testing");
+        policyParameters.setRequestID(UUID.randomUUID());
+		
+		try {
+		
+			Mockito.when(mockPolicyEngine.updatePolicy(policyParameters)).thenReturn(response);
+			result = mockPolicyEngine.updatePolicy(policyParameters);
+			
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		assertEquals(result, response);
+	}
+
+	/**
+	 * Run the String pushPolicy(String, String, String, String, UUID) method
+	 * test
+	 */
+	public void testPushPolicy() {
+		String response = "Success";
+		String result = null;
+		try {
+			
+			Mockito.when(mockPolicyEngine.pushPolicy("testing","test","Base","default",requestID)).thenReturn(response);
+			result = mockPolicyEngine.pushPolicy("testing","test","Base","default",requestID);
+			
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		
+		assertEquals(result, response);
+	}
+
+	public void testPushPolicy2() {
+		PushPolicyParameters policyParameters = new PushPolicyParameters();
+		PolicyChangeResponse result = null;
+		
+		//String policyScope = null;
+		policyParameters.setPolicyName("test.junitTest");
+		policyParameters.setPolicyType("Action");
+		policyParameters.setPdpGroup("Default");
+		
+		try {
+			
+			Mockito.when(mockPolicyEngine.pushPolicy(policyParameters)).thenReturn(response);
+			result = mockPolicyEngine.pushPolicy(policyParameters);
+			
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		
+		assertEquals(result, response);
+	}
+
+	/**
+	 * Run the PolicyChangeResponse deletePolicy(DeletePolicyParameters) method
+	 * test
+	 */
+	public void testDeletePolicy() {
+		DeletePolicyParameters policyParameters = new DeletePolicyParameters();
+		PolicyChangeResponse result = null;
+		
+		//String policyScope = null;
+		policyParameters.setPolicyName("test.junitTest.1.xml");
+		policyParameters.setDeleteCondition(DeletePolicyCondition.ALL);
+		policyParameters.setPolicyComponent("PAP");
+		policyParameters.setPdpGroup("Default");
+		
+		try {
+			
+			Mockito.when(mockPolicyEngine.deletePolicy(policyParameters)).thenReturn(response);
+			result = mockPolicyEngine.deletePolicy(policyParameters);
+			
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		
+		assertEquals(result, response);
+	}
+
+	/**
+	 * Run the PolicyChangeResponse policyEngineImport(ImportParameters) method
+	 * test
+	 */
+	public void testPolicyEngineImport() {
+		ImportParameters importParameters = new ImportParameters();
+		PolicyChangeResponse result = null;
+		
+        importParameters.setFilePath("C:\\Workspaces\\models\\TestingModel\\ControllerServiceSampleSdnlServiceInstance-v0.1.0-SNAPSHOT.zip");
+        importParameters.setServiceName("ControllerServiceSampleSdnlServiceInstance");
+  	  	
+        importParameters.setRequestID(UUID.randomUUID());
+        importParameters.setServiceType(IMPORT_TYPE.MICROSERVICE);
+        importParameters.setVersion("1607-2");
+
+		
+		try {
+			
+			Mockito.when(mockPolicyEngine.policyEngineImport(importParameters)).thenReturn(response);
+			result = mockPolicyEngine.policyEngineImport(importParameters);
+			
+		} catch (Exception e) {
+			logger.warn(e.getMessage());
+		}
+		
+		assertEquals(result, response);
+	}
+	
+    private static JsonObject buildJSON(String jsonString) {
+        JsonObject json = null;;
+        if (jsonString != null) {
+            StringReader in = null;
+             
+            in = new StringReader(jsonString);
+             
+            JsonReader jsonReader = Json.createReader(in);
+            json = jsonReader.readObject();        
+        } 
+        
+        return json;
+    }
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyEngineTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyEngineTest.java
new file mode 100644
index 0000000..e2d7c78
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyEngineTest.java
@@ -0,0 +1,172 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Test;
+import org.openecomp.policy.api.NotificationScheme;
+import org.openecomp.policy.api.PolicyEngine;
+import org.openecomp.policy.api.PolicyEngineException;
+
+import org.openecomp.policy.common.logging.flexlogger.*; 
+
+public class PolicyEngineTest {
+
+	private static final Logger logger = FlexLogger.getLogger(PolicyEngineTest.class);
+	private PolicyEngine policyEngine = null;
+	private String filePath = null;
+	
+	@Test
+	public void testPolicyEngineForFail() {
+		filePath = null;
+		try {
+			policyEngine = new PolicyEngine(filePath);
+		} catch (PolicyEngineException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyEngine);
+		// Test even for this case.
+		filePath = "NotNull";
+		try {
+			policyEngine = new PolicyEngine(filePath);
+		} catch (PolicyEngineException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyEngine);
+	}
+	
+	@Test
+	public void testPolicyEngineforPropertyFileError() {
+		filePath = "Test/config_error.property";
+		isFileAvailable(filePath);
+		try {
+			policyEngine = new PolicyEngine(filePath);
+		} catch (PolicyEngineException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyEngine);
+	}
+	
+	@Test
+	public void testPolicyEngineforPDPURLError() {
+		String filePath = "Test/config_fail.properties";
+		isFileAvailable(filePath);
+		try {
+			policyEngine = new PolicyEngine(filePath);
+		} catch (PolicyEngineException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyEngine);
+	}
+	
+	@Test
+	public void testPolicyEngineForPass() {
+		String filePath = "Test/config_pass.properties";
+		isFileAvailable(filePath);
+		try {
+			policyEngine = new PolicyEngine(filePath);
+		} catch (PolicyEngineException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNotNull(policyEngine);
+	}
+	
+	@Test
+	public void testPolicyEngineForUEBPass() {
+		String filePath = "Test/config_UEB_pass.properties";
+		isFileAvailable(filePath);
+		try {
+			policyEngine = new PolicyEngine(filePath);
+		} catch (PolicyEngineException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNotNull(policyEngine);
+	}
+	
+	
+	@Test
+	public void testPolicyEngineForUEBBadType() {
+		String filePath = "Test/config_UEB_bad_type.properties";
+		isFileAvailable(filePath);
+		try {
+			policyEngine = new PolicyEngine(filePath);
+		} catch (PolicyEngineException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNotNull(policyEngine);
+	}
+	
+	@Test
+	public void testPolicyEngineForUEBBadServerType() {
+		String filePath = "Test/config_UEB_badservers.properties";
+		isFileAvailable(filePath);
+		try {
+			policyEngine = new PolicyEngine(filePath);
+		} catch (PolicyEngineException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNotNull(policyEngine);
+	}
+	
+	@Test
+	public void testPolicyEngineNotficationAutoUEB() {
+		String filePath = "Test/config_UEB_pass.properties";
+		isFileAvailable(filePath);
+		try {
+			policyEngine = new PolicyEngine(filePath);
+			policyEngine.setScheme(NotificationScheme.AUTO_ALL_NOTIFICATIONS);
+		} catch (PolicyEngineException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNotNull(policyEngine);
+	}
+	
+	@Test
+	public void testPolicyEngineNotficationAuto() {
+		String filePath = "Test/config_pass.properties";
+		isFileAvailable(filePath);
+		try {
+			policyEngine = new PolicyEngine(filePath);
+			policyEngine.setScheme(NotificationScheme.AUTO_ALL_NOTIFICATIONS);
+			//policyEngine.getNotification();
+		} catch (PolicyEngineException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNotNull(policyEngine);
+	}
+
+	public void isFileAvailable(String filePath) {
+		Path file = Paths.get(filePath);
+		if (Files.notExists(file)) {
+			logger.error("File Doesn't Exist "+ file.toString());
+			fail("File: " +filePath + " Not found");
+		}
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyEventExceptionTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyEventExceptionTest.java
new file mode 100644
index 0000000..fa8d5d1
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyEventExceptionTest.java
@@ -0,0 +1,183 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.PolicyEventException;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>PolicyEventExceptionTest</code> contains tests for the class <code>{@link PolicyEventException}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class PolicyEventExceptionTest {
+	/**
+	 * Run the PolicyEventException() constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testPolicyEventException_1()
+		throws Exception {
+
+		PolicyEventException result = new PolicyEventException();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(null, result.getCause());
+		assertEquals("org.openecomp.policy.api.PolicyEventException", result.toString());
+		assertEquals(null, result.getLocalizedMessage());
+		assertEquals(null, result.getMessage());
+	}
+
+	/**
+	 * Run the PolicyEventException(String) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testPolicyEventException_2()
+		throws Exception {
+		String message = "";
+
+		PolicyEventException result = new PolicyEventException(message);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(null, result.getCause());
+		assertEquals("org.openecomp.policy.api.PolicyEventException: ", result.toString());
+		assertEquals("", result.getLocalizedMessage());
+		assertEquals("", result.getMessage());
+	}
+
+	/**
+	 * Run the PolicyEventException(Throwable) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testPolicyEventException_3()
+		throws Exception {
+		Throwable cause = new Throwable();
+
+		PolicyEventException result = new PolicyEventException(cause);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("org.openecomp.policy.api.PolicyEventException: java.lang.Throwable", result.toString());
+		assertEquals("java.lang.Throwable", result.getLocalizedMessage());
+		assertEquals("java.lang.Throwable", result.getMessage());
+	}
+
+	/**
+	 * Run the PolicyEventException(String,Throwable) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testPolicyEventException_4()
+		throws Exception {
+		String message = "";
+		Throwable cause = new Throwable();
+
+		PolicyEventException result = new PolicyEventException(message, cause);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("org.openecomp.policy.api.PolicyEventException: ", result.toString());
+		assertEquals("", result.getLocalizedMessage());
+		assertEquals("", result.getMessage());
+	}
+
+	/**
+	 * Run the PolicyEventException(String,Throwable,boolean,boolean) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testPolicyEventException_5()
+		throws Exception {
+		String message = "";
+		Throwable cause = new Throwable();
+		boolean enableSuppression = true;
+		boolean writableStackTrace = true;
+
+		PolicyEventException result = new PolicyEventException(message, cause, enableSuppression, writableStackTrace);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("org.openecomp.policy.api.PolicyEventException: ", result.toString());
+		assertEquals("", result.getLocalizedMessage());
+		assertEquals("", result.getMessage());
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(PolicyEventExceptionTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyParametersTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyParametersTest.java
new file mode 100644
index 0000000..ca272c7
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyParametersTest.java
@@ -0,0 +1,1406 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.util.Hashtable;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+import org.junit.*;
+import org.openecomp.policy.api.AttributeType;
+import org.openecomp.policy.api.PolicyClass;
+import org.openecomp.policy.api.PolicyConfigType;
+import org.openecomp.policy.api.PolicyParameters;
+import org.openecomp.policy.api.PolicyType;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>PolicyParametersTest</code> contains tests for the class <code>{@link PolicyParameters}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class PolicyParametersTest {
+	/**
+	 * Run the String getActionAttribute() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetActionAttribute_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+
+		String result = fixture.getActionAttribute();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getActionPerformer() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetActionPerformer_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+
+		String result = fixture.getActionPerformer();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the Map<AttributeType, Map<String, String>> getAttributes() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetAttributes_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+
+		Map<AttributeType, Map<String, String>> result = fixture.getAttributes();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the String getConfigBody() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetConfigBody_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+
+		String result = fixture.getConfigBody();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the PolicyType getConfigBodyType() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetConfigBodyType_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+
+		PolicyType result = fixture.getConfigBodyType();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("json", result.toString());
+		assertEquals("JSON", result.name());
+		assertEquals(1, result.ordinal());
+	}
+
+	/**
+	 * Run the String getConfigName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetConfigName_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+
+		String result = fixture.getConfigName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the List<String> getDynamicRuleAlgorithmField1() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetDynamicRuleAlgorithmField1_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+
+		List<String> result = fixture.getDynamicRuleAlgorithmField1();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the List<String> getDynamicRuleAlgorithmField2() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetDynamicRuleAlgorithmField2_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+
+		List<String> result = fixture.getDynamicRuleAlgorithmField2();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the List<String> getDynamicRuleAlgorithmFunctions() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetDynamicRuleAlgorithmFunctions_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+
+		List<String> result = fixture.getDynamicRuleAlgorithmFunctions();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the List<String> getDynamicRuleAlgorithmLabels() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetDynamicRuleAlgorithmLabels_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+
+		List<String> result = fixture.getDynamicRuleAlgorithmLabels();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(0, result.size());
+	}
+
+	/**
+	 * Run the String getEcompName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetEcompName_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+
+		String result = fixture.getEcompName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the PolicyClass getPolicyClass() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetPolicyClass_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+
+		PolicyClass result = fixture.getPolicyClass();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("Action", result.toString());
+		assertEquals("Action", result.name());
+		assertEquals(1, result.ordinal());
+	}
+
+	/**
+	 * Run the PolicyConfigType getPolicyConfigType() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetPolicyConfigType_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+
+		PolicyConfigType result = fixture.getPolicyConfigType();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("BRMS_Param", result.toString());
+		assertEquals("BRMS_PARAM", result.name());
+		assertEquals(5, result.ordinal());
+	}
+
+	/**
+	 * Run the String getPolicyDescription() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetPolicyDescription_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+
+		String result = fixture.getPolicyDescription();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getPolicyName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetPolicyName_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+
+		String result = fixture.getPolicyName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getPriority() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetPriority_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+
+		String result = fixture.getPriority();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the UUID getRequestID() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetRequestID_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.fromString("878d319c-2799-4684-b480-99f40e1042b2"));
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+
+		UUID result = fixture.getRequestID();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("878d319c-2799-4684-b480-99f40e1042b2", result.toString());
+		assertEquals(4, result.version());
+		assertEquals(2, result.variant());
+		assertEquals(-5440179076376542542L, result.getLeastSignificantBits());
+		assertEquals(-8679226360124062076L, result.getMostSignificantBits());
+	}
+
+	/**
+	 * Run the void setActionAttribute(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetActionAttribute_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		String actionAttribute = "";
+
+		fixture.setActionAttribute(actionAttribute);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setActionPerformer(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetActionPerformer_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		String actionPerformer = "";
+
+		fixture.setActionPerformer(actionPerformer);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setAttributes(Map<AttributeType,Map<String,String>>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetAttributes_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		Map<AttributeType, Map<String, String>> attributes = new Hashtable();
+
+		fixture.setAttributes(attributes);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setConfigBody(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetConfigBody_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		String configBody = "";
+
+		fixture.setConfigBody(configBody);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setConfigBodyType(PolicyType) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetConfigBodyType_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		PolicyType configBodyType = PolicyType.JSON;
+
+		fixture.setConfigBodyType(configBodyType);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setConfigFirewallPolicyParameters(String,String,UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetConfigFirewallPolicyParameters_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		String policyName = "";
+		String firewallJson = "";
+		UUID requestID = UUID.randomUUID();
+
+		fixture.setConfigFirewallPolicyParameters(policyName, firewallJson, requestID);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setConfigName(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetConfigName_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		String configName = "";
+
+		fixture.setConfigName(configName);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setConfigPolicyParameters(PolicyConfigType,String,String,String,String,Map<AttributeType,Map<String,String>>,PolicyType,String,UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetConfigPolicyParameters_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		PolicyConfigType policyConfigType = PolicyConfigType.BRMS_PARAM;
+		String policyName = "";
+		String policyDescription = "";
+		String ecompName = "";
+		String configName = "";
+		Map<AttributeType, Map<String, String>> attributes = new Hashtable();
+		PolicyType configBodyType = PolicyType.JSON;
+		String configBody = "";
+		UUID requestID = UUID.randomUUID();
+
+		fixture.setConfigPolicyParameters(policyConfigType, policyName, policyDescription, ecompName, configName, attributes, configBodyType, configBody, requestID);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setDynamicRuleAlgorithmField1(List<String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetDynamicRuleAlgorithmField1_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		List<String> dynamicRuleAlgorithmField1 = new LinkedList();
+
+		fixture.setDynamicRuleAlgorithmField1(dynamicRuleAlgorithmField1);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setDynamicRuleAlgorithmField2(List<String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetDynamicRuleAlgorithmField2_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		List<String> dynamicRuleAlgorithmField2 = new LinkedList();
+
+		fixture.setDynamicRuleAlgorithmField2(dynamicRuleAlgorithmField2);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setDynamicRuleAlgorithmFunctions(List<String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetDynamicRuleAlgorithmFunctions_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		List<String> dynamicRuleAlgorithmFunctions = new LinkedList();
+
+		fixture.setDynamicRuleAlgorithmFunctions(dynamicRuleAlgorithmFunctions);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setDynamicRuleAlgorithmLabels(List<String>) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetDynamicRuleAlgorithmLabels_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		List<String> dynamicRuleAlgorithmLabels = new LinkedList();
+
+		fixture.setDynamicRuleAlgorithmLabels(dynamicRuleAlgorithmLabels);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setEcompName(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetEcompName_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		String ecompName = "";
+
+		fixture.setEcompName(ecompName);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyClass(PolicyClass) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetPolicyClass_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		PolicyClass policyClass = PolicyClass.Action;
+
+		fixture.setPolicyClass(policyClass);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyConfigType(PolicyConfigType) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetPolicyConfigType_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		PolicyConfigType policyConfigType = PolicyConfigType.BRMS_PARAM;
+
+		fixture.setPolicyConfigType(policyConfigType);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyDescription(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetPolicyDescription_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		String policyDescription = "";
+
+		fixture.setPolicyDescription(policyDescription);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyName(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetPolicyName_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		String policyName = "";
+
+		fixture.setPolicyName(policyName);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPriority(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetPriority_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		String priority = "";
+
+		fixture.setPriority(priority);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setRequestID(UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testSetRequestID_1()
+		throws Exception {
+		PolicyParameters fixture = new PolicyParameters();
+		fixture.setRequestID(UUID.randomUUID());
+		fixture.setActionAttribute("");
+		fixture.setAttributes(new Hashtable());
+		fixture.setDynamicRuleAlgorithmLabels(new LinkedList());
+		fixture.setPolicyDescription("");
+		
+		fixture.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+		fixture.setDynamicRuleAlgorithmField2(new LinkedList());
+		fixture.setPolicyName("");
+		fixture.setConfigName("");
+		fixture.setDynamicRuleAlgorithmFunctions(new LinkedList());
+		fixture.setPolicyClass(PolicyClass.Action);
+		fixture.setEcompName("");
+		fixture.setConfigBodyType(PolicyType.JSON);
+		fixture.setDynamicRuleAlgorithmField1(new LinkedList());
+		fixture.setPriority("");
+		fixture.setActionPerformer("");
+		fixture.setConfigBody("");
+		UUID requestID = UUID.randomUUID();
+
+		fixture.setRequestID(requestID);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(PolicyParametersTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyResponseStatusTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyResponseStatusTest.java
new file mode 100644
index 0000000..5841571
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyResponseStatusTest.java
@@ -0,0 +1,154 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.PolicyResponseStatus;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>PolicyResponseStatusTest</code> contains tests for the class <code>{@link PolicyResponseStatus}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class PolicyResponseStatusTest {
+	/**
+	 * Run the PolicyResponseStatus getStatus(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetStatus_1()
+		throws Exception {
+		String responseStatus = "";
+
+		PolicyResponseStatus result = PolicyResponseStatus.getStatus(responseStatus);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("no_action", result.toString());
+		assertEquals("NO_ACTION_REQUIRED", result.name());
+		assertEquals(0, result.ordinal());
+	}
+
+	/**
+	 * Run the PolicyResponseStatus getStatus(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetStatus_2()
+		throws Exception {
+		String responseStatus = "";
+
+		PolicyResponseStatus result = PolicyResponseStatus.getStatus(responseStatus);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("no_action", result.toString());
+		assertEquals("NO_ACTION_REQUIRED", result.name());
+		assertEquals(0, result.ordinal());
+	}
+
+	/**
+	 * Run the PolicyResponseStatus getStatus(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testGetStatus_3()
+		throws Exception {
+		String responseStatus = "";
+
+		PolicyResponseStatus result = PolicyResponseStatus.getStatus(responseStatus);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("no_action", result.toString());
+		assertEquals("NO_ACTION_REQUIRED", result.name());
+		assertEquals(0, result.ordinal());
+	}
+
+	/**
+	 * Run the String toString() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testToString_1()
+		throws Exception {
+		PolicyResponseStatus fixture = PolicyResponseStatus.ACTION_ADVISED;
+
+		String result = fixture.toString();
+
+		// add additional test code here
+		assertEquals("action_advised", result);
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(PolicyResponseStatusTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyResponseTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyResponseTest.java
new file mode 100644
index 0000000..f99a238
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyResponseTest.java
@@ -0,0 +1,75 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.util.Map;
+
+import org.junit.*;
+import org.openecomp.policy.api.PolicyResponse;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>PolicyResponseTest</code> contains tests for the class <code>{@link PolicyResponse}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class PolicyResponseTest {
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(PolicyResponseTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyTypeTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyTypeTest.java
new file mode 100644
index 0000000..5b31e85
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PolicyTypeTest.java
@@ -0,0 +1,91 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.PolicyType;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>PolicyTypeTest</code> contains tests for the class <code>{@link PolicyType}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:41 PM
+ * @version $Revision: 1.0 $
+ */
+public class PolicyTypeTest {
+	/**
+	 * Run the String toString() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Test
+	public void testToString_1()
+		throws Exception {
+		PolicyType fixture = PolicyType.JSON;
+
+		String result = fixture.toString();
+
+		// add additional test code here
+		assertEquals("json", result);
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:41 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(PolicyTypeTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PushPolicyParametersTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PushPolicyParametersTest.java
new file mode 100644
index 0000000..ef005f1
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/PushPolicyParametersTest.java
@@ -0,0 +1,269 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import java.util.UUID;
+
+import org.junit.*;
+import org.openecomp.policy.api.PushPolicyParameters;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>PushPolicyParametersTest</code> contains tests for the class <code>{@link PushPolicyParameters}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class PushPolicyParametersTest {
+	/**
+	 * Run the PushPolicyParameters() constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testPushPolicyParameters_1()
+		throws Exception {
+
+		PushPolicyParameters result = new PushPolicyParameters();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals(null, result.getPolicyName());
+		assertEquals(null, result.getRequestID());
+		assertEquals(null, result.getPolicyType());
+		assertEquals(null, result.getPdpGroup());
+	}
+
+	/**
+	 * Run the PushPolicyParameters(String,String,String,UUID) constructor test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testPushPolicyParameters_2()
+		throws Exception {
+		String policyName = "";
+		String policyType = "";
+		String pdpGroup = "";
+		UUID requestID = UUID.randomUUID();
+
+		PushPolicyParameters result = new PushPolicyParameters(policyName, policyType, pdpGroup, requestID);
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("", result.getPolicyName());
+		assertEquals("", result.getPolicyType());
+		assertEquals("", result.getPdpGroup());
+	}
+
+	/**
+	 * Run the String getPdpGroup() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPdpGroup_1()
+		throws Exception {
+		PushPolicyParameters fixture = new PushPolicyParameters("", "", "", UUID.randomUUID());
+
+		String result = fixture.getPdpGroup();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getPolicyName() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyName_1()
+		throws Exception {
+		PushPolicyParameters fixture = new PushPolicyParameters("", "", "", UUID.randomUUID());
+
+		String result = fixture.getPolicyName();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the String getPolicyType() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetPolicyType_1()
+		throws Exception {
+		PushPolicyParameters fixture = new PushPolicyParameters("", "", "", UUID.randomUUID());
+
+		String result = fixture.getPolicyType();
+
+		// add additional test code here
+		assertEquals("", result);
+	}
+
+	/**
+	 * Run the UUID getRequestID() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testGetRequestID()
+		throws Exception {
+		PushPolicyParameters fixture = new PushPolicyParameters("", "", "", UUID.fromString("d1dbaac1-0944-4f07-9ce7-733c697537ea"));
+
+		UUID result = fixture.getRequestID();
+
+		// add additional test code here
+		assertNotNull(result);
+		assertEquals("d1dbaac1-0944-4f07-9ce7-733c697537ea", result.toString());
+		assertEquals(4, result.version());
+		assertEquals(2, result.variant());
+		assertEquals(-7140611980868110358L, result.getLeastSignificantBits());
+		assertEquals(-3324876153822097657L, result.getMostSignificantBits());
+	}
+
+	/**
+	 * Run the void setPdpGroup(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPdpGroup_1()
+		throws Exception {
+		PushPolicyParameters fixture = new PushPolicyParameters("", "", "", UUID.randomUUID());
+		String pdpGroup = "";
+
+		fixture.setPdpGroup(pdpGroup);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyName(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyName_1()
+		throws Exception {
+		PushPolicyParameters fixture = new PushPolicyParameters("", "", "", UUID.randomUUID());
+		String policyName = "";
+
+		fixture.setPolicyName(policyName);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setPolicyType(String) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetPolicyType_1()
+		throws Exception {
+		PushPolicyParameters fixture = new PushPolicyParameters("", "", "", UUID.randomUUID());
+		String policyType = "";
+
+		fixture.setPolicyType(policyType);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Run the void setRequestID(UUID) method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Test
+	public void testSetRequestID_1()
+		throws Exception {
+		PushPolicyParameters fixture = new PushPolicyParameters("", "", "", UUID.randomUUID());
+		UUID requestID = UUID.randomUUID();
+
+		fixture.setRequestID(requestID);
+
+		// add additional test code here
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(PushPolicyParametersTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/RemovedPolicyTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/RemovedPolicyTest.java
new file mode 100644
index 0000000..6a3bf34
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/RemovedPolicyTest.java
@@ -0,0 +1,73 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.RemovedPolicy;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>RemovedPolicyTest</code> contains tests for the class <code>{@link RemovedPolicy}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:40 PM
+ * @version $Revision: 1.0 $
+ */
+public class RemovedPolicyTest {
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:40 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(RemovedPolicyTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/SendEventTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/SendEventTest.java
new file mode 100644
index 0000000..6fb5137
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/SendEventTest.java
@@ -0,0 +1,153 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.policy.api.PolicyEngine;
+import org.openecomp.policy.api.PolicyEngineException;
+import org.openecomp.policy.api.PolicyEventException;
+import org.openecomp.policy.api.PolicyResponse;
+import org.openecomp.policy.api.PolicyResponseStatus;
+
+import org.openecomp.policy.common.logging.flexlogger.*; 
+
+public class SendEventTest {
+	
+	private PolicyEngine policyEngine = null;
+	private Map<String,String> eventAttributes = new HashMap<String,String>();
+	private Collection<PolicyResponse> policyResponse = null;
+	private static final Logger logger = FlexLogger.getLogger(SendEventTest.class);
+	@Before
+	public void setUp() {
+		try {
+			policyEngine = new PolicyEngine("Test/config_pass.properties");
+		} catch (PolicyEngineException e) {
+			logger.error(e.getMessage());
+			fail("PolicyEngine Instantiation Error" + e);
+		}
+		logger.info("Loaded.. PolicyEngine");
+	}
+
+	//@Test
+	public void testSendEventFail() {
+		eventAttributes = null;
+		try {
+			policyResponse = policyEngine.sendEvent(eventAttributes);
+		} catch (PolicyEventException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyResponse);
+	}
+	
+	//@Test
+	public void testSendEventFailNull() {
+		eventAttributes.put("", "");
+		try {
+			policyResponse = policyEngine.sendEvent(eventAttributes);
+		} catch (PolicyEventException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyResponse);
+	}
+	
+	// deprecated Test. 
+	/*@Test
+	public void testSendEventFailAttribute() {
+		eventAttributes.put("Fail.key", "Value");
+		try {
+			policyResponse = policyEngine.sendEvent(eventAttributes);
+		} catch (PolicyEventException e) {
+			logger.warn(e.getMessage());
+		}
+		assertNull(policyResponse.getPolicyResponseMessage());
+	}*/
+	
+	//@Test
+	public void testSendEventNotValid() {
+		eventAttributes.put("Action.fail", "Value");
+		try {
+			policyResponse = policyEngine.sendEvent(eventAttributes);
+		} catch (PolicyEventException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyResponse policyResponse: this.policyResponse){
+			logger.info(policyResponse.getPolicyResponseMessage() + " , " + policyResponse.getPolicyResponseStatus());
+			assertNotNull(policyResponse);
+			assertEquals(PolicyResponseStatus.NO_ACTION_REQUIRED, policyResponse.getPolicyResponseStatus());
+			assertNotNull(policyResponse.getPolicyResponseMessage());
+			assertNotNull(policyResponse.getRequestAttributes());
+			assertNull(policyResponse.getActionTaken());
+			assertNull(policyResponse.getActionAdvised());
+		}
+	}
+	
+	//@Test
+	public void testSendEventActionAdvised() {
+		eventAttributes.put("Key", "Value");
+		eventAttributes.put("cpu", "80");
+		try {
+			policyResponse = policyEngine.sendEvent(eventAttributes);
+		} catch (PolicyEventException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyResponse policyResponse: this.policyResponse){
+			logger.info(policyResponse.getPolicyResponseMessage() + " , " + policyResponse.getPolicyResponseStatus());
+			assertNotNull(policyResponse);
+			assertEquals(PolicyResponseStatus.ACTION_ADVISED, policyResponse.getPolicyResponseStatus());
+			assertNotNull(policyResponse.getPolicyResponseMessage());
+			assertNotNull(policyResponse.getRequestAttributes());
+			assertNull(policyResponse.getActionTaken());
+			assertNotNull(policyResponse.getActionAdvised());
+		}
+	}
+	
+	//@Test
+	public void testSendEventActionTaken() {
+		eventAttributes.put("Key", "Value");
+		eventAttributes.put("cpu", "91");
+		try {
+			policyResponse = policyEngine.sendEvent(eventAttributes);
+		} catch (PolicyEventException e) {
+			logger.warn(e.getMessage());
+		}
+		for(PolicyResponse policyResponse: this.policyResponse){
+			logger.info(policyResponse.getPolicyResponseMessage() + " , " + policyResponse.getPolicyResponseStatus());
+			assertNotNull(policyResponse);
+			assertEquals(PolicyResponseStatus.ACTION_TAKEN, policyResponse.getPolicyResponseStatus());
+			assertNotNull(policyResponse.getPolicyResponseMessage());
+			assertNotNull(policyResponse.getRequestAttributes());
+			assertNotNull(policyResponse.getActionTaken());
+			assertNull(policyResponse.getActionAdvised());
+		}
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/TestRunner.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/TestRunner.java
new file mode 100644
index 0000000..69cbd83
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/TestRunner.java
@@ -0,0 +1,49 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.runner.JUnitCore;
+import org.junit.runner.Result;
+import org.junit.runner.notification.Failure;
+
+public class TestRunner {
+	public static void main(String[] args) {
+		Result result = JUnitCore.runClasses(PolicyEngineTest.class);
+		for(Failure failure: result.getFailures()) {
+			System.out.println("Failed Test: " + failure.toString());
+		}
+		Result results = null;
+		if(result.wasSuccessful()) {
+			System.out.println("API Methods are being Tested.. ");
+			results = JUnitCore.runClasses(GetConfigByPolicyNameTest.class, GetConfigStringTest.class,GetConfigStringStringTest.class,GetConfigStringStringMapTest.class,SendEventTest.class);
+			for(Failure failure: results.getFailures()) {
+				System.out.println("Failed Test: " + failure.toString());
+			}
+			System.out.println("Test Results.. ");
+			System.out.println("Stats:  \nRun Time: " + (results.getRunTime()+result.getRunTime()) + "\nTotal Tests:" + results.getRunCount()+ result.getRunCount()
+					+ "\nFailures: " + results.getFailureCount()+ result.getFailureCount());
+			System.exit(1);
+		}
+		System.out.println("Test Failed..");
+		System.out.println("Stats:  \nRun Time: " + result.getRunTime() + "\nTests:" + result.getRunCount()
+				+ "\nFailures: " + result.getFailureCount());
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/UpdateTypeTest.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/UpdateTypeTest.java
new file mode 100644
index 0000000..909a05f
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/UpdateTypeTest.java
@@ -0,0 +1,91 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.policy.test;
+
+import org.junit.*;
+import org.openecomp.policy.api.UpdateType;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>UpdateTypeTest</code> contains tests for the class <code>{@link UpdateType}</code>.
+ *
+ * @generatedBy CodePro at 6/1/16 1:39 PM
+ * @version $Revision: 1.0 $
+ */
+public class UpdateTypeTest {
+	/**
+	 * Run the String toString() method test.
+	 *
+	 * @throws Exception
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:39 PM
+	 */
+	@Test
+	public void testToString_1()
+		throws Exception {
+		UpdateType fixture = UpdateType.NEW;
+
+		String result = fixture.toString();
+
+		// add additional test code here
+		assertEquals("new", result);
+	}
+
+	/**
+	 * Perform pre-test initialization.
+	 *
+	 * @throws Exception
+	 *         if the initialization fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:39 PM
+	 */
+	@Before
+	public void setUp()
+		throws Exception {
+		// add additional set up code here
+	}
+
+	/**
+	 * Perform post-test clean-up.
+	 *
+	 * @throws Exception
+	 *         if the clean-up fails for some reason
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:39 PM
+	 */
+	@After
+	public void tearDown()
+		throws Exception {
+		// Add additional tear down code here
+	}
+
+	/**
+	 * Launch the test.
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @generatedBy CodePro at 6/1/16 1:39 PM
+	 */
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(UpdateTypeTest.class);
+	}
+}
diff --git a/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/package-info.java b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/package-info.java
new file mode 100644
index 0000000..e678c4b
--- /dev/null
+++ b/PolicyEngineAPI/src/test/java/org/openecomp/policy/test/package-info.java
@@ -0,0 +1,24 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * 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=========================================================
+ */
+
+/**
+ * API JUNIT TestCases. 
+ */
+package org.openecomp.policy.test;