Merge "Chsnge to OpenApi 3.0"
[cps.git] / cps-ncmp-service / src / main / java / org / onap / cps / ncmp / api / impl / operations / DmiDataOperation.java
1 /*
2  *  ============LICENSE_START=======================================================
3  *  Copyright (C) 2023 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.cps.ncmp.api.impl.operations;
22
23 import com.fasterxml.jackson.annotation.JsonInclude;
24 import com.fasterxml.jackson.annotation.JsonProperty;
25 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
26 import java.util.ArrayList;
27 import java.util.List;
28 import lombok.Builder;
29 import lombok.Getter;
30 import org.onap.cps.ncmp.api.models.DataOperationDefinition;
31
32 @JsonInclude(JsonInclude.Include.NON_NULL)
33 @Getter
34 @Builder
35 @JsonPropertyOrder({"operation", "operationId", "datastore", "options", "resourceIdentifier", "cmHandles"})
36 public class DmiDataOperation {
37
38     @JsonProperty("operation")
39     private OperationType operationType;
40     private String operationId;
41     private String datastore;
42     private String options;
43     private String resourceIdentifier;
44
45     private final List<CmHandle> cmHandles = new ArrayList<>();
46
47     /**
48      * Create and initialise a (outgoing) DMI data operation.
49      *
50      * @param dataOperationDefinition  definition of incoming of dataOperation request
51      * @return mapped dmi operation details
52      */
53     public static DmiDataOperation buildDmiDataOperationRequestBodyWithoutCmHandles(
54             final DataOperationDefinition dataOperationDefinition) {
55
56         return DmiDataOperation.builder()
57                 .operationType(OperationType.fromOperationName(dataOperationDefinition.getOperation()))
58                 .operationId(dataOperationDefinition.getOperationId())
59                 .datastore(DatastoreType.fromDatastoreName(dataOperationDefinition.getDatastore()).getDatastoreName())
60                 .options(dataOperationDefinition.getOptions())
61                 .resourceIdentifier(dataOperationDefinition.getResourceIdentifier())
62                 .build();
63     }
64 }