CPS-505 Retrieving modules for new CM handle
[cps.git] / cps-service / src / main / java / org / onap / cps / api / CpsModuleService.java
index cd156d6..5c40331 100644 (file)
 
 package org.onap.cps.api;
 
+import java.util.List;
 import java.util.Map;
 import org.checkerframework.checker.nullness.qual.NonNull;
 import org.onap.cps.spi.CascadeDeleteAllowed;
 import org.onap.cps.spi.exceptions.DataInUseException;
+import org.onap.cps.spi.model.ModuleReference;
 import org.onap.cps.spi.model.SchemaSet;
 
 /**
@@ -43,6 +45,19 @@ 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 newYangResourcesModuleNameToContentMap YANG resources map where key is a module name and value is content
+     * @param existingModuleReferences               List of YANG resources module references of the modules
+     *                                               needed for this handle that are already in CPS
+     */
+    void createSchemaSetFromModules(@NonNull String dataspaceName, @NonNull String schemaSetName,
+                                    @NonNull Map<String, String> newYangResourcesModuleNameToContentMap,
+                                    @NonNull List<ModuleReference> existingModuleReferences);
+
     /**
      * Read schema set in the given dataspace.
      *
@@ -63,4 +78,11 @@ public interface CpsModuleService {
      */
     void deleteSchemaSet(@NonNull String dataspaceName, @NonNull String schemaSetName,
         @NonNull CascadeDeleteAllowed cascadeDeleteAllowed);
+
+    /**
+     * Retrieve all modules and revisions known by CPS for all Yang Resources.
+     *
+     * @return a list of ModuleReference objects
+     */
+    List<ModuleReference> getAllYangResourcesModuleReferences();
 }