* Copyright (C) 2020-2022 Nordix Foundation.
* Modifications Copyright (C) 2020-2022 Bell Canada.
* Modifications Copyright (C) 2021 Pantheon.tech
+ * Modifications Copyright (C) 2022 TechMahindra Ltd.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.onap.cps.spi;
import java.util.Collection;
-import java.util.Set;
import org.onap.cps.spi.exceptions.AlreadyDefinedException;
import org.onap.cps.spi.model.Anchor;
-import org.onap.cps.spi.model.CmHandleQueryParameters;
+import org.onap.cps.spi.model.Dataspace;
/*
Service for handling CPS admin data.
*/
void deleteDataspace(String dataspaceName);
+ /**
+ * Get dataspace.
+ *
+ * @param dataspaceName dataspace name
+ * @return a dataspace
+ */
+ Dataspace getDataspace(String dataspaceName);
+
+ /**
+ * Get all dataspaces.
+ *
+ * @return a collection of dataspaces.
+ */
+ Collection<Dataspace> getAllDataspaces();
+
/**
* Create an Anchor.
*
void createAnchor(String dataspaceName, String schemaSetName, String anchorName);
/**
- * Read all anchors associated the given schema-set in the given dataspace.
+ * Read all anchors associated with the given schema-set in the given dataspace.
*
* @param dataspaceName dataspace name
* @param schemaSetName schema-set name
*/
Collection<Anchor> getAnchors(String dataspaceName, String schemaSetName);
+ /**
+ * Read all anchors associated with multiple schema-sets in the given dataspace.
+ *
+ * @param dataspaceName dataspace name
+ * @param schemaSetNames schema-set names
+ * @return a collection of anchors
+ */
+ Collection<Anchor> getAnchors(String dataspaceName, Collection<String> schemaSetNames);
+
/**
* Read all anchors in the given a dataspace.
*
/**
* Query anchor names for the given module names in the provided dataspace.
- *
+ * If dataspace or one of the given module names does not exists, return with an empty collection.
*
* @param dataspaceName dataspace name
* @param moduleNames a collection of module names
* @return a collection of anchor names in the given dataspace. The schema set for each anchor must include all the
* given module names
*/
- Collection<Anchor> queryAnchors(String dataspaceName, Collection<String> moduleNames);
+ Collection<String> queryAnchorNames(String dataspaceName, Collection<String> moduleNames);
/**
* Get an anchor in the given dataspace using the anchor name.
void deleteAnchor(String dataspaceName, String anchorName);
/**
- * Query and return cm handles that match the given query parameters.
+ * Delete anchors by name in given dataspace.
*
- * @param cmHandleQueryParameters the cm handle query parameters
- * @return collection of cm handle ids
+ * @param dataspaceName dataspace name
+ * @param anchorNames anchor names
+ */
+ void deleteAnchors(String dataspaceName, Collection<String> anchorNames);
+
+ /**
+ * Delete anchors by name in given dataspace.
+ *
+ * @param dataspaceName dataspace name
+ * @param anchorName anchor name
+ * @param schemaSetName schema set name
*/
- Set<String> queryCmHandles(CmHandleQueryParameters cmHandleQueryParameters);
+ void updateAnchorSchemaSet(String dataspaceName, String anchorName, String schemaSetName);
}