/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2019-2021 Nordix Foundation.
- * Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
+ * Copyright (C) 2019-2022 Nordix Foundation.
+ * Modifications Copyright (C) 2020, 2022 Bell Canada. All rights reserved.
* Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
package org.onap.policy.models.provider;
-import java.time.Instant;
import java.util.Collection;
import java.util.List;
+import java.util.Map;
import lombok.NonNull;
import org.onap.policy.models.base.PfModelException;
+import org.onap.policy.models.base.PfModelRuntimeException;
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.PdpPolicyStatus;
-import org.onap.policy.models.pdp.concepts.PdpStatistics;
import org.onap.policy.models.pdp.concepts.PdpSubGroup;
import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifierOptVersion;
import org.onap.policy.models.tosca.authorative.concepts.ToscaEntityFilter;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaEntityKey;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType;
import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
public ToscaServiceTemplate deletePolicy(@NonNull final String name, @NonNull final String version)
throws PfModelException;
+
+ /**
+ * Create tosca node templates.
+ *
+ * @param serviceTemplate the definitions of the new node templates to be created.
+ * @return the tosca node templates that were created
+ * @throws PfModelException on errors creating tosca node templates
+ */
+ public ToscaServiceTemplate createToscaNodeTemplates(@NonNull final ToscaServiceTemplate serviceTemplate)
+ throws PfModelException;
+
+ /**
+ * Update tosca node templates.
+ *
+ * @param serviceTemplate with node templates to be updated.
+ * @return the service template with node templates that were updated
+ * @throws PfModelException on errors updating tosca node templates
+ */
+ public ToscaServiceTemplate updateToscaNodeTemplates(@NonNull final ToscaServiceTemplate serviceTemplate)
+ throws PfModelRuntimeException, PfModelException;
+
+ /**
+ * Delete a tosca node template.
+ *
+ * @param name the name of the node template to delete.
+ * @param version the version of the node template to delete.
+ * @return the service template with node templates that was deleted
+ * @throws PfModelException on errors deleting a node template
+ */
+ public ToscaServiceTemplate deleteToscaNodeTemplate(@NonNull final String name, @NonNull final String version)
+ throws PfModelException;
+
+
+ /**
+ * Get filtered node template metadataSet entities.
+ *
+ * @return the list of metadataSet found
+ * @throws PfModelException on errors getting node template metadataSet
+ */
+ public List<Map<ToscaEntityKey, Map<String, Object>>> getNodeTemplateMetadataSets(final String name,
+ final String version)
+ throws PfModelException;
+
+ /**
+ * Get filtered node template entities.
+ *
+ * @return the list of nodeTemplates found
+ * @throws PfModelException on errors getting node template
+ */
+ public List<ToscaNodeTemplate> getToscaNodeTemplate(final String name, final String version)
+ throws PfModelException;
+
/**
* Get PDP groups.
*
*/
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<PdpStatistics> getPdpStatistics(final String name, final Instant 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,
- Instant startTimeStamp, Instant 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;
-
- /**
- * 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<PdpStatistics> deletePdpStatistics(@NonNull String name, Instant timestamp) throws PfModelException;
-
/**
* Gets all policy deployments.
*