From 28d58cedeba041e536d71f82325cb1d32eeba730 Mon Sep 17 00:00:00 2001 From: Geora Barsky Date: Fri, 26 Oct 2018 12:53:09 -0400 Subject: Enhance model to support L2 Fabric Adding JUnit tests and swagger specs Issue-ID: LOG-780 Change-Id: Iaf7cb19a6310ebdeef085a94f00623041aa4f89b Signed-off-by: Geora Barsky --- .../org/onap/pomba/common/datatypes/Attribute.java | 34 +- .../onap/pomba/common/datatypes/LInterface.java | 82 + .../onap/pomba/common/datatypes/LogicalLink.java | 88 + .../onap/pomba/common/datatypes/ModelContext.java | 47 +- .../org/onap/pomba/common/datatypes/Network.java | 47 +- .../onap/pomba/common/datatypes/NetworkPolicy.java | 72 + .../onap/pomba/common/datatypes/PInterface.java | 92 ++ .../java/org/onap/pomba/common/datatypes/PNF.java | 83 + .../onap/pomba/common/datatypes/PhysicalLink.java | 72 + .../java/org/onap/pomba/common/datatypes/Port.java | 71 + .../org/onap/pomba/common/datatypes/Pserver.java | 89 + .../org/onap/pomba/common/datatypes/Service.java | 29 +- .../java/org/onap/pomba/common/datatypes/VF.java | 111 -- .../org/onap/pomba/common/datatypes/VFModule.java | 34 +- .../java/org/onap/pomba/common/datatypes/VM.java | 46 +- .../java/org/onap/pomba/common/datatypes/VNF.java | 128 ++ .../java/org/onap/pomba/common/datatypes/VNFC.java | 41 +- .../onap/pomba/common/resource/AuditResource.java | 66 + src/main/resources/commonModel.html | 1741 ++++++++++++++++++++ src/main/resources/markdown.hbs | 108 ++ src/main/resources/operation.hbs | 80 + src/main/resources/security.hbs | 88 + src/main/resources/strapdown.html.hbs | 10 + 23 files changed, 3058 insertions(+), 201 deletions(-) create mode 100644 src/main/java/org/onap/pomba/common/datatypes/LInterface.java create mode 100644 src/main/java/org/onap/pomba/common/datatypes/LogicalLink.java create mode 100644 src/main/java/org/onap/pomba/common/datatypes/NetworkPolicy.java create mode 100644 src/main/java/org/onap/pomba/common/datatypes/PInterface.java create mode 100644 src/main/java/org/onap/pomba/common/datatypes/PNF.java create mode 100644 src/main/java/org/onap/pomba/common/datatypes/PhysicalLink.java create mode 100644 src/main/java/org/onap/pomba/common/datatypes/Port.java create mode 100644 src/main/java/org/onap/pomba/common/datatypes/Pserver.java delete mode 100644 src/main/java/org/onap/pomba/common/datatypes/VF.java create mode 100644 src/main/java/org/onap/pomba/common/datatypes/VNF.java create mode 100644 src/main/java/org/onap/pomba/common/resource/AuditResource.java create mode 100644 src/main/resources/commonModel.html create mode 100644 src/main/resources/markdown.hbs create mode 100644 src/main/resources/operation.hbs create mode 100644 src/main/resources/security.hbs create mode 100644 src/main/resources/strapdown.html.hbs (limited to 'src/main') 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 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 getAttributes() { + return attributeList; + } + public void setAttributes(List 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 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 getAttributes() { + return attributeList; + } + public void setAttributes(List 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 attributeList = new ArrayList<>(); @Expose - @SerializedName("vfList") - private List vfList = new ArrayList<>(); + @SerializedName("vnfList") + private List vnfList = new ArrayList<>(); + @Expose + @SerializedName("pnfList") + private List pnfList = new ArrayList<>(); + @Expose + @SerializedName("networkList") + private List 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 getAttributes() { return attributeList; } @@ -59,13 +72,31 @@ public class ModelContext { public void addAttribute(Attribute attribute) { this.attributeList.add(attribute); } - public List getVfs() { - return vfList; + @ApiModelProperty(value = "List of VNF associated with the service instance") + public List getVnfs() { + return vnfList; + } + public void setVnfs(List vfList) { + this.vnfList = vfList; } - public void setVfs(List 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 getPnfs() { + return pnfList; } + public void setPnfs(List 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 getNetworkList() { return networkList; } + public void setNetworkList(List 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 @@ -24,24 +24,27 @@ import java.util.ArrayList; 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 attributeList = new ArrayList<>(); + @Expose + @SerializedName("networkPolicyList") + private List 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 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 getNetworkPolicies() { + return networkPolicies; + } + + public void setNetworkPolicies(List 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 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 getAttributes() { + return attributeList; + } + public void setAttributes(List 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 attributeList = new ArrayList<>(); + @Expose + @SerializedName("physicalLinkList") + private List 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 getAttributes() { + return attributeList; + } + public void setAttributes(List 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 getPhysicalLinkList() { + return physicalLinkList; + } + + public void setPhysicalLinkList(List 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 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 getAttributes() { + return attributeList; + } + public void setAttributes(List 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 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 getAttributes() { + return attributeList; + } + public void setAttributes(List 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 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 getAttributes() { + return attributeList; + } + public void setAttributes(List 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 attributeList = new ArrayList<>(); + @Expose + @SerializedName("pInterfaceList") + private List pInterfaceList = new ArrayList<>(); + @Expose + @SerializedName("logicalLinkList") + private List 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 getAttributes() { + return attributeList; + } + public void setAttributes(List 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 getPInterfaceList() { + return pInterfaceList; + } + public void setPInterfaceList(List pInterfaceList) { + this.pInterfaceList = pInterfaceList; + } + + public List getLogicalLinkList() { + return logicalLinkList; + } + + public void setLogicalLinkList(List 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 @@ -25,15 +25,18 @@ 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 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/VF.java b/src/main/java/org/onap/pomba/common/datatypes/VF.java deleted file mode 100644 index ded7ae2..0000000 --- a/src/main/java/org/onap/pomba/common/datatypes/VF.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * ============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 attributeList = new ArrayList<>(); - @Expose - @SerializedName("vfModuleList") - private List vfModules = new ArrayList<>(); - @Expose - @SerializedName("vnfcList") - private List 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 getVfModules() { - return vfModules; - } - public void setVfModules(List vfModules) { - this.vfModules = vfModules; - } - public void addVfModule(VFModule vfModule) { - this.vfModules.add(vfModule); - } - public List getVnfcs() { - return vnfcs; - } - public void setVnfcs(List vnfc) { - this.vnfcs = vnfc; - } - public void addVnfc(VNFC vnfc) { - this.vnfcs.add(vnfc); - } - public List getAttributes() { - return attributeList; - } - public void setAttributes(List 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/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 @@ -25,15 +25,21 @@ 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 @@ -24,24 +24,24 @@ import java.util.ArrayList; 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 attributeList = new ArrayList<>(); + @Expose + @SerializedName("pServer") + private Pserver pServer = new Pserver(); + @Expose + @SerializedName("lInterfaceList") + private List 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 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 getLInterfaceList() { + return lInterfaceList; + } + + public void setLInterfaceList(List lInterfaceList) { + this.lInterfaceList = lInterfaceList; + } + + + } diff --git a/src/main/java/org/onap/pomba/common/datatypes/VNF.java b/src/main/java/org/onap/pomba/common/datatypes/VNF.java new file mode 100644 index 0000000..49db2f9 --- /dev/null +++ b/src/main/java/org/onap/pomba/common/datatypes/VNF.java @@ -0,0 +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 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 attributeList = new ArrayList<>(); + @Expose + @SerializedName("vfModuleList") + private List vfModules = new ArrayList<>(); + @Expose + @SerializedName("vnfcList") + private List vnfcs = new ArrayList<>(); + @Expose + @SerializedName("networkList") + private List 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 getVfModules() { + return vfModules; + } + public void setVfModules(List vfModules) { + this.vfModules = vfModules; + } + public void addVfModule(VFModule vfModule) { + this.vfModules.add(vfModule); + } + public List getVnfcs() { + return vnfcs; + } + public void setVnfcs(List vnfc) { + this.vnfcs = vnfc; + } + public void addVnfc(VNFC vnfc) { + this.vnfcs.add(vnfc); + } + public List getAttributes() { + return attributeList; + } + public void setAttributes(List 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 getNetworks() { + return networks; + } + + public void setNetworks(List 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 @@ -25,18 +25,18 @@ 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 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 @@ + + +API Document + + +#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> + + + + + + + \ 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}} +## {{@key}} + + + + + + + + + + {{#each this.properties}} + + + + + + + + {{/each}} +
nametyperequireddescriptionexample
{{@key}} + {{#ifeq type "array"}} + {{#items.$ref}} + {{type}}[{{basename items.$ref}}] + {{/items.$ref}} + {{^items.$ref}}{{type}}[{{items.type}}]{{/items.$ref}} + {{else}} + {{#$ref}}{{basename $ref}}{{/$ref}} + {{^$ref}}{{type}}{{#format}} ({{format}}){{/format}}{{/$ref}} + {{/ifeq}} + {{#required}}required{{/required}}{{^required}}optional{{/required}}{{#description}}{{{description}}}{{/description}}{{^description}}-{{/description}}{{example}}
+{{/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}} +{{summary}} + +{{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}} + + + + + + + + + +{{/if}} + +{{#parameters}} + + + + + + +{{#ifeq in "body"}} + +{{else}} + {{#ifeq type "array"}} + + {{else}} + + {{/ifeq}} +{{/ifeq}} + +{{/parameters}} +{{#if parameters}} +
NameLocated inRequiredDescriptionDefaultSchema
{{name}}{{in}}{{#if required}}yes{{else}}no{{/if}} + {{description}}{{#if pattern}} (**Pattern**: `{{pattern}}`){{/if}} + {{#if enum}} +

+ Allowable values: {{#join enum ", "}} {{this}}{{/join}} +

+ {{/if}} +
{{#if defaultValue}}{{defaultValue}}{{else}} - {{/if}} + {{#ifeq schema.type "array"}}Array[{{basename schema.items.$ref}}]{{/ifeq}} + {{#schema.$ref}}{{basename schema.$ref}} {{/schema.$ref}} + Array[{{items.type}}] ({{collectionFormat}}){{type}} {{#format}}({{format}}){{/format}}
+{{/if}} + + +#### Response + +{{#if produces}}**Content-Type: ** {{join produces ", "}}{{/if}} + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +{{#each responses}}| {{@key}} | {{description}} | {{#schema.$ref}}{{basename schema.$ref}}{{/schema.$ref}}{{#ifeq schema.type "array"}}Array[{{basename schema.items.$ref}}]{{/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"}} + + + + + +{{#if description}} + + + + +{{/if}} +{{#if authorizationUrl}} + + + + +{{/if}} +{{#if flow}} + + + + +{{/if}} +{{#if tokenUrl}} + + + + +{{/if}} +{{#if scopes}} + + +{{#each scopes}} + + + + +{{/each}} + +{{/if}} +
type{{type}}
description{{description}}
authorizationUrl{{authorizationUrl}}
flow{{flow}}
tokenUrl{{tokenUrl}}
scopes{{@key}}{{this}}
+{{/ifeq}} +{{#ifeq type "apiKey"}} + + + + + +{{#if description}} + + + + +{{/if}} +{{#if name}} + + + + +{{/if}} +{{#if in}} + + + + +{{/if}} +
type{{type}}
description{{description}}
name{{name}}
in{{in}}
+{{/ifeq}} +{{#ifeq type "basic"}} + + + + + +{{#if description}} + + + + +{{/if}} +
type{{type}}
description{{description}}
+{{/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 @@ + + +API Document + + +{{>markdown}} + + + + \ No newline at end of file -- cgit 1.2.3-korg