X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=models-provider%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fmodels%2Fprovider%2FPolicyModelsProvider.java;h=f2f7318e864d45735165ab4328fcfbeeb65849c5;hb=001fe2af138c08755f68025eeffd8c7a25cc8e5c;hp=0144f8c68d6bb832235e7b49eb317b375f7fee5f;hpb=886df68bad719ab7ab3672e58ee153f4f6af92c2;p=policy%2Fmodels.git diff --git a/models-provider/src/main/java/org/onap/policy/models/provider/PolicyModelsProvider.java b/models-provider/src/main/java/org/onap/policy/models/provider/PolicyModelsProvider.java index 0144f8c68..f2f7318e8 100644 --- a/models-provider/src/main/java/org/onap/policy/models/provider/PolicyModelsProvider.java +++ b/models-provider/src/main/java/org/onap/policy/models/provider/PolicyModelsProvider.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. + * Copyright (C) 2019-2020 Nordix Foundation. + * Modifications Copyright (C) 2020 Bell Canada. 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. @@ -20,37 +21,82 @@ package org.onap.policy.models.provider; +import java.util.Date; +import java.util.List; import lombok.NonNull; - -import org.onap.policy.models.base.PfConceptKey; import org.onap.policy.models.base.PfModelException; -import org.onap.policy.models.base.PfReferenceKey; -import org.onap.policy.models.tosca.concepts.ToscaServiceTemplate; +import org.onap.policy.models.pdp.concepts.Pdp; +import org.onap.policy.models.pdp.concepts.PdpGroup; +import org.onap.policy.models.pdp.concepts.PdpGroupFilter; +import org.onap.policy.models.pdp.concepts.PdpStatistics; +import org.onap.policy.models.pdp.concepts.PdpSubGroup; +import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; +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; /** - * This interface describes the operations that are provided to users and components for reading - * objects from and writing objects to the database. + * This interface describes the operations that are provided to users and components for reading objects from and + * writing objects to the database. * * @author Liam Fallon (liam.fallon@est.tech) */ -public interface PolicyModelsProvider { +public interface PolicyModelsProvider extends AutoCloseable { + /** + * Open the policy model provider initializing whatever internal handling it needs. + * + * @throws PfModelException on errors opening the models provider + */ + public void init() throws PfModelException; + + @Override + public void close() throws PfModelException; + + /** + * Get policy types. + * + * @param name the name of the policy type to get, set to null to get all policy types + * @param version the version of the policy type to get, set to null to get all versions + * @return the policy types found + * @throws PfModelException on errors getting policy types + */ + public ToscaServiceTemplate getPolicyTypes(final String name, final String version) throws PfModelException; /** * Get policy types. * - * @param policyTypeKey the policy type key for the policy types to be retrieved. A null key - * name returns all policy types. A null key version returns all versions of the policy - * type name specified in the key. + * @param name the name of the policy type to get, set to null to get all policy types + * @param version the version of the policy type to get, set to null to get all versions * @return the policy types found * @throws PfModelException on errors getting policy types */ - public ToscaServiceTemplate getPolicyTypes(@NonNull final PfConceptKey policyTypeKey) throws PfModelException; + public List getPolicyTypeList(final String name, final String version) throws PfModelException; + + /** + * Get filtered policy types. + * + * @param filter the filter for the policy types to get + * @return the policy types found + * @throws PfModelException on errors getting policy types + */ + public ToscaServiceTemplate getFilteredPolicyTypes(@NonNull final ToscaPolicyTypeFilter filter) + throws PfModelException; + + /** + * Get filtered policy types. + * + * @param filter the filter for the policy types to get + * @return the policy types found + * @throws PfModelException on errors getting policy types + */ + public List getFilteredPolicyTypeList(@NonNull final ToscaPolicyTypeFilter filter) + throws PfModelException; /** * Create policy types. * - * @param serviceTemplate the service template containing the definition of the policy types to - * be created + * @param serviceTemplate the service template containing the definition of the policy types to be created * @return the TOSCA service template containing the created policy types * @throws PfModelException on errors creating policy types */ @@ -60,8 +106,7 @@ public interface PolicyModelsProvider { /** * Create policy types. * - * @param serviceTemplate the service template containing the definition of the policy types to - * be modified + * @param serviceTemplate the service template containing the definition of the policy types to be modified * @return the TOSCA service template containing the modified policy types * @throws PfModelException on errors updating policy types */ @@ -69,42 +114,68 @@ public interface PolicyModelsProvider { throws PfModelException; /** - * Delete policy types. + * Delete policy type. * - * @param policyTypeKey the policy type key for the policy types to be deleted, if the version - * of the key is null, all versions of the policy type are deleted. - * @return the TOSCA service template containing the policy types that were deleted + * @param name the name of the policy type to delete. + * @param version the version of the policy type to delete. + * @return the TOSCA service template containing the policy type that was deleted * @throws PfModelException on errors deleting policy types */ - public ToscaServiceTemplate deletePolicyTypes(@NonNull final PfConceptKey policyTypeKey) throws PfModelException; + public ToscaServiceTemplate deletePolicyType(@NonNull final String name, @NonNull final String version) + throws PfModelException; + + /** + * Get policies. + * + * @param name the name of the policy to get, null to get all policies + * @param version the version of the policy to get, null to get all versions of a policy + * @return the policies found + * @throws PfModelException on errors getting policies + */ + public ToscaServiceTemplate getPolicies(final String name, final String version) throws PfModelException; /** * Get policies. * - * @param policyKey the policy key for the policies to be retrieved. The parent name and version - * must be specified. A null local name returns all policies for a parent policy type. + * @param name the name of the policy to get, null to get all policies + * @param version the version of the policy to get, null to get all versions of a policy * @return the policies found * @throws PfModelException on errors getting policies */ - public ToscaServiceTemplate getPolicies(@NonNull final PfReferenceKey policyKey) throws PfModelException; + public List getPolicyList(final String name, final String version) throws PfModelException; + + /** + * Get filtered policies. + * + * @param filter the filter for the policies to get + * @return the policies found + * @throws PfModelException on errors getting policies + */ + public ToscaServiceTemplate getFilteredPolicies(@NonNull final ToscaPolicyFilter filter) throws PfModelException; + + /** + * Get filtered policies. + * + * @param filter the filter for the policies to get + * @return the policies found + * @throws PfModelException on errors getting policies + */ + public List getFilteredPolicyList(@NonNull final ToscaPolicyFilter filter) throws PfModelException; /** * Create policies. * - * @param serviceTemplate the service template containing the definitions of the new policies to - * be created. + * @param serviceTemplate the service template containing the definitions of the new policies to be created. * @return the TOSCA service template containing the policy types that were created * @throws PfModelException on errors creating policies */ public ToscaServiceTemplate createPolicies(@NonNull final ToscaServiceTemplate serviceTemplate) throws PfModelException; - /** * Update policies. * - * @param serviceTemplate the service template containing the definitions of the policies to be - * updated. + * @param serviceTemplate the service template containing the definitions of the policies to be updated. * @return the TOSCA service template containing the policies that were updated * @throws PfModelException on errors updating policies */ @@ -112,45 +183,135 @@ public interface PolicyModelsProvider { throws PfModelException; /** - * Delete policies. + * Delete policy. * - * @param policyKey the policy key - * @return the TOSCA service template containing the policy types that were deleted - * @throws PfModelException on errors deleting policies + * @param name the name of the policy to delete. + * @param version the version of the policy to delete. + * @return the TOSCA service template containing the policy that was deleted + * @throws PfModelException on errors deleting a policy */ - public ToscaServiceTemplate deletePolicies(@NonNull final PfReferenceKey policyKey) throws PfModelException; + public ToscaServiceTemplate deletePolicy(@NonNull final String name, @NonNull final String version) + throws PfModelException; /** * Get PDP groups. * - * @param somePdpGroupFilter a filter for the get + * @param name the name of the policy to get, null to get all PDP groups * @return the PDP groups found * @throws PfModelException on errors getting PDP groups */ - public Object getPdpGroups(@NonNull final Object somePdpGroupFilter) throws PfModelException; + public List getPdpGroups(final String name) throws PfModelException; + + /** + * Get filtered PDP groups. + * + * @param filter the filter for the PDP groups to get + * @return the PDP groups found + * @throws PfModelException on errors getting policies + */ + public List getFilteredPdpGroups(@NonNull final PdpGroupFilter filter) throws PfModelException; /** * Creates PDP groups. * - * @param somePdpGroupSpecification a specification for the PDP group + * @param pdpGroups a specification of the PDP groups to create + * @return the PDP groups created * @throws PfModelException on errors creating PDP groups */ - public Object createPdpGroups(@NonNull final Object somePdpGroupSpecification) throws PfModelException; - + public List createPdpGroups(@NonNull final List pdpGroups) throws PfModelException; /** * Updates PDP groups. * - * @param somePdpGroupSpecification a specification for the PDP group + * @param pdpGroups a specification of the PDP groups to update + * @return the PDP groups updated * @throws PfModelException on errors updating PDP groups */ - public Object updatePdpGroups(@NonNull final Object somePdpGroupSpecification) throws PfModelException; + public List updatePdpGroups(@NonNull final List pdpGroups) throws PfModelException; + + /** + * Update a PDP subgroup. + * + * @param pdpGroupName the name of the PDP group of the PDP subgroup + * @param pdpSubGroup the PDP subgroup to be updated + * @throws PfModelException on errors updating PDP subgroups + */ + public void updatePdpSubGroup(@NonNull final String pdpGroupName, @NonNull final PdpSubGroup pdpSubGroup) + throws PfModelException; /** - * Delete PDP groups. + * Update a PDP. * - * @param somePdpGroupFilter a filter for the get + * @param pdpGroupName the name of the PDP group of the PDP subgroup + * @param pdpSubGroup the PDP subgroup to be updated + * @param pdp the PDP to be updated + * @throws PfModelException on errors updating PDP subgroups + */ + public void updatePdp(@NonNull final String pdpGroupName, @NonNull final String pdpSubGroup, @NonNull final Pdp pdp) + throws PfModelException; + + /** + * Delete a PDP group. + * + * @param name the name of the policy to get, null to get all PDP groups + * @return the PDP group deleted * @throws PfModelException on errors deleting PDP groups */ - public void deletePdpGroups(@NonNull final Object somePdpGroupFilter) throws PfModelException; + public PdpGroup deletePdpGroup(@NonNull final String name) throws PfModelException; + + /** + * Get PDP statistics. + * + * @param name the name of the PDP group to get statistics for, null to get all PDP groups + * @return the statistics found + * @throws PfModelException on errors getting statistics + */ + public List 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 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 createPdpStatistics(@NonNull List 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 updatePdpStatistics(@NonNull List pdpStatisticsList) + throws PfModelException; + + /** + * Delete a PDP 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 List deletePdpStatistics(@NonNull String name, Date timestamp) throws PfModelException; }