bgpwtf/cccampix: draw the rest of the fucking owl

Change-Id: I49fd5906e69512e8f2d414f406edc0179522f225
diff --git a/bgpwtf/cccampix/proto/ix.proto b/bgpwtf/cccampix/proto/ix.proto
index ce84b48..cb9cb30 100644
--- a/bgpwtf/cccampix/proto/ix.proto
+++ b/bgpwtf/cccampix/proto/ix.proto
@@ -20,19 +20,8 @@
     repeated Router routers = 3;
 }
 
-
 message GetIXMembersResponse {
-    message Member {
-        int64 asn = 1;
-        // Per PeeringDB, at least one of the following two address families
-        // will be set.
-        string ipv4 = 2;
-        string ipv6 = 3;
-        // AS/network name.
-        string name = 4;
-    };
-
-    repeated Member members = 1;
+    repeated PeeringDBMember members = 1;
 }
 
 service PeeringDBProxy {
@@ -66,7 +55,7 @@
         ImportExport export = 3;
     }
 }
-
+        
 message IRRQueryResponse {
     enum Source {
         SOURCE_INVALID = 0;
@@ -82,6 +71,71 @@
     rpc Query(IRRQueryRequest) returns (IRRQueryResponse);
 }
 
+message ProcessorStatusRequest {
+}
+
+message ProcessorStatusResponse {
+    message Processor {
+        enum Status {
+            STATUS_INVALID = 0;
+            STATUS_OK = 1;
+            STATUS_ERROR = 2;
+        }
+        string name = 1;
+        Status status = 2;
+        int64 last_run = 3;
+        int64 next_run = 4;
+    }
+    repeated Processor processors = 1;
+}
+
+message PeerSummaryRequest {
+}
+
+message PeerSummaryResponse {
+    PeeringDBMember peeringdb_info = 1;
+    enum Status {
+        STATUS_INVALID = 0;
+        STATUS_OK = 1;
+        STATUS_FAILED = 2;
+        STATUS_UNKNOWN = 3;
+    }
+    Status check_status = 2;
+}
+
+message PeerDetailsRequest {
+    int64 asn = 1;
+}
+
+message PeerDetailsResponse {
+    message Check {
+        enum Status {
+            STATUS_INVALID = 0;
+            STATUS_OK = 1;
+            STATUS_FAILED = 2;
+        };
+        string name = 1;
+        Status status = 2;
+        int64 time = 3;
+        string msg = 4;
+    };
+    repeated Check checks = 1;
+
+    message AllowedPrefix {
+        string prefix = 1;
+        int64 max_length = 2;
+        string ta = 3;
+    };
+    repeated AllowedPrefix allowed_prefixes = 2;
+    PeeringDBMember peeringdb_info = 3;
+}
+
+service Verifier {
+    rpc ProcessorStatus(ProcessorStatusRequest) returns (ProcessorStatusResponse);
+    rpc PeerSummary(PeerSummaryRequest) returns (stream PeerSummaryResponse);
+    rpc PeerDetails(PeerDetailsRequest) returns (PeerDetailsResponse);
+}
+
 message KeyInfoRequest {
     // Public key fingerprint. 20 bytes.
     bytes fingerprint = 1;
@@ -137,4 +191,3 @@
     // Encrypt encrypts a given data blob with a given key from public keyserver infrastructure.
     // If key doesn't exist, error (NotFound).
     rpc Encrypt(stream EncryptRequest) returns (stream EncryptResponse);
-}