X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-service%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fcps%2Fapi%2FCpsModuleService.java;h=5c40331d74389d8d0ddf6d3ebd7bdd2d897be378;hb=0af60de4fbb3a3e6c828e179c667b173b1539b62;hp=e7b02fbad80609df55464a6b97f5701e818e04c4;hpb=acfb2078d510f5cec7b6ce57c03ba42663b8f3ee;p=cps.git diff --git a/cps-service/src/main/java/org/onap/cps/api/CpsModuleService.java b/cps-service/src/main/java/org/onap/cps/api/CpsModuleService.java index e7b02fbad8..5c40331d74 100644 --- a/cps-service/src/main/java/org/onap/cps/api/CpsModuleService.java +++ b/cps-service/src/main/java/org/onap/cps/api/CpsModuleService.java @@ -1,12 +1,14 @@ /* - * ============LICENSE_START======================================================= + * ============LICENSE_START======================================================= * Copyright (C) 2020 Nordix Foundation + * Modifications Copyright (C) 2020-2021 Pantheon.tech * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -19,10 +21,13 @@ 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.exceptions.CpsException; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; +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; /** * Responsible for managing module sets. @@ -40,5 +45,44 @@ public interface CpsModuleService { void createSchemaSet(@NonNull String dataspaceName, @NonNull String schemaSetName, @NonNull Map 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 newYangResourcesModuleNameToContentMap, + @NonNull List existingModuleReferences); + + /** + * Read schema set in the given dataspace. + * + * @param dataspaceName dataspace name + * @param schemaSetName schema set name + * @return a SchemaSet + */ + SchemaSet getSchemaSet(@NonNull String dataspaceName, @NonNull String schemaSetName); + + /** + * Deletes Schema Set. + * + * @param dataspaceName dataspace name + * @param schemaSetName schema set name + * @param cascadeDeleteAllowed indicates the allowance to remove associated anchors and data if exist + * @throws DataInUseException if cascadeDeleteAllowed is set to CASCADE_DELETE_PROHIBITED and there + * is associated anchor record exists in database + */ + 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 getAllYangResourcesModuleReferences(); }