Initial OpenECOMP policy/engine commit
[policy/engine.git] / PolicyEngineAPI / src / main / java / org / openecomp / policy / api / PolicyParameters.java
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 (file)
index 0000000..32cd75b
--- /dev/null
@@ -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;
+       }
+}