aboutsummaryrefslogtreecommitdiffstats
path: root/adapters/mso-vfc-adapter/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'adapters/mso-vfc-adapter/src/main/java/org')
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/constant/CommonConstant.java18
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AddPnfData.java68
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AddressRange.java33
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedNs.java40
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedPnf.java67
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedSap.java49
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedVirtualLink.java49
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedVnf.java78
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedVnffg.java40
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffinityOrAntiAffinityRule.java51
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ChangedInfo.java33
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/CivicAddressElement.java33
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/CpProtocolData.java33
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/CpProtocolInfo.java31
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/CreateNsRequest.java53
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ExtCpInfo.java27
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ExtLinkPortInfo.java33
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ExtManagedVirtualLinkInfo.java57
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ExtVirtualLinkInfo.java42
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/InstantiateNsRequest.java207
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/InstantiatedVnfInfo.java117
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/IpAddresses.java63
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/IpOverEthernetAddressData.java35
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/Link.java24
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/Links.java78
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/LocationConstraints.java33
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/Mask.java47
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ModifyVnfInfoData.java80
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NfpInfo.java89
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NfpRule.java108
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsCpHandle.java69
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsInstance.java166
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsInstanceLinks.java82
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsLcmOpOcc.java125
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsLinkPortInfo.java47
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsScaleInfo.java37
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsVirtualLinkInfo.java57
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ParamsForVnf.java35
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/PnfExtCpData.java44
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/PnfExtCpInfo.java48
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/PnfInfo.java74
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/PortRange.java37
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ProblemDetails.java62
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ResourceChanges.java71
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ResourceHandle.java51
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/SapData.java56
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/SapInfo.java68
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfInstance.java156
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfInstanceData.java33
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfLinkPortInfo.java46
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfLocationConstraint.java33
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfScaleInfo.java38
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfVirtualLinkResourceInfo.java76
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfcCpInfo.java65
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfcResourceInfo.java85
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnffgInfo.java87
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/rest/VfcAdapterRest.java47
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/rest/VfcManagerSol005.java620
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/util/RestfulUtil.java190
59 files changed, 4311 insertions, 10 deletions
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/constant/CommonConstant.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/constant/CommonConstant.java
index 04c6749b61..51a0fc0c97 100644
--- a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/constant/CommonConstant.java
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/constant/CommonConstant.java
@@ -33,17 +33,32 @@ public class CommonConstant {
public static final String STR_EMPTY = "";
public static final String NFVO_CREATE_URL = "/api/nslcm/v1/ns";
+ public static final String SOL005_NFVO_CREATE_URL = "/api/nslcm/v1/ns_instances";
public static final String NFVO_INSTANTIATE_URL = "/api/nslcm/v1/ns/%s/instantiate";
+ public static final String SOL005_NFVO_INSTANTIATE_URL = "/api/nslcm/v1/ns_instances/%s/instantiate";
public static final String NFVO_TERMINATE_URL = "/api/nslcm/v1/ns/%s/terminate";
+ public static final String SOL005_NFVO_TERMINATE_URL = "/api/nslcm/v1/ns_instances/%s/terminate";
public static final String NFVO_DELETE_URL = "/api/nslcm/v1/ns/%s";
+ public static final String SOL005_NFVO_DELETE_URL = "/api/nslcm/v1/ns_instances/%s";
public static final String NFVO_QUERY_URL = "/api/nslcm/v1/jobs/%s";
+ public static final String SOL005_NFVO_QUERY_URL = "/api/nslcm/v1/ns_lcm_op_occs/%s";
public static final String NFVO_SCALE_URL = "/api/nslcm/v1/ns/%s/scale";
+ public enum operationState {
+ PROCESSING, COMPLETED, PARTIALLY_COMPLETED, FAILED_TEMP, FAILED, ROLLING_BACK, ROLLED_BACK
+ }
+ public enum lcmOperationType {
+ INSTANTIATE, SCALE, UPDATE, TERMINATE, HEAL
+ };
+ public enum cancelMode {
+ GRACEFUL, FORCEFUL
+ };
+
/**
*
* <br>
@@ -107,8 +122,11 @@ public class CommonConstant {
public static final String DESC = "description";
public static final String NS_INSTANCE_ID = "nsInstanceId";
+ public static final String SOL005_NS_INSTANCE_ID = "id";
+
public static final String JOB_ID = "jobId";
+ public static final String JOB_URI = "Location";
public static final String ADDITIONAL_PARAM_FOR_NS = "additionalParamForNs";
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AddPnfData.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AddPnfData.java
new file mode 100644
index 0000000000..d312501fd7
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AddPnfData.java
@@ -0,0 +1,68 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+public class AddPnfData {
+ private String pnfId;
+ private String pnfName;
+ private String pnfdId;
+ private String pnfProfileId;
+ private List<PnfExtCpData> cpData;
+
+ /***
+ *
+ * @return id of pnf
+ */
+ public String getPnfId() {
+ return pnfId;
+ }
+
+ public void setPnfId(String pnfId) {
+ this.pnfId = pnfId;
+ }
+
+ public String getPnfName() {
+ return pnfName;
+ }
+
+ public void setPnfName(String pnfName) {
+ this.pnfName = pnfName;
+ }
+
+ public String getPnfdId() {
+ return pnfdId;
+ }
+
+ public void setPnfdId(String pnfdId) {
+ this.pnfdId = pnfdId;
+ }
+
+ public String getPnfProfileId() {
+ return pnfProfileId;
+ }
+
+ public void setPnfProfileId(String pnfProfileId) {
+ this.pnfProfileId = pnfProfileId;
+ }
+
+ public List<PnfExtCpData> getCpData() {
+ return cpData;
+ }
+
+ public void setCpData(List<PnfExtCpData> cpData) {
+ this.cpData = cpData;
+ }
+}
+
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AddressRange.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AddressRange.java
new file mode 100644
index 0000000000..9f357a549d
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AddressRange.java
@@ -0,0 +1,33 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class AddressRange {
+ private String minAddress;
+ private String maxAddress;
+
+ public String getMinAddress() {
+ return minAddress;
+ }
+
+ public void setMinAddress(String minAddress) {
+ this.minAddress = minAddress;
+ }
+
+ public String getMaxAddress() {
+ return maxAddress;
+ }
+
+ public void setMaxAddress(String maxAddress) {
+ this.maxAddress = maxAddress;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedNs.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedNs.java
new file mode 100644
index 0000000000..fa502f3962
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedNs.java
@@ -0,0 +1,40 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class AffectedNs {
+ private String nsInstanceId;
+ private String nsdId;
+
+ private enum changeType {
+ ADD, REMOVE, INSTANTIATE, TERMINATE, SCALE, UPDATE, HEAL
+ }
+ private enum changeResult {
+ COMPLETED, ROLLED_BACK, FAILED, PARTIALLY_COMPLETED
+ }
+
+ public String getNsInstanceId() {
+ return nsInstanceId;
+ }
+
+ public void setNsInstanceId(String nsInstanceId) {
+ this.nsInstanceId = nsInstanceId;
+ }
+
+ public String getNsdId() {
+ return nsdId;
+ }
+
+ public void setNsdId(String nsdId) {
+ this.nsdId = nsdId;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedPnf.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedPnf.java
new file mode 100644
index 0000000000..9d98e1c256
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedPnf.java
@@ -0,0 +1,67 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class AffectedPnf {
+ private String pnfid;
+ private String pnfdid;
+ private String pnfProfileId;
+ private String pnfName;
+ private String cpInstanceId;
+
+ private enum changeType {
+ ADD, REMOVE, MODIFY
+ }
+ private enum changeResult {
+ COMPLETED, ROLLED_BACK, FAILED
+ }
+
+ public String getPnfid() {
+ return pnfid;
+ }
+
+ public void setPnfid(String pnfid) {
+ this.pnfid = pnfid;
+ }
+
+ public String getPnfdid() {
+ return pnfdid;
+ }
+
+ public void setPnfdid(String pnfdid) {
+ this.pnfdid = pnfdid;
+ }
+
+ public String getPnfProfileId() {
+ return pnfProfileId;
+ }
+
+ public void setPnfProfileId(String pnfProfileId) {
+ this.pnfProfileId = pnfProfileId;
+ }
+
+ public String getPnfName() {
+ return pnfName;
+ }
+
+ public void setPnfName(String pnfName) {
+ this.pnfName = pnfName;
+ }
+
+ public String getCpInstanceId() {
+ return cpInstanceId;
+ }
+
+ public void setCpInstanceId(String cpInstanceId) {
+ this.cpInstanceId = cpInstanceId;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedSap.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedSap.java
new file mode 100644
index 0000000000..62f4f92fa9
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedSap.java
@@ -0,0 +1,49 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class AffectedSap {
+ private String sapInstanceId;
+ private String sapdId;
+ private String sapName;
+
+ private enum changeType {
+ ADD, REMOVE, MODIFY
+ }
+ private enum changeResult {
+ COMPLETED, ROLLED_BACK, FAILED
+ }
+
+ public String getSapInstanceId() {
+ return sapInstanceId;
+ }
+
+ public void setSapInstanceId(String sapInstanceId) {
+ this.sapInstanceId = sapInstanceId;
+ }
+
+ public String getSapdId() {
+ return sapdId;
+ }
+
+ public void setSapdId(String sapdId) {
+ this.sapdId = sapdId;
+ }
+
+ public String getSapName() {
+ return sapName;
+ }
+
+ public void setSapName(String sapName) {
+ this.sapName = sapName;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedVirtualLink.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedVirtualLink.java
new file mode 100644
index 0000000000..ecaa1c5d3b
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedVirtualLink.java
@@ -0,0 +1,49 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class AffectedVirtualLink {
+ private String nsVirtualLinkInstanceId;
+ private String nsVirtualLinkDescId;
+ private String vlProfileId;
+
+ private enum changeType {
+ ADD, DELETE, MODIFY, ADD_LINK_PORT, REMOVE_LINK_PORT
+ };
+ private enum changeResult {
+ COMPLETED, ROLLED_BACK, FAILED
+ }
+
+ public String getNsVirtualLinkInstanceId() {
+ return nsVirtualLinkInstanceId;
+ }
+
+ public void setNsVirtualLinkInstanceId(String nsVirtualLinkInstanceId) {
+ this.nsVirtualLinkInstanceId = nsVirtualLinkInstanceId;
+ }
+
+ public String getNsVirtualLinkDescId() {
+ return nsVirtualLinkDescId;
+ }
+
+ public void setNsVirtualLinkDescId(String nsVirtualLinkDescId) {
+ this.nsVirtualLinkDescId = nsVirtualLinkDescId;
+ }
+
+ public String getVlProfileId() {
+ return vlProfileId;
+ }
+
+ public void setVlProfileId(String vlProfileId) {
+ this.vlProfileId = vlProfileId;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedVnf.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedVnf.java
new file mode 100644
index 0000000000..6463c7a129
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedVnf.java
@@ -0,0 +1,78 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class AffectedVnf {
+ private String vnfInstanceId;
+ private String vnfdId;
+ private String vnfProfileId;
+ private String vnfName;
+
+ private enum changeType {
+ ADD,
+ REMOVE,
+ INSTANTIATE,
+ TERMINATE,
+ SCALE,
+ CHANGE_FLAVOUR,
+ HEAL,
+ OPERATE,
+ MODIFY_INFORMATION,
+ CHANGE_EXTERNAL_VNF_CONNECTIVITY
+ };
+ private enum changeResult {
+ COMPLETED, ROLLED_BACK, FAILED
+ }
+
+ private ChangedInfo changedInfo;
+
+
+ public String getVnfInstanceId() {
+ return vnfInstanceId;
+ }
+
+ public void setVnfInstanceId(String vnfInstanceId) {
+ this.vnfInstanceId = vnfInstanceId;
+ }
+
+ public String getVnfdId() {
+ return vnfdId;
+ }
+
+ public void setVnfdId(String vnfdId) {
+ this.vnfdId = vnfdId;
+ }
+
+ public String getVnfProfileId() {
+ return vnfProfileId;
+ }
+
+ public void setVnfProfileId(String vnfProfileId) {
+ this.vnfProfileId = vnfProfileId;
+ }
+
+ public String getVnfName() {
+ return vnfName;
+ }
+
+ public void setVnfName(String vnfName) {
+ this.vnfName = vnfName;
+ }
+
+ public ChangedInfo getChangedInfo() {
+ return changedInfo;
+ }
+
+ public void setChangedInfo(ChangedInfo changedInfo) {
+ this.changedInfo = changedInfo;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedVnffg.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedVnffg.java
new file mode 100644
index 0000000000..04e9481190
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffectedVnffg.java
@@ -0,0 +1,40 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class AffectedVnffg {
+ private String vnffgInstanceId;
+ private String vnffgdId;
+
+ private enum changeType {
+ ADD, REMOVE, MODIFY
+ }
+ private enum changeResult {
+ COMPLETED, ROLLED_BACK, FAILED
+ }
+
+ public String getVnffgInstanceId() {
+ return vnffgInstanceId;
+ }
+
+ public void setVnffgInstanceId(String vnffgInstanceId) {
+ this.vnffgInstanceId = vnffgInstanceId;
+ }
+
+ public String getVnffgdId() {
+ return vnffgdId;
+ }
+
+ public void setVnffgdId(String vnffgdId) {
+ this.vnffgdId = vnffgdId;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffinityOrAntiAffinityRule.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffinityOrAntiAffinityRule.java
new file mode 100644
index 0000000000..7f019bcf40
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/AffinityOrAntiAffinityRule.java
@@ -0,0 +1,51 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+public class AffinityOrAntiAffinityRule {
+ private String vnfdId;
+ private List<String> vnfProfileId;
+ private List<String> vnfInstanceId;
+
+ private enum affinityOrAntiAffiinty {
+ AFFINITY, ANTI_AFFIINTY
+ };
+ private enum scope {
+ NFVI_POP, ZONE, ZONE_GROUP, NFVI_NODE
+ };
+
+ public String getVnfdId() {
+ return vnfdId;
+ }
+
+ public void setVnfdId(String vnfdId) {
+ this.vnfdId = vnfdId;
+ }
+
+ public List<String> getVnfProfileId() {
+ return vnfProfileId;
+ }
+
+ public void setVnfProfileId(List<String> vnfProfileId) {
+ this.vnfProfileId = vnfProfileId;
+ }
+
+ public List<String> getVnfInstanceId() {
+ return vnfInstanceId;
+ }
+
+ public void setVnfInstanceId(List<String> vnfInstanceId) {
+ this.vnfInstanceId = vnfInstanceId;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ChangedInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ChangedInfo.java
new file mode 100644
index 0000000000..5de6cbf139
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ChangedInfo.java
@@ -0,0 +1,33 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class ChangedInfo {
+ private ModifyVnfInfoData changedVnfInfo;
+ private ExtVirtualLinkInfo changedExtConnectivity;
+
+ public ModifyVnfInfoData getChangedVnfInfo() {
+ return changedVnfInfo;
+ }
+
+ public void setChangedVnfInfo(ModifyVnfInfoData changedVnfInfo) {
+ this.changedVnfInfo = changedVnfInfo;
+ }
+
+ public ExtVirtualLinkInfo getChangedExtConnectivity() {
+ return changedExtConnectivity;
+ }
+
+ public void setChangedExtConnectivity(ExtVirtualLinkInfo changedExtConnectivity) {
+ this.changedExtConnectivity = changedExtConnectivity;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/CivicAddressElement.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/CivicAddressElement.java
new file mode 100644
index 0000000000..2a63d39be0
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/CivicAddressElement.java
@@ -0,0 +1,33 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class CivicAddressElement {
+ private int caType;
+ private String caValue;
+
+ public int getCaType() {
+ return caType;
+ }
+
+ public void setCaType(int caType) {
+ this.caType = caType;
+ }
+
+ public String getCaValue() {
+ return caValue;
+ }
+
+ public void setCaValue(String caValue) {
+ this.caValue = caValue;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/CpProtocolData.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/CpProtocolData.java
new file mode 100644
index 0000000000..27272ea22a
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/CpProtocolData.java
@@ -0,0 +1,33 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class CpProtocolData {
+ private String layerProtocol;
+ private IpOverEthernetAddressData ipOverEthernet;
+
+ public String getLayerProtocol() {
+ return layerProtocol;
+ }
+
+ public void setLayerProtocol(String layerProtocol) {
+ this.layerProtocol = layerProtocol;
+ }
+
+ public IpOverEthernetAddressData getIpOverEthernet() {
+ return ipOverEthernet;
+ }
+
+ public void setIpOverEthernet(IpOverEthernetAddressData ipOverEthernet) {
+ this.ipOverEthernet = ipOverEthernet;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/CpProtocolInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/CpProtocolInfo.java
new file mode 100644
index 0000000000..5f1191efe9
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/CpProtocolInfo.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+
+public class CpProtocolInfo {
+ @NotNull
+ private enum layerProtocol {
+ IP_OVER_ETHERNET
+ };
+
+ private IpOverEthernetAddressData ipOverEthernet;
+
+ public IpOverEthernetAddressData getIpOverEthernet() {
+ return ipOverEthernet;
+ }
+
+ public void setIpOverEthernet(IpOverEthernetAddressData ipOverEthernet) {
+ this.ipOverEthernet = ipOverEthernet;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/CreateNsRequest.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/CreateNsRequest.java
new file mode 100644
index 0000000000..878ce60ba1
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/CreateNsRequest.java
@@ -0,0 +1,53 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class CreateNsRequest {
+
+ String nsdId;
+
+ String nsName;
+
+ String nsDescription;
+
+
+ public String getNsdId() {
+ return nsdId;
+ }
+
+ public void setNsdId(String nsdId) {
+ this.nsdId = nsdId;
+ }
+
+ public String getNsDescription() {
+ return nsDescription;
+ }
+
+ public void setNsDescription(String nsDescription) {
+ this.nsDescription = nsDescription;
+ }
+
+ /**
+ * @return Returns the nsName.
+ */
+ public String getNsName() {
+ return nsName;
+ }
+
+ /**
+ * @param nsName The nsName to set.
+ */
+ public void setNsName(String nsName) {
+ this.nsName = nsName;
+ }
+
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ExtCpInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ExtCpInfo.java
new file mode 100644
index 0000000000..63ca66bd43
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ExtCpInfo.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class ExtCpInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private String cpdId;
+ private List<CpProtocolData> cpProtocolInfo;
+ private List<String> extLinkPortId;
+
+
+
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ExtLinkPortInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ExtLinkPortInfo.java
new file mode 100644
index 0000000000..a1ab3fdb97
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ExtLinkPortInfo.java
@@ -0,0 +1,33 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class ExtLinkPortInfo {
+ private String id;
+ private ResourceHandle resourceHandle;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public ResourceHandle getResourceHandle() {
+ return resourceHandle;
+ }
+
+ public void setResourceHandle(ResourceHandle resourceHandle) {
+ this.resourceHandle = resourceHandle;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ExtManagedVirtualLinkInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ExtManagedVirtualLinkInfo.java
new file mode 100644
index 0000000000..3f643a8330
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ExtManagedVirtualLinkInfo.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class ExtManagedVirtualLinkInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private String vnfVirtualLinkDescId;
+ @NotNull
+ private ResourceHandle networkResource;
+ private List<VnfLinkPortInfo> vnfLinkPorts;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getVnfVirtualLinkDescId() {
+ return vnfVirtualLinkDescId;
+ }
+
+ public void setVnfVirtualLinkDescId(String vnfVirtualLinkDescId) {
+ this.vnfVirtualLinkDescId = vnfVirtualLinkDescId;
+ }
+
+ public ResourceHandle getNetworkResource() {
+ return networkResource;
+ }
+
+ public void setNetworkResource(ResourceHandle networkResource) {
+ this.networkResource = networkResource;
+ }
+
+ public List<VnfLinkPortInfo> getVnfLinkPorts() {
+ return vnfLinkPorts;
+ }
+
+ public void setVnfLinkPorts(List<VnfLinkPortInfo> vnfLinkPorts) {
+ this.vnfLinkPorts = vnfLinkPorts;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ExtVirtualLinkInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ExtVirtualLinkInfo.java
new file mode 100644
index 0000000000..ce7d1cfe6d
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ExtVirtualLinkInfo.java
@@ -0,0 +1,42 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class ExtVirtualLinkInfo {
+ private String id;
+ private ResourceHandle resourceHandle;
+ private ExtLinkPortInfo extLinkPorts;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public ResourceHandle getResourceHandle() {
+ return resourceHandle;
+ }
+
+ public void setResourceHandle(ResourceHandle resourceHandle) {
+ this.resourceHandle = resourceHandle;
+ }
+
+ public ExtLinkPortInfo getExtLinkPorts() {
+ return extLinkPorts;
+ }
+
+ public void setExtLinkPorts(ExtLinkPortInfo extLinkPorts) {
+ this.extLinkPorts = extLinkPorts;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/InstantiateNsRequest.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/InstantiateNsRequest.java
new file mode 100644
index 0000000000..ff0730a527
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/InstantiateNsRequest.java
@@ -0,0 +1,207 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+import java.util.Map;
+
+public class InstantiateNsRequest {
+
+ private String nsFlavourId;
+ private List<SapData> sapData;
+ private List<AddPnfData> addpnfData;
+ private List<VnfInstanceData> vnfInstanceData;
+ private List<String> nestedNsInstanceId;
+ private List<VnfLocationConstraint> localizationLanguage;
+ private Map<String, Object> aditionalParamsForNs;
+ private List<ParamsForVnf> additionalParamsForVnf;
+ private String startTime;
+ private String nsInstantiationLevelId;
+ private List<AffinityOrAntiAffinityRule> additionalAffinityOrAntiAffiniityRule;
+
+ /***
+ *
+ * @return nsFlavourId
+ */
+ public String getNsFlavourId() {
+ return nsFlavourId;
+ }
+
+ /***
+ *
+ * @param nsFlavourId
+ */
+ public void setNsFlavourId(String nsFlavourId) {
+ this.nsFlavourId = nsFlavourId;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public List<SapData> getSapData() {
+ return sapData;
+ }
+
+ /***
+ *
+ * @param sapData
+ */
+ public void setSapData(List<SapData> sapData) {
+ this.sapData = sapData;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public List<AddPnfData> getAddpnfData() {
+ return addpnfData;
+ }
+
+ /***
+ *
+ * @param addpnfData
+ */
+ public void setAddpnfData(List<AddPnfData> addpnfData) {
+ this.addpnfData = addpnfData;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public List<VnfInstanceData> getVnfInstanceData() {
+ return vnfInstanceData;
+ }
+
+ /***
+ *
+ * @param vnfInstanceData
+ */
+ public void setVnfInstanceData(List<VnfInstanceData> vnfInstanceData) {
+ this.vnfInstanceData = vnfInstanceData;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public List<String> getNestedNsInstanceId() {
+ return nestedNsInstanceId;
+ }
+
+ /***
+ *
+ * @param nestedNsInstanceId
+ */
+ public void setNestedNsInstanceId(List<String> nestedNsInstanceId) {
+ this.nestedNsInstanceId = nestedNsInstanceId;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public List<VnfLocationConstraint> getLocalizationLanguage() {
+ return localizationLanguage;
+ }
+
+ /***
+ *
+ * @param localizationLanguage
+ */
+ public void setLocalizationLanguage(List<VnfLocationConstraint> localizationLanguage) {
+ this.localizationLanguage = localizationLanguage;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public Map<String, Object> getAditionalParamsForNs() {
+ return aditionalParamsForNs;
+ }
+
+ /***
+ *
+ * @param aditionalParamsForNs
+ */
+ public void setAditionalParamsForNs(Map<String, Object> aditionalParamsForNs) {
+ this.aditionalParamsForNs = aditionalParamsForNs;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public List<ParamsForVnf> getAdditionalParamsForVnf() {
+ return additionalParamsForVnf;
+ }
+
+ /***
+ *
+ * @param additionalParamsForVnf
+ */
+ public void setAdditionalParamsForVnf(List<ParamsForVnf> additionalParamsForVnf) {
+ this.additionalParamsForVnf = additionalParamsForVnf;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public String getStartTime() {
+ return startTime;
+ }
+
+ /***
+ *
+ * @param startTime
+ */
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public String getNsInstantiationLevelId() {
+ return nsInstantiationLevelId;
+ }
+
+ /***
+ *
+ * @param nsInstantiationLevelId
+ */
+ public void setNsInstantiationLevelId(String nsInstantiationLevelId) {
+ this.nsInstantiationLevelId = nsInstantiationLevelId;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public List<AffinityOrAntiAffinityRule> getAdditionalAffinityOrAntiAffiniityRule() {
+ return additionalAffinityOrAntiAffiniityRule;
+ }
+
+ /***
+ *
+ * @param additionalAffinityOrAntiAffiniityRule
+ */
+ public void setAdditionalAffinityOrAntiAffiniityRule(
+ List<AffinityOrAntiAffinityRule> additionalAffinityOrAntiAffiniityRule) {
+ this.additionalAffinityOrAntiAffiniityRule = additionalAffinityOrAntiAffiniityRule;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/InstantiatedVnfInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/InstantiatedVnfInfo.java
new file mode 100644
index 0000000000..83a8a56756
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/InstantiatedVnfInfo.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+import java.util.Map;
+
+public class InstantiatedVnfInfo {
+ @NotNull
+ private String flavourId;
+ @NotNull
+ private String vnfState;
+ private List<VnfScaleInfo> vnfScaleInfos;
+ @NotNull
+ private List<ExtCpInfo> extCpInfo;
+ private List<ExtVirtualLinkInfo> extVirtualLinkInfo;
+ private List<ExtManagedVirtualLinkInfo> extManagedVirtualLinkInfo;
+ // Defination of MonitoringParameter is not there in ETSI document
+ // considering as String
+ private List<String> monitoringParameters;
+ private String localizationLanguage;
+
+ private List<VnfcResourceInfo> vnfcResourceInfo;
+ // Defination of VirtualStorageResourceInfo is not there in ETSI document
+ // considering as String
+ private List<String> virtualStorageResourceInfo;
+
+ public String getFlavourId() {
+ return flavourId;
+ }
+
+ public void setFlavourId(String flavourId) {
+ this.flavourId = flavourId;
+ }
+
+ public String getVnfState() {
+ return vnfState;
+ }
+
+ public void setVnfState(String vnfState) {
+ this.vnfState = vnfState;
+ }
+
+ public List<VnfScaleInfo> getVnfScaleInfos() {
+ return vnfScaleInfos;
+ }
+
+ public void setVnfScaleInfos(List<VnfScaleInfo> vnfScaleInfos) {
+ this.vnfScaleInfos = vnfScaleInfos;
+ }
+
+ public List<ExtCpInfo> getExtCpInfo() {
+ return extCpInfo;
+ }
+
+ public void setExtCpInfo(List<ExtCpInfo> extCpInfo) {
+ this.extCpInfo = extCpInfo;
+ }
+
+ public List<ExtVirtualLinkInfo> getExtVirtualLinkInfo() {
+ return extVirtualLinkInfo;
+ }
+
+ public void setExtVirtualLinkInfo(List<ExtVirtualLinkInfo> extVirtualLinkInfo) {
+ this.extVirtualLinkInfo = extVirtualLinkInfo;
+ }
+
+ public List<ExtManagedVirtualLinkInfo> getExtManagedVirtualLinkInfo() {
+ return extManagedVirtualLinkInfo;
+ }
+
+ public void setExtManagedVirtualLinkInfo(List<ExtManagedVirtualLinkInfo> extManagedVirtualLinkInfo) {
+ this.extManagedVirtualLinkInfo = extManagedVirtualLinkInfo;
+ }
+
+ public List<String> getMonitoringParameters() {
+ return monitoringParameters;
+ }
+
+ public void setMonitoringParameters(List<String> monitoringParameters) {
+ this.monitoringParameters = monitoringParameters;
+ }
+
+ public String getLocalizationLanguage() {
+ return localizationLanguage;
+ }
+
+ public void setLocalizationLanguage(String localizationLanguage) {
+ this.localizationLanguage = localizationLanguage;
+ }
+
+ public List<VnfcResourceInfo> getVnfcResourceInfo() {
+ return vnfcResourceInfo;
+ }
+
+ public void setVnfcResourceInfo(List<VnfcResourceInfo> vnfcResourceInfo) {
+ this.vnfcResourceInfo = vnfcResourceInfo;
+ }
+
+ public List<String> getVirtualStorageResourceInfo() {
+ return virtualStorageResourceInfo;
+ }
+
+ public void setVirtualStorageResourceInfo(List<String> virtualStorageResourceInfo) {
+ this.virtualStorageResourceInfo = virtualStorageResourceInfo;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/IpAddresses.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/IpAddresses.java
new file mode 100644
index 0000000000..32c5571d96
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/IpAddresses.java
@@ -0,0 +1,63 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+public class IpAddresses {
+ private String type;
+ private List<String> fixedAddresses;
+ private int numDynamicAddresses;
+ private AddressRange addressRange;
+ private String subnetId;
+
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public List<String> getFixedAddresses() {
+ return fixedAddresses;
+ }
+
+ public void setFixedAddresses(List<String> fixedAddresses) {
+ this.fixedAddresses = fixedAddresses;
+ }
+
+ public int getNumDynamicAddresses() {
+ return numDynamicAddresses;
+ }
+
+ public void setNumDynamicAddresses(int numDynamicAddresses) {
+ this.numDynamicAddresses = numDynamicAddresses;
+ }
+
+ public AddressRange getAddressRange() {
+ return addressRange;
+ }
+
+ public void setAddressRange(AddressRange addressRange) {
+ this.addressRange = addressRange;
+ }
+
+ public String getSubnetId() {
+ return subnetId;
+ }
+
+ public void setSubnetId(String subnetId) {
+ this.subnetId = subnetId;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/IpOverEthernetAddressData.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/IpOverEthernetAddressData.java
new file mode 100644
index 0000000000..48529e5f76
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/IpOverEthernetAddressData.java
@@ -0,0 +1,35 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+public class IpOverEthernetAddressData {
+ private String macAddress;
+ private List<IpAddresses> ipAddresses;
+
+ public String getMacAddress() {
+ return macAddress;
+ }
+
+ public void setMacAddress(String macAddress) {
+ this.macAddress = macAddress;
+ }
+
+ public List<IpAddresses> getIpAddresses() {
+ return ipAddresses;
+ }
+
+ public void setIpAddresses(List<IpAddresses> ipAddresses) {
+ this.ipAddresses = ipAddresses;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/Link.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/Link.java
new file mode 100644
index 0000000000..2459346826
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/Link.java
@@ -0,0 +1,24 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class Link {
+ private String href;
+
+ public String getHref() {
+ return href;
+ }
+
+ public void setHref(String href) {
+ this.href = href;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/Links.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/Links.java
new file mode 100644
index 0000000000..8ad8f000c1
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/Links.java
@@ -0,0 +1,78 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class Links {
+ private Link self;
+ private Link nsInstance;
+ private Link cancel;
+ private Link retry;
+ private Link rollback;
+ private Link continues;
+ private Link fail;
+
+ public Link getSelf() {
+ return self;
+ }
+
+ public void setSelf(Link self) {
+ this.self = self;
+ }
+
+ public Link getNsInstance() {
+ return nsInstance;
+ }
+
+ public void setNsInstance(Link nsInstance) {
+ this.nsInstance = nsInstance;
+ }
+
+ public Link getCancel() {
+ return cancel;
+ }
+
+ public void setCancel(Link cancel) {
+ this.cancel = cancel;
+ }
+
+ public Link getRetry() {
+ return retry;
+ }
+
+ public void setRetry(Link retry) {
+ this.retry = retry;
+ }
+
+ public Link getRollback() {
+ return rollback;
+ }
+
+ public void setRollback(Link rollback) {
+ this.rollback = rollback;
+ }
+
+ public Link getContinues() {
+ return continues;
+ }
+
+ public void setContinues(Link continues) {
+ this.continues = continues;
+ }
+
+ public Link getFail() {
+ return fail;
+ }
+
+ public void setFail(Link fail) {
+ this.fail = fail;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/LocationConstraints.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/LocationConstraints.java
new file mode 100644
index 0000000000..b636d49edf
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/LocationConstraints.java
@@ -0,0 +1,33 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class LocationConstraints {
+ private String countryCode;
+ private CivicAddressElement civicAddressElement;
+
+ public String getCountryCode() {
+ return countryCode;
+ }
+
+ public void setCountryCode(String countryCode) {
+ this.countryCode = countryCode;
+ }
+
+ public CivicAddressElement getCivicAddressElement() {
+ return civicAddressElement;
+ }
+
+ public void setCivicAddressElement(CivicAddressElement civicAddressElement) {
+ this.civicAddressElement = civicAddressElement;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/Mask.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/Mask.java
new file mode 100644
index 0000000000..352f47e19f
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/Mask.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+
+public class Mask {
+ @NotNull
+ private int startingPoint;
+ @NotNull
+ private int length;
+ @NotNull
+ private String value;
+
+ public int getStartingPoint() {
+ return startingPoint;
+ }
+
+ public void setStartingPoint(int startingPoint) {
+ this.startingPoint = startingPoint;
+ }
+
+ public int getLength() {
+ return length;
+ }
+
+ public void setLength(int length) {
+ this.length = length;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ModifyVnfInfoData.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ModifyVnfInfoData.java
new file mode 100644
index 0000000000..55ab21e8e2
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ModifyVnfInfoData.java
@@ -0,0 +1,80 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.Map;
+
+public class ModifyVnfInfoData {
+ private String vnfInstanceId;
+ private String vnfInstanceName;
+ private String vnfInstanceDescription;
+ private String vnfPkgId;
+ private Map<String, Object> vnfConfigurableProperties;
+ private Map<String, Object> Metadata;
+ private Map<String, Object> Extensions;
+
+ public String getVnfInstanceId() {
+ return vnfInstanceId;
+ }
+
+ public void setVnfInstanceId(String vnfInstanceId) {
+ this.vnfInstanceId = vnfInstanceId;
+ }
+
+ public String getVnfInstanceName() {
+ return vnfInstanceName;
+ }
+
+ public void setVnfInstanceName(String vnfInstanceName) {
+ this.vnfInstanceName = vnfInstanceName;
+ }
+
+ public String getVnfInstanceDescription() {
+ return vnfInstanceDescription;
+ }
+
+ public void setVnfInstanceDescription(String vnfInstanceDescription) {
+ this.vnfInstanceDescription = vnfInstanceDescription;
+ }
+
+ public String getVnfPkgId() {
+ return vnfPkgId;
+ }
+
+ public void setVnfPkgId(String vnfPkgId) {
+ this.vnfPkgId = vnfPkgId;
+ }
+
+ public Map<String, Object> getVnfConfigurableProperties() {
+ return vnfConfigurableProperties;
+ }
+
+ public void setVnfConfigurableProperties(Map<String, Object> vnfConfigurableProperties) {
+ this.vnfConfigurableProperties = vnfConfigurableProperties;
+ }
+
+ public Map<String, Object> getMetadata() {
+ return Metadata;
+ }
+
+ public void setMetadata(Map<String, Object> metadata) {
+ Metadata = metadata;
+ }
+
+ public Map<String, Object> getExtensions() {
+ return Extensions;
+ }
+
+ public void setExtensions(Map<String, Object> extensions) {
+ Extensions = extensions;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NfpInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NfpInfo.java
new file mode 100644
index 0000000000..a6e3963725
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NfpInfo.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class NfpInfo {
+ @NotNull
+ private String id;
+ private String nfpdId;
+ private String nfpName;
+ private String description;
+ @NotNull
+ private List<NsCpHandle> nscpHandle;
+ private int totalCp;
+ @NotNull
+ private NfpRule nfpRule;
+
+ @NotNull
+ private enum nfpState {
+ ENABLED, DISABLED
+ };
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getNfpdId() {
+ return nfpdId;
+ }
+
+ public void setNfpdId(String nfpdId) {
+ this.nfpdId = nfpdId;
+ }
+
+ public String getNfpName() {
+ return nfpName;
+ }
+
+ public void setNfpName(String nfpName) {
+ this.nfpName = nfpName;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public List<NsCpHandle> getNscpHandle() {
+ return nscpHandle;
+ }
+
+ public void setNscpHandle(List<NsCpHandle> nscpHandle) {
+ this.nscpHandle = nscpHandle;
+ }
+
+ public int getTotalCp() {
+ return totalCp;
+ }
+
+ public void setTotalCp(int totalCp) {
+ this.totalCp = totalCp;
+ }
+
+ public NfpRule getNfpRule() {
+ return nfpRule;
+ }
+
+ public void setNfpRule(NfpRule nfpRule) {
+ this.nfpRule = nfpRule;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NfpRule.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NfpRule.java
new file mode 100644
index 0000000000..b4f684a3e2
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NfpRule.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+public class NfpRule {
+ private String etherDestinationAddress;
+ private String etherSourceAddress;
+
+ private enum etherType {
+ IPV4, IPV6
+ };
+
+ private List<String> vlanTag;
+
+ private enum protocol {
+ TCP, UDP, ICMP
+ }
+
+ private String dscp;
+ private PortRange sourcePortRange;
+ private PortRange destinationPortRange;
+ private String sourceIpAddressPrefix;
+ private String destinationIpAddressPrefix;
+ private List<Mask> extendedCriteria;
+
+ public String getEtherDestinationAddress() {
+ return etherDestinationAddress;
+ }
+
+ public void setEtherDestinationAddress(String etherDestinationAddress) {
+ this.etherDestinationAddress = etherDestinationAddress;
+ }
+
+ public String getEtherSourceAddress() {
+ return etherSourceAddress;
+ }
+
+ public void setEtherSourceAddress(String etherSourceAddress) {
+ this.etherSourceAddress = etherSourceAddress;
+ }
+
+ public List<String> getVlanTag() {
+ return vlanTag;
+ }
+
+ public void setVlanTag(List<String> vlanTag) {
+ this.vlanTag = vlanTag;
+ }
+
+ public String getDscp() {
+ return dscp;
+ }
+
+ public void setDscp(String dscp) {
+ this.dscp = dscp;
+ }
+
+ public PortRange getSourcePortRange() {
+ return sourcePortRange;
+ }
+
+ public void setSourcePortRange(PortRange sourcePortRange) {
+ this.sourcePortRange = sourcePortRange;
+ }
+
+ public PortRange getDestinationPortRange() {
+ return destinationPortRange;
+ }
+
+ public void setDestinationPortRange(PortRange destinationPortRange) {
+ this.destinationPortRange = destinationPortRange;
+ }
+
+ public String getSourceIpAddressPrefix() {
+ return sourceIpAddressPrefix;
+ }
+
+ public void setSourceIpAddressPrefix(String sourceIpAddressPrefix) {
+ this.sourceIpAddressPrefix = sourceIpAddressPrefix;
+ }
+
+ public String getDestinationIpAddressPrefix() {
+ return destinationIpAddressPrefix;
+ }
+
+ public void setDestinationIpAddressPrefix(String destinationIpAddressPrefix) {
+ this.destinationIpAddressPrefix = destinationIpAddressPrefix;
+ }
+
+ public List<Mask> getExtendedCriteria() {
+ return extendedCriteria;
+ }
+
+ public void setExtendedCriteria(List<Mask> extendedCriteria) {
+ this.extendedCriteria = extendedCriteria;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsCpHandle.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsCpHandle.java
new file mode 100644
index 0000000000..326488fb76
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsCpHandle.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class NsCpHandle {
+ private String vnfInstanceId;
+ private String vnfExtCpInstanceId;
+ private String pnfInfoId;
+ private String pnfExtCpInstanceId;
+ private String nsInstanceId;
+ private String nsSapInstanceId;
+
+ public String getVnfInstanceId() {
+ return vnfInstanceId;
+ }
+
+ public void setVnfInstanceId(String vnfInstanceId) {
+ this.vnfInstanceId = vnfInstanceId;
+ }
+
+ public String getVnfExtCpInstanceId() {
+ return vnfExtCpInstanceId;
+ }
+
+ public void setVnfExtCpInstanceId(String vnfExtCpInstanceId) {
+ this.vnfExtCpInstanceId = vnfExtCpInstanceId;
+ }
+
+ public String getPnfInfoId() {
+ return pnfInfoId;
+ }
+
+ public void setPnfInfoId(String pnfInfoId) {
+ this.pnfInfoId = pnfInfoId;
+ }
+
+ public String getPnfExtCpInstanceId() {
+ return pnfExtCpInstanceId;
+ }
+
+ public void setPnfExtCpInstanceId(String pnfExtCpInstanceId) {
+ this.pnfExtCpInstanceId = pnfExtCpInstanceId;
+ }
+
+ public String getNsInstanceId() {
+ return nsInstanceId;
+ }
+
+ public void setNsInstanceId(String nsInstanceId) {
+ this.nsInstanceId = nsInstanceId;
+ }
+
+ public String getNsSapInstanceId() {
+ return nsSapInstanceId;
+ }
+
+ public void setNsSapInstanceId(String nsSapInstanceId) {
+ this.nsSapInstanceId = nsSapInstanceId;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsInstance.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsInstance.java
new file mode 100644
index 0000000000..d2d4b4e772
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsInstance.java
@@ -0,0 +1,166 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class NsInstance {
+ @NotNull
+ private String id;
+ @NotNull
+ private String nsInstanceName;
+ @NotNull
+ private String nsInstanceDescription;
+ @NotNull
+ private String nsdId;
+ @NotNull
+ private String nsdInfoId;
+ private String flavourId;
+ private List<VnfInstance> vnfInstance;
+ private List<PnfInfo> pnfInfo;
+ private List<NsVirtualLinkInfo> virtualLinkInfo;
+ private List<VnffgInfo> vnffgInfo;
+ private List<SapInfo> sapInfo;
+ private List<String> nestedNsInstanceId;
+
+ @NotNull
+ private enum nsState {
+ NOT_INSTANTIATED, INSTANTIATED
+ };
+
+ private List<NsScaleInfo> nsScaleStatus;
+ private List<AffinityOrAntiAffinityRule> additionalAffinityOrAntiAffinityRule;
+ @NotNull
+ private NsInstanceLinks _links;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getNsInstanceName() {
+ return nsInstanceName;
+ }
+
+ public void setNsInstanceName(String nsInstanceName) {
+ this.nsInstanceName = nsInstanceName;
+ }
+
+ public String getNsInstanceDescription() {
+ return nsInstanceDescription;
+ }
+
+ public void setNsInstanceDescription(String nsInstanceDescription) {
+ this.nsInstanceDescription = nsInstanceDescription;
+ }
+
+ public String getNsdId() {
+ return nsdId;
+ }
+
+ public void setNsdId(String nsdId) {
+ this.nsdId = nsdId;
+ }
+
+ public String getNsdInfoId() {
+ return nsdInfoId;
+ }
+
+ public void setNsdInfoId(String nsdInfoId) {
+ this.nsdInfoId = nsdInfoId;
+ }
+
+ public String getFlavourId() {
+ return flavourId;
+ }
+
+ public void setFlavourId(String flavourId) {
+ this.flavourId = flavourId;
+ }
+
+ public List<VnfInstance> getVnfInstance() {
+ return vnfInstance;
+ }
+
+ public void setVnfInstance(List<VnfInstance> vnfInstance) {
+ this.vnfInstance = vnfInstance;
+ }
+
+ public List<PnfInfo> getPnfInfo() {
+ return pnfInfo;
+ }
+
+ public void setPnfInfo(List<PnfInfo> pnfInfo) {
+ this.pnfInfo = pnfInfo;
+ }
+
+ public List<NsVirtualLinkInfo> getVirtualLinkInfo() {
+ return virtualLinkInfo;
+ }
+
+ public void setVirtualLinkInfo(List<NsVirtualLinkInfo> virtualLinkInfo) {
+ this.virtualLinkInfo = virtualLinkInfo;
+ }
+
+ public List<VnffgInfo> getVnffgInfo() {
+ return vnffgInfo;
+ }
+
+ public void setVnffgInfo(List<VnffgInfo> vnffgInfo) {
+ this.vnffgInfo = vnffgInfo;
+ }
+
+ public List<SapInfo> getSapInfo() {
+ return sapInfo;
+ }
+
+ public void setSapInfo(List<SapInfo> sapInfo) {
+ this.sapInfo = sapInfo;
+ }
+
+ public List<String> getNestedNsInstanceId() {
+ return nestedNsInstanceId;
+ }
+
+ public void setNestedNsInstanceId(List<String> nestedNsInstanceId) {
+ this.nestedNsInstanceId = nestedNsInstanceId;
+ }
+
+ public List<NsScaleInfo> getNsScaleStatus() {
+ return nsScaleStatus;
+ }
+
+ public void setNsScaleStatus(List<NsScaleInfo> nsScaleStatus) {
+ this.nsScaleStatus = nsScaleStatus;
+ }
+
+ public List<AffinityOrAntiAffinityRule> getAdditionalAffinityOrAntiAffinityRule() {
+ return additionalAffinityOrAntiAffinityRule;
+ }
+
+ public void setAdditionalAffinityOrAntiAffinityRule(
+ List<AffinityOrAntiAffinityRule> additionalAffinityOrAntiAffinityRule) {
+ this.additionalAffinityOrAntiAffinityRule = additionalAffinityOrAntiAffinityRule;
+ }
+
+ public NsInstanceLinks get_links() {
+ return _links;
+ }
+
+ public void set_links(NsInstanceLinks _links) {
+ this._links = _links;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsInstanceLinks.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsInstanceLinks.java
new file mode 100644
index 0000000000..08b3c63c08
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsInstanceLinks.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class NsInstanceLinks {
+ @NotNull
+ private Link self;
+ private List<Link> nestedNsInstances;
+ private Link instantiate;
+ private Link terminate;
+ private Link update;
+ private Link scale;
+ private Link heal;
+
+ public Link getSelf() {
+ return self;
+ }
+
+ public void setSelf(Link self) {
+ this.self = self;
+ }
+
+ public List<Link> getNestedNsInstances() {
+ return nestedNsInstances;
+ }
+
+ public void setNestedNsInstances(List<Link> nestedNsInstances) {
+ this.nestedNsInstances = nestedNsInstances;
+ }
+
+ public Link getInstantiate() {
+ return instantiate;
+ }
+
+ public void setInstantiate(Link instantiate) {
+ this.instantiate = instantiate;
+ }
+
+ public Link getTerminate() {
+ return terminate;
+ }
+
+ public void setTerminate(Link terminate) {
+ this.terminate = terminate;
+ }
+
+ public Link getUpdate() {
+ return update;
+ }
+
+ public void setUpdate(Link update) {
+ this.update = update;
+ }
+
+ public Link getScale() {
+ return scale;
+ }
+
+ public void setScale(Link scale) {
+ this.scale = scale;
+ }
+
+ public Link getHeal() {
+ return heal;
+ }
+
+ public void setHeal(Link heal) {
+ this.heal = heal;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsLcmOpOcc.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsLcmOpOcc.java
new file mode 100644
index 0000000000..559b1f7ba7
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsLcmOpOcc.java
@@ -0,0 +1,125 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.onap.so.adapters.vfc.constant.CommonConstant;
+
+public class NsLcmOpOcc {
+ private String id;
+ private CommonConstant.operationState operationState;
+ private String statusEnteredTime;
+ private String nsInstanceId;
+ private CommonConstant.lcmOperationType lcmOperationType;
+ private String startTime;
+ private Boolean isAutomaticInvocation;
+ private String operationParams;
+ private Boolean isCancelPending;
+ private CommonConstant.cancelMode cancelMode;
+ private ProblemDetails error;
+ private Links links;
+
+ public CommonConstant.lcmOperationType getLcmOperationType() {
+ return lcmOperationType;
+ }
+
+ public void setLcmOperationType(CommonConstant.lcmOperationType lcmOperationType) {
+ this.lcmOperationType = lcmOperationType;
+ }
+
+ public CommonConstant.cancelMode getCancelMode() {
+ return cancelMode;
+ }
+
+ public void setCancelMode(CommonConstant.cancelMode cancelMode) {
+ this.cancelMode = cancelMode;
+ }
+
+ public CommonConstant.operationState getOperationState() {
+ return operationState;
+ }
+
+ public void setOperationState(CommonConstant.operationState operationState) {
+ this.operationState = operationState;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getStatusEnteredTime() {
+ return statusEnteredTime;
+ }
+
+ public void setStatusEnteredTime(String statusEnteredTime) {
+ this.statusEnteredTime = statusEnteredTime;
+ }
+
+ public String getNsInstanceId() {
+ return nsInstanceId;
+ }
+
+ public void setNsInstanceId(String nsInstanceId) {
+ this.nsInstanceId = nsInstanceId;
+ }
+
+ public String getStartTime() {
+ return startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public Boolean getAutomaticInvocation() {
+ return isAutomaticInvocation;
+ }
+
+ public void setAutomaticInvocation(Boolean automaticInvocation) {
+ isAutomaticInvocation = automaticInvocation;
+ }
+
+ public String getOperationParams() {
+ return operationParams;
+ }
+
+ public void setOperationParams(String operationParams) {
+ this.operationParams = operationParams;
+ }
+
+ public Boolean getCancelPending() {
+ return isCancelPending;
+ }
+
+ public void setCancelPending(Boolean cancelPending) {
+ isCancelPending = cancelPending;
+ }
+
+ public ProblemDetails getError() {
+ return error;
+ }
+
+ public void setError(ProblemDetails error) {
+ this.error = error;
+ }
+
+ public Links getLinks() {
+ return links;
+ }
+
+ public void setLinks(Links links) {
+ this.links = links;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsLinkPortInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsLinkPortInfo.java
new file mode 100644
index 0000000000..20c8972c98
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsLinkPortInfo.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class NsLinkPortInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private ResourceHandle resourceHandle;
+ private NsCpHandle nsCpHandle;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public ResourceHandle getResourceHandle() {
+ return resourceHandle;
+ }
+
+ public void setResourceHandle(ResourceHandle resourceHandle) {
+ this.resourceHandle = resourceHandle;
+ }
+
+ public NsCpHandle getNsCpHandle() {
+ return nsCpHandle;
+ }
+
+ public void setNsCpHandle(NsCpHandle nsCpHandle) {
+ this.nsCpHandle = nsCpHandle;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsScaleInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsScaleInfo.java
new file mode 100644
index 0000000000..59acf564c2
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsScaleInfo.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+
+public class NsScaleInfo {
+ @NotNull
+ private String nsScalingAspectId;
+ @NotNull
+ private String nsScaleLevelId;
+
+ public String getNsScalingAspectId() {
+ return nsScalingAspectId;
+ }
+
+ public void setNsScalingAspectId(String nsScalingAspectId) {
+ this.nsScalingAspectId = nsScalingAspectId;
+ }
+
+ public String getNsScaleLevelId() {
+ return nsScaleLevelId;
+ }
+
+ public void setNsScaleLevelId(String nsScaleLevelId) {
+ this.nsScaleLevelId = nsScaleLevelId;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsVirtualLinkInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsVirtualLinkInfo.java
new file mode 100644
index 0000000000..ed2debd2e6
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/NsVirtualLinkInfo.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class NsVirtualLinkInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private String nsVirtualLinkDescId;
+ @NotNull
+ private List<ResourceHandle> resourceHandle;
+ private List<NsLinkPortInfo> linkPort;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getNsVirtualLinkDescId() {
+ return nsVirtualLinkDescId;
+ }
+
+ public void setNsVirtualLinkDescId(String nsVirtualLinkDescId) {
+ this.nsVirtualLinkDescId = nsVirtualLinkDescId;
+ }
+
+ public List<ResourceHandle> getResourceHandle() {
+ return resourceHandle;
+ }
+
+ public void setResourceHandle(List<ResourceHandle> resourceHandle) {
+ this.resourceHandle = resourceHandle;
+ }
+
+ public List<NsLinkPortInfo> getLinkPort() {
+ return linkPort;
+ }
+
+ public void setLinkPort(List<NsLinkPortInfo> linkPort) {
+ this.linkPort = linkPort;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ParamsForVnf.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ParamsForVnf.java
new file mode 100644
index 0000000000..b7324e50fe
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ParamsForVnf.java
@@ -0,0 +1,35 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.Map;
+
+public class ParamsForVnf {
+ private String vnfProfileId;
+ private Map<String, Object> additionalParams;
+
+ public String getVnfProfileId() {
+ return vnfProfileId;
+ }
+
+ public void setVnfProfileId(String vnfProfileId) {
+ this.vnfProfileId = vnfProfileId;
+ }
+
+ public Map<String, Object> getAdditionalParams() {
+ return additionalParams;
+ }
+
+ public void setAdditionalParams(Map<String, Object> additionalParams) {
+ this.additionalParams = additionalParams;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/PnfExtCpData.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/PnfExtCpData.java
new file mode 100644
index 0000000000..d5d091fcb1
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/PnfExtCpData.java
@@ -0,0 +1,44 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+public class PnfExtCpData {
+ private String cpInstanceI16;
+ private String cpdId;
+ private List<CpProtocolData> cpProtocolData;
+
+ public String getCpInstanceI16() {
+ return cpInstanceI16;
+ }
+
+ public void setCpInstanceI16(String cpInstanceI16) {
+ this.cpInstanceI16 = cpInstanceI16;
+ }
+
+ public String getCpdId() {
+ return cpdId;
+ }
+
+ public void setCpdId(String cpdId) {
+ this.cpdId = cpdId;
+ }
+
+ public List<CpProtocolData> getCpProtocolData() {
+ return cpProtocolData;
+ }
+
+ public void setCpProtocolData(List<CpProtocolData> cpProtocolData) {
+ this.cpProtocolData = cpProtocolData;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/PnfExtCpInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/PnfExtCpInfo.java
new file mode 100644
index 0000000000..402cb83147
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/PnfExtCpInfo.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class PnfExtCpInfo {
+ @NotNull
+ private String cpInstanceId;
+ @NotNull
+ private String cpdId;
+ @NotNull
+ private List<CpProtocolData> cpProtocolData;
+
+ public String getCpInstanceI16() {
+ return cpInstanceId;
+ }
+
+ public void setCpInstanceI16(String cpInstanceI16) {
+ this.cpInstanceId = cpInstanceI16;
+ }
+
+ public String getCpdId() {
+ return cpdId;
+ }
+
+ public void setCpdId(String cpdId) {
+ this.cpdId = cpdId;
+ }
+
+ public List<CpProtocolData> getCpProtocolData() {
+ return cpProtocolData;
+ }
+
+ public void setCpProtocolData(List<CpProtocolData> cpProtocolData) {
+ this.cpProtocolData = cpProtocolData;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/PnfInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/PnfInfo.java
new file mode 100644
index 0000000000..a1cc11bd0c
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/PnfInfo.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class PnfInfo {
+
+ @NotNull
+ private String pnfId;
+ @NotNull
+ private String pnfName;
+ @NotNull
+ private String pnfdId;
+ @NotNull
+ private String pnfdInfoId;
+ @NotNull
+ private String pnfProfileId;
+ private List<PnfExtCpData> cpData;
+
+ /***
+ *
+ * @return id of pnf
+ */
+ public String getPnfId() {
+ return pnfId;
+ }
+
+ public void setPnfId(String pnfId) {
+ this.pnfId = pnfId;
+ }
+
+ public String getPnfName() {
+ return pnfName;
+ }
+
+ public void setPnfName(String pnfName) {
+ this.pnfName = pnfName;
+ }
+
+ public String getPnfdId() {
+ return pnfdId;
+ }
+
+ public void setPnfdId(String pnfdId) {
+ this.pnfdId = pnfdId;
+ }
+
+ public String getPnfProfileId() {
+ return pnfProfileId;
+ }
+
+ public void setPnfProfileId(String pnfProfileId) {
+ this.pnfProfileId = pnfProfileId;
+ }
+
+ public List<PnfExtCpData> getCpData() {
+ return cpData;
+ }
+
+ public void setCpData(List<PnfExtCpData> cpData) {
+ this.cpData = cpData;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/PortRange.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/PortRange.java
new file mode 100644
index 0000000000..8318a8ccff
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/PortRange.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+
+public class PortRange {
+ @NotNull
+ private int lowerPort;
+ @NotNull
+ private int upperPort;
+
+ public int getLowerPort() {
+ return lowerPort;
+ }
+
+ public void setLowerPort(int lowerPort) {
+ this.lowerPort = lowerPort;
+ }
+
+ public int getUpperPort() {
+ return upperPort;
+ }
+
+ public void setUpperPort(int upperPort) {
+ this.upperPort = upperPort;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ProblemDetails.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ProblemDetails.java
new file mode 100644
index 0000000000..efaa5de7a8
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ProblemDetails.java
@@ -0,0 +1,62 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class ProblemDetails {
+ private String type;
+ private String title;
+ private int status;
+ private String detail;
+ private String instance;
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public int getStatus() {
+ return status;
+ }
+
+ public void setStatus(int status) {
+ this.status = status;
+ }
+
+ public String getDetail() {
+ return detail;
+ }
+
+ public void setDetail(String detail) {
+ this.detail = detail;
+ }
+
+ public String getInstance() {
+ return instance;
+ }
+
+ public void setInstance(String instance) {
+ this.instance = instance;
+ }
+
+
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ResourceChanges.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ResourceChanges.java
new file mode 100644
index 0000000000..062a6aa32a
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ResourceChanges.java
@@ -0,0 +1,71 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+public class ResourceChanges {
+ private List<AffectedVnf> affectedVnfs;
+ private List<AffectedPnf> affectedPnfs;
+ private List<AffectedVirtualLink> affectedVls;
+ private List<AffectedVnffg> affectedVnffgs;
+ private List<AffectedNs> affectedNss;
+ private List<AffectedSap> affectedSaps;
+
+ public List<AffectedVnf> getAffectedVnfs() {
+ return affectedVnfs;
+ }
+
+ public void setAffectedVnfs(List<AffectedVnf> affectedVnfs) {
+ this.affectedVnfs = affectedVnfs;
+ }
+
+ public List<AffectedPnf> getAffectedPnfs() {
+ return affectedPnfs;
+ }
+
+ public void setAffectedPnfs(List<AffectedPnf> affectedPnfs) {
+ this.affectedPnfs = affectedPnfs;
+ }
+
+ public List<AffectedVirtualLink> getAffectedVls() {
+ return affectedVls;
+ }
+
+ public void setAffectedVls(List<AffectedVirtualLink> affectedVls) {
+ this.affectedVls = affectedVls;
+ }
+
+ public List<AffectedVnffg> getAffectedVnffgs() {
+ return affectedVnffgs;
+ }
+
+ public void setAffectedVnffgs(List<AffectedVnffg> affectedVnffgs) {
+ this.affectedVnffgs = affectedVnffgs;
+ }
+
+ public List<AffectedNs> getAffectedNss() {
+ return affectedNss;
+ }
+
+ public void setAffectedNss(List<AffectedNs> affectedNss) {
+ this.affectedNss = affectedNss;
+ }
+
+ public List<AffectedSap> getAffectedSaps() {
+ return affectedSaps;
+ }
+
+ public void setAffectedSaps(List<AffectedSap> affectedSaps) {
+ this.affectedSaps = affectedSaps;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ResourceHandle.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ResourceHandle.java
new file mode 100644
index 0000000000..fbfecaa007
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/ResourceHandle.java
@@ -0,0 +1,51 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class ResourceHandle {
+ private String vimId;
+ private String resourceProviderId;
+ private String resourceId;
+ private String vimLevelResourceType;
+
+ public String getVimId() {
+ return vimId;
+ }
+
+ public void setVimId(String vimId) {
+ this.vimId = vimId;
+ }
+
+ public String getResourceProviderId() {
+ return resourceProviderId;
+ }
+
+ public void setResourceProviderId(String resourceProviderId) {
+ this.resourceProviderId = resourceProviderId;
+ }
+
+ public String getResourceId() {
+ return resourceId;
+ }
+
+ public void setResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ }
+
+ public String getVimLevelResourceType() {
+ return vimLevelResourceType;
+ }
+
+ public void setVimLevelResourceType(String vimLevelResourceType) {
+ this.vimLevelResourceType = vimLevelResourceType;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/SapData.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/SapData.java
new file mode 100644
index 0000000000..d8e96e22f5
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/SapData.java
@@ -0,0 +1,56 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+public class SapData {
+ private String sapdId;
+ private String sapName;
+ private String description;
+ private List<CpProtocolData> sapProtocolData;
+
+ public String getSapdId() {
+ return sapdId;
+ }
+
+ public void setSapdId(String sapdId) {
+ this.sapdId = sapdId;
+ }
+
+ public String getSapName() {
+ return sapName;
+ }
+
+ public void setSapName(String sapName) {
+ this.sapName = sapName;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public List<CpProtocolData> getSapProtocolData() {
+ return sapProtocolData;
+ }
+
+ public void setSapProtocolData(List<CpProtocolData> sapProtocolData) {
+ this.sapProtocolData = sapProtocolData;
+ }
+
+
+
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/SapInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/SapInfo.java
new file mode 100644
index 0000000000..182aceb127
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/SapInfo.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class SapInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private String sapdId;
+ @NotNull
+ private String sapName;
+ @NotNull
+ private String description;
+ @NotNull
+ private List<CpProtocolInfo> sapProtocolInfo;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getSapdId() {
+ return sapdId;
+ }
+
+ public void setSapdId(String sapdId) {
+ this.sapdId = sapdId;
+ }
+
+ public String getSapName() {
+ return sapName;
+ }
+
+ public void setSapName(String sapName) {
+ this.sapName = sapName;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public List<CpProtocolInfo> getSapProtocolInfo() {
+ return sapProtocolInfo;
+ }
+
+ public void setSapProtocolInfo(List<CpProtocolInfo> sapProtocolInfo) {
+ this.sapProtocolInfo = sapProtocolInfo;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfInstance.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfInstance.java
new file mode 100644
index 0000000000..ccd6532ee0
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfInstance.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.Map;
+
+public class VnfInstance {
+ @NotNull
+ private String id;
+ private String vnfInstanceName;
+ private String vnfInstanceDescription;
+ @NotNull
+ private String vnfdId;
+ @NotNull
+ private String vnfProvider;
+ @NotNull
+ private String vnfProductName;
+ @NotNull
+ private String vnfSoftwareVersion;
+ @NotNull
+ private String vnfdVersion;
+ @NotNull
+ private String vnfPkgId;
+ private Map<String, Object> vnfConfigurableProperties;
+ private String vimId;
+
+ private enum instantiationState {
+ NOT_INSTANTIATED, INSTANTIATED
+ };
+
+ private InstantiatedVnfInfo instantiatedVnfInfo;
+ private Map<String, Object> metadata;
+ private Map<String, Object> extensions;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getVnfInstanceName() {
+ return vnfInstanceName;
+ }
+
+ public void setVnfInstanceName(String vnfInstanceName) {
+ this.vnfInstanceName = vnfInstanceName;
+ }
+
+ public String getVnfInstanceDescription() {
+ return vnfInstanceDescription;
+ }
+
+ public void setVnfInstanceDescription(String vnfInstanceDescription) {
+ this.vnfInstanceDescription = vnfInstanceDescription;
+ }
+
+ public String getVnfdId() {
+ return vnfdId;
+ }
+
+ public void setVnfdId(String vnfdId) {
+ this.vnfdId = vnfdId;
+ }
+
+ public String getVnfProvider() {
+ return vnfProvider;
+ }
+
+ public void setVnfProvider(String vnfProvider) {
+ this.vnfProvider = vnfProvider;
+ }
+
+ public String getVnfProductName() {
+ return vnfProductName;
+ }
+
+ public void setVnfProductName(String vnfProductName) {
+ this.vnfProductName = vnfProductName;
+ }
+
+ public String getVnfSoftwareVersion() {
+ return vnfSoftwareVersion;
+ }
+
+ public void setVnfSoftwareVersion(String vnfSoftwareVersion) {
+ this.vnfSoftwareVersion = vnfSoftwareVersion;
+ }
+
+ public String getVnfdVersion() {
+ return vnfdVersion;
+ }
+
+ public void setVnfdVersion(String vnfdVersion) {
+ this.vnfdVersion = vnfdVersion;
+ }
+
+ public String getVnfPkgId() {
+ return vnfPkgId;
+ }
+
+ public void setVnfPkgId(String vnfPkgId) {
+ this.vnfPkgId = vnfPkgId;
+ }
+
+ public Map<String, Object> getVnfConfigurableProperties() {
+ return vnfConfigurableProperties;
+ }
+
+ public void setVnfConfigurableProperties(Map<String, Object> vnfConfigurableProperties) {
+ this.vnfConfigurableProperties = vnfConfigurableProperties;
+ }
+
+ public String getVimId() {
+ return vimId;
+ }
+
+ public void setVimId(String vimId) {
+ this.vimId = vimId;
+ }
+
+ public InstantiatedVnfInfo getInstantiatedVnfInfo() {
+ return instantiatedVnfInfo;
+ }
+
+ public void setInstantiatedVnfInfo(InstantiatedVnfInfo instantiatedVnfInfo) {
+ this.instantiatedVnfInfo = instantiatedVnfInfo;
+ }
+
+ public Map<String, Object> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, Object> metadata) {
+ this.metadata = metadata;
+ }
+
+ public Map<String, Object> getExtensions() {
+ return extensions;
+ }
+
+ public void setExtensions(Map<String, Object> extensions) {
+ this.extensions = extensions;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfInstanceData.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfInstanceData.java
new file mode 100644
index 0000000000..83345fcb4c
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfInstanceData.java
@@ -0,0 +1,33 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class VnfInstanceData {
+ private String vnfInstanceId;
+ private String vnfProfileId;
+
+ public String getVnfInstanceId() {
+ return vnfInstanceId;
+ }
+
+ public void setVnfInstanceId(String vnfInstanceId) {
+ this.vnfInstanceId = vnfInstanceId;
+ }
+
+ public String getVnfProfileId() {
+ return vnfProfileId;
+ }
+
+ public void setVnfProfileId(String vnfProfileId) {
+ this.vnfProfileId = vnfProfileId;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfLinkPortInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfLinkPortInfo.java
new file mode 100644
index 0000000000..0b09d066fa
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfLinkPortInfo.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+
+public class VnfLinkPortInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private ResourceHandle resourceHandle;
+ private String cpInstanceId;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public ResourceHandle getResourceHandle() {
+ return resourceHandle;
+ }
+
+ public void setResourceHandle(ResourceHandle resourceHandle) {
+ this.resourceHandle = resourceHandle;
+ }
+
+ public String getCpInstanceId() {
+ return cpInstanceId;
+ }
+
+ public void setCpInstanceId(String cpInstanceId) {
+ this.cpInstanceId = cpInstanceId;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfLocationConstraint.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfLocationConstraint.java
new file mode 100644
index 0000000000..5db3060b88
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfLocationConstraint.java
@@ -0,0 +1,33 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class VnfLocationConstraint {
+ private String vnfProfileId;
+ private LocationConstraint locationConstraints;
+
+ public String getVnfProfileId() {
+ return vnfProfileId;
+ }
+
+ public void setVnfProfileId(String vnfProfileId) {
+ this.vnfProfileId = vnfProfileId;
+ }
+
+ public LocationConstraint getLocationConstraints() {
+ return locationConstraints;
+ }
+
+ public void setLocationConstraints(LocationConstraint locationConstraints) {
+ this.locationConstraints = locationConstraints;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfScaleInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfScaleInfo.java
new file mode 100644
index 0000000000..e702edc821
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfScaleInfo.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+
+public class VnfScaleInfo {
+ @NotNull
+ private String aspectlId;
+ @NotNull
+ private int scaleLevel;
+
+ public String getAspectlId() {
+ return aspectlId;
+ }
+
+ public void setAspectlId(String aspectlId) {
+ this.aspectlId = aspectlId;
+ }
+
+ public int getScaleLevel() {
+ return scaleLevel;
+ }
+
+ public void setScaleLevel(int scaleLevel) {
+ this.scaleLevel = scaleLevel;
+ }
+
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfVirtualLinkResourceInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfVirtualLinkResourceInfo.java
new file mode 100644
index 0000000000..9f41a383fc
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfVirtualLinkResourceInfo.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+import java.util.Map;
+
+public class VnfVirtualLinkResourceInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private String virtualLinkDescId;
+ @NotNull
+ private ResourceHandle networkResource;
+ private String reservationId;
+ private List<VnfLinkPortInfo> vnfLinkPorts;
+ Map<String, Object> metadata;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getVirtualLinkDescId() {
+ return virtualLinkDescId;
+ }
+
+ public void setVirtualLinkDescId(String virtualLinkDescId) {
+ this.virtualLinkDescId = virtualLinkDescId;
+ }
+
+ public ResourceHandle getNetworkResource() {
+ return networkResource;
+ }
+
+ public void setNetworkResource(ResourceHandle networkResource) {
+ this.networkResource = networkResource;
+ }
+
+ public String getReservationId() {
+ return reservationId;
+ }
+
+ public void setReservationId(String reservationId) {
+ this.reservationId = reservationId;
+ }
+
+ public List<VnfLinkPortInfo> getVnfLinkPorts() {
+ return vnfLinkPorts;
+ }
+
+ public void setVnfLinkPorts(List<VnfLinkPortInfo> vnfLinkPorts) {
+ this.vnfLinkPorts = vnfLinkPorts;
+ }
+
+ public Map<String, Object> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, Object> metadata) {
+ this.metadata = metadata;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfcCpInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfcCpInfo.java
new file mode 100644
index 0000000000..ec629effd2
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfcCpInfo.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class VnfcCpInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private String cpdId;
+ private String vnfExtCpId;
+ private List<CpProtocolInfo> cpProtocolInfo;
+ private String vnfLinkPortId;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getCpdId() {
+ return cpdId;
+ }
+
+ public void setCpdId(String cpdId) {
+ this.cpdId = cpdId;
+ }
+
+ public String getVnfExtCpId() {
+ return vnfExtCpId;
+ }
+
+ public void setVnfExtCpId(String vnfExtCpId) {
+ this.vnfExtCpId = vnfExtCpId;
+ }
+
+ public List<CpProtocolInfo> getCpProtocolInfo() {
+ return cpProtocolInfo;
+ }
+
+ public void setCpProtocolInfo(List<CpProtocolInfo> cpProtocolInfo) {
+ this.cpProtocolInfo = cpProtocolInfo;
+ }
+
+ public String getVnfLinkPortId() {
+ return vnfLinkPortId;
+ }
+
+ public void setVnfLinkPortId(String vnfLinkPortId) {
+ this.vnfLinkPortId = vnfLinkPortId;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfcResourceInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfcResourceInfo.java
new file mode 100644
index 0000000000..1f7aa67b8d
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnfcResourceInfo.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+import java.util.Map;
+
+public class VnfcResourceInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private String vduId;
+ @NotNull
+ private ResourceHandle computeResource;
+ private List<String> storageResourceIds;
+ private String reservationId;
+ private List<VnfcCpInfo> vnfcCpInfo;
+ private Map<String, Object> metadata;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getVduId() {
+ return vduId;
+ }
+
+ public void setVduId(String vduId) {
+ this.vduId = vduId;
+ }
+
+ public ResourceHandle getComputeResource() {
+ return computeResource;
+ }
+
+ public void setComputeResource(ResourceHandle computeResource) {
+ this.computeResource = computeResource;
+ }
+
+ public List<String> getStorageResourceIds() {
+ return storageResourceIds;
+ }
+
+ public void setStorageResourceIds(List<String> storageResourceIds) {
+ this.storageResourceIds = storageResourceIds;
+ }
+
+ public String getReservationId() {
+ return reservationId;
+ }
+
+ public void setReservationId(String reservationId) {
+ this.reservationId = reservationId;
+ }
+
+ public List<VnfcCpInfo> getVnfcCpInfo() {
+ return vnfcCpInfo;
+ }
+
+ public void setVnfcCpInfo(List<VnfcCpInfo> vnfcCpInfo) {
+ this.vnfcCpInfo = vnfcCpInfo;
+ }
+
+ public Map<String, Object> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, Object> metadata) {
+ this.metadata = metadata;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnffgInfo.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnffgInfo.java
new file mode 100644
index 0000000000..c02d5177db
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/model/VnffgInfo.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class VnffgInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private String vnffgdId;
+ @NotNull
+ private List<String> vnfInstanceId;
+ private String pnfInfoId;
+ @NotNull
+ private List<String> nsVirtualLinkInfoId;
+ @NotNull
+ private List<NsCpHandle> nsCpHandle;
+ @NotNull
+ private List<NfpInfo> nfpInfo;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getVnffgdId() {
+ return vnffgdId;
+ }
+
+ public void setVnffgdId(String vnffgdId) {
+ this.vnffgdId = vnffgdId;
+ }
+
+ public List<String> getVnfInstanceId() {
+ return vnfInstanceId;
+ }
+
+ public void setVnfInstanceId(List<String> vnfInstanceId) {
+ this.vnfInstanceId = vnfInstanceId;
+ }
+
+ public String getPnfInfoId() {
+ return pnfInfoId;
+ }
+
+ public void setPnfInfoId(String pnfInfoId) {
+ this.pnfInfoId = pnfInfoId;
+ }
+
+ public List<String> getNsVirtualLinkInfoId() {
+ return nsVirtualLinkInfoId;
+ }
+
+ public void setNsVirtualLinkInfoId(List<String> nsVirtualLinkInfoId) {
+ this.nsVirtualLinkInfoId = nsVirtualLinkInfoId;
+ }
+
+ public List<NsCpHandle> getNsCpHandle() {
+ return nsCpHandle;
+ }
+
+ public void setNsCpHandle(List<NsCpHandle> nsCpHandle) {
+ this.nsCpHandle = nsCpHandle;
+ }
+
+ public List<NfpInfo> getNfpInfo() {
+ return nfpInfo;
+ }
+
+ public void setNfpInfo(List<NfpInfo> nfpInfo) {
+ this.nfpInfo = nfpInfo;
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/rest/VfcAdapterRest.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/rest/VfcAdapterRest.java
index bb9ae69f51..5a89c04a5a 100644
--- a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/rest/VfcAdapterRest.java
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/rest/VfcAdapterRest.java
@@ -37,6 +37,8 @@ import org.onap.so.adapters.vfc.model.NsOperationKey;
import org.onap.so.adapters.vfc.model.RestfulResponse;
import org.onap.so.adapters.vfc.util.JsonUtil;
import org.onap.so.adapters.vfc.util.ValidateUtil;
+import org.onap.so.db.request.beans.InstanceNfvoMapping;
+import org.onap.so.db.request.data.repository.InstanceNfvoMappingRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -58,7 +60,12 @@ public class VfcAdapterRest {
private static final String REQUEST_DEBUG_MSG = "body from request is {}";
private static final String APPLICATION_EXCEPTION = "ApplicationException: ";
@Autowired
+ private VfcManagerSol005 vfcManagerSol005;
+
+ @Autowired
private VfcManager driverMgr;
+ @Autowired
+ private InstanceNfvoMappingRepository instanceNfvoMappingRepository;
public VfcAdapterRest() {
@@ -80,7 +87,13 @@ public class VfcAdapterRest {
ValidateUtil.assertObjectNotNull(data);
logger.debug(REQUEST_DEBUG_MSG + data);
NSResourceInputParameter nsInput = JsonUtil.unMarshal(data, NSResourceInputParameter.class);
- RestfulResponse rsp = driverMgr.createNs(nsInput);
+ RestfulResponse rsp;
+ if (nsInput.getNsParameters().getAdditionalParamForNs().containsKey("isSol005Interface")) {
+ rsp = vfcManagerSol005.createNs(nsInput);
+ } else {
+ rsp = driverMgr.createNs(nsInput);
+ }
+
return buildResponse(rsp);
} catch (ApplicationException e) {
logger.debug(APPLICATION_EXCEPTION, e);
@@ -106,7 +119,13 @@ public class VfcAdapterRest {
ValidateUtil.assertObjectNotNull(data);
logger.debug(REQUEST_DEBUG_MSG + data);
NsOperationKey nsOperationKey = JsonUtil.unMarshal(data, NsOperationKey.class);
- RestfulResponse rsp = driverMgr.deleteNs(nsOperationKey, nsInstanceId);
+ RestfulResponse rsp;
+ InstanceNfvoMapping instanceNfvoMapping = instanceNfvoMappingRepository.findOneByInstanceId(nsInstanceId);
+ if (instanceNfvoMapping != null) {
+ rsp = vfcManagerSol005.deleteNs(nsOperationKey, nsInstanceId);
+ } else {
+ rsp = driverMgr.deleteNs(nsOperationKey, nsInstanceId);
+ }
return buildResponse(rsp);
} catch (ApplicationException e) {
logger.debug(APPLICATION_EXCEPTION, e);
@@ -131,7 +150,13 @@ public class VfcAdapterRest {
ValidateUtil.assertObjectNotNull(data);
logger.debug(REQUEST_DEBUG_MSG + data);
NsOperationKey nsOperationKey = JsonUtil.unMarshal(data, NsOperationKey.class);
- RestfulResponse rsp = driverMgr.getNsProgress(nsOperationKey, jobId);
+ RestfulResponse rsp;
+ InstanceNfvoMapping instanceNfvoMapping = instanceNfvoMappingRepository.findOneByJobId(jobId);
+ if (instanceNfvoMapping != null) {
+ rsp = vfcManagerSol005.getNsProgress(nsOperationKey, jobId);
+ } else {
+ rsp = driverMgr.getNsProgress(nsOperationKey, jobId);
+ }
return buildResponse(rsp);
} catch (ApplicationException e) {
logger.debug(APPLICATION_EXCEPTION, e);
@@ -156,7 +181,12 @@ public class VfcAdapterRest {
ValidateUtil.assertObjectNotNull(data);
logger.debug(REQUEST_DEBUG_MSG + data);
NSResourceInputParameter nsInput = JsonUtil.unMarshal(data, NSResourceInputParameter.class);
- RestfulResponse rsp = driverMgr.instantiateNs(nsInstanceId, nsInput);
+ RestfulResponse rsp;
+ if (nsInput.getNsParameters().getAdditionalParamForNs().containsKey("isSol005Interface")) {
+ rsp = vfcManagerSol005.instantiateNs(nsInstanceId, nsInput);
+ } else {
+ rsp = driverMgr.instantiateNs(nsInstanceId, nsInput);
+ }
return buildResponse(rsp);
} catch (ApplicationException e) {
logger.debug(APPLICATION_EXCEPTION, e);
@@ -181,7 +211,14 @@ public class VfcAdapterRest {
ValidateUtil.assertObjectNotNull(data);
logger.debug(REQUEST_DEBUG_MSG + data);
NsOperationKey nsOperationKey = JsonUtil.unMarshal(data, NsOperationKey.class);
- RestfulResponse rsp = driverMgr.terminateNs(nsOperationKey, nsInstanceId);
+ RestfulResponse rsp;
+ InstanceNfvoMapping instanceNfvoMapping = instanceNfvoMappingRepository.findOneByInstanceId(nsInstanceId);
+ if (instanceNfvoMapping != null) {
+ rsp = vfcManagerSol005.terminateNs(nsOperationKey, nsInstanceId);
+ } else {
+ rsp = driverMgr.terminateNs(nsOperationKey, nsInstanceId);
+ }
+
return buildResponse(rsp);
} catch (ApplicationException e) {
logger.debug(APPLICATION_EXCEPTION, e);
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/rest/VfcManagerSol005.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/rest/VfcManagerSol005.java
new file mode 100644
index 0000000000..9033becf8a
--- /dev/null
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/rest/VfcManagerSol005.java
@@ -0,0 +1,620 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+package org.onap.so.adapters.vfc.rest;
+
+import java.time.LocalDateTime;
+import java.util.*;
+import org.onap.so.adapters.vfc.constant.CommonConstant;
+import org.onap.so.adapters.vfc.constant.CommonConstant.Step;
+import org.onap.so.adapters.vfc.constant.DriverExceptionID;
+import org.onap.so.adapters.vfc.constant.HttpCode;
+import org.onap.so.adapters.vfc.exceptions.ApplicationException;
+import org.onap.so.adapters.vfc.model.*;
+import org.onap.so.adapters.vfc.util.JsonUtil;
+import org.onap.so.adapters.vfc.util.RestfulUtil;
+import org.onap.so.adapters.vfc.util.ValidateUtil;
+import org.onap.so.db.request.beans.InstanceNfvoMapping;
+import org.onap.so.db.request.beans.OperationStatus;
+import org.onap.so.db.request.beans.ResourceOperationStatus;
+import org.onap.so.db.request.data.repository.InstanceNfvoMappingRepository;
+import org.onap.so.db.request.data.repository.OperationStatusRepository;
+import org.onap.so.db.request.data.repository.ResourceOperationStatusRepository;
+import org.onap.so.requestsdb.RequestsDbConstant;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Primary;
+import org.springframework.data.domain.Example;
+import org.springframework.stereotype.Component;
+
+/**
+ * VF-C Manager <br>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-08-28
+ */
+@Component
+@Primary
+public class VfcManagerSol005 {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(VfcManagerSol005.class);
+
+ /**
+ * nfvo url map
+ */
+ private Map<String, String> nfvoUrlMap;
+
+ @Autowired
+ private ResourceOperationStatusRepository resourceOperationStatusRepository;
+
+ @Autowired
+ private RestfulUtil restfulUtil;
+
+ @Autowired
+ private OperationStatusRepository operationStatusRepository;
+
+ @Autowired
+ private InstanceNfvoMappingRepository instanceNfvoMappingRepository;
+
+ private InstanceNfvoMapping instanceNfvoMapping = new InstanceNfvoMapping();
+
+ public VfcManagerSol005() {
+ nfvoUrlMap = new HashMap<>();
+ nfvoUrlMap.put(Step.CREATE, CommonConstant.SOL005_NFVO_CREATE_URL);
+ nfvoUrlMap.put(Step.INSTANTIATE, CommonConstant.SOL005_NFVO_INSTANTIATE_URL);
+ nfvoUrlMap.put(Step.TERMINATE, CommonConstant.SOL005_NFVO_TERMINATE_URL);
+ nfvoUrlMap.put(Step.DELETE, CommonConstant.SOL005_NFVO_DELETE_URL);
+ nfvoUrlMap.put(Step.QUERY, CommonConstant.SOL005_NFVO_QUERY_URL);
+ nfvoUrlMap.put(Step.SCALE, CommonConstant.NFVO_SCALE_URL);
+ }
+
+ /**
+ * create network service <br>
+ *
+ * @param segInput input parameters for current node from http request
+ * @return
+ * @since ONAP Dubilin Release
+ */
+ public RestfulResponse createNs(NSResourceInputParameter segInput) throws ApplicationException {
+
+ Map<String, String> nfvoDetails;
+ // Step1: get service template by node type
+ String nsdId = segInput.getNsServiceModelUUID();
+ // nsdId for NFVO is "id" in the response, while for SDNO is "servcice template id"
+ LOGGER.info("serviceTemplateId is {}, id is {}", nsdId, nsdId);
+
+
+ LOGGER.info("SOL005 create ns -> begin");
+ // Step2: Prepare url and method type
+ String url = getUrl(null, CommonConstant.Step.CREATE);
+ String methodType = CommonConstant.MethodType.POST;
+
+ // Step3: Prepare restful parameters and options
+ CreateNsRequest createNsRequest = new CreateNsRequest();
+ createNsRequest.setNsDescription(segInput.getNsServiceDescription());
+ createNsRequest.setNsdId(segInput.getNsServiceModelUUID());
+ createNsRequest.setNsName(segInput.getNsServiceName());
+
+ String createReq = JsonUtil.marshal(createNsRequest);
+ RestfulResponse aaiRestfulResponse = null;
+ NsParameters nsParameters = segInput.getNsParameters();
+ if (nsParameters.getAdditionalParamForNs().containsKey("orchestrator")) {
+ if (nsParameters.getAdditionalParamForNs().get("orchestrator") != null) {
+ String nfvo = nsParameters.getAdditionalParamForNs().get("nfvo").toString();
+ aaiRestfulResponse = restfulUtil.getNfvoFromAAI(nfvo);
+ nfvoDetails = JsonUtil.unMarshal(aaiRestfulResponse.getResponseContent(), Map.class);
+ url = nfvoDetails.get("url") + nfvoDetails.get("api-root") + url;
+
+ }
+ } else {
+ LOGGER.error("Nfvo not present in AAI");
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_CREATE_NS);
+ }
+
+
+ // Prepare request header for createNs request.
+ Map<String, String> requestHeader = new HashMap<>();
+ requestHeader.put("GLOBALCUSTOMERID", segInput.getNsOperationKey().getGlobalSubscriberId());
+ requestHeader.put("SERVICETYPE", segInput.getNsOperationKey().getServiceType());
+
+ // Step4: Call NFVO or SDNO lcm to create ns
+ LOGGER.info("Request Payload for CreateNs: " + createReq);
+
+ RestfulResponse createRsp = restfulUtil.send(url, methodType, createReq, requestHeader);
+ ValidateUtil.assertObjectNotNull(createRsp);
+ LOGGER.info("create ns response status is : {}", createRsp.getStatus());
+ LOGGER.info("create ns response content is : {}", createRsp.getResponseContent());
+
+ // Step 5: save resource operation information
+ ResourceOperationStatus status = new ResourceOperationStatus(segInput.getNsOperationKey().getServiceId(),
+ segInput.getNsOperationKey().getOperationId(), segInput.getNsOperationKey().getNodeTemplateUUID());
+ status.setStatus(RequestsDbConstant.Status.PROCESSING);
+ status = resourceOperationStatusRepository.save(status);
+ if (!HttpCode.isSucess(createRsp.getStatus())) {
+ LOGGER.error("update segment operation status : fail to create ns");
+ status.setProgress("40");
+ status.setStatusDescription("NS not created");
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(createRsp.getStatus()));
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_CREATE_NS);
+ }
+ // TODO: Capture all the content of the response. Currently fetching ID value alone.
+ // Should be converted into the NsInstance.class
+ @SuppressWarnings("unchecked")
+ Map<String, String> rsp = JsonUtil.unMarshal(createRsp.getResponseContent(), Map.class);
+ String nsInstanceId = rsp.get(CommonConstant.SOL005_NS_INSTANCE_ID);
+ if (ValidateUtil.isStrEmpty(nsInstanceId)) {
+ LOGGER.error("Invalid instanceId from create operation");
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR,
+ DriverExceptionID.INVALID_RESPONSEE_FROM_CREATE_OPERATION);
+ }
+
+ nfvoDetails = JsonUtil.unMarshal(aaiRestfulResponse.getResponseContent(), Map.class);
+ instanceNfvoMapping.setInstanceId(nsInstanceId);
+ instanceNfvoMapping.setPassword(nfvoDetails.get("password"));
+ instanceNfvoMapping.setUsername(nfvoDetails.get("userName"));
+ instanceNfvoMapping.setNfvoName(nfvoDetails.get("nfvoId"));
+ instanceNfvoMapping.setEndpoint(nfvoDetails.get("url"));
+ instanceNfvoMapping.setApiRoot(nfvoDetails.get("api-root"));
+ instanceNfvoMappingRepository.save(instanceNfvoMapping);
+ LOGGER.info("create ns -> end");
+ LOGGER.info("save segment and operaton info -> begin");
+ // Step 6: add relation between service and NS
+ AaiUtil.addRelation(segInput.getNsOperationKey().getGlobalSubscriberId(),
+ segInput.getNsOperationKey().getServiceType(), segInput.getNsOperationKey().getServiceId(),
+ nsInstanceId);
+ LOGGER.info("save segment and operation info -> end");
+ return createRsp;
+ }
+
+ /**
+ * delete network service <br>
+ *
+ * @param nsOperationKey The operation key of the NS resource
+ * @param nsInstanceId The NS instance id
+ * @return
+ * @since ONAP Dublin Release
+ */
+ public RestfulResponse deleteNs(NsOperationKey nsOperationKey, String nsInstanceId) throws ApplicationException {
+ LOGGER.info("SOL005 delete ns -> begin");
+ // Step1: prepare url and methodType
+ String url = getUrl(nsInstanceId, CommonConstant.Step.DELETE);
+ String methodType = CommonConstant.MethodType.DELETE;
+
+ // Step2: prepare restful parameters and options
+ RestfulResponse deleteRsp = restfulUtil.send(url, methodType, "");
+ ValidateUtil.assertObjectNotNull(deleteRsp);
+ LOGGER.info("delete ns response status is : {}", deleteRsp.getStatus());
+ LOGGER.info("delete ns response content is : {}", deleteRsp.getResponseContent());
+ LOGGER.info("delete ns -> end");
+
+ ResourceOperationStatus status = new ResourceOperationStatus(nsOperationKey.getServiceId(),
+ nsOperationKey.getOperationId(), nsOperationKey.getNodeTemplateUUID());
+ if (!HttpCode.isSucess(deleteRsp.getStatus())) {
+ LOGGER.error("fail to delete ns");
+
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(deleteRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.TERMINATE_NS_FAILED);
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_DELETE_NS);
+ }
+
+ // Step3: remove relation info between service and ns
+ AaiUtil.removeRelation(nsOperationKey.getGlobalSubscriberId(), nsOperationKey.getServiceType(),
+ nsOperationKey.getServiceId(), nsInstanceId);
+ LOGGER.info("delete segment information -> end");
+
+ // Step4: update service segment operation status
+ status.setStatus(RequestsDbConstant.Status.FINISHED);
+ status.setErrorCode(String.valueOf(deleteRsp.getStatus()));
+ status.setProgress("100");
+ status.setStatusDescription("VFC resource deletion finished");
+ resourceOperationStatusRepository.save(status);
+ LOGGER.info("update segment operaton status for delete -> end");
+
+ return deleteRsp;
+
+ }
+
+ /**
+ * instantiate network service <br>
+ *
+ * @param nsInstanceId The NS instance id
+ * @param segInput input parameters for current node from http request
+ * @return
+ * @since ONAP Dublin Release
+ */
+ public RestfulResponse instantiateNs(String nsInstanceId, NSResourceInputParameter segInput)
+ throws ApplicationException {
+ // Call the NFVO or SDNO service to instantiate service
+ LOGGER.info("SOL005 instantiate ns -> begin");
+
+ // Step1: Prepare restful parameters and options
+ InstantiateNsRequest instantiateNsRequest = new InstantiateNsRequest();
+
+ NsInstantiateReq oRequest = new NsInstantiateReq();
+ oRequest.setNsInstanceId(nsInstanceId);
+ NsParameters nsParameters = segInput.getNsParameters();
+
+ ArrayList<VnfLocationConstraint> vnfLocationConstraints = new ArrayList<VnfLocationConstraint>();
+ for (LocationConstraint locationConstraint : nsParameters.getLocationConstraints()) {
+ VnfLocationConstraint vnfLocationConstraint = new VnfLocationConstraint();
+ vnfLocationConstraint.setVnfProfileId(locationConstraint.getVnfProfileId());
+ vnfLocationConstraint.setLocationConstraints(null);
+ vnfLocationConstraints.add(vnfLocationConstraint);
+
+ }
+ instantiateNsRequest.setAditionalParamsForNs(nsParameters.getAdditionalParamForNs());
+ // Setting FlavourID which is a mandatory paramater to default
+ // as UUI is not sending this parameter to so
+ instantiateNsRequest.setNsFlavourId("default");
+ String instReq = JsonUtil.marshal(instantiateNsRequest);
+ LOGGER.info("Request Payload for InstantiateNs: " + instReq);
+ // Step2: prepare url and
+ String url = getUrl(nsInstanceId, CommonConstant.Step.INSTANTIATE);
+ String methodType = CommonConstant.MethodType.POST;
+ instanceNfvoMapping = instanceNfvoMappingRepository.findOneByInstanceId(nsInstanceId);
+
+ if (instanceNfvoMapping != null) {
+
+ url = instanceNfvoMapping.getEndpoint() + instanceNfvoMapping.getApiRoot() + url;
+
+ } else {
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_INSTANTIATE_NS);
+
+ }
+ // Step3: prepare restful parameters and options
+ Map<String, String> reqBody = new HashMap<>();
+ reqBody.put("terminationTime", LocalDateTime.now().toString());
+ RestfulResponse instRsp = restfulUtil.send(url, methodType, instReq);
+ ResourceOperationStatus status = new ResourceOperationStatus(segInput.getNsOperationKey().getServiceId(),
+ segInput.getNsOperationKey().getOperationId(), segInput.getNsOperationKey().getNodeTemplateUUID());
+ ValidateUtil.assertObjectNotNull(instRsp);
+ if (!HttpCode.isSucess(instRsp.getStatus())) {
+ LOGGER.error("update segment operation status : fail to instantiate ns");
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(instRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.INSTANTIATE_NS_FAILED);
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_INSTANTIATE_NS);
+ }
+ LOGGER.info("instantiate ns response status is : {}", instRsp.getStatus());
+ LOGGER.info("response payload is {}", instRsp.getResponseContent());
+ String jobId = null;
+ if (instRsp.getStatus() == 202) {
+ String jobUri = instRsp.getRespHeaderStr(CommonConstant.JOB_URI);
+ LOGGER.info("JOB URI" + jobUri);
+ jobId = jobUri.split("/")[4];
+ if (ValidateUtil.isStrEmpty(jobId)) {
+ LOGGER.error("Invalid jobId from instantiate operation");
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(instRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.INSTANTIATE_NS_FAILED);
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR,
+ DriverExceptionID.INVALID_RESPONSE_FROM_INSTANTIATE_OPERATION);
+ }
+
+ } else if (instRsp.getStatus() > 400 && instRsp.getStatus() < 600) {
+ LOGGER.error("ERROR while executing instantiateNs request");
+ ProblemDetails problemDetails = JsonUtil.unMarshal(instRsp.getResponseContent(), ProblemDetails.class);
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(instRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.INSTANTIATE_NS_FAILED + problemDetails.getDetail());
+ resourceOperationStatusRepository.save(status);
+ if (instRsp.getStatus() == 406) {
+ throw new ApplicationException(HttpCode.NOT_ACCEPTABLE, DriverExceptionID.FAIL_TO_INSTANTIATE_NS);
+ } else if (instRsp.getStatus() == 400) {
+ throw new ApplicationException(HttpCode.BAD_REQUEST, DriverExceptionID.FAIL_TO_INSTANTIATE_NS);
+ } else if (instRsp.getStatus() == 404) {
+ throw new ApplicationException(HttpCode.NOT_FOUND, DriverExceptionID.FAIL_TO_INSTANTIATE_NS);
+ } else if (instRsp.getStatus() == 409) {
+ LOGGER.error("The operation cannot be executed currently,\n"
+ + "due to a conflict with the state of the resource");
+ throw new ApplicationException(HttpCode.RESPOND_CONFLICT, DriverExceptionID.FAIL_TO_INSTANTIATE_NS);
+ } else if (instRsp.getStatus() == 500) {
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR,
+ DriverExceptionID.FAIL_TO_INSTANTIATE_NS);
+ } else {
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR,
+ DriverExceptionID.FAIL_TO_INSTANTIATE_NS);
+ }
+
+ }
+ LOGGER.info("Job id is " + jobId);
+ LOGGER.info("Nfvo Details" + instanceNfvoMapping.toString());
+ LOGGER.info("instantiate ns -> end");
+ // Step 3: update segment operation job id
+ LOGGER.info("update resource operation status job id -> begin");
+ status.setJobId(jobId);
+ status.setProgress("100");
+ status.setStatusDescription("NS initiation completed.");
+ resourceOperationStatusRepository.save(status);
+ instanceNfvoMapping.setJobId(jobId);
+ instanceNfvoMappingRepository.save(instanceNfvoMapping);
+ LOGGER.info("update segment operation job id -> end" + instanceNfvoMapping.toString());
+ return instRsp;
+ }
+
+ /**
+ * terminate network service <br>
+ *
+ * @param nsOperationKey The operation key for NS resource
+ * @param nsInstanceId The NS instance id
+ * @return
+ * @since ONAP Dublin Release
+ */
+ public RestfulResponse terminateNs(NsOperationKey nsOperationKey, String nsInstanceId) throws ApplicationException {
+ // Step1: save segment operation info for delete process
+ LOGGER.info("save segment operation for delete process");
+ ResourceOperationStatus status = new ResourceOperationStatus(nsOperationKey.getServiceId(),
+ nsOperationKey.getOperationId(), nsOperationKey.getNodeTemplateUUID());
+ status.setStatus(RequestsDbConstant.Status.PROCESSING);
+ resourceOperationStatusRepository.save(status);
+
+ LOGGER.info("SOL005 terminate ns -> begin");
+ // Step2: prepare url and method type
+ String url = getUrl(nsInstanceId, CommonConstant.Step.TERMINATE);
+ String methodType = CommonConstant.MethodType.POST;
+
+ instanceNfvoMapping = instanceNfvoMappingRepository.findOneByInstanceId(nsInstanceId);
+
+ if (instanceNfvoMapping != null) {
+
+ url = instanceNfvoMapping.getEndpoint() + instanceNfvoMapping.getApiRoot() + url;
+
+ } else {
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_TERMINATE_NS);
+ }
+ // Step3: prepare restful parameters and options
+ Map<String, String> reqBody = new HashMap<>();
+ reqBody.put("terminationTime", LocalDateTime.now().toString());
+
+ // Step4: Call the NFVO or SDNO service to terminate service
+ LOGGER.info("request body for terminate NS" + JsonUtil.marshal(reqBody));
+ RestfulResponse terminateRsp = restfulUtil.send(url, methodType, JsonUtil.marshal(reqBody));
+ ValidateUtil.assertObjectNotNull(terminateRsp);
+ LOGGER.info("terminate ns response status is : {}", terminateRsp.getStatus());
+ LOGGER.info("terminate ns response content is : {}", terminateRsp.getResponseContent());
+ // Step 3: update segment operation
+ if (!HttpCode.isSucess(terminateRsp.getStatus())) {
+ LOGGER.error("fail to terminate ns");
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(terminateRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.TERMINATE_NS_FAILED);
+ resourceOperationStatusRepository.save(status);
+
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_TERMINATE_NS);
+ }
+ // @SuppressWarnings("unchecked")
+ String jobId = null;
+ Map<String, String> rsp = new HashMap<>();
+ if (terminateRsp.getStatus() == 202) {
+ String jobUri = terminateRsp.getRespHeaderStr(CommonConstant.JOB_URI);
+ jobId = jobUri.split("/")[4];
+ jobId.split("/");
+ if (ValidateUtil.isStrEmpty(jobId)) {
+ LOGGER.error("Invalid jobId from instantiate operation");
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(terminateRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.INSTANTIATE_NS_FAILED);
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR,
+ DriverExceptionID.INVALID_RESPONSE_FROM_INSTANTIATE_OPERATION);
+ }
+ rsp.put(CommonConstant.JOB_ID, jobId);
+ LOGGER.info("terminate ns -> end");
+ LOGGER.info("update segment job id -> begin");
+ status.setProgress("60");
+ status.setStatusDescription("NS is termination completed");
+ status.setJobId(jobId);
+ resourceOperationStatusRepository.save(status);
+ LOGGER.info("update segment job id -> end");
+ } else if (terminateRsp.getStatus() > 400 && terminateRsp.getStatus() < 600) {
+ LOGGER.error("ERROR while executing instantiateNs request");
+ ProblemDetails problemDetails = JsonUtil.unMarshal(terminateRsp.getResponseContent(), ProblemDetails.class);
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(terminateRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.TERMINATE_NS_FAILED + problemDetails.getDetail());
+ resourceOperationStatusRepository.save(status);
+ if (terminateRsp.getStatus() == 406) {
+ throw new ApplicationException(HttpCode.NOT_ACCEPTABLE, DriverExceptionID.FAIL_TO_TERMINATE_NS);
+ } else if (terminateRsp.getStatus() == 400) {
+ throw new ApplicationException(HttpCode.BAD_REQUEST, DriverExceptionID.FAIL_TO_TERMINATE_NS);
+ } else if (terminateRsp.getStatus() == 404) {
+ throw new ApplicationException(HttpCode.NOT_FOUND, DriverExceptionID.FAIL_TO_TERMINATE_NS);
+ } else if (terminateRsp.getStatus() == 409) {
+ LOGGER.error("The operation cannot be executed currently,\n"
+ + "due to a conflict with the state of the resource");
+ throw new ApplicationException(HttpCode.RESPOND_CONFLICT, DriverExceptionID.FAIL_TO_TERMINATE_NS);
+ } else if (terminateRsp.getStatus() == 500) {
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_TERMINATE_NS);
+ } else {
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_TERMINATE_NS);
+ }
+
+ }
+ instanceNfvoMapping.setJobId(jobId);
+ instanceNfvoMappingRepository.save(instanceNfvoMapping);
+ terminateRsp.setResponseContent(rsp.toString());
+ return terminateRsp;
+ }
+
+ /**
+ * get ns progress by job Id <br>
+ *
+ * @param nsOperationKey The OperationKey for NS resource
+ * @param jobId the job id
+ * @return
+ * @since ONAP Dublin Release
+ */
+ public RestfulResponse getNsProgress(NsOperationKey nsOperationKey, String jobId) throws ApplicationException {
+
+ ValidateUtil.assertObjectNotNull(jobId);
+ // Step 1: query the current resource operation status
+ ResourceOperationStatus status = new ResourceOperationStatus(nsOperationKey.getServiceId(),
+ nsOperationKey.getOperationId(), nsOperationKey.getNodeTemplateUUID());
+ // status = resourceOperationStatusRepository.findOne(Example.of(status))
+ // .orElseThrow(() -> new ApplicationException(404, "Cannot Find Operation Status"));
+
+ // Get NFVO details
+ instanceNfvoMapping = instanceNfvoMappingRepository.findOneByJobId(jobId);
+
+ // Step 2: start query
+ LOGGER.info("SOL005 query ns status -> begin");
+ String url = getUrl(jobId, CommonConstant.Step.QUERY);
+ String methodType = CommonConstant.MethodType.GET;
+ if (instanceNfvoMapping != null) {
+
+ url = instanceNfvoMapping.getEndpoint() + instanceNfvoMapping.getApiRoot() + url;
+
+ } else {
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_QUERY_JOB_STATUS);
+ }
+
+ // prepare restful parameters and options
+ RestfulResponse rsp = restfulUtil.send(url, methodType, "");
+ ValidateUtil.assertObjectNotNull(rsp);
+ LOGGER.info("query ns progress response status is : {}", rsp.getStatus());
+ LOGGER.info("query ns progress response content is : {}", rsp.getResponseContent());
+ // Step 3:check the response staus
+ if (!HttpCode.isSucess(rsp.getStatus())) {
+ LOGGER.info("fail to query job status");
+ ProblemDetails problemDetails = JsonUtil.unMarshal(rsp.getResponseContent(), ProblemDetails.class);
+ status.setErrorCode(String.valueOf(rsp.getStatus()));
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setStatusDescription(CommonConstant.StatusDesc.QUERY_JOB_STATUS_FAILED + problemDetails.getDetail());
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_QUERY_JOB_STATUS);
+ }
+ // Step 4: Process Network Service Instantiate Response
+ NsLcmOpOcc nsProgress = JsonUtil.unMarshal(rsp.getResponseContent(), NsLcmOpOcc.class);
+ if (CommonConstant.operationState.FAILED.equals(nsProgress.getOperationState())) {
+ LOGGER.info("NS instantiate fails");
+ status.setErrorCode(String.valueOf(rsp.getStatus()));
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setStatusDescription(
+ CommonConstant.StatusDesc.INSTANTIATE_NS_FAILED + nsProgress.getError().getDetail());
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_QUERY_JOB_STATUS);
+ }
+ // Step 5: update segment operation progress
+
+ if (nsProgress.getOperationState().equals(CommonConstant.operationState.PROCESSING)) {
+ status.setProgress("40");
+ status.setStatus(RequestsDbConstant.Status.PROCESSING);
+ status.setStatusDescription("NS operation is in progress");
+ resourceOperationStatusRepository.save(status);
+ updateOperationStatusBasedOnResourceStatus(status);
+ } else if (nsProgress.getOperationState().equals(CommonConstant.operationState.PARTIALLY_COMPLETED)) {
+ status.setProgress("60");
+ status.setStatus(RequestsDbConstant.Status.PROCESSING);
+ status.setStatusDescription("NS operation is partially completed");
+ resourceOperationStatusRepository.save(status);
+ } else if (nsProgress.getOperationState().equals(CommonConstant.operationState.COMPLETED)) {
+ status.setStatus(RequestsDbConstant.Status.FINISHED);
+ status.setProgress("100");
+ status.setStatusDescription("NS operation is Completed");
+ resourceOperationStatusRepository.save(status);
+ updateOperationStatusBasedOnResourceStatus(status);
+
+ } else if (nsProgress.getOperationState().equals(CommonConstant.operationState.FAILED)
+ || nsProgress.getOperationState().equals(CommonConstant.operationState.FAILED_TEMP)) {
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setProgress("0");
+ status.setStatusDescription("NS operation Failed");
+ resourceOperationStatusRepository.save(status);
+ updateOperationStatusBasedOnResourceStatus(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.JOB_STATUS_ERROR);
+ } else {
+ LOGGER.error("unexcepted response status");
+
+ }
+ return rsp;
+ }
+
+ /**
+ * get url for the operation <br>
+ *
+ * @param variable variable should be put in the url
+ * @param step step of the operation (terminate,query,delete)
+ * @return
+ * @since ONAP Dublin Release
+ */
+ private String getUrl(String variable, String step) {
+
+ String url;
+ String originalUrl;
+ originalUrl = nfvoUrlMap.get(step);
+ url = String.format(originalUrl, variable);
+ return url;
+
+ }
+
+ private void updateOperationStatusBasedOnResourceStatus(ResourceOperationStatus operStatus) {
+ String serviceId = operStatus.getServiceId();
+ String operationId = operStatus.getOperationId();
+
+ LOGGER.debug("Request database - update Operation Status Based On Resource Operation Status with service Id: "
+ + "{}, operationId: {}", serviceId, operationId);
+
+ List<ResourceOperationStatus> lstResourceStatus =
+ resourceOperationStatusRepository.findByServiceIdAndOperationId(serviceId, operationId);
+ if (lstResourceStatus == null) {
+ LOGGER.error("Unable to retrieve resourceOperStatus Object by ServiceId: {} operationId: {}", serviceId,
+ operationId);
+ return;
+ }
+
+ // count the total progress
+ int resourceCount = lstResourceStatus.size();
+ int progress = 0;
+ boolean isFinished = true;
+ for (ResourceOperationStatus lstResourceStatu : lstResourceStatus) {
+ progress = progress + Integer.valueOf(lstResourceStatu.getProgress()) / resourceCount;
+ if (RequestsDbConstant.Status.PROCESSING.equals(lstResourceStatu.getStatus())) {
+ isFinished = false;
+ }
+ }
+
+ OperationStatus serviceOperStatus =
+ operationStatusRepository.findOneByServiceIdAndOperationId(serviceId, operationId);
+ if (serviceOperStatus == null) {
+ String error = "Entity not found. Unable to retrieve OperationStatus Object ServiceId: " + serviceId
+ + " operationId: " + operationId;
+ LOGGER.error(error);
+
+ serviceOperStatus = new OperationStatus();
+ serviceOperStatus.setOperationId(operationId);
+ serviceOperStatus.setServiceId(serviceId);
+ }
+
+ progress = progress > 100 ? 100 : progress;
+ serviceOperStatus.setProgress(String.valueOf(progress));
+ serviceOperStatus.setOperationContent(operStatus.getStatusDescription());
+ // if current resource failed. service failed.
+ if (RequestsDbConstant.Status.ERROR.equals(operStatus.getStatus())) {
+ serviceOperStatus.setResult(RequestsDbConstant.Status.ERROR);
+ serviceOperStatus.setReason(operStatus.getStatusDescription());
+ } else if (isFinished) {
+ // if finished
+ serviceOperStatus.setResult(RequestsDbConstant.Status.FINISHED);
+ serviceOperStatus.setProgress(RequestsDbConstant.Progress.ONE_HUNDRED);
+ }
+
+ operationStatusRepository.save(serviceOperStatus);
+ }
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/util/RestfulUtil.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/util/RestfulUtil.java
index 647fcafa66..984cdb8016 100644
--- a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/util/RestfulUtil.java
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/util/RestfulUtil.java
@@ -26,8 +26,13 @@ package org.onap.so.adapters.vfc.util;
import java.net.HttpURLConnection;
import java.net.SocketTimeoutException;
+import java.util.Base64;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import javax.ws.rs.core.UriBuilder;
import org.onap.so.logger.LoggingAnchor;
+import org.apache.http.Header;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
@@ -102,9 +107,10 @@ public class RestfulUtil {
}
- public RestfulResponse send(String url, String methodType, String content) {
- String msbUrl = getMsbHost() + url;
- logger.debug("Begin to sent message {}: {}", methodType, msbUrl);
+
+ public RestfulResponse send(String msbUrl, String methodType, String content, Map<String, String> requestHeader) {
+ // String msbUrl = getMsbHost() + url;
+ logger.debug("Begin to sent message " + methodType + ": " + msbUrl);
HttpRequestBase method = null;
HttpResponse httpResponse = null;
@@ -115,9 +121,14 @@ public class RestfulUtil {
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(timeout).setConnectTimeout(timeout)
.setConnectionRequestTimeout(timeout).build();
+ HttpClient client = HttpClientBuilder.create().build();
+
if ("POST".equalsIgnoreCase(methodType)) {
HttpPost httpPost = new HttpPost(msbUrl);
httpPost.setConfig(requestConfig);
+ for (String key : requestHeader.keySet()) {
+ httpPost.setHeader(key, requestHeader.get(key));
+ }
httpPost.setEntity(new StringEntity(content, ContentType.APPLICATION_JSON));
method = httpPost;
} else if ("PUT".equalsIgnoreCase(methodType)) {
@@ -135,11 +146,24 @@ public class RestfulUtil {
method = httpDelete;
}
- httpResponse = client.execute(method);
+ // now VFC have no auth
+ // String userCredentials =
+ // SDNCAdapterProperties.getEncryptedProperty(Constants.SDNC_AUTH_PROP,
+ // Constants.DEFAULT_SDNC_AUTH, Constants.ENCRYPTION_KEY);
+ // String authorization = "Basic " +
+ // DatatypeConverter.printBase64Binary(userCredentials.getBytes());
+ // method.setHeader("Authorization", authorization);
+ httpResponse = client.execute(method);
+ Map<String, String> responseHeader = new HashMap<>();
String responseContent = null;
if (httpResponse.getEntity() != null) {
responseContent = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
+ Header[] httpResponseAllHeaders = httpResponse.getAllHeaders();
+ for (Header header : httpResponseAllHeaders) {
+ responseHeader.put(header.getName(), header.getValue());
+
+ }
}
int statusCode = httpResponse.getStatusLine().getStatusCode();
@@ -163,7 +187,115 @@ public class RestfulUtil {
}
method = null;
- return createResponse(statusCode, responseContent);
+ return createResponse(statusCode, responseContent, responseHeader);
+
+ } catch (SocketTimeoutException | ConnectTimeoutException e) {
+ String errMsg = "Request to VFC timed out";
+ logError(errMsg, e);
+ return createResponse(HttpURLConnection.HTTP_CLIENT_TIMEOUT, errMsg);
+
+ } catch (Exception e) {
+ String errMsg = "Error processing request to VFC";
+ logError(errMsg, e);
+ return createResponse(HttpURLConnection.HTTP_INTERNAL_ERROR, errMsg);
+
+ } finally {
+ if (httpResponse != null) {
+ try {
+ EntityUtils.consume(httpResponse.getEntity());
+ } catch (Exception e) {
+ logger.debug("Exception :", e);
+ }
+ }
+
+ if (method != null) {
+ try {
+ method.reset();
+ } catch (Exception e) {
+ logger.debug("Exception :", e);
+ }
+ }
+ }
+ }
+
+ public RestfulResponse send(String msbUrl, String methodType, String content) {
+ if (!msbUrl.contains("http")) {
+ msbUrl = getMsbHost() + msbUrl;
+ }
+ // String msbUrl = getMsbHost() + url;
+ logger.debug("Begin to sent message " + methodType + ": " + msbUrl);
+
+ HttpRequestBase method = null;
+ HttpResponse httpResponse = null;
+
+ try {
+ int timeout = DEFAULT_TIME_OUT;
+
+ RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(timeout).setConnectTimeout(timeout)
+ .setConnectionRequestTimeout(timeout).build();
+
+ if ("POST".equalsIgnoreCase(methodType)) {
+ HttpPost httpPost = new HttpPost(msbUrl);
+ httpPost.setConfig(requestConfig);
+ httpPost.setEntity(new StringEntity(content, ContentType.APPLICATION_JSON));
+ method = httpPost;
+ } else if ("PUT".equalsIgnoreCase(methodType)) {
+ HttpPut httpPut = new HttpPut(msbUrl);
+ httpPut.setConfig(requestConfig);
+ httpPut.setEntity(new StringEntity(content, ContentType.APPLICATION_JSON));
+ method = httpPut;
+ } else if ("GET".equalsIgnoreCase(methodType)) {
+ HttpGet httpGet = new HttpGet(msbUrl);
+ httpGet.setConfig(requestConfig);
+ method = httpGet;
+ } else if ("DELETE".equalsIgnoreCase(methodType)) {
+ HttpDelete httpDelete = new HttpDelete(msbUrl);
+ httpDelete.setConfig(requestConfig);
+ method = httpDelete;
+ }
+
+ // now VFC have no auth
+ // String userCredentials =
+ // SDNCAdapterProperties.getEncryptedProperty(Constants.SDNC_AUTH_PROP,
+ // Constants.DEFAULT_SDNC_AUTH, Constants.ENCRYPTION_KEY);
+ // String authorization = "Basic " +
+ // DatatypeConverter.printBase64Binary(userCredentials.getBytes());
+ // method.setHeader("Authorization", authorization);
+
+ httpResponse = client.execute(method);
+ Map<String, String> responseHeader = new HashMap<>();
+ String responseContent = null;
+ if (httpResponse.getEntity() != null) {
+ responseContent = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
+ Header[] httpResponseAllHeaders = httpResponse.getAllHeaders();
+ for (Header header : httpResponseAllHeaders) {
+ responseHeader.put(header.getName(), header.getValue());
+
+ }
+ }
+
+ int statusCode = httpResponse.getStatusLine().getStatusCode();
+ String statusMessage = httpResponse.getStatusLine().getReasonPhrase();
+
+ logger.debug("VFC Response: " + statusCode + " " + statusMessage
+ + (responseContent == null ? "" : System.lineSeparator() + responseContent));
+
+ if (httpResponse.getStatusLine().getStatusCode() >= 300) {
+ String errMsg = "VFC returned " + statusCode + " " + statusMessage;
+ logError(errMsg);
+ return createResponse(statusCode, errMsg);
+ }
+
+ httpResponse = null;
+
+ if (null != method) {
+ method.reset();
+ } else {
+ logger.debug("method is NULL:");
+ }
+
+ method = null;
+ return createResponse(statusCode, responseContent, responseHeader);
} catch (SocketTimeoutException | ConnectTimeoutException e) {
String errMsg = "Request to VFC timed out";
@@ -194,6 +326,46 @@ public class RestfulUtil {
}
}
+ public RestfulResponse getNfvoFromAAI(String nfvo) {
+ HttpRequestBase method = null;
+ HttpResponse httpResponse = null;
+ String endPoint = getMsbHost() + "/api/aai-esr-server/v1/nfvos/" + nfvo;
+ logger.info("Endpoint URL" + endPoint);
+ RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(DEFAULT_TIME_OUT)
+ .setConnectTimeout(DEFAULT_TIME_OUT).setConnectionRequestTimeout(DEFAULT_TIME_OUT).build();
+ HttpClient client = HttpClientBuilder.create().build();
+ HttpGet httpGet = new HttpGet(endPoint);
+ httpGet.setConfig(requestConfig);
+ String encoding = Base64.getEncoder().encodeToString(("AAI:AAI").getBytes());
+ httpGet.setHeader("Authorization", "Basic " + encoding);
+ method = httpGet;
+ String responseContent = null;
+ Map<String, String> responseHeader = null;
+ try {
+ httpResponse = client.execute(method);
+ if (httpResponse.getEntity() != null) {
+ responseContent = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
+ }
+
+ int statusCode = httpResponse.getStatusLine().getStatusCode();
+ String statusMessage = httpResponse.getStatusLine().getReasonPhrase();
+
+ logger.debug("AAI Response: " + statusCode + " " + statusMessage
+ + (responseContent == null ? "" : System.lineSeparator() + responseContent));
+
+ if (httpResponse.getStatusLine().getStatusCode() >= 300) {
+ String errMsg = "AAI returned " + statusCode + " " + statusMessage;
+ logError(errMsg);
+ return createResponse(statusCode, errMsg);
+ }
+ } catch (Exception e) {
+ String errMsg = "Error processing request to AAI";
+ logError(errMsg, e);
+ return createResponse(HttpURLConnection.HTTP_INTERNAL_ERROR, errMsg);
+ }
+ return createResponse(200, responseContent);
+ }
+
private static void logError(String errMsg, Throwable t) {
logger.error(LoggingAnchor.FOUR, MessageEnum.RA_NS_EXC.toString(), VFC_ADAPTER,
ErrorCode.AvailabilityError.getValue(), errMsg, t);
@@ -211,4 +383,12 @@ public class RestfulUtil {
return rsp;
}
+ private static RestfulResponse createResponse(int statusCode, String content, Map<String, String> responseHeader) {
+ RestfulResponse rsp = new RestfulResponse();
+ rsp.setStatus(statusCode);
+ rsp.setRespHeaderMap(responseHeader);
+ rsp.setResponseContent(content);
+ return rsp;
+ }
+
}