[ONOS-3618] Implement REST API for Meter query, insert, delete
* Implement encode & decode method for MeterBandCodec & MeterCodec
* Implement MetersWebResource
* Add unit test for MeterBandCodec & MeterCodec
* Add unit test for MetersWebResource
* Add meter insertion json example
* Add Swagger doc
Change-Id: I07284c6678c08b3cb9e109e86ffb2cf28bf36447
diff --git a/web/api/src/main/resources/definitions/Meter.json b/web/api/src/main/resources/definitions/Meter.json
new file mode 100644
index 0000000..e8fefe5
--- /dev/null
+++ b/web/api/src/main/resources/definitions/Meter.json
@@ -0,0 +1,113 @@
+{
+ "type": "object",
+ "title": "meter",
+ "required": [
+ "id",
+ "appId",
+ "deviceId",
+ "unit",
+ "burst",
+ "state",
+ "life",
+ "refCount",
+ "packets",
+ "bytes",
+ "bands"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "example": "1"
+ },
+ "appId": {
+ "type": "string",
+ "example": "1"
+ },
+ "deviceId": {
+ "type": "string",
+ "example": "of:0000000000000001"
+ },
+ "unit": {
+ "type": "string",
+ "example": "KB_PER_SEC"
+ },
+ "burst": {
+ "type": "boolean",
+ "example": true
+ },
+ "state": {
+ "type": "string",
+ "example": "ADDED"
+ },
+ "life": {
+ "type": "integer",
+ "format": "int64",
+ "example": 0
+ },
+ "refCount": {
+ "type": "integer",
+ "format": "int64",
+ "example": 0
+ },
+ "packets": {
+ "type": "integer",
+ "format": "int64",
+ "example": 0
+ },
+ "bytes": {
+ "type": "integer",
+ "format": "int64",
+ "example": 0
+ },
+ "bands": {
+ "type": "array",
+ "xml": {
+ "name": "bands",
+ "wrapped": true
+ },
+ "items": {
+ "type": "object",
+ "title": "bands",
+ "required": [
+ "type",
+ "rate",
+ "burstSize",
+ "prec",
+ "packets",
+ "bytes"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "example": "REMARK"
+ },
+ "rate": {
+ "type": "integer",
+ "format": "int64",
+ "example": 0
+ },
+ "burstSize": {
+ "type": "integer",
+ "format": "int64",
+ "example": 0
+ },
+ "prec": {
+ "type": "integer",
+ "format": "int16",
+ "example": 0
+ },
+ "packets": {
+ "type": "integer",
+ "format": "int64",
+ "example": 0
+ },
+ "bytes": {
+ "type": "integer",
+ "format": "int64",
+ "example": 0
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file