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);
}
