TOSCA Compliant Guard Policies
[policy/models.git] / models-provider / src / main / java / org / onap / policy / models / provider / PolicyModelsProvider.java
index bd28c32..a8fc4ed 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
+ *  Copyright (C) 2019-2020 Nordix Foundation.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 package org.onap.policy.models.provider;
 
+import java.util.Date;
 import java.util.List;
-import java.util.Map;
-
 import lombok.NonNull;
-
 import org.onap.policy.models.base.PfModelException;
 import org.onap.policy.models.pdp.concepts.Pdp;
 import org.onap.policy.models.pdp.concepts.PdpGroup;
@@ -36,8 +34,6 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-import org.onap.policy.models.tosca.legacy.concepts.LegacyGuardPolicyInput;
-import org.onap.policy.models.tosca.legacy.concepts.LegacyGuardPolicyOutput;
 import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy;
 
 /**
@@ -239,48 +235,6 @@ public interface PolicyModelsProvider extends AutoCloseable {
     public LegacyOperationalPolicy deleteOperationalPolicy(@NonNull final String policyId,
             @NonNull final String policyVersion) throws PfModelException;
 
-    /**
-     * Get legacy guard policy.
-     *
-     * @param policyId ID of the policy
-     * @param policyVersion version of the policy, set to null to get the latest policy
-     * @return the policies found
-     * @throws PfModelException on errors getting policies
-     */
-    public Map<String, LegacyGuardPolicyOutput> getGuardPolicy(@NonNull final String policyId,
-            final String policyVersion) throws PfModelException;
-
-    /**
-     * Create legacy guard policy.
-     *
-     * @param legacyGuardPolicy the definition of the policy to be created.
-     * @return the created policy
-     * @throws PfModelException on errors creating policies
-     */
-    public Map<String, LegacyGuardPolicyOutput> createGuardPolicy(
-            @NonNull final LegacyGuardPolicyInput legacyGuardPolicy) throws PfModelException;
-
-    /**
-     * Update legacy guard policy.
-     *
-     * @param legacyGuardPolicy the definition of the policy to be updated
-     * @return the updated policy
-     * @throws PfModelException on errors updating policies
-     */
-    public Map<String, LegacyGuardPolicyOutput> updateGuardPolicy(
-            @NonNull final LegacyGuardPolicyInput legacyGuardPolicy) throws PfModelException;
-
-    /**
-     * Delete legacy guard policy.
-     *
-     * @param policyId ID of the policy.
-     * @param policyVersion version of the policy
-     * @return the deleted policy
-     * @throws PfModelException on errors deleting policies
-     */
-    public Map<String, LegacyGuardPolicyOutput> deleteGuardPolicy(@NonNull final String policyId,
-            @NonNull final String policyVersion) throws PfModelException;
-
     /**
      * Get PDP groups.
      *
@@ -354,17 +308,52 @@ public interface PolicyModelsProvider extends AutoCloseable {
      * @return the statistics found
      * @throws PfModelException on errors getting statistics
      */
-    public List<PdpStatistics> getPdpStatistics(final String name) throws PfModelException;
+    public List<PdpStatistics> getPdpStatistics(final String name, final Date timestamp) throws PfModelException;
+
+
+    /**
+     * Get filtered PdpStatistics.
+     *
+     * @param name the pdpInstance name for the PDP statistics to get
+     * @param pdpGroupName pdpGroupName to filter statistics
+     * @param pdpSubGroup pdpSubGroupType name to filter statistics
+     * @param startTimeStamp startTimeStamp to filter statistics
+     * @param endTimeStamp endTimeStamp to filter statistics
+     * @param sortOrder sortOrder to query database
+     * @param getRecordNum Total query count from database
+     * @return the PDP statistics found
+     * @throws PfModelException on errors getting policies
+     */
+    public List<PdpStatistics> getFilteredPdpStatistics(String name, @NonNull String pdpGroupName, String pdpSubGroup,
+            Date startTimeStamp, Date endTimeStamp, String sortOrder, int getRecordNum) throws PfModelException;
+
+    /**
+     * Creates PDP statistics.
+     *
+     * @param pdpStatisticsList a specification of the PDP statistics to create
+     * @return the PDP statistics created
+     * @throws PfModelException on errors creating PDP statistics
+     */
+    public List<PdpStatistics> createPdpStatistics(@NonNull List<PdpStatistics> pdpStatisticsList)
+            throws PfModelException;
+
+    /**
+     * Updates PDP statistics.
+     *
+     * @param pdpStatisticsList a specification of the PDP statistics to update
+     * @return the PDP statistics updated
+     * @throws PfModelException on errors updating PDP statistics
+     */
+    public List<PdpStatistics> updatePdpStatistics(@NonNull List<PdpStatistics> pdpStatisticsList)
+            throws PfModelException;
 
     /**
-     * Update PDP statistics for a PDP.
+     * Delete a PDP statistics.
      *
-     * @param pdpGroupName the name of the PDP group containing the PDP that the statistics are for
-     * @param pdpType the PDP type of the subgroup containing the PDP that the statistics are for
-     * @param pdpInstanceId the instance ID of the PDP to update statistics for
-     * @param pdpStatistics the PDP statistics
-     * @throws PfModelException on errors updating statistics
+     * @param name the name of the policy to get, null to get all PDP statistics
+     * @param timestamp the timestamp of statistics to delete, null to delete all statistics record of given pdp
+     * @return the PDP statistics deleted
+     * @throws PfModelException on errors deleting PDP statistics
      */
-    public void updatePdpStatistics(@NonNull final String pdpGroupName, @NonNull final String pdpType,
-            @NonNull final String pdpInstanceId, @NonNull final PdpStatistics pdpStatistics) throws PfModelException;
+    public List<PdpStatistics> deletePdpStatistics(@NonNull String name, Date timestamp) throws PfModelException;
 }