SOL003 Adapter Package Management - Fetch VNF Package Artifacts
[so.git] / adapters / mso-vnfm-adapter / mso-vnfm-etsi-adapter / src / main / java / org / onap / so / adapters / vnfmadapter / extclients / etsicatalog / EtsiCatalogServiceProvider.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2019 Nordix Foundation.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
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.so.adapters.vnfmadapter.extclients.etsicatalog;
22
23 import java.util.Optional;
24 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.packagemanagement.model.InlineResponse2001;
25
26 /**
27  * Provides methods for invoking REST calls to the ETSI Catalog Manager.
28  * 
29  * @author gareth.roper@est.tech
30  */
31 public interface EtsiCatalogServiceProvider {
32
33     /**
34      * GET Package Content, from VNF Package.
35      * 
36      * @param vnfPkgId The ID of the VNF Package from which the "package_content" will be retrieved.
37      * @return The Package Content of a VNF Package ("vnfPkgId").
38      */
39     Optional<byte[]> getVnfPackageContent(final String vnfPkgId);
40
41     /**
42      * GET VNF packages information from ETSI Catalog. Will return zero or more VNF package representations.
43      *
44      * @return An Array of all VNF packages retrieved from the ETSI Catalog.
45      */
46     Optional<InlineResponse2001[]> getVnfPackages();
47
48     /**
49      * GET specific VNF package information from ETSI Catalog.
50      *
51      * @param vnfPkgId The ID of the VNF Package that you want to query.
52      * @return The VNF package retrieved from the ETSI Catalog
53      */
54     Optional<InlineResponse2001> getVnfPackage(final String vnfPkgId);
55
56     /**
57      * GET Package Artifact, from VNF Package.
58      *
59      * @param vnfPkgId The ID of the VNF Package from which the artifact will be retrieved.
60      * @param artifactPath Sequence of one or more path segments representing the path of the artifact within the VNF
61      *        Package, e.g., foo/bar/run.sh
62      * @return The Package Artifact of a VNF Package ("vnfPkgId", "artifactPath").
63      */
64     Optional<byte[]> getVnfPackageArtifact(final String vnfPkgId, final String artifactPath);
65
66 }