[ONOS-3663] Add swagger doc for control metrics query REST API
Change-Id: Id8b667dabb64d11149b43cfeead57cf5ebd6997e
diff --git a/apps/cpman/app/src/main/java/org/onosproject/cpman/rest/ControlMetricsWebResource.java b/apps/cpman/app/src/main/java/org/onosproject/cpman/rest/ControlMetricsWebResource.java
index d6b454b..12e1083 100644
--- a/apps/cpman/app/src/main/java/org/onosproject/cpman/rest/ControlMetricsWebResource.java
+++ b/apps/cpman/app/src/main/java/org/onosproject/cpman/rest/ControlMetricsWebResource.java
@@ -59,6 +59,7 @@
* Returns control message metrics of all devices.
*
* @return array of all control message metrics
+ * @onos.rsModel ControlMessageMetrics
*/
@GET
@Path("messages")
@@ -86,6 +87,7 @@
*
* @param deviceId device identification
* @return control message metrics of a given device
+ * @onos.rsModel ControlMessageMetric
*/
@GET
@Produces(MediaType.APPLICATION_JSON)
@@ -102,6 +104,7 @@
* Returns cpu metrics.
*
* @return cpu metrics
+ * @onos.rsModel CpuMetrics
*/
@GET
@Path("cpu_metrics")
@@ -116,6 +119,7 @@
* Returns memory metrics.
*
* @return memory metrics
+ * @onos.rsModel MemoryMetrics
*/
@GET
@Path("memory_metrics")
@@ -130,6 +134,7 @@
* Returns disk metrics of all resources.
*
* @return disk metrics of all resources
+ * @onos.rsModel DiskMetrics
*/
@GET
@Path("disk_metrics")
@@ -155,6 +160,7 @@
* Returns network metrics of all resources.
*
* @return network metrics of all resources
+ * @onos.rsModel NetworkMetrics
*/
@GET
@Path("network_metrics")
diff --git a/apps/cpman/app/src/main/resources/definitions/ControlMessageMetric.json b/apps/cpman/app/src/main/resources/definitions/ControlMessageMetric.json
new file mode 100644
index 0000000..89327c9
--- /dev/null
+++ b/apps/cpman/app/src/main/resources/definitions/ControlMessageMetric.json
@@ -0,0 +1,162 @@
+{
+ "type": "object",
+ "title": "metrics",
+ "required": [
+ "metrics"
+ ],
+ "properties": {
+ "metrics": {
+ "type": "array",
+ "xml": {
+ "name": "metrics",
+ "wrapped": true
+ },
+ "items": {
+ "type": "object",
+ "title": "metrics",
+ "required": [
+ "inboundPacket",
+ "outboundPacket",
+ "flowModPacket",
+ "flowRemovedPacket",
+ "requestPacket",
+ "replyPacket"
+ ],
+ "properties": {
+ "inboundPacket": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "outboundPacket": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "flowModPacket": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "flowRemovedPacket": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "requestPacket": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "replyPacket": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/apps/cpman/app/src/main/resources/definitions/ControlMessageMetrics.json b/apps/cpman/app/src/main/resources/definitions/ControlMessageMetrics.json
new file mode 100644
index 0000000..f5b50f5
--- /dev/null
+++ b/apps/cpman/app/src/main/resources/definitions/ControlMessageMetrics.json
@@ -0,0 +1,183 @@
+{
+ "type": "object",
+ "title": "devices",
+ "required": [
+ "devices"
+ ],
+ "properties": {
+ "devices": {
+ "type": "object",
+ "required": [
+ "name",
+ "value"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "object",
+ "title": "metrics",
+ "required": [
+ "metrics"
+ ],
+ "properties": {
+ "metrics": {
+ "type": "array",
+ "xml": {
+ "name": "metrics",
+ "wrapped": true
+ },
+ "items": {
+ "type": "object",
+ "title": "metrics",
+ "required": [
+ "inboundPacket",
+ "outboundPacket",
+ "flowModPacket",
+ "flowRemovedPacket",
+ "requestPacket",
+ "replyPacket"
+ ],
+ "properties": {
+ "inboundPacket": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "outboundPacket": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "flowModPacket": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "flowRemovedPacket": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "requestPacket": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "replyPacket": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/apps/cpman/app/src/main/resources/definitions/CpuMetrics.json b/apps/cpman/app/src/main/resources/definitions/CpuMetrics.json
new file mode 100644
index 0000000..f941ea9
--- /dev/null
+++ b/apps/cpman/app/src/main/resources/definitions/CpuMetrics.json
@@ -0,0 +1,139 @@
+{
+ "type": "object",
+ "title": "metrics",
+ "required": [
+ "metrics"
+ ],
+ "properties": {
+ "metrics": {
+ "type": "array",
+ "xml": {
+ "name": "metrics",
+ "wrapped": true
+ },
+ "items": {
+ "type": "object",
+ "title": "metrics",
+ "required": [
+ "cpuLoad",
+ "totalCpuTime",
+ "sysCpuTime",
+ "userCpuTime",
+ "cpuIdleTime"
+ ],
+ "properties": {
+ "cpuLoad": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "totalCpuTime": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "sysCpuTime": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "userCpuTime": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "cpuIdleTime": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/apps/cpman/app/src/main/resources/definitions/DiskMetrics.json b/apps/cpman/app/src/main/resources/definitions/DiskMetrics.json
new file mode 100644
index 0000000..6203eb8
--- /dev/null
+++ b/apps/cpman/app/src/main/resources/definitions/DiskMetrics.json
@@ -0,0 +1,91 @@
+{
+ "type": "object",
+ "title": "disks",
+ "required": [
+ "disks"
+ ],
+ "properties": {
+ "disks": {
+ "type": "object",
+ "required": [
+ "name",
+ "value"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "object",
+ "title": "metrics",
+ "required": [
+ "metrics"
+ ],
+ "properties": {
+ "metrics": {
+ "type": "array",
+ "xml": {
+ "name": "metrics",
+ "wrapped": true
+ },
+ "items": {
+ "type": "object",
+ "title": "metrics",
+ "required": [
+ "readBytes",
+ "writeBytes"
+ ],
+ "properties": {
+ "readBytes": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "writeBytes": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/apps/cpman/app/src/main/resources/definitions/MemoryMetrics.json b/apps/cpman/app/src/main/resources/definitions/MemoryMetrics.json
new file mode 100644
index 0000000..fd7e1c4
--- /dev/null
+++ b/apps/cpman/app/src/main/resources/definitions/MemoryMetrics.json
@@ -0,0 +1,116 @@
+{
+ "type": "object",
+ "title": "metrics",
+ "required": [
+ "metrics"
+ ],
+ "properties": {
+ "metrics": {
+ "type": "array",
+ "xml": {
+ "name": "metrics",
+ "wrapped": true
+ },
+ "items": {
+ "type": "object",
+ "title": "metrics",
+ "required": [
+ "memoryUsedRatio",
+ "memoryFreeRatio",
+ "memoryUsed",
+ "memoryFree"
+ ],
+ "properties": {
+ "memoryUsedRatio": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "memoryFreeRatio": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "memoryUsed": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "memoryFree": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/apps/cpman/app/src/main/resources/definitions/NetworkMetrics.json b/apps/cpman/app/src/main/resources/definitions/NetworkMetrics.json
new file mode 100644
index 0000000..91e282e
--- /dev/null
+++ b/apps/cpman/app/src/main/resources/definitions/NetworkMetrics.json
@@ -0,0 +1,137 @@
+{
+ "type": "object",
+ "title": "networks",
+ "required": [
+ "networks"
+ ],
+ "properties": {
+ "networks": {
+ "type": "object",
+ "required": [
+ "name",
+ "value"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "object",
+ "title": "metrics",
+ "required": [
+ "metrics"
+ ],
+ "properties": {
+ "metrics": {
+ "type": "array",
+ "xml": {
+ "name": "metrics",
+ "wrapped": true
+ },
+ "items": {
+ "type": "object",
+ "title": "metrics",
+ "required": [
+ "incomingBytes",
+ "outgoingBytes",
+ "incomingPackets",
+ "outgoingPackets"
+ ],
+ "properties": {
+ "incomingBytes": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "outgoingBytes": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "incomingPackets": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "outgoingPackets": {
+ "type": "object",
+ "required": [
+ "time",
+ "latest",
+ "average"
+ ],
+ "properties": {
+ "time": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "latest": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "average": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file