Merge "Adding missing rollback for Liquibase change logs"
[cps.git] / cps-service / src / main / java / org / onap / cps / api / CpsModuleService.java
index fee4daa..6ae28fe 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  ============LICENSE_START=======================================================
- *  Copyright (C) 2020 Nordix Foundation
+ *  Copyright (C) 2020-2022 Nordix Foundation
  *  Modifications Copyright (C) 2020-2021 Pantheon.tech
  *  ================================================================================
  *  Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,7 +21,7 @@
 
 package org.onap.cps.api;
 
-import java.util.List;
+import java.util.Collection;
 import java.util.Map;
 import org.checkerframework.checker.nullness.qual.NonNull;
 import org.onap.cps.spi.CascadeDeleteAllowed;
@@ -45,6 +45,17 @@ public interface CpsModuleService {
     void createSchemaSet(@NonNull String dataspaceName, @NonNull String schemaSetName,
                          @NonNull Map<String, String> yangResourcesNameToContentMap);
 
+    /**
+     * Create a schema set from new modules and existing modules.
+     * @param dataspaceName             Dataspace name
+     * @param schemaSetName             schema set name
+     * @param newModuleNameToContentMap YANG resources map where key is a module name and value is content
+     * @param moduleReferences          List of YANG resources module references of the modules
+     */
+    void createSchemaSetFromModules(@NonNull String dataspaceName, @NonNull String schemaSetName,
+                                    @NonNull Map<String, String> newModuleNameToContentMap,
+                                    Collection<ModuleReference> moduleReferences);
+
     /**
      * Read schema set in the given dataspace.
      *
@@ -67,9 +78,29 @@ public interface CpsModuleService {
         @NonNull CascadeDeleteAllowed cascadeDeleteAllowed);
 
     /**
-     * Retrieve all modules and revisions known by CPS for all Yang Resources.
+     * Retrieve module references for the given dataspace name.
      *
+     * @param dataspaceName        dataspace name
      * @return a list of ModuleReference objects
      */
-    List<ModuleReference> getAllYangResourcesModuleReferences();
+    Collection<ModuleReference> getYangResourceModuleReferences(String dataspaceName);
+
+    /**
+     * Retrieve module references for the given dataspace name and anchor name.
+     *
+     * @param dataspaceName dataspace name
+     * @param anchorName    anchor name
+     * @return a list of ModuleReference objects
+     */
+    Collection<ModuleReference> getYangResourcesModuleReferences(String dataspaceName, String anchorName);
+
+    /**
+     * Identify previously unknown Yang Resource module references.
+     *
+     * @param moduleReferencesToCheck the moduleReferencesToCheck
+     * @returns collection of module references
+     */
+    Collection<ModuleReference> identifyNewModuleReferences(
+        Collection<ModuleReference> moduleReferencesToCheck);
+
 }