VSE: Upload modules (a model file) to a (new) dataspace
[cps.git] / cps / cps-service / src / main / java / org / onap / cps / api / CpService.java
1 /*
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2020 Nordix Foundation
4  *  Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
5  *  ================================================================================
6  *  Licensed under the Apache License, Version 2.0 (the "License");
7  *  you may not use this file except in compliance with the License.
8  *  You may obtain a copy of the License at
9  *
10  *        http://www.apache.org/licenses/LICENSE-2.0
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  *
17  *  SPDX-License-Identifier: Apache-2.0
18  *  ============LICENSE_END=========================================================
19  */
20
21 package org.onap.cps.api;
22
23 import java.io.File;
24 import java.io.IOException;
25 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
26 import org.opendaylight.yangtools.yang.model.parser.api.YangParserException;
27
28 /**
29  * Configuration and persistency service interface which holds methods for parsing and storing yang models and data.
30  */
31 public interface CpService {
32
33     /**
34      * Parse and validate a string representing a yang model to generate a schema context.
35      *
36      * @param yangModelContent the input stream
37      * @return the schema context
38      */
39     SchemaContext parseAndValidateModel(final String yangModelContent) throws IOException, YangParserException;
40
41     /**
42      * Parse and validate a file representing a yang model to generate a schema context.
43      *
44      * @param yangModelFile the yang file
45      * @return the schema context
46      */
47     SchemaContext parseAndValidateModel(final File yangModelFile) throws IOException, YangParserException;
48
49     /**
50      * Store schema context for a yang model.
51      *
52      * @param schemaContext the schema context
53      * @param dataspaceName the dataspace name
54      */
55     void storeSchemaContext(final SchemaContext schemaContext, final String dataspaceName);
56
57     /**
58      * Store the JSON structure in the database.
59      *
60      * @param jsonStructure the JSON structure.
61      * @return entity ID.
62      */
63     Integer storeJsonStructure(final String jsonStructure);
64
65     /**
66      * Read a JSON Object using the object identifier.
67      *
68      * @param jsonObjectId the JSON object identifier.
69      * @return the JSON structure.
70      */
71     String getJsonById(final int jsonObjectId);
72
73     /**
74      * Delete a JSON Object using the object identifier.
75      *
76      * @param jsonObjectId the JSON object identifier.
77      */
78     void deleteJsonById(final int jsonObjectId);
79 }