/*- * ============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; /** * PolicyParameters 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> attributes; private String configBody; private PolicyType configBodyType; private String actionPerformer; private String actionAttribute; private UUID requestID; private List dynamicRuleAlgorithmLabels; private List dynamicRuleAlgorithmFunctions; private List dynamicRuleAlgorithmField1; private List 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 String format of the Policy Name * @param policyDescription the String format of the Policy Description * @param ecompName the String format of the ECOMP Name * @param configName the String format of the Config Name * @param attributes the Map 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 String 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> 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 String format of the Policy Name * @param firewallJson the String 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 String format of the Policy Name */ public String getPolicyName() { return policyName; } /** * Sets the policyName of the Policy Parameters. * * @param policyName the String format of the Policy Name */ public void setPolicyName(String policyName) { this.policyName = policyName; } /** * Gets the policy Description. * * @return the String format of the Policy Description */ public String getPolicyDescription() { return policyDescription; } /** * Sets the policy Description of the Policy Description. * * @param policyDescription the String format of the Policy Description */ public void setPolicyDescription(String policyDescription) { this.policyDescription = policyDescription; } /** * Gets the ECOMP Name value of the Policy Paramters. * * @return String format of the ECOMP Name */ public String getEcompName() { return ecompName; } /** * Sets the ECOMP Name field of the Policy Parameters. * * @param ecompName the String format of the ECOMP Name */ public void setEcompName(String ecompName) { this.ecompName = ecompName; } /** * Gets the Config Name value of the Policy Parameters. * * @return String format of the Config Name */ public String getConfigName() { return configName; } /** * Sets the Config Name field of the Policy Parameters. * * @param configName the String format of the Config Name */ public void setConfigName(String configName) { this.configName = configName; } /** * Gets the Attributes of the policy Parameters. * * @return List the Map Attributes that must contain the AttributeType and Map of key,value pairs corresponding to it. */ public Map> getAttributes() { return attributes; } /** * Sets the Attributes of the Policy Parameters. * * @param attributes the Map Attributes that must contain the AttributeType and Map of key,value pairs corresponding to it. */ public void setAttributes(Map> 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 String format of the Policy Body */ public String getConfigBody() { return configBody; } /** * Sets the configBody field of the Policy Parameters. * * @param configBody the String 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 PolicyType representation of the configBodyType */ public PolicyType getConfigBodyType() { return configBodyType; } /** * Sets the configBodyType field of the Policy Parameters. * * @param configBodyType the PolicyType 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 String 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 String 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 String 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 String 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 List the Dynamic Rule Algorithm Label that must contain the Labels in order */ public List 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 List dynamicRuleAlgoritmLabels in order */ public void setDynamicRuleAlgorithmLabels( List 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 List the Dynamic Rule Algorithm Functions that must contain the values in order */ public List 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 List dynamicRuleAlgorithmFunctions in order */ public void setDynamicRuleAlgorithmFunctions(List 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 List the Dynamic Rule Algorithm Field1 that must contain the Field1 values in order */ public List 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 List dynamicRuleAlgorithmField1 in order */ public void setDynamicRuleAlgorithmField1( List 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 List the Dynamic Rule Algorithm Field2 that must contain the Field2 values in order */ public List 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 List dynamicRuleAlgorithmField2 in order */ public void setDynamicRuleAlgorithmField2( List dynamicRuleAlgorithmField2) { this.dynamicRuleAlgorithmField2 = dynamicRuleAlgorithmField2; } /** * Gets the Priority of the Policy Parameters. * * @return priority the String format of the Micro Services priority */ public String getPriority() { return priority; } /** * Sets the Priority of the Policy Parameters. * * @param priority the String 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 Boolean 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 boolean value of the Guard for Config Policies */ public boolean getGuard(){ return guard; } /** * Sets the riskType field of the Policy Parameters. * * @param guard the String 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 String value of the riskType for Config Policies */ public String getRiskType(){ return riskType; } /** * Sets the riskLevel field of the Policy Parameters. * * @param riskLevel the String 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 String value of the riskLevel for Config Policies */ public String getRiskLevel(){ return riskLevel; } /** * Sets the TTLDate field of the Policy Parameters. * * @param TTLDate the Date 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 Date value of the TTLDate for Config Policies */ public Date getTtlDate(){ return TTLDate; } }