VOL-1967 move api-server to separate repository

Current with voltha-go acf0adaf2d91ae72b55192cc8a939e0485918d16

Change-Id: I000ea6be0789e20c922bd671562b58a7120892ae
diff --git a/arouter.json b/arouter.json
new file mode 100644
index 0000000..debfcd7
--- /dev/null
+++ b/arouter.json
@@ -0,0 +1,290 @@
+{
+  "servers": [
+    {
+      "name": "grpc_command",
+      "port": 55555,
+      "address": "localhost",
+      "type": "grpc",
+      "routers": [
+        {
+          "_TODO": "Suport a router list, remove the package and service from the router",
+          "package": "voltha",
+          "service": "VolthaService",
+          "router": "vcore"
+        }
+      ]
+    }
+  ],
+  "routers": [
+    {
+      "name": "vcore",
+      "package": "voltha",
+      "service": "VolthaService",
+      "proto_descriptor": "vendor/github.com/opencord/voltha-protos/go/voltha.pb",
+      "routes": [
+        {
+          "name": "dev_manager",
+          "type": "rpc_affinity_message",
+          "association": "round_robin",
+          "routing_field": "id",
+          "backend_cluster": "vcore",
+          "_COMMENT": "Methods are naturally southbound affinity binding unless otherwise specified below",
+          "methods": [
+            "CreateDevice",
+            "GetCoreInstance",
+            "EnableLogicalDevicePort",
+            "DisableLogicalDevicePort",
+            "EnableDevice",
+            "DisableDevice",
+            "RebootDevice",
+            "DeleteDevice",
+            "DownloadImage",
+            "CancelImageDownload",
+            "ActivateImageUpdate",
+            "RevertImageUpdate",
+            "UpdateDevicePmConfigs",
+            "CreateAlarmFilter",
+            "UpdateAlarmFilter",
+            "DeleteAlarmFilter",
+            "SelfTest"
+          ],
+          "_COMMENT": "If a method is northbound affinity binding then association is used to route",
+          "_COMMENT": "but affinity is not set southbound but only based on the response",
+          "_COMMENT": "Methods here MUST be specified above, this overrides thier default beahvior",
+          "nb_binding_methods": [
+            "CreateDevice"
+          ],
+          "_TODO": "Overrides not implemented yet, config ignored",
+          "overrides": [
+            {
+              "methods": [
+                "abc",
+                "def"
+              ],
+              "routing_field": "id"
+            },
+            {
+              "methods": [
+                "ghi",
+                "jkl"
+              ]
+            },
+            {
+              "method": "mno",
+              "routing_field": "id"
+            },
+            {
+              "method": "pqr"
+            }
+          ]
+        },
+        {
+          "name": "logger",
+          "proto_descriptor": "voltha.pb",
+          "type": "source",
+          "routing_field": "component_name",
+          "backend_cluster": "ro_vcore",
+          "methods": [
+            "UpdateLogLevel",
+            "GetLogLevels"
+          ]
+        },
+        {
+          "name": "read_only",
+          "type": "round_robin",
+          "association": "round_robin",
+          "backend_cluster": "ro_vcore",
+          "methods": [
+            "ListDevicePorts",
+            "ListDevicePmConfigs",
+            "GetImages",
+            "GetImageDownloadStatus",
+            "GetImageDownload",
+            "ListImageDownloads",
+            "ListDeviceFlows",
+            "ListDeviceFlowGroups",
+            "ListLogicalDeviceFlows",
+            "ListLogicalDeviceFlowGroups",
+            "ListDevices",
+            "GetDevice",
+            "ListLogicalDevices",
+            "GetLogicalDevices",
+            "GetDeviceType",
+            "GetDeviceGroup",
+            "GetLogicalDevice",
+            "GetAlarmFilter",
+            "ListLogicalDevicePorts",
+            "GetLogicalDevicePort"
+          ]
+        },
+        {
+          "name": "dev_manager_ofagent",
+          "type": "binding",
+          "_association": "round_robin",
+          "binding": {
+            "type": "header",
+            "field": "voltha_backend_name",
+            "method": "Subscribe",
+            "association": "round_robin"
+          },
+          "backend_cluster": "vcore",
+          "methods": [
+            "StreamPacketsOut",
+            "ReceivePacketsIn",
+            "ReceiveChangeEvents",
+            "Subscribe",
+            "UpdateLogicalDeviceFlowTable",
+            "UpdateLogicalDeviceFlowGroupTable",
+            "GetLogicalDevice",
+            "GetLogicalDevicePort",
+            "EnableLogicalDevicePort",
+            "DisableLogicalDevicePort",
+            "ListLogicalDevices",
+            "ListLogicalDeviceFlows",
+            "ListLogicalDeviceFlowGroups",
+            "ListLogicalDevicePorts"
+          ],
+          "_TODO": "Overrides not implemented yet, config ignored",
+          "overrides": [
+            {
+              "methods": [
+                "abc",
+                "def"
+              ],
+              "routing_field": "id"
+            },
+            {
+              "methods": [
+                "ghi",
+                "jkl"
+              ]
+            },
+            {
+              "method": "mno",
+              "routing_field": "id"
+            },
+            {
+              "method": "pqr"
+            }
+          ]
+        }
+      ]
+    }
+  ],
+  "backend_clusters": [
+    {
+      "name": "vcore",
+      "backends": [
+        {
+          "name": "vcore1",
+          "type": "active_active",
+          "association": {
+            "strategy": "serial_number",
+            "location": "header",
+            "_TODO": "The key below needs to be implemented, currently hard coded",
+            "key": "voltha_serial_number"
+          },
+          "connections": [
+            {
+              "name": "vcore11",
+              "addr": "voltha-rw-core-11.voltha.svc.cluster.local",
+              "port": "50057"
+            },
+            {
+              "name": "vcore12",
+              "addr": "voltha-rw-core-12.voltha.svc.cluster.local",
+              "port": "50057"
+            }
+          ]
+        },
+        {
+          "name": "vcore2",
+          "type": "active_active",
+          "association": {
+            "strategy": "serial_number",
+            "location": "header",
+            "_TODO": "The key below needs to be implemented, currently hard coded",
+            "key": "voltha_serial_number"
+          },
+          "connections": [
+            {
+              "name": "vcore21",
+              "addr": "voltha-rw-core-21.voltha.svc.cluster.local",
+              "port": "50057"
+            },
+            {
+              "name": "vcore22",
+              "addr": "voltha-rw-core-22.voltha.svc.cluster.local",
+              "port": "50057"
+            }
+          ]
+        },
+        {
+          "name": "vcore3",
+          "type": "active_active",
+          "association": {
+            "strategy": "serial_number",
+            "location": "header",
+            "_TODO": "The key below needs to be implemented, currently hard coded",
+            "key": "voltha_serial_number"
+          },
+          "connections": [
+            {
+              "name": "vcore31",
+              "addr": "voltha-rw-core-31.voltha.svc.cluster.local",
+              "port": "50057"
+            },
+            {
+              "name": "vcore32",
+              "addr": "voltha-rw-core-32.voltha.svc.cluster.local",
+              "port": "50057"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "name": "ro_vcore",
+      "backends": [
+        {
+          "name": "ro_vcore1",
+          "type": "server",
+          "connections": [
+            {
+              "name": "ro_vcore11",
+              "addr": "voltha-ro-core-0.voltha-ro-core.voltha.svc.cluster.local",
+              "port": "50057"
+            }
+          ]
+        },
+        {
+          "name": "ro_vcore2",
+          "type": "server",
+          "connections": [
+            {
+              "name": "ro_vcore21",
+              "addr": "voltha-ro-core-1.voltha-ro-core.voltha.svc.cluster.local",
+              "port": "50057"
+            }
+          ]
+        },
+        {
+          "name": "ro_vcore3",
+          "type": "server",
+          "connections": [
+            {
+              "name": "ro_vcore31",
+              "addr": "voltha-ro-core-2.voltha-ro-core.voltha.svc.cluster.local",
+              "port": "50057"
+            }
+          ]
+        }
+      ]
+    }
+  ],
+  "api": {
+    "_comment": "If this isn't defined then no api is available for dynamic configuration and queries",
+    "address": "localhost",
+    "port": 55554
+  }
+}