stats: golang vpp_if_stats_client

see README for details

Change-Id: Ida603ccaee21dabc903512699b5b355cebb70320
Signed-off-by: Koren Lev <korenlev@gmail.com>
diff --git a/extras/vpp_if_stats/response_schema.json b/extras/vpp_if_stats/response_schema.json
new file mode 100755
index 0000000..aa5f948
--- /dev/null
+++ b/extras/vpp_if_stats/response_schema.json
@@ -0,0 +1,253 @@
+{
+  "definitions": {},
+  "$schema": "http://json-schema.org/draft-07/schema#",
+  "$id": "http://example.com/root.json",
+  "type": "object",
+  "title": "The Root Schema",
+  "required": [
+    "vpp_details",
+    "interfaces"
+  ],
+  "properties": {
+    "vpp_details": {
+      "$id": "#/properties/vpp_details",
+      "type": "object",
+      "title": "The Vpp_details Schema",
+      "required": [
+        "program",
+        "version",
+        "build_date",
+        "build_directory"
+      ],
+      "properties": {
+        "program": {
+          "$id": "#/properties/vpp_details/properties/program",
+          "type": "string",
+          "title": "The Program Schema",
+          "default": "",
+          "examples": [
+            "vpe"
+          ],
+          "pattern": "^(.*)$"
+        },
+        "version": {
+          "$id": "#/properties/vpp_details/properties/version",
+          "type": "string",
+          "title": "The Version Schema",
+          "default": "",
+          "examples": [
+            "18.10-release"
+          ],
+          "pattern": "^(.*)$"
+        },
+        "build_date": {
+          "$id": "#/properties/vpp_details/properties/build_date",
+          "type": "string",
+          "title": "The Build_date Schema",
+          "default": "",
+          "examples": [
+            "Tue Oct 23 07:03:38 UTC 2018"
+          ],
+          "pattern": "^(.*)$"
+        },
+        "build_directory": {
+          "$id": "#/properties/vpp_details/properties/build_directory",
+          "type": "string",
+          "title": "The Build_directory Schema",
+          "default": "",
+          "examples": [
+            "/w/workspace/vpp-merge-1810-centos7"
+          ],
+          "pattern": "^(.*)$"
+        }
+      }
+    },
+    "interfaces": {
+      "$id": "#/properties/interfaces",
+      "type": "array",
+      "title": "The Interfaces Schema",
+      "items": {
+        "$id": "#/properties/interfaces/items",
+        "type": "object",
+        "title": "The Items Schema",
+        "required": [
+          "if_index",
+          "if_name",
+          "if_tag",
+          "if_mac",
+          "if_admin_state",
+          "if_link_state",
+          "if_link_mtu",
+          "if_sub_dot1ad",
+          "if_sub_id",
+          "if_tx_bytes",
+          "if_tx_packets",
+          "if_tx_errors",
+          "if_rx_bytes",
+          "if_rx_packets",
+          "if_rx_errors",
+          "if_drops",
+          "if_punts"
+        ],
+        "properties": {
+          "if_index": {
+            "$id": "#/properties/interfaces/items/properties/if_index",
+            "type": "integer",
+            "title": "The If_index Schema",
+            "default": 0,
+            "examples": [
+              0
+            ]
+          },
+          "if_name": {
+            "$id": "#/properties/interfaces/items/properties/if_name",
+            "type": "string",
+            "title": "The If_name Schema",
+            "default": "",
+            "examples": [
+              "local0"
+            ],
+            "pattern": "^(.*)$"
+          },
+          "if_tag": {
+            "$id": "#/properties/interfaces/items/properties/if_tag",
+            "type": "string",
+            "title": "The If_tag Schema",
+            "default": "",
+            "examples": [
+              ""
+            ],
+            "pattern": "^(.*)$"
+          },
+          "if_mac": {
+            "$id": "#/properties/interfaces/items/properties/if_mac",
+            "type": "string",
+            "title": "The If_mac Schema",
+            "default": "",
+            "examples": [
+              ""
+            ],
+            "pattern": "^(.*)$"
+          },
+          "if_admin_state": {
+            "$id": "#/properties/interfaces/items/properties/if_admin_state",
+            "type": "integer",
+            "title": "The If_admin_state Schema",
+            "default": 0,
+            "examples": [
+              0
+            ]
+          },
+          "if_link_state": {
+            "$id": "#/properties/interfaces/items/properties/if_link_state",
+            "type": "integer",
+            "title": "The If_link_state Schema",
+            "default": 0,
+            "examples": [
+              0
+            ]
+          },
+          "if_link_mtu": {
+            "$id": "#/properties/interfaces/items/properties/if_link_mtu",
+            "type": "integer",
+            "title": "The If_link_mtu Schema",
+            "default": 0,
+            "examples": [
+              0
+            ]
+          },
+          "if_sub_dot1ad": {
+            "$id": "#/properties/interfaces/items/properties/if_sub_dot1ad",
+            "type": "integer",
+            "title": "The If_sub_dot1ad Schema",
+            "default": 0,
+            "examples": [
+              0
+            ]
+          },
+          "if_sub_id": {
+            "$id": "#/properties/interfaces/items/properties/if_sub_id",
+            "type": "integer",
+            "title": "The If_sub_id Schema",
+            "default": 0,
+            "examples": [
+              0
+            ]
+          },
+          "if_tx_bytes": {
+            "$id": "#/properties/interfaces/items/properties/if_tx_bytes",
+            "type": "integer",
+            "title": "The If_tx_bytes Schema",
+            "default": 0,
+            "examples": [
+              0
+            ]
+          },
+          "if_tx_packets": {
+            "$id": "#/properties/interfaces/items/properties/if_tx_packets",
+            "type": "integer",
+            "title": "The If_tx_packets Schema",
+            "default": 0,
+            "examples": [
+              0
+            ]
+          },
+          "if_tx_errors": {
+            "$id": "#/properties/interfaces/items/properties/if_tx_errors",
+            "type": "integer",
+            "title": "The If_tx_errors Schema",
+            "default": 0,
+            "examples": [
+              0
+            ]
+          },
+          "if_rx_bytes": {
+            "$id": "#/properties/interfaces/items/properties/if_rx_bytes",
+            "type": "integer",
+            "title": "The If_rx_bytes Schema",
+            "default": 0,
+            "examples": [
+              0
+            ]
+          },
+          "if_rx_packets": {
+            "$id": "#/properties/interfaces/items/properties/if_rx_packets",
+            "type": "integer",
+            "title": "The If_rx_packets Schema",
+            "default": 0,
+            "examples": [
+              0
+            ]
+          },
+          "if_rx_errors": {
+            "$id": "#/properties/interfaces/items/properties/if_rx_errors",
+            "type": "integer",
+            "title": "The If_rx_errors Schema",
+            "default": 0,
+            "examples": [
+              0
+            ]
+          },
+          "if_drops": {
+            "$id": "#/properties/interfaces/items/properties/if_drops",
+            "type": "integer",
+            "title": "The If_drops Schema",
+            "default": 0,
+            "examples": [
+              0
+            ]
+          },
+          "if_punts": {
+            "$id": "#/properties/interfaces/items/properties/if_punts",
+            "type": "integer",
+            "title": "The If_punts Schema",
+            "default": 0,
+            "examples": [
+              0
+            ]
+          }
+        }
+      }
+    }
+  }
+}
\ No newline at end of file