import org.onap.cps.ncmp.api.impl.operations.OperationType;
import org.onap.cps.ncmp.api.models.CmHandleQueryApiParameters;
import org.onap.cps.ncmp.api.models.CmHandleQueryServiceParameters;
+import org.onap.cps.ncmp.api.models.CmResourceAddress;
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.spi.FetchDescendantsOption;
import org.onap.cps.spi.model.ModuleDefinition;
import org.onap.cps.spi.model.ModuleReference;
+import reactor.core.publisher.Mono;
/*
* Datastore interface for handling CPS data.
DmiPluginRegistrationResponse updateDmiRegistrationAndSyncModule(DmiPluginRegistration dmiPluginRegistration);
/**
- * Get resource data for given data store using dmi.
+ * Fetches resource data for a given data store using DMI (Data Management Interface).
+ * This method retrieves data based on the provided CmResourceAddress and additional query parameters.
+ * It supports asynchronous processing and handles authorization if required.
*
- * @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
- * @return {@code Object} resource data
+ * @param cmResourceAddress The target data store, including the CM handle and resource identifier.
+ * This parameter must not be null.
+ * @param optionsParamInQuery Additional query parameters that may influence the data retrieval process,
+ * such as filters or limits. This parameter can be null.
+ * @param topicParamInQuery The topic name for triggering asynchronous responses. If specified,
+ * the response will be sent to this topic. This parameter can be null.
+ * @param requestId A unique identifier for the request, used for tracking and correlating
+ * asynchronous operations. This parameter must not be null.
+ * @param authorization The contents of the Authorization header. This parameter can be null
+ * if authorization is not required.
+ * @return {@code Mono<Object>} A reactive Mono that emits the resource data on successful retrieval
+ * or an error signal if the operation fails. The Mono represents a single asynchronous
+ * computation result.
*/
- Object getResourceDataForCmHandle(String datastoreName,
- String cmHandleId,
- String resourceIdentifier,
- String optionsParamInQuery,
- String topicParamInQuery,
- String requestId);
+ Mono<Object> getResourceDataForCmHandle(CmResourceAddress cmResourceAddress,
+ String optionsParamInQuery,
+ String topicParamInQuery,
+ String requestId,
+ String authorization);
/**
* Get resource data for operational.
*
- * @param datastoreName datastore name
- * @param cmHandleId cm handle identifier
- * @param resourceIdentifier resource identifier
+ * @param cmResourceAddress target datastore, cm handle and resource identifier
* @Link FetchDescendantsOption fetch descendants option
* @return {@code Object} resource data
*/
- Object getResourceDataForCmHandle(String datastoreName,
- String cmHandleId,
- String resourceIdentifier,
+ Object getResourceDataForCmHandle(CmResourceAddress cmResourceAddress,
FetchDescendantsOption fetchDescendantsOption);
/**
*
* @param topicParamInQuery topic name for (triggering) async responses
* @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);
+ String requestId,
+ String authorization);
/**
* @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 resourceIdentifier,
+ OperationType operationType,
+ String requestBody,
+ String contentType,
+ String authorization);
/**
* Retrieve module references for the given cm handle.