| syntax = "proto3"; |
| package ix; |
| |
| message GetIXMembersRequest { |
| // IX ID from PeeringDB |
| int64 id = 1; |
| } |
| |
| message PeeringDBMember { |
| int64 asn = 1; |
| // AS/network name. |
| string name = 2; |
| |
| message Router { |
| // Per PeeringDB, at least one of the following two address families |
| // will be set. |
| string ipv4 = 1; |
| string ipv6 = 2; |
| } |
| 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; |
| } |
| |
| service PeeringDBProxy { |
| // GetIXMembers returns information about membership of a given PeeringDB IX. |
| rpc GetIXMembers(GetIXMembersRequest) returns (GetIXMembersResponse); |
| } |
| |
| message IRRQueryRequest { |
| // AS to query for. This needs be the AS number of the AS, possibly |
| // prefixed with 'as'/'AS'. |
| string as = 1; |
| } |
| |
| message IRRAttribute { |
| message ImportExport { |
| message Expression { |
| string peering = 1; |
| string router_us = 2; |
| string router_them = 3; |
| repeated string actions = 4; |
| } |
| string protocol_from = 1; |
| string protocol_into = 2; |
| repeated Expression expressions = 3; |
| string filter = 4; |
| } |
| |
| oneof value { |
| string remarks = 1; |
| ImportExport import = 2; |
| ImportExport export = 3; |
| } |
| } |
| |
| message IRRQueryResponse { |
| enum Source { |
| SOURCE_INVALID = 0; |
| SOURCE_RIPE = 1; |
| SOURCE_ARIN = 2; |
| } |
| Source source = 1; |
| repeated IRRAttribute attributes = 2; |
| } |
| |
| service IRR { |
| // Query returns parsed RPSL data from supported IRRs for a given aut-num. |
| rpc Query(IRRQueryRequest) returns (IRRQueryResponse); |
| } |