Add bearer token to NCMP async batch data passthrough (CPS-2126 #4)
[cps.git] / cps-ncmp-service / src / main / java / org / onap / cps / ncmp / api / NetworkCmProxyDataService.java
index e20780b..4230140 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  ============LICENSE_START=======================================================
  *  Copyright (C) 2021 highstreet technologies GmbH
- *  Modifications Copyright (C) 2021-2023 Nordix Foundation
+ *  Modifications Copyright (C) 2021-2024 Nordix Foundation
  *  Modifications Copyright (C) 2021 Pantheon.tech
  *  Modifications Copyright (C) 2022 Bell Canada
  *  ================================================================================
@@ -25,8 +25,8 @@ package org.onap.cps.ncmp.api;
 
 import java.util.Collection;
 import java.util.Map;
+import org.onap.cps.ncmp.api.impl.inventory.CompositeState;
 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;
@@ -59,6 +59,7 @@ public interface NetworkCmProxyDataService {
      * @param optionsParamInQuery options query
      * @param topicParamInQuery   topic name for (triggering) async responses
      * @param requestId           unique requestId for async request
+     * @param authorization       contents of Authorization header, or null if not present
      * @return {@code Object} resource data
      */
     Object getResourceDataForCmHandle(String datastoreName,
@@ -66,7 +67,8 @@ public interface NetworkCmProxyDataService {
                                       String resourceIdentifier,
                                       String optionsParamInQuery,
                                       String topicParamInQuery,
-                                      String requestId);
+                                      String requestId,
+                                      String authorization);
 
     /**
      * Get resource data for operational.
@@ -86,12 +88,14 @@ public interface NetworkCmProxyDataService {
      * Execute (async) data operation for group of cm handles using dmi.
      *
      * @param topicParamInQuery        topic name for (triggering) async responses
-     * @param dataOperationRequest     cm handle identifiers
+     * @param dataOperationRequest     contains a list of operation definitions(multiple operations)
+     * @param requestId                request ID
+     * @param authorization            contents of Authorization header, or null if not present
      */
     void executeDataOperationForCmHandles(String topicParamInQuery,
-                                          DataOperationRequest
-                                                            dataOperationRequest,
-                                          String requestId);
+                                          DataOperationRequest dataOperationRequest,
+                                          String requestId,
+                                          String authorization);
 
 
     /**
@@ -102,13 +106,15 @@ public interface NetworkCmProxyDataService {
      * @param operationType      required operation type
      * @param requestBody        request body to create resource
      * @param contentType        content type in body
+     * @param authorization       contents of Authorization header, or null if not present
      * @return {@code Object} return data
      */
     Object writeResourceDataPassThroughRunningForCmHandle(String cmHandleId,
                                                         String resourceIdentifier,
                                                         OperationType operationType,
                                                         String requestBody,
-                                                        String contentType);
+                                                        String contentType,
+                                                        String authorization);
 
     /**
      * Retrieve module references for the given cm handle.
@@ -126,6 +132,18 @@ public interface NetworkCmProxyDataService {
      */
     Collection<ModuleDefinition> getModuleDefinitionsByCmHandleId(String cmHandleId);
 
+    /**
+     * Get module definitions for the given parameters.
+     *
+     * @param cmHandleId        cm-handle identifier
+     * @param moduleName        module name
+     * @param moduleRevision    the revision of the module
+     * @return list of module definitions (module name, revision, yang resource content)
+     */
+    Collection<ModuleDefinition> getModuleDefinitionsByCmHandleAndModule(String cmHandleId,
+                                                                         String moduleName,
+                                                                         String moduleRevision);
+
     /**
      * Query cm handle details by cm handle's name.
      *
@@ -172,7 +190,7 @@ public interface NetworkCmProxyDataService {
      * @param cmHandleId cm handle id
      * @param dataSyncEnabled data sync enabled flag
      */
-    void setDataSyncEnabled(String cmHandleId, boolean dataSyncEnabled);
+    void setDataSyncEnabled(String cmHandleId, Boolean dataSyncEnabled);
 
     /**
      * Get all cm handle IDs by DMI plugin identifier.