aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorGeora Barsky <georab@amdocs.com>2018-10-26 12:53:09 -0400
committerGeora Barsky <georab@amdocs.com>2018-11-01 12:36:15 -0400
commit28d58cedeba041e536d71f82325cb1d32eeba730 (patch)
tree1b3cc54c3c3d609c7dcbd469ea422d15ec022b94 /src/main
parent49cc90f205535596dfdad0cf81a5bbf6ad93f5f8 (diff)
Enhance model to support L2 Fabric
Adding JUnit tests and swagger specs Issue-ID: LOG-780 Change-Id: Iaf7cb19a6310ebdeef085a94f00623041aa4f89b Signed-off-by: Geora Barsky <georab@amdocs.com>
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/onap/pomba/common/datatypes/Attribute.java34
-rw-r--r--src/main/java/org/onap/pomba/common/datatypes/LInterface.java82
-rw-r--r--src/main/java/org/onap/pomba/common/datatypes/LogicalLink.java88
-rw-r--r--src/main/java/org/onap/pomba/common/datatypes/ModelContext.java47
-rw-r--r--src/main/java/org/onap/pomba/common/datatypes/Network.java47
-rw-r--r--src/main/java/org/onap/pomba/common/datatypes/NetworkPolicy.java72
-rw-r--r--src/main/java/org/onap/pomba/common/datatypes/PInterface.java92
-rw-r--r--src/main/java/org/onap/pomba/common/datatypes/PNF.java83
-rw-r--r--src/main/java/org/onap/pomba/common/datatypes/PhysicalLink.java72
-rw-r--r--src/main/java/org/onap/pomba/common/datatypes/Port.java71
-rw-r--r--src/main/java/org/onap/pomba/common/datatypes/Pserver.java89
-rw-r--r--src/main/java/org/onap/pomba/common/datatypes/Service.java29
-rw-r--r--src/main/java/org/onap/pomba/common/datatypes/VFModule.java34
-rw-r--r--src/main/java/org/onap/pomba/common/datatypes/VM.java46
-rw-r--r--src/main/java/org/onap/pomba/common/datatypes/VNF.java (renamed from src/main/java/org/onap/pomba/common/datatypes/VF.java)239
-rw-r--r--src/main/java/org/onap/pomba/common/datatypes/VNFC.java41
-rw-r--r--src/main/java/org/onap/pomba/common/resource/AuditResource.java66
-rw-r--r--src/main/resources/commonModel.html1741
-rw-r--r--src/main/resources/markdown.hbs108
-rw-r--r--src/main/resources/operation.hbs80
-rw-r--r--src/main/resources/security.hbs88
-rw-r--r--src/main/resources/strapdown.html.hbs10
22 files changed, 3058 insertions, 201 deletions
diff --git a/src/main/java/org/onap/pomba/common/datatypes/Attribute.java b/src/main/java/org/onap/pomba/common/datatypes/Attribute.java
index 1bf32bc..c940322 100644
--- a/src/main/java/org/onap/pomba/common/datatypes/Attribute.java
+++ b/src/main/java/org/onap/pomba/common/datatypes/Attribute.java
@@ -20,6 +20,7 @@ package org.onap.pomba.common.datatypes;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
+import io.swagger.annotations.ApiModelProperty;
public class Attribute {
@Expose
@@ -33,7 +34,7 @@ public class Attribute {
private DataQuality dataQuality = DataQuality.ok();
public enum Name {
- adminState,
+ adminStatus,
ipAddress,
hostName,
lockedBoolean,
@@ -44,20 +45,49 @@ public class Attribute {
sharedNetworkBoolean,
networkRole,
routerExternalBoolean,
- imageId
+ imageId,
+ nfNamingCode,
+ nfType,
+ nfRole,
+ nfFunction,
+ nfcNamingCode,
+ nfcNamingTypen,
+ name2,
+ equipType,
+ equipVendor,
+ equipModel,
+ swVesrion,
+ serialNumber,
+ provStatus,
+ fqdn,
+ interfaceRole,
+ interfaceType,
+ speedValue,
+ speedUnits,
+ portDescription,
+ circuitId,
+ linkType,
+ routingProtocol,
+ networkName,
+ isPortMirrored
}
+ @ApiModelProperty(value = "Name of the attribute")
public Name getName() {
return name;
}
public void setName(Name name) {
this.name = name;
}
+
+ @ApiModelProperty(value = "Value of the attribute")
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
+
+ @ApiModelProperty(value = "Data Quality indicator of the attribute")
public DataQuality getDataQuality() {
return dataQuality;
}
diff --git a/src/main/java/org/onap/pomba/common/datatypes/LInterface.java b/src/main/java/org/onap/pomba/common/datatypes/LInterface.java
new file mode 100644
index 0000000..1eaf12d
--- /dev/null
+++ b/src/main/java/org/onap/pomba/common/datatypes/LInterface.java
@@ -0,0 +1,82 @@
+/*
+ * ============LICENSE_START===================================================
+ * Copyright (c) 2018 Amdocs
+ * ============================================================================
+ * 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.
+ * ============LICENSE_END=====================================================
+ */
+
+package org.onap.pomba.common.datatypes;
+
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+import java.util.ArrayList;
+import java.util.List;
+
+public class LInterface {
+
+ @Expose
+ @SerializedName("uuid")
+ private String uuid;
+ @Expose
+ @SerializedName("name")
+ private String name;
+ @Expose
+ @SerializedName("dataQuality")
+ private DataQuality dataQuality = DataQuality.ok();
+ @Expose
+ @SerializedName("attributeList")
+ private List<Attribute> attributeList = new ArrayList<>();
+ @Expose
+ @SerializedName("port")
+ private Port port = new Port();
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getUuid() {
+ return uuid;
+ }
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
+ public List<Attribute> getAttributes() {
+ return attributeList;
+ }
+ public void setAttributes(List<Attribute> attributeList) {
+ this.attributeList = attributeList;
+ }
+ public void addAttribute(Attribute attribute) {
+ this.attributeList.add(attribute);
+ }
+ public DataQuality getDataQuality() {
+ return dataQuality;
+ }
+ public void setDataQuality(DataQuality dataQuality) {
+ this.dataQuality = dataQuality;
+ }
+
+ public Port getPort() {
+ return port;
+ }
+
+ public void setPort(Port port) {
+ this.port = port;
+ }
+
+
+}
+
diff --git a/src/main/java/org/onap/pomba/common/datatypes/LogicalLink.java b/src/main/java/org/onap/pomba/common/datatypes/LogicalLink.java
new file mode 100644
index 0000000..7b1de66
--- /dev/null
+++ b/src/main/java/org/onap/pomba/common/datatypes/LogicalLink.java
@@ -0,0 +1,88 @@
+/*
+ * ============LICENSE_START===================================================
+ * Copyright (c) 2018 Amdocs
+ * ============================================================================
+ * 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.
+ * ============LICENSE_END=====================================================
+ */
+
+package org.onap.pomba.common.datatypes;
+
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+import java.util.ArrayList;
+import java.util.List;
+
+public class LogicalLink {
+
+ @Expose
+ @SerializedName("uuid")
+ private String uuid;
+ @Expose
+ @SerializedName("name")
+ private String name;
+ @Expose
+ @SerializedName("modelVersionID")
+ private String modelVersionID;
+ @Expose
+ @SerializedName("modelInvariantUUID")
+ private String modelInvariantUUID;
+ @Expose
+ @SerializedName("dataQuality")
+ private DataQuality dataQuality = DataQuality.ok();
+ @Expose
+ @SerializedName("attributeList")
+ private List<Attribute> attributeList = new ArrayList<>();
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getUuid() {
+ return uuid;
+ }
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
+ public List<Attribute> getAttributes() {
+ return attributeList;
+ }
+ public void setAttributes(List<Attribute> attributeList) {
+ this.attributeList = attributeList;
+ }
+ public void addAttribute(Attribute attribute) {
+ this.attributeList.add(attribute);
+ }
+ public DataQuality getDataQuality() {
+ return dataQuality;
+ }
+ public void setDataQuality(DataQuality dataQuality) {
+ this.dataQuality = dataQuality;
+ }
+ public String getModelVersionID() {
+ return modelVersionID;
+ }
+ public void setModelVersionID(String modelVersionID) {
+ this.modelVersionID = modelVersionID;
+ }
+ public String getModelInvariantUUID() {
+ return modelInvariantUUID;
+ }
+
+ public void setModelInvariantUUID(String modelInvariantUUID) {
+ this.modelInvariantUUID = modelInvariantUUID;
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/org/onap/pomba/common/datatypes/ModelContext.java b/src/main/java/org/onap/pomba/common/datatypes/ModelContext.java
index 1fc8118..0564b2f 100644
--- a/src/main/java/org/onap/pomba/common/datatypes/ModelContext.java
+++ b/src/main/java/org/onap/pomba/common/datatypes/ModelContext.java
@@ -20,9 +20,13 @@ package org.onap.pomba.common.datatypes;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
import java.util.ArrayList;
import java.util.List;
+@ApiModel(value="ModelContext")
public class ModelContext {
@Expose
@@ -35,21 +39,30 @@ public class ModelContext {
@SerializedName("attributeList")
private List<Attribute> attributeList = new ArrayList<>();
@Expose
- @SerializedName("vfList")
- private List<VF> vfList = new ArrayList<>();
+ @SerializedName("vnfList")
+ private List<VNF> vnfList = new ArrayList<>();
+ @Expose
+ @SerializedName("pnfList")
+ private List<PNF> pnfList = new ArrayList<>();
+ @Expose
+ @SerializedName("networkList")
+ private List<Network> networkList = new ArrayList<>();
+ @ApiModelProperty(value = "Service object of the model")
public Service getService() {
return service;
}
public void setService(Service service) {
this.service = service;
}
+ @ApiModelProperty(value = "Data Quality indicator")
public DataQuality getDataQuality() {
return dataQuality;
}
public void setDataQuality(DataQuality dataQuality) {
this.dataQuality = dataQuality;
}
+ @ApiModelProperty(value = "List of attributes")
public List<Attribute> getAttributes() {
return attributeList;
}
@@ -59,13 +72,31 @@ public class ModelContext {
public void addAttribute(Attribute attribute) {
this.attributeList.add(attribute);
}
- public List<VF> getVfs() {
- return vfList;
+ @ApiModelProperty(value = "List of VNF associated with the service instance")
+ public List<VNF> getVnfs() {
+ return vnfList;
+ }
+ public void setVnfs(List<VNF> vfList) {
+ this.vnfList = vfList;
}
- public void setVfs(List<VF> vfList) {
- this.vfList = vfList;
+ public void addVf(VNF vf) {
+ this.vnfList.add(vf);
}
- public void addVf(VF vf) {
- this.vfList.add(vf);
+ @ApiModelProperty(value = "List of PNF associated with the service instance")
+ public List<PNF> getPnfs() {
+ return pnfList;
}
+ public void setPnfs(List<PNF> pnfList) {
+ this.pnfList = pnfList;
+ }
+ public void addPnf(PNF pnf) {
+ this.pnfList.add(pnf);
+ }
+ @ApiModelProperty(value = "List of networks associated with the service instance")
+ public List<Network> getNetworkList() { return networkList; }
+ public void setNetworkList(List<Network> networkList) { this.networkList = networkList; }
+ public void addNetwork(Network network) {
+ this.networkList.add(network);
+ }
+
}
diff --git a/src/main/java/org/onap/pomba/common/datatypes/Network.java b/src/main/java/org/onap/pomba/common/datatypes/Network.java
index 171c6a5..9ba96e1 100644
--- a/src/main/java/org/onap/pomba/common/datatypes/Network.java
+++ b/src/main/java/org/onap/pomba/common/datatypes/Network.java
@@ -25,23 +25,26 @@ import java.util.List;
public class Network {
@Expose
+ @SerializedName("uuid")
+ private String uuid;
+ @Expose
@SerializedName("name")
private String name;
@Expose
- @SerializedName("invariantUUID")
- private String invariantUuid;
- @Expose
- @SerializedName("uuid")
- private String uuid;
+ @SerializedName("modelVersionID")
+ private String modelVersionID;
@Expose
- @SerializedName("type")
- private String type;
+ @SerializedName("modelInvariantUUID")
+ private String modelInvariantUUID;
@Expose
@SerializedName("dataQuality")
private DataQuality dataQuality = DataQuality.ok();
@Expose
@SerializedName("attributeList")
private List<Attribute> attributeList = new ArrayList<>();
+ @Expose
+ @SerializedName("networkPolicyList")
+ private List<NetworkPolicy> networkPolicies = new ArrayList<>();
public String getName() {
return name;
@@ -49,24 +52,12 @@ public class Network {
public void setName(String name) {
this.name = name;
}
- public String getInvariantUuid() {
- return invariantUuid;
- }
- public void setInvariantUuid(String invariantUuid) {
- this.invariantUuid = invariantUuid;
- }
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
- public String getType() {
- return type;
- }
- public void setType(String type) {
- this.type = type;
- }
public List<Attribute> getAttributes() {
return attributeList;
}
@@ -82,5 +73,23 @@ public class Network {
public void setDataQuality(DataQuality dataQuality) {
this.dataQuality = dataQuality;
}
+ public String getModelVersionID() { return modelVersionID; }
+ public void setModelVersionID(String modelVersionID) { this.modelVersionID = modelVersionID; }
+
+ public List<NetworkPolicy> getNetworkPolicies() {
+ return networkPolicies;
+ }
+
+ public void setNetworkPolicies(List<NetworkPolicy> networkPolicies) {
+ this.networkPolicies = networkPolicies;
+ }
+
+ public String getModelInvariantUUID() {
+ return modelInvariantUUID;
+ }
+
+ public void setModelInvariantUUID(String modelInvariantUUID) {
+ this.modelInvariantUUID = modelInvariantUUID;
+ }
}
diff --git a/src/main/java/org/onap/pomba/common/datatypes/NetworkPolicy.java b/src/main/java/org/onap/pomba/common/datatypes/NetworkPolicy.java
new file mode 100644
index 0000000..348642d
--- /dev/null
+++ b/src/main/java/org/onap/pomba/common/datatypes/NetworkPolicy.java
@@ -0,0 +1,72 @@
+/*
+ * ============LICENSE_START===================================================
+ * Copyright (c) 2018 Amdocs
+ * ============================================================================
+ * 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.
+ * ============LICENSE_END=====================================================
+ */
+
+package org.onap.pomba.common.datatypes;
+
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+import java.util.ArrayList;
+import java.util.List;
+
+public class NetworkPolicy {
+
+ @Expose
+ @SerializedName("uuid")
+ private String uuid;
+ @Expose
+ @SerializedName("name")
+ private String name;
+ @Expose
+ @SerializedName("dataQuality")
+ private DataQuality dataQuality = DataQuality.ok();
+ @Expose
+ @SerializedName("attributeList")
+ private List<Attribute> attributeList = new ArrayList<>();
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getUuid() {
+ return uuid;
+ }
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
+ public List<Attribute> getAttributes() {
+ return attributeList;
+ }
+ public void setAttributes(List<Attribute> attributeList) {
+ this.attributeList = attributeList;
+ }
+ public void addAttribute(Attribute attribute) {
+ this.attributeList.add(attribute);
+ }
+ public DataQuality getDataQuality() {
+ return dataQuality;
+ }
+ public void setDataQuality(DataQuality dataQuality) {
+ this.dataQuality = dataQuality;
+ }
+
+
+
+}
+
diff --git a/src/main/java/org/onap/pomba/common/datatypes/PInterface.java b/src/main/java/org/onap/pomba/common/datatypes/PInterface.java
new file mode 100644
index 0000000..8b55aa5
--- /dev/null
+++ b/src/main/java/org/onap/pomba/common/datatypes/PInterface.java
@@ -0,0 +1,92 @@
+/*
+ * ============LICENSE_START===================================================
+ * Copyright (c) 2018 Amdocs
+ * ============================================================================
+ * 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.
+ * ============LICENSE_END=====================================================
+ */
+
+package org.onap.pomba.common.datatypes;
+
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+import java.util.ArrayList;
+import java.util.List;
+
+public class PInterface {
+ @Expose
+ @SerializedName("uuid")
+ private String uuid;
+ @Expose
+ @SerializedName("name")
+ private String name;
+ @Expose
+ @SerializedName("dataQuality")
+ private DataQuality dataQuality = DataQuality.ok();
+ @Expose
+ @SerializedName("attributeList")
+ private List<Attribute> attributeList = new ArrayList<>();
+ @Expose
+ @SerializedName("physicalLinkList")
+ private List<PhysicalLink> physicalLinkList = new ArrayList<>();
+ @Expose
+ @SerializedName("port")
+ private Port port;
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getUuid() {
+ return uuid;
+ }
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
+ public List<Attribute> getAttributes() {
+ return attributeList;
+ }
+ public void setAttributes(List<Attribute> attributeList) {
+ this.attributeList = attributeList;
+ }
+ public void addAttribute(Attribute attribute) {
+ this.attributeList.add(attribute);
+ }
+ public DataQuality getDataQuality() {
+ return dataQuality;
+ }
+ public void setDataQuality(DataQuality dataQuality) {
+ this.dataQuality = dataQuality;
+ }
+
+ public List<PhysicalLink> getPhysicalLinkList() {
+ return physicalLinkList;
+ }
+
+ public void setPhysicalLinkList(List<PhysicalLink> physicalLinkList) {
+ this.physicalLinkList = physicalLinkList;
+ }
+
+ public Port getPort() {
+ return port;
+ }
+
+ public void setPort(Port port) {
+ this.port = port;
+ }
+
+
+
+}
diff --git a/src/main/java/org/onap/pomba/common/datatypes/PNF.java b/src/main/java/org/onap/pomba/common/datatypes/PNF.java
new file mode 100644
index 0000000..1aa6836
--- /dev/null
+++ b/src/main/java/org/onap/pomba/common/datatypes/PNF.java
@@ -0,0 +1,83 @@
+/*
+ * ============LICENSE_START===================================================
+ * Copyright (c) 2018 Amdocs
+ * ============================================================================
+ * 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.
+ * ============LICENSE_END=====================================================
+ */
+
+package org.onap.pomba.common.datatypes;
+
+import java.util.ArrayList;
+import java.util.List;
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+
+public class PNF {
+
+ @Expose
+ @SerializedName("uuid")
+ private String uuid;
+ @Expose
+ @SerializedName("name")
+ private String name;
+ @Expose
+ @SerializedName("modelVersionID")
+ private String modelVersionID;
+ @Expose
+ @SerializedName("modelInvariantUUID")
+ private String modelInvariantUUID;
+ @Expose
+ @SerializedName("dataQuality")
+ private DataQuality dataQuality = DataQuality.ok();
+ @Expose
+ @SerializedName("attributeList")
+ private List<Attribute> attributeList = new ArrayList<>();
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getUuid() {
+ return uuid;
+ }
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
+ public List<Attribute> getAttributes() {
+ return attributeList;
+ }
+ public void setAttributes(List<Attribute> attributeList) {
+ this.attributeList = attributeList;
+ }
+ public void addAttribute(Attribute attribute) {
+ this.attributeList.add(attribute);
+ }
+ public DataQuality getDataQuality() {
+ return dataQuality;
+ }
+ public void setDataQuality(DataQuality dataQuality) { this.dataQuality = dataQuality; }
+ public String getModelVersionID() { return modelVersionID; }
+ public void setModelVersionID(String modelVersionID) { this.modelVersionID = modelVersionID; }
+
+ public String getModelInvariantUUID() {
+ return modelInvariantUUID;
+ }
+
+ public void setModelInvariantUUID(String modelInvariantUUID) {
+ this.modelInvariantUUID = modelInvariantUUID;
+ }
+
+}
diff --git a/src/main/java/org/onap/pomba/common/datatypes/PhysicalLink.java b/src/main/java/org/onap/pomba/common/datatypes/PhysicalLink.java
new file mode 100644
index 0000000..e89a1de
--- /dev/null
+++ b/src/main/java/org/onap/pomba/common/datatypes/PhysicalLink.java
@@ -0,0 +1,72 @@
+/*
+ * ============LICENSE_START===================================================
+ * Copyright (c) 2018 Amdocs
+ * ============================================================================
+ * 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.
+ * ============LICENSE_END=====================================================
+ */
+
+package org.onap.pomba.common.datatypes;
+
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+import java.util.ArrayList;
+import java.util.List;
+
+public class PhysicalLink {
+
+ @Expose
+ @SerializedName("uuid")
+ private String uuid;
+ @Expose
+ @SerializedName("name")
+ private String name;
+ @Expose
+ @SerializedName("dataQuality")
+ private DataQuality dataQuality = DataQuality.ok();
+ @Expose
+ @SerializedName("attributeList")
+ private List<Attribute> attributeList = new ArrayList<>();
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getUuid() {
+ return uuid;
+ }
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
+ public List<Attribute> getAttributes() {
+ return attributeList;
+ }
+ public void setAttributes(List<Attribute> attributeList) {
+ this.attributeList = attributeList;
+ }
+ public void addAttribute(Attribute attribute) {
+ this.attributeList.add(attribute);
+ }
+ public DataQuality getDataQuality() {
+ return dataQuality;
+ }
+ public void setDataQuality(DataQuality dataQuality) {
+ this.dataQuality = dataQuality;
+ }
+
+
+
+}
+
diff --git a/src/main/java/org/onap/pomba/common/datatypes/Port.java b/src/main/java/org/onap/pomba/common/datatypes/Port.java
new file mode 100644
index 0000000..bced3b7
--- /dev/null
+++ b/src/main/java/org/onap/pomba/common/datatypes/Port.java
@@ -0,0 +1,71 @@
+/*
+ * ============LICENSE_START===================================================
+ * Copyright (c) 2018 Amdocs
+ * ============================================================================
+ * 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.
+ * ============LICENSE_END=====================================================
+ */
+
+package org.onap.pomba.common.datatypes;
+
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+import java.util.ArrayList;
+import java.util.List;
+
+public class Port {
+ @Expose
+ @SerializedName("uuid")
+ private String uuid;
+ @Expose
+ @SerializedName("name")
+ private String name;
+ @Expose
+ @SerializedName("dataQuality")
+ private DataQuality dataQuality = DataQuality.ok();
+ @Expose
+ @SerializedName("attributeList")
+ private List<Attribute> attributeList = new ArrayList<>();
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getUuid() {
+ return uuid;
+ }
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
+ public List<Attribute> getAttributes() {
+ return attributeList;
+ }
+ public void setAttributes(List<Attribute> attributeList) {
+ this.attributeList = attributeList;
+ }
+ public void addAttribute(Attribute attribute) {
+ this.attributeList.add(attribute);
+ }
+ public DataQuality getDataQuality() {
+ return dataQuality;
+ }
+ public void setDataQuality(DataQuality dataQuality) {
+ this.dataQuality = dataQuality;
+ }
+
+
+
+}
+
diff --git a/src/main/java/org/onap/pomba/common/datatypes/Pserver.java b/src/main/java/org/onap/pomba/common/datatypes/Pserver.java
new file mode 100644
index 0000000..ad04bad
--- /dev/null
+++ b/src/main/java/org/onap/pomba/common/datatypes/Pserver.java
@@ -0,0 +1,89 @@
+/*
+ * ============LICENSE_START===================================================
+ * Copyright (c) 2018 Amdocs
+ * ============================================================================
+ * 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.
+ * ============LICENSE_END=====================================================
+ */
+
+package org.onap.pomba.common.datatypes;
+
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+import java.util.ArrayList;
+import java.util.List;
+
+public class Pserver {
+ @Expose
+ @SerializedName("uuid")
+ private String uuid;
+ @Expose
+ @SerializedName("name")
+ private String name;
+ @Expose
+ @SerializedName("dataQuality")
+ private DataQuality dataQuality = DataQuality.ok();
+ @Expose
+ @SerializedName("attributeList")
+ private List<Attribute> attributeList = new ArrayList<>();
+ @Expose
+ @SerializedName("pInterfaceList")
+ private List<PInterface> pInterfaceList = new ArrayList<>();
+ @Expose
+ @SerializedName("logicalLinkList")
+ private List<LogicalLink> logicalLinkList = new ArrayList<>();
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getUuid() {
+ return uuid;
+ }
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
+ public List<Attribute> getAttributes() {
+ return attributeList;
+ }
+ public void setAttributes(List<Attribute> attributeList) {
+ this.attributeList = attributeList;
+ }
+ public void addAttribute(Attribute attribute) {
+ this.attributeList.add(attribute);
+ }
+ public DataQuality getDataQuality() {
+ return dataQuality;
+ }
+ public void setDataQuality(DataQuality dataQuality) {
+ this.dataQuality = dataQuality;
+ }
+ public List<PInterface> getPInterfaceList() {
+ return pInterfaceList;
+ }
+ public void setPInterfaceList(List<PInterface> pInterfaceList) {
+ this.pInterfaceList = pInterfaceList;
+ }
+
+ public List<LogicalLink> getLogicalLinkList() {
+ return logicalLinkList;
+ }
+
+ public void setLogicalLinkList(List<LogicalLink> logicalLinkList) {
+ this.logicalLinkList = logicalLinkList;
+ }
+
+
+}
diff --git a/src/main/java/org/onap/pomba/common/datatypes/Service.java b/src/main/java/org/onap/pomba/common/datatypes/Service.java
index 1579434..b18c792 100644
--- a/src/main/java/org/onap/pomba/common/datatypes/Service.java
+++ b/src/main/java/org/onap/pomba/common/datatypes/Service.java
@@ -26,14 +26,17 @@ import java.util.List;
public class Service {
@Expose
+ @SerializedName("uuid")
+ private String uuid;
+ @Expose
@SerializedName("name")
private String name;
@Expose
- @SerializedName("invariantUUID")
- private String invariantUuid;
+ @SerializedName("modelVersionID")
+ private String modelVersionID;
@Expose
- @SerializedName("uuid")
- private String uuid;
+ @SerializedName("modelInvariantUUID")
+ private String modelInvariantUUID;
@Expose
@SerializedName("dataQuality")
private DataQuality dataQuality = DataQuality.ok();
@@ -47,12 +50,6 @@ public class Service {
public void setName(String name) {
this.name = name;
}
- public String getInvariantUuid() {
- return invariantUuid;
- }
- public void setInvariantUuid(String invariantUuid) {
- this.invariantUuid = invariantUuid;
- }
public String getUuid() {
return uuid;
}
@@ -71,7 +68,15 @@ public class Service {
public void setAttributes(List<Attribute> attributeList) {
this.attributeList = attributeList;
}
- public void addAttribute(Attribute attribute) {
- this.attributeList.add(attribute);
+ public String getModelVersionID() { return modelVersionID; }
+ public void setModelVersionID(String modelVersionID) { this.modelVersionID = modelVersionID; }
+
+ public String getModelInvariantUUID() {
+ return modelInvariantUUID;
}
+
+ public void setModelInvariantUUID(String modelInvariantUUID) {
+ this.modelInvariantUUID = modelInvariantUUID;
+ }
+
}
diff --git a/src/main/java/org/onap/pomba/common/datatypes/VFModule.java b/src/main/java/org/onap/pomba/common/datatypes/VFModule.java
index 9d19dc0..3ea8ede 100644
--- a/src/main/java/org/onap/pomba/common/datatypes/VFModule.java
+++ b/src/main/java/org/onap/pomba/common/datatypes/VFModule.java
@@ -26,14 +26,20 @@ import java.util.List;
public class VFModule {
@Expose
+ @SerializedName("uuid")
+ private String uuid;
+ @Expose
@SerializedName("name")
private String name;
@Expose
- @SerializedName("invariantUUID")
- private String invariantUuid;
+ @SerializedName("modelVersionID")
+ private String modelVersionID;
@Expose
- @SerializedName("uuid")
- private String uuid;
+ @SerializedName("modelInvariantUUID")
+ private String modelInvariantUUID;
+ @Expose
+ @SerializedName("modelCustomizationUUID")
+ private String modelCustomizationUUID;
@Expose
@SerializedName("maxInstances")
private int maxInstances;
@@ -60,12 +66,6 @@ public class VFModule {
public void setName(String name) {
this.name = name;
}
- public String getInvariantUuid() {
- return invariantUuid;
- }
- public void setInvariantUuid(String invariantUuid) {
- this.invariantUuid = invariantUuid;
- }
public String getUuid() {
return uuid;
}
@@ -117,4 +117,18 @@ public class VFModule {
public void setDataQuality(DataQuality dataQuality) {
this.dataQuality = dataQuality;
}
+ public String getModelVersionID() { return modelVersionID; }
+ public void setModelVersionID(String modelVersionID) { this.modelVersionID = modelVersionID; }
+ public String getModelCustomizationUUID() { return modelCustomizationUUID; }
+ public void setModelCustomizationUUID(String modelCustomizationUUID) { this.modelCustomizationUUID = modelCustomizationUUID; }
+
+ public String getModelInvariantUUID() {
+ return modelInvariantUUID;
+ }
+
+ public void setModelInvariantUUID(String modelInvariantUUID) {
+ this.modelInvariantUUID = modelInvariantUUID;
+ }
+
+
}
diff --git a/src/main/java/org/onap/pomba/common/datatypes/VM.java b/src/main/java/org/onap/pomba/common/datatypes/VM.java
index 0b4be65..1371e07 100644
--- a/src/main/java/org/onap/pomba/common/datatypes/VM.java
+++ b/src/main/java/org/onap/pomba/common/datatypes/VM.java
@@ -25,23 +25,23 @@ import java.util.List;
public class VM {
@Expose
- @SerializedName("name")
- private String name;
- @Expose
- @SerializedName("invariantUUID")
- private String invariantUuid;
- @Expose
@SerializedName("uuid")
private String uuid;
@Expose
- @SerializedName("nfNamingCode")
- private String nfcNamingCode;
+ @SerializedName("name")
+ private String name;
@Expose
@SerializedName("dataQuality")
private DataQuality dataQuality = DataQuality.ok();
@Expose
@SerializedName("attributeList")
private List<Attribute> attributeList = new ArrayList<>();
+ @Expose
+ @SerializedName("pServer")
+ private Pserver pServer = new Pserver();
+ @Expose
+ @SerializedName("lInterfaceList")
+ private List<LInterface> lInterfaceList = new ArrayList<>();
public String getName() {
return name;
@@ -49,24 +49,12 @@ public class VM {
public void setName(String name) {
this.name = name;
}
- public String getInvariantUuid() {
- return invariantUuid;
- }
- public void setInvariantUuid(String invariantUuid) {
- this.invariantUuid = invariantUuid;
- }
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
- public String getNfcNamingCode() {
- return nfcNamingCode;
- }
- public void setNfcNamingCode(String nfcType) {
- this.nfcNamingCode = nfcType;
- }
public List<Attribute> getAttributes() {
return attributeList;
}
@@ -83,4 +71,22 @@ public class VM {
this.dataQuality = dataQuality;
}
+ public Pserver getPServer() {
+ return pServer;
+ }
+
+ public void setPServer(Pserver pServer) {
+ this.pServer = pServer;
+ }
+
+ public List<LInterface> getLInterfaceList() {
+ return lInterfaceList;
+ }
+
+ public void setLInterfaceList(List<LInterface> lInterfaceList) {
+ this.lInterfaceList = lInterfaceList;
+ }
+
+
+
}
diff --git a/src/main/java/org/onap/pomba/common/datatypes/VF.java b/src/main/java/org/onap/pomba/common/datatypes/VNF.java
index ded7ae2..49db2f9 100644
--- a/src/main/java/org/onap/pomba/common/datatypes/VF.java
+++ b/src/main/java/org/onap/pomba/common/datatypes/VNF.java
@@ -1,111 +1,128 @@
-/*
- * ============LICENSE_START===================================================
- * Copyright (c) 2018 Amdocs
- * ============================================================================
- * 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.
- * ============LICENSE_END=====================================================
- */
-
-package org.onap.pomba.common.datatypes;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.google.gson.annotations.Expose;
-import com.google.gson.annotations.SerializedName;
-
-public class VF {
-
- @Expose
- @SerializedName("name")
- private String name;
- @Expose
- @SerializedName("type")
- private String type;
- @Expose
- @SerializedName("invariantUUID")
- private String invariantUuid;
- @Expose
- @SerializedName("uuid")
- private String uuid;
- @Expose
- @SerializedName("dataQuality")
- private DataQuality dataQuality = DataQuality.ok();
- @Expose
- @SerializedName("attributeList")
- private List<Attribute> attributeList = new ArrayList<>();
- @Expose
- @SerializedName("vfModuleList")
- private List<VFModule> vfModules = new ArrayList<>();
- @Expose
- @SerializedName("vnfcList")
- private List<VNFC> vnfcs = new ArrayList<>();
-
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getType() {
- return type;
- }
- public void setType(String type) {
- this.type = type;
- }
- public String getInvariantUuid() {
- return invariantUuid;
- }
- public void setInvariantUuid(String invariantUuid) {
- this.invariantUuid = invariantUuid;
- }
- public String getUuid() {
- return uuid;
- }
- public void setUuid(String uuid) {
- this.uuid = uuid;
- }
- public List<VFModule> getVfModules() {
- return vfModules;
- }
- public void setVfModules(List<VFModule> vfModules) {
- this.vfModules = vfModules;
- }
- public void addVfModule(VFModule vfModule) {
- this.vfModules.add(vfModule);
- }
- public List<VNFC> getVnfcs() {
- return vnfcs;
- }
- public void setVnfcs(List<VNFC> vnfc) {
- this.vnfcs = vnfc;
- }
- public void addVnfc(VNFC vnfc) {
- this.vnfcs.add(vnfc);
- }
- public List<Attribute> getAttributes() {
- return attributeList;
- }
- public void setAttributes(List<Attribute> attributeList) {
- this.attributeList = attributeList;
- }
- public void addAttribute(Attribute attribute) {
- this.attributeList.add(attribute);
- }
- public DataQuality getDataQuality() {
- return dataQuality;
- }
- public void setDataQuality(DataQuality dataQuality) {
- this.dataQuality = dataQuality;
- }
-}
+/*
+ * ============LICENSE_START===================================================
+ * Copyright (c) 2018 Amdocs
+ * ============================================================================
+ * 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.
+ * ============LICENSE_END=====================================================
+ */
+
+package org.onap.pomba.common.datatypes;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+
+public class VNF {
+
+ @Expose
+ @SerializedName("uuid")
+ private String uuid;
+ @Expose
+ @SerializedName("name")
+ private String name;
+ @Expose
+ @SerializedName("type")
+ private String type;
+ @Expose
+ @SerializedName("modelVersionID")
+ private String modelVersionID;
+ @Expose
+ @SerializedName("modelInvariantUUID")
+ private String modelInvariantUUID;
+ @Expose
+ @SerializedName("dataQuality")
+ private DataQuality dataQuality = DataQuality.ok();
+ @Expose
+ @SerializedName("attributeList")
+ private List<Attribute> attributeList = new ArrayList<>();
+ @Expose
+ @SerializedName("vfModuleList")
+ private List<VFModule> vfModules = new ArrayList<>();
+ @Expose
+ @SerializedName("vnfcList")
+ private List<VNFC> vnfcs = new ArrayList<>();
+ @Expose
+ @SerializedName("networkList")
+ private List<Network> networks = new ArrayList<>();
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getType() {
+ return type;
+ }
+ public void setType(String type) {
+ this.type = type;
+ }
+ public String getUuid() {
+ return uuid;
+ }
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
+ public List<VFModule> getVfModules() {
+ return vfModules;
+ }
+ public void setVfModules(List<VFModule> vfModules) {
+ this.vfModules = vfModules;
+ }
+ public void addVfModule(VFModule vfModule) {
+ this.vfModules.add(vfModule);
+ }
+ public List<VNFC> getVnfcs() {
+ return vnfcs;
+ }
+ public void setVnfcs(List<VNFC> vnfc) {
+ this.vnfcs = vnfc;
+ }
+ public void addVnfc(VNFC vnfc) {
+ this.vnfcs.add(vnfc);
+ }
+ public List<Attribute> getAttributes() {
+ return attributeList;
+ }
+ public void setAttributes(List<Attribute> attributeList) {
+ this.attributeList = attributeList;
+ }
+ public void addAttribute(Attribute attribute) {
+ this.attributeList.add(attribute);
+ }
+ public DataQuality getDataQuality() {
+ return dataQuality;
+ }
+ public void setDataQuality(DataQuality dataQuality) { this.dataQuality = dataQuality; }
+ public String getModelVersionID() { return modelVersionID; }
+ public void setModelVersionID(String modelVersionID) { this.modelVersionID = modelVersionID; }
+
+ public String getModelInvariantUUID() {
+ return modelInvariantUUID;
+ }
+
+ public void setModelInvariantUUID(String modelInvariantUUID) {
+ this.modelInvariantUUID = modelInvariantUUID;
+ }
+
+ public List<Network> getNetworks() {
+ return networks;
+ }
+
+ public void setNetworks(List<Network> networks) {
+ this.networks = networks;
+ }
+
+}
diff --git a/src/main/java/org/onap/pomba/common/datatypes/VNFC.java b/src/main/java/org/onap/pomba/common/datatypes/VNFC.java
index dd697d8..f05b1cf 100644
--- a/src/main/java/org/onap/pomba/common/datatypes/VNFC.java
+++ b/src/main/java/org/onap/pomba/common/datatypes/VNFC.java
@@ -26,17 +26,17 @@ import java.util.List;
public class VNFC {
@Expose
+ @SerializedName("uuid")
+ private String uuid;
+ @Expose
@SerializedName("name")
private String name;
@Expose
- @SerializedName("invariantUUID")
- private String invariantUuid;
+ @SerializedName("modelVersionID")
+ private String modelVersionID;
@Expose
- @SerializedName("uuid")
- private String uuid;
- @Expose
- @SerializedName("type")
- private String type;
+ @SerializedName("modelInvariantUUID")
+ private String modelInvariantUUID;
@Expose
@SerializedName("dataQuality")
private DataQuality dataQuality = DataQuality.ok();
@@ -50,24 +50,12 @@ public class VNFC {
public void setName(String name) {
this.name = name;
}
- public String getInvariantUuid() {
- return invariantUuid;
- }
- public void setInvariantUuid(String invariantUuid) {
- this.invariantUuid = invariantUuid;
- }
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
- public String getType() {
- return type;
- }
- public void setType(String type) {
- this.type = type;
- }
public List<Attribute> getAttributes() {
return attributeList;
}
@@ -83,4 +71,19 @@ public class VNFC {
public void setDataQuality(DataQuality dataQuality) {
this.dataQuality = dataQuality;
}
+ public String getModelVersionID() {
+ return modelVersionID;
+ }
+ public void setModelVersionID(String modelVersionID) {
+ this.modelVersionID = modelVersionID;
+ }
+
+ public String getModelInvariantUUID() {
+ return modelInvariantUUID;
+ }
+
+ public void setModelInvariantUUID(String modelInvariantUUID) {
+ this.modelInvariantUUID = modelInvariantUUID;
+ }
+
}
diff --git a/src/main/java/org/onap/pomba/common/resource/AuditResource.java b/src/main/java/org/onap/pomba/common/resource/AuditResource.java
new file mode 100644
index 0000000..03058ed
--- /dev/null
+++ b/src/main/java/org/onap/pomba/common/resource/AuditResource.java
@@ -0,0 +1,66 @@
+/*
+ * ============LICENSE_START===================================================
+ * Copyright (c) 2018 Amdocs
+ * ============================================================================
+ * 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.
+ * ============LICENSE_END=====================================================
+ */
+
+package org.onap.pomba.common.resource;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import io.swagger.annotations.ApiParam;
+import org.onap.pomba.common.datatypes.ModelContext;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+
+@Api
+@Path("/service")
+@Produces({MediaType.APPLICATION_JSON})
+public class AuditResource {
+
+
+ @GET
+ @Path("/context")
+ @Produces({ MediaType.APPLICATION_JSON })
+ @ApiOperation(
+ value = "Get Common model context from Context Builder",
+ response = ModelContext.class)
+ @ApiResponses(value = {
+ @ApiResponse(code = 404, message = "Service not available"),
+ @ApiResponse(code = 400, message = "Bad request"),
+ @ApiResponse(code = 401, message = "Unauthorized"),
+ @ApiResponse(code = 500, message = "Unexpected Runtime error") })
+
+ public ModelContext getContext(
+ @ApiParam(value = "ID that identifies calling application", required = true) @HeaderParam("X-FromAppId") String xFromAppId,
+ @ApiParam(value = "Transaction ID published by the calling application", required = false) @HeaderParam("X-TransactionId") String xTransactionId,
+ @ApiParam(value = "Instance ID of the audited service", required = true) @QueryParam("serviceInstanceId") String serviceInstanceId,
+ @ApiParam(value = "Unique identifier of a SDC model version", required = false) @QueryParam("modelVersionId") String modelVersionId,
+ @ApiParam(value = "Global identifier of each SDC asset", required = false) @QueryParam("modelInvariantId") String modelInvariantId
+ )
+
+ {
+ return null;
+ }
+
+
+}
diff --git a/src/main/resources/commonModel.html b/src/main/resources/commonModel.html
new file mode 100644
index 0000000..3723c3b
--- /dev/null
+++ b/src/main/resources/commonModel.html
@@ -0,0 +1,1741 @@
+<!DOCTYPE html>
+<html>
+<title>API Document</title>
+
+<xmp theme="united" style="display:none;">
+#Swagger Specification for POMBA Common Model
+
+
+## HTTP://host:port/XXXcontextbuilder
+
+
+POMBA Audit Context Builder API
+
+
+
+**Version** 1.4.0-SNAPSHOT
+
+[**Terms of Service**]()
+
+
+
+
+
+
+
+
+
+
+
+
+# APIs
+
+
+## /service/context
+
+
+### GET
+
+<a id="getContext">Get Common model context from Context Builder</a>
+
+
+
+
+
+
+
+
+
+#### Request
+
+
+
+##### Parameters
+
+<table border="1">
+ <tr>
+ <th>Name</th>
+ <th>Located in</th>
+ <th>Required</th>
+ <th>Description</th>
+ <th>Default</th>
+ <th>Schema</th>
+ </tr>
+
+
+
+<tr>
+ <th>X-FromAppId</th>
+ <td>header</td>
+ <td>yes</td>
+ <td>
+ ID that identifies calling application
+
+ </td>
+ <td> - </td>
+
+
+ <td>string </td>
+
+
+</tr>
+
+<tr>
+ <th>X-TransactionId</th>
+ <td>header</td>
+ <td>no</td>
+ <td>
+ Transaction ID published by the calling application
+
+ </td>
+ <td> - </td>
+
+
+ <td>string </td>
+
+
+</tr>
+
+<tr>
+ <th>serviceInstanceId</th>
+ <td>query</td>
+ <td>yes</td>
+ <td>
+ Instance ID of the audited service
+
+ </td>
+ <td> - </td>
+
+
+ <td>string </td>
+
+
+</tr>
+
+<tr>
+ <th>modelVersionId</th>
+ <td>query</td>
+ <td>no</td>
+ <td>
+ Unique identifier of a SDC model version
+
+ </td>
+ <td> - </td>
+
+
+ <td>string </td>
+
+
+</tr>
+
+<tr>
+ <th>modelInvariantId</th>
+ <td>query</td>
+ <td>no</td>
+ <td>
+ Global identifier of each SDC asset
+
+ </td>
+ <td> - </td>
+
+
+ <td>string </td>
+
+
+</tr>
+
+
+</table>
+
+
+
+#### Response
+
+**Content-Type: ** application/json
+
+
+| Status Code | Reason | Response Model |
+|-------------|-------------|----------------|
+| 200 | successful operation | <a href="#/definitions/ModelContext">ModelContext</a>|
+| 400 | Bad request | - |
+| 401 | Unauthorized | - |
+| 404 | Service not available | - |
+| 500 | Unexpected Runtime error | - |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Definitions
+
+## <a name="/definitions/Attribute">Attribute</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+
+ <tr>
+ <td>name</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>Name of the attribute</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>value</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>Value of the attribute</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>dataQuality</td>
+ <td>
+
+ <a href="#/definitions/DataQuality">DataQuality</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>Data Quality indicator of the attribute</td>
+ <td></td>
+ </tr>
+
+</table>
+
+## <a name="/definitions/DataQuality">DataQuality</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+
+ <tr>
+ <td>status</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>errorText</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+</table>
+
+## <a name="/definitions/LInterface">LInterface</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+
+ <tr>
+ <td>uuid</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>name</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>dataQuality</td>
+ <td>
+
+ <a href="#/definitions/DataQuality">DataQuality</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>port</td>
+ <td>
+
+ <a href="#/definitions/Port">Port</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>attributes</td>
+ <td>
+
+
+ array[<a href="#/definitions/Attribute">Attribute</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+</table>
+
+## <a name="/definitions/LogicalLink">LogicalLink</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+
+ <tr>
+ <td>uuid</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>name</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>modelVersionID</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>modelInvariantUUID</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>dataQuality</td>
+ <td>
+
+ <a href="#/definitions/DataQuality">DataQuality</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>attributes</td>
+ <td>
+
+
+ array[<a href="#/definitions/Attribute">Attribute</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+</table>
+
+## <a name="/definitions/ModelContext">ModelContext</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+
+ <tr>
+ <td>service</td>
+ <td>
+
+ <a href="#/definitions/Service">Service</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>Service object of the model</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>dataQuality</td>
+ <td>
+
+ <a href="#/definitions/DataQuality">DataQuality</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>Data Quality indicator</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>networkList</td>
+ <td>
+
+
+ array[<a href="#/definitions/Network">Network</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>List of networks associated with the service instance</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>attributes</td>
+ <td>
+
+
+ array[<a href="#/definitions/Attribute">Attribute</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>List of attributes</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>pnfs</td>
+ <td>
+
+
+ array[<a href="#/definitions/PNF">PNF</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>List of PNF associated with the service instance</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>vnfs</td>
+ <td>
+
+
+ array[<a href="#/definitions/VNF">VNF</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>List of VNF associated with the service instance</td>
+ <td></td>
+ </tr>
+
+</table>
+
+## <a name="/definitions/Network">Network</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+
+ <tr>
+ <td>uuid</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>name</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>modelVersionID</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>modelInvariantUUID</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>dataQuality</td>
+ <td>
+
+ <a href="#/definitions/DataQuality">DataQuality</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>networkPolicies</td>
+ <td>
+
+
+ array[<a href="#/definitions/NetworkPolicy">NetworkPolicy</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>attributes</td>
+ <td>
+
+
+ array[<a href="#/definitions/Attribute">Attribute</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+</table>
+
+## <a name="/definitions/NetworkPolicy">NetworkPolicy</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+
+ <tr>
+ <td>uuid</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>name</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>dataQuality</td>
+ <td>
+
+ <a href="#/definitions/DataQuality">DataQuality</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>attributes</td>
+ <td>
+
+
+ array[<a href="#/definitions/Attribute">Attribute</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+</table>
+
+## <a name="/definitions/PInterface">PInterface</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+
+ <tr>
+ <td>uuid</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>name</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>dataQuality</td>
+ <td>
+
+ <a href="#/definitions/DataQuality">DataQuality</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>physicalLinkList</td>
+ <td>
+
+
+ array[<a href="#/definitions/PhysicalLink">PhysicalLink</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>port</td>
+ <td>
+
+ <a href="#/definitions/Port">Port</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>attributes</td>
+ <td>
+
+
+ array[<a href="#/definitions/Attribute">Attribute</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+</table>
+
+## <a name="/definitions/PNF">PNF</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+
+ <tr>
+ <td>uuid</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>name</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>modelVersionID</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>modelInvariantUUID</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>dataQuality</td>
+ <td>
+
+ <a href="#/definitions/DataQuality">DataQuality</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>attributes</td>
+ <td>
+
+
+ array[<a href="#/definitions/Attribute">Attribute</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+</table>
+
+## <a name="/definitions/PhysicalLink">PhysicalLink</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+
+ <tr>
+ <td>uuid</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>name</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>dataQuality</td>
+ <td>
+
+ <a href="#/definitions/DataQuality">DataQuality</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>attributes</td>
+ <td>
+
+
+ array[<a href="#/definitions/Attribute">Attribute</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+</table>
+
+## <a name="/definitions/Port">Port</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+
+ <tr>
+ <td>uuid</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>name</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>dataQuality</td>
+ <td>
+
+ <a href="#/definitions/DataQuality">DataQuality</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>attributes</td>
+ <td>
+
+
+ array[<a href="#/definitions/Attribute">Attribute</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+</table>
+
+## <a name="/definitions/Pserver">Pserver</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+
+ <tr>
+ <td>uuid</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>name</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>dataQuality</td>
+ <td>
+
+ <a href="#/definitions/DataQuality">DataQuality</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>logicalLinkList</td>
+ <td>
+
+
+ array[<a href="#/definitions/LogicalLink">LogicalLink</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>attributes</td>
+ <td>
+
+
+ array[<a href="#/definitions/Attribute">Attribute</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>pinterfaceList</td>
+ <td>
+
+
+ array[<a href="#/definitions/PInterface">PInterface</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+</table>
+
+## <a name="/definitions/Service">Service</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+
+ <tr>
+ <td>uuid</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>name</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>modelVersionID</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>modelInvariantUUID</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>dataQuality</td>
+ <td>
+
+ <a href="#/definitions/DataQuality">DataQuality</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>attributes</td>
+ <td>
+
+
+ array[<a href="#/definitions/Attribute">Attribute</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+</table>
+
+## <a name="/definitions/VFModule">VFModule</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+
+ <tr>
+ <td>uuid</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>name</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>modelVersionID</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>modelInvariantUUID</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>modelCustomizationUUID</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>maxInstances</td>
+ <td>
+
+
+ integer (int32)
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>minInstances</td>
+ <td>
+
+
+ integer (int32)
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>dataQuality</td>
+ <td>
+
+ <a href="#/definitions/DataQuality">DataQuality</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>vms</td>
+ <td>
+
+
+ array[<a href="#/definitions/VM">VM</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>networks</td>
+ <td>
+
+
+ array[<a href="#/definitions/Network">Network</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>attributes</td>
+ <td>
+
+
+ array[<a href="#/definitions/Attribute">Attribute</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+</table>
+
+## <a name="/definitions/VM">VM</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+
+ <tr>
+ <td>uuid</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>name</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>dataQuality</td>
+ <td>
+
+ <a href="#/definitions/DataQuality">DataQuality</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>attributes</td>
+ <td>
+
+
+ array[<a href="#/definitions/Attribute">Attribute</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>linterfaceList</td>
+ <td>
+
+
+ array[<a href="#/definitions/LInterface">LInterface</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>pserver</td>
+ <td>
+
+ <a href="#/definitions/Pserver">Pserver</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+</table>
+
+## <a name="/definitions/VNF">VNF</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+
+ <tr>
+ <td>uuid</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>name</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>type</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>modelVersionID</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>modelInvariantUUID</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>dataQuality</td>
+ <td>
+
+ <a href="#/definitions/DataQuality">DataQuality</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>vfModules</td>
+ <td>
+
+
+ array[<a href="#/definitions/VFModule">VFModule</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>vnfcs</td>
+ <td>
+
+
+ array[<a href="#/definitions/VNFC">VNFC</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>networks</td>
+ <td>
+
+
+ array[<a href="#/definitions/Network">Network</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>attributes</td>
+ <td>
+
+
+ array[<a href="#/definitions/Attribute">Attribute</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+</table>
+
+## <a name="/definitions/VNFC">VNFC</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+
+ <tr>
+ <td>uuid</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>name</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>modelVersionID</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>modelInvariantUUID</td>
+ <td>
+
+
+ string
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>dataQuality</td>
+ <td>
+
+ <a href="#/definitions/DataQuality">DataQuality</a>
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>attributes</td>
+ <td>
+
+
+ array[<a href="#/definitions/Attribute">Attribute</a>]
+
+
+
+ </td>
+ <td>optional</td>
+ <td>-</td>
+ <td></td>
+ </tr>
+
+</table>
+
+
+
+</xmp>
+
+<script src="http://strapdownjs.com/v/0.2/strapdown.js"></script>
+</html> \ No newline at end of file
diff --git a/src/main/resources/markdown.hbs b/src/main/resources/markdown.hbs
new file mode 100644
index 0000000..d1375ac
--- /dev/null
+++ b/src/main/resources/markdown.hbs
@@ -0,0 +1,108 @@
+#{{#info}}{{title}}
+
+
+## {{join schemes " | "}}://{{host}}{{basePath}}
+
+
+{{description}}
+
+{{#contact}}
+[**Contact the developer**](mailto:{{email}})
+{{/contact}}
+
+**Version** {{version}}
+
+[**Terms of Service**]({{termsOfService}})
+
+{{#license}}[**{{name}}**]({{url}}){{/license}}
+
+{{/info}}
+
+{{#if consumes}}**Consumes:** {{join consumes ", "}}{{/if}}
+
+{{#if produces}}**Produces:** {{join produces ", "}}{{/if}}
+
+{{#if securityDefinitions}}
+# Security Definitions
+{{/if}}
+{{> security}}
+
+# APIs
+
+{{#each paths}}
+## {{@key}}
+{{#this}}
+{{#get}}
+### GET
+{{> operation}}
+{{/get}}
+
+{{#put}}
+### PUT
+{{> operation}}
+{{/put}}
+
+{{#post}}
+### POST
+
+{{> operation}}
+
+{{/post}}
+
+{{#delete}}
+### DELETE
+{{> operation}}
+{{/delete}}
+
+{{#option}}
+### OPTION
+{{> operation}}
+{{/option}}
+
+{{#patch}}
+### PATCH
+{{> operation}}
+{{/patch}}
+
+{{#head}}
+### HEAD
+{{> operation}}
+{{/head}}
+
+{{/this}}
+{{/each}}
+
+# Definitions
+{{#each definitions}}
+## <a name="/definitions/{{@key}}">{{@key}}</a>
+
+<table border="1">
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>required</th>
+ <th>description</th>
+ <th>example</th>
+ </tr>
+ {{#each this.properties}}
+ <tr>
+ <td>{{@key}}</td>
+ <td>
+ {{#ifeq type "array"}}
+ {{#items.$ref}}
+ {{type}}[<a href="{{items.$ref}}">{{basename items.$ref}}</a>]
+ {{/items.$ref}}
+ {{^items.$ref}}{{type}}[{{items.type}}]{{/items.$ref}}
+ {{else}}
+ {{#$ref}}<a href="{{$ref}}">{{basename $ref}}</a>{{/$ref}}
+ {{^$ref}}{{type}}{{#format}} ({{format}}){{/format}}{{/$ref}}
+ {{/ifeq}}
+ </td>
+ <td>{{#required}}required{{/required}}{{^required}}optional{{/required}}</td>
+ <td>{{#description}}{{{description}}}{{/description}}{{^description}}-{{/description}}</td>
+ <td>{{example}}</td>
+ </tr>
+ {{/each}}
+</table>
+{{/each}}
+
diff --git a/src/main/resources/operation.hbs b/src/main/resources/operation.hbs
new file mode 100644
index 0000000..3d7d88e
--- /dev/null
+++ b/src/main/resources/operation.hbs
@@ -0,0 +1,80 @@
+{{#deprecated}}-deprecated-{{/deprecated}}
+<a id="{{operationId}}">{{summary}}</a>
+
+{{description}}
+
+{{#if externalDocs.url}}{{externalDocs.description}}. [See external documents for more details]({{externalDocs.url}})
+{{/if}}
+
+{{#if security}}
+#### Security
+{{/if}}
+
+{{#security}}
+{{#each this}}
+* {{@key}}
+{{#this}} * {{this}}
+{{/this}}
+{{/each}}
+{{/security}}
+
+#### Request
+
+{{#if consumes}}
+**Content-Type: ** {{join consumes ", "}}{{/if}}
+
+##### Parameters
+{{#if parameters}}
+<table border="1">
+ <tr>
+ <th>Name</th>
+ <th>Located in</th>
+ <th>Required</th>
+ <th>Description</th>
+ <th>Default</th>
+ <th>Schema</th>
+ </tr>
+{{/if}}
+
+{{#parameters}}
+<tr>
+ <th>{{name}}</th>
+ <td>{{in}}</td>
+ <td>{{#if required}}yes{{else}}no{{/if}}</td>
+ <td>
+ {{description}}{{#if pattern}} (**Pattern**: `{{pattern}}`){{/if}}
+ {{#if enum}}
+ <p>
+ <b>Allowable values</b>: {{#join enum ", "}} {{this}}{{/join}}
+ </p>
+ {{/if}}
+ </td>
+ <td>{{#if defaultValue}}{{defaultValue}}{{else}} - {{/if}}</td>
+{{#ifeq in "body"}}
+ <td>
+ {{#ifeq schema.type "array"}}Array[<a href="{{schema.items.$ref}}">{{basename schema.items.$ref}}</a>]{{/ifeq}}
+ {{#schema.$ref}}<a href="{{schema.$ref}}">{{basename schema.$ref}}</a> {{/schema.$ref}}
+ </td>
+{{else}}
+ {{#ifeq type "array"}}
+ <td>Array[{{items.type}}] ({{collectionFormat}})</td>
+ {{else}}
+ <td>{{type}} {{#format}}({{format}}){{/format}}</td>
+ {{/ifeq}}
+{{/ifeq}}
+</tr>
+{{/parameters}}
+{{#if parameters}}
+</table>
+{{/if}}
+
+
+#### Response
+
+{{#if produces}}**Content-Type: ** {{join produces ", "}}{{/if}}
+
+
+| Status Code | Reason | Response Model |
+|-------------|-------------|----------------|
+{{#each responses}}| {{@key}} | {{description}} | {{#schema.$ref}}<a href="{{schema.$ref}}">{{basename schema.$ref}}</a>{{/schema.$ref}}{{#ifeq schema.type "array"}}Array[<a href="{{schema.items.$ref}}">{{basename schema.items.$ref}}</a>]{{/ifeq}}{{^schema}} - {{/schema}}|
+{{/each}}
diff --git a/src/main/resources/security.hbs b/src/main/resources/security.hbs
new file mode 100644
index 0000000..04f86e8
--- /dev/null
+++ b/src/main/resources/security.hbs
@@ -0,0 +1,88 @@
+{{#each securityDefinitions}}
+### {{@key}}
+{{#this}}
+{{#ifeq type "oauth2"}}
+<table>
+ <tr>
+ <th>type</th>
+ <th colspan="2">{{type}}</th>
+ </tr>
+{{#if description}}
+ <tr>
+ <th>description</th>
+ <th colspan="2">{{description}}</th>
+ </tr>
+{{/if}}
+{{#if authorizationUrl}}
+ <tr>
+ <th>authorizationUrl</th>
+ <th colspan="2">{{authorizationUrl}}</th>
+ </tr>
+{{/if}}
+{{#if flow}}
+ <tr>
+ <th>flow</th>
+ <th colspan="2">{{flow}}</th>
+ </tr>
+{{/if}}
+{{#if tokenUrl}}
+ <tr>
+ <th>tokenUrl</th>
+ <th colspan="2">{{tokenUrl}}</th>
+ </tr>
+{{/if}}
+{{#if scopes}}
+ <tr>
+ <td rowspan="3">scopes</td>
+{{#each scopes}}
+ <td>{{@key}}</td>
+ <td>{{this}}</td>
+ </tr>
+ <tr>
+{{/each}}
+ </tr>
+{{/if}}
+</table>
+{{/ifeq}}
+{{#ifeq type "apiKey"}}
+<table>
+ <tr>
+ <th>type</th>
+ <th colspan="2">{{type}}</th>
+ </tr>
+{{#if description}}
+ <tr>
+ <th>description</th>
+ <th colspan="2">{{description}}</th>
+ </tr>
+{{/if}}
+{{#if name}}
+ <tr>
+ <th>name</th>
+ <th colspan="2">{{name}}</th>
+ </tr>
+{{/if}}
+{{#if in}}
+ <tr>
+ <th>in</th>
+ <th colspan="2">{{in}}</th>
+ </tr>
+{{/if}}
+</table>
+{{/ifeq}}
+{{#ifeq type "basic"}}
+<table>
+ <tr>
+ <th>type</th>
+ <th colspan="2">{{type}}</th>
+ </tr>
+{{#if description}}
+ <tr>
+ <th>description</th>
+ <th colspan="2">{{description}}</th>
+ </tr>
+{{/if}}
+</table>
+{{/ifeq}}
+{{/this}}
+{{/each}} \ No newline at end of file
diff --git a/src/main/resources/strapdown.html.hbs b/src/main/resources/strapdown.html.hbs
new file mode 100644
index 0000000..ec02669
--- /dev/null
+++ b/src/main/resources/strapdown.html.hbs
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<title>API Document</title>
+
+<xmp theme="united" style="display:none;">
+{{>markdown}}
+</xmp>
+
+<script src="http://strapdownjs.com/v/0.2/strapdown.js"></script>
+</html> \ No newline at end of file