X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-ncmp-service%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fcps%2Fncmp%2Fapi%2FNetworkCmProxyDataService.java;h=a65e3c4be177b9ecb4dc4ba6f5189a31fcdd8a61;hb=7090a07b05517e0a748cb82ffac8840de82c7fa5;hp=cbd0756c09a92b336b0c56d0199861d3947153c5;hpb=ea01d09861289ff162dff318713d1c24eba89259;p=cps.git diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/NetworkCmProxyDataService.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/NetworkCmProxyDataService.java index cbd0756c0..a65e3c4be 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/NetworkCmProxyDataService.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/NetworkCmProxyDataService.java @@ -1,7 +1,7 @@ /* * ============LICENSE_START======================================================= * Copyright (C) 2021 highstreet technologies GmbH - * Modifications Copyright (C) 2021-2022 Nordix Foundation + * Modifications Copyright (C) 2021-2023 Nordix Foundation * Modifications Copyright (C) 2021 Pantheon.tech * Modifications Copyright (C) 2022 Bell Canada * ================================================================================ @@ -23,12 +23,18 @@ package org.onap.cps.ncmp.api; -import static org.onap.cps.ncmp.api.impl.operations.DmiRequestBody.OperationEnum; - import java.util.Collection; +import java.util.Map; +import org.onap.cps.ncmp.api.impl.operations.OperationType; +import org.onap.cps.ncmp.api.inventory.CompositeState; +import org.onap.cps.ncmp.api.models.CmHandleQueryApiParameters; +import org.onap.cps.ncmp.api.models.CmHandleQueryServiceParameters; +import org.onap.cps.ncmp.api.models.DataOperationRequest; import org.onap.cps.ncmp.api.models.DmiPluginRegistration; import org.onap.cps.ncmp.api.models.DmiPluginRegistrationResponse; import org.onap.cps.ncmp.api.models.NcmpServiceCmHandle; +import org.onap.cps.spi.FetchDescendantsOption; +import org.onap.cps.spi.model.ModuleDefinition; import org.onap.cps.spi.model.ModuleReference; /* @@ -45,52 +51,61 @@ public interface NetworkCmProxyDataService { DmiPluginRegistrationResponse updateDmiRegistrationAndSyncModule(DmiPluginRegistration dmiPluginRegistration); /** - * Get resource data for data store pass-through operational - * using dmi. + * Get resource data for given data store using dmi. * - * @param cmHandleId cm handle identifier - * @param resourceIdentifier resource identifier + * @param datastoreName datastore name + * @param cmHandleId cm handle identifier + * @param resourceIdentifier resource identifier * @param optionsParamInQuery options query - * @param topicParamInQuery topic name for (triggering) async responses - * @param requestId unique requestId for async request + * @param topicParamInQuery topic name for (triggering) async responses + * @param requestId unique requestId for async request * @return {@code Object} resource data */ - Object getResourceDataOperationalForCmHandle(String cmHandleId, - String resourceIdentifier, - String optionsParamInQuery, - String topicParamInQuery, - String requestId); + Object getResourceDataForCmHandle(String datastoreName, + String cmHandleId, + String resourceIdentifier, + String optionsParamInQuery, + String topicParamInQuery, + String requestId); /** - * Get resource data for data store pass-through running - * using dmi. + * Get resource data for operational. * - * @param cmHandleId cm handle identifier + * @param datastoreName datastore name + * @param cmHandleId cm handle identifier * @param resourceIdentifier resource identifier - * @param optionsParamInQuery options query - * @param topicParamInQuery topic name for (triggering) async responses - * @param requestId unique requestId for async request + * @Link FetchDescendantsOption fetch descendants option * @return {@code Object} resource data */ - Object getResourceDataPassThroughRunningForCmHandle(String cmHandleId, - String resourceIdentifier, - String optionsParamInQuery, - String topicParamInQuery, - String requestId); + Object getResourceDataForCmHandle(String datastoreName, + String cmHandleId, + String resourceIdentifier, + FetchDescendantsOption fetchDescendantsOption); + + /** + * Execute (async) data operation for group of cm handles using dmi. + * + * @param topicParamInQuery topic name for (triggering) async responses + * @param dataOperationRequest contains a list of operation definitions(multiple operations) + */ + void executeDataOperationForCmHandles(String topicParamInQuery, + DataOperationRequest dataOperationRequest, + String requestId); + /** - * Write resource data for data store pass-through running - * using dmi for given cm-handle. - * @param cmHandleId cm handle identifier + * Write resource data for data store pass-through running using dmi for given cm-handle. + * + * @param cmHandleId cm handle identifier * @param resourceIdentifier resource identifier - * @param operation required operation - * @param requestBody request body to create resource - * @param contentType content type in body + * @param operationType required operation type + * @param requestBody request body to create resource + * @param contentType content type in body * @return {@code Object} return data */ Object writeResourceDataPassThroughRunningForCmHandle(String cmHandleId, String resourceIdentifier, - OperationEnum operation, + OperationType operationType, String requestBody, String contentType); @@ -103,13 +118,12 @@ public interface NetworkCmProxyDataService { Collection getYangResourcesModuleReferences(String cmHandleId); /** - * Query cm handle identifiers for the given collection of module names. + * Retrieve module definitions for the given cm handle. * - * @param moduleNames module names. - * @return a collection of cm handle identifiers. The schema set for each cm handle must include all the - * given module names + * @param cmHandleId cm handle identifier + * @return a collection of module definition (moduleName, revision and yang resource content) */ - Collection executeCmHandleHasAllModulesSearch(Collection moduleNames); + Collection getModuleDefinitionsByCmHandleId(String cmHandleId); /** * Query cm handle details by cm handle's name. @@ -119,4 +133,60 @@ public interface NetworkCmProxyDataService { */ NcmpServiceCmHandle getNcmpServiceCmHandle(String cmHandleId); + /** + * Get cm handle public properties by cm handle id. + * + * @param cmHandleId cm handle identifier + * @return a collection of cm handle public properties. + */ + Map getCmHandlePublicProperties(String cmHandleId); + + /** + * Get cm handle composite state by cm handle id. + * + * @param cmHandleId cm handle identifier + * @return a cm handle composite state + */ + CompositeState getCmHandleCompositeState(String cmHandleId); + + /** + * Query and return cm handles that match the given query parameters. + * + * @param cmHandleQueryApiParameters the cm handle query parameters + * @return collection of cm handles + */ + Collection executeCmHandleSearch(CmHandleQueryApiParameters cmHandleQueryApiParameters); + + /** + * Query and return cm handle ids that match the given query parameters. + * + * @param cmHandleQueryApiParameters the cm handle query parameters + * @return collection of cm handle ids + */ + Collection executeCmHandleIdSearch(CmHandleQueryApiParameters cmHandleQueryApiParameters); + + /** + * Set the data sync enabled flag, along with the data sync state to true or false based on the cm handle id. + * + * @param cmHandleId cm handle id + * @param dataSyncEnabled data sync enabled flag + */ + void setDataSyncEnabled(String cmHandleId, boolean dataSyncEnabled); + + /** + * Get all cm handle IDs by DMI plugin identifier. + * + * @param dmiPluginIdentifier DMI plugin identifier + * @return collection of cm handle IDs + */ + Collection getAllCmHandleIdsByDmiPluginIdentifier(String dmiPluginIdentifier); + + /** + * Get all cm handle IDs by various search criteria. + * + * @param cmHandleQueryServiceParameters cm handle query parameters + * @return collection of cm handle IDs + */ + Collection executeCmHandleIdSearchForInventory(CmHandleQueryServiceParameters + cmHandleQueryServiceParameters); }